已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
波形发生器程序清单:ORG 0000HAJMP MAINORG 0000BHLJMP TOINTORG 0030HMAIN: MOV A, #30H MOV SP, A MOV 40H, #00H ;波形显初值 MOV 41H, #00H ;频率显示初值 MOV 42H, #00H MOV 43H, #00H MOV 44H, #00H MOV 45H, #00H ;参考电压显示初值 MOV 46H, #00H ;设置标志初值 MOV DPTR, #7FFCH ;初始化8255 MOV A, #90H MOVX DPTR, A;LED显示子程序;DISPLAY: MOV R2, H06H ;显示子程序 MOV R1, #80H MOV R0, #40HDIS1: MOV DPTR, #7FFEH ;指向B口MOV A, R1MOVX DPTR, A RR A ;形成下一次位选信号MOV R1 AMOV A, R0 ;取显示数字MOV DPTR, #DISPLAYTABMOVC A, A+DPTR ;由数字转换成显示段码MOV DPTR, #7EFFH ;指向A口MOV DPTR, A ;送段码到A口LCALL DELAY ;显示延时INC R0DJNZ R2, DIS1 ;判断是否显示6次MOV A, #00HMOV P1, A ;熄灭波形指示灯AJMP KEYSPAN ;转到键盘管理子程序DELAY: MOV R3, #80H ;延时LOOP1: MOV R4, #0A0H DJNZ R4, $ DJNZ R3, LOOP1 RETDISPLAYTAB: DB 3FH, 06H, 5BH, 4FH, 66H ;0 1 2 3 4 DB 6DH, 7DH, 07H, 7FH, 6FH ;5 6 7 8 9 DB 40H ;键盘管理子程序;KEY SPAN: MOV A, #F0H CLR P2.7 MOV R0, #FDH ;指向C口 MOVX R0, A ;输出列扫描查询码 MOV A, R0 ;读入行状态 CJNE A, F0H, KEY1 ;有键闭合、转KEY1 LJMP KEYSPANEND ;无键闭合、退出KEY1: LCALL DELAY10ms ;延时、去抖动 CLR IE ;关闭定时中断 MOV R1, #FEHKEY2: MOV A, R1 CLR P2.7 MOVX R0, A ;输出列扫描码 MOVX A, R0 ;读入行状态和列状态 ANL A, #F0H ;保留行状态 CJNE A, #F0H, KEY3 ;有键闭合、转KEY3,无键闭合形成下一次列扫描码,并判断是否扫描四次 MOV A, R1 RL A MOV R1, A JB ACC.3, KEY2 LJMP KEYSPANEND ;四次列扫描完毕,退出KEY3: MOV R2, A ;行码送R2中保存 MOV A, R1 ;扫描码送A中 ANL A, #0FH ;保留列码(低4位) ORL A, R2 ;列码在低4位,行码在高4位 MOV R2, A ;列行码值保存在R2 MOV DPTR, #KEYTAB ;指向键特征值表 MOV R1, #00H ;从键值0开始比对KEY4: CLR A MOVC A, A+DPTR ;取特征值 XRL A, R2 ;列行码值与特征值比对 JZ KEY5 ;A=0找到键特征值,转KEY5 INC R1 ;形成下一个键值 INC DPTR ;形成下一个特征值地址 CJNE R1, #10H, KEY4 ;判断是否比对了16次,R110H,转KEY4,否则,顺序执行 LJMP KEYSPANEND ;退出KEY5: MOV A, #F0H CLR P2.7 MOVC R0, A ;输出查询码 MOVC A, R0 ;读入状态 SETB P2.7 CJNE A, #F0H, KEY5 ;等待键释放 LCALL KEYPROCESS ;调用键功能子程序KEYSPANEND: LJMP DISPLAY ;返回到LED显示子程序开始处DELAY10ms: MOV R3, #0C8H LOOP2: MOV R4, #0A0H DJNZ R4, $ DJNZ R3, LOOP2 RET;键特征值表;KEYTAB:DB EEH, EDH, EBH, E7H ;0 1 2 3 DB DEH, DDH, DBH, D7H ;4 5 6 7 DB CEH, CDH, CBH, C7H ;8 9 EN CL DB 7EH, 7DH, 7BH, 77H ;W F V .;键功能散转;KWYREOCESS:MOV A, R1 RL A MOV DPTR, #KEYPROTABJMP A+DPTRKEYPROTAB: AJMP KEY_0_PROAJMP KEY_1_PROAJMP KEY_2_PROAJMP KEY_3_PROAJMP KEY_4_PROAJMP KEY_5_PROAJMP KEY_6_PROAJMP KEY_7_PROAJMP KEY_8_PROAJMP KEY_9_PROAJMP KEY_EN_PROAJMP KEY_CL_PROAJMP KEY_W_PROAJMP KEY_F_PROAJMP KEY_V_PROAJMP KEY_PRO;键功能处理子程序;KEY_0_PRO:MOV A, 46H ;“0”键处理子程序CJNE A, #00H, D01SJMP D0ENDD01: CJNE A, #01H, D0ENDCJNE R5, #43H, D02SJMP D0ENDD02: MOV R5, #0HINC R5D0END: RETKEY_1_PRO:MOV A, #46H ;“1”键处理子程序CJNE A, #00H, D11AJMP D1ENDD11: CJNE A, #01H, D12CJNE R5,#43H, F1AJMP D1ENDF1: MOV R5, #01HINC R5AJMP D1ENDD12: CJNE A, #02H, D13MOV 45H, #01HSJMP D1ENDD13: MOV 40H, #01HD1END: RETKEY_2_PRO:MOV A, #46H ;“2”键处理子程序CJNE A, #00H, D21AJMP D2ENDD21: CJNE A, #01H, D22CJNE R5,#43H, F2AJMP D2ENDF2: MOV R5, #02HINC R5AJMP D2ENDD22: CJNE A, #02H, D23MOV 45H, #02HSJMP D2ENDD23: MOV 40H, #02HD2END: RETKEY_3_PRO:MOV A, #46H ;“3”键处理子程序CJNE A, #00H, D31AJMP D3ENDD31: CJNE A, #01H, D32CJNE R5,#43H, F3AJMP D3ENDF3: MOV R5, #03HINC R5AJMP D3ENDD32: CJNE A, #02H, D33MOV 45H, #03HSJMP D3ENDD33: MOV 40H, #03HD3END: RETKEY_4_PRO:MOV A, #46H :“4”键处理子程序CJNE A, #00H, D41AJMP D4ENDD41: CJNE A, #01H, D42CJNE R5,#43H, F4AJMP D4ENDF4: MOV R5, #04HINC R5AJMP D4ENDD42: CJNE A, #02H, D43MOV 45H, #04HSJMP D4ENDD43: MOV 40H, #04HD4END: RETKEY_5_PRO:MOV A, 46H ;“5”键处理子程序CJNE A, #00H, D51AJMP D5ENDD51: CJNE A, #01H, D52CJNE R7, #44H, F5AJMP D5ENDF5: MOV R5, #00HINC R5AJMP D5ENDD52: CJNE A, #02H, D53MOV 45, #05HD53: RETKEY_6_PRO: RET ;“6”键处理子程序KEY_7_PRO: RET ;“7”键处理子程序KEY_8_PRO: RET ;“8”键处理子程序KEY_9_PRO: RET ;“9”键处理子程序KEY_EN_PRO:MOV A, 40HCJNE A, #00H, EN1AJMP ENENDEN1: MOV A, 45HCJNE A, #00H, VREFAJMP ENENDVREF: DPTR, #VREFTABMOVC A, A+DPTRMOV R0, #FFHCLR P2.5 ;选中0832(1)MOCX R0, A ;向0832(1)送参考电压编码MOV A, 41HORL A, 42HORL A, 43HCJNE A, #00H, 1KHZAJMP ENEND1KHZ: MOV A, 41H ;1KHZ设置定时初值CJNE A, #01H, 500HZMOV TMOD, #00HMOV TLO, #01HMOV THO, #0FFHAJMP OPEN_TI0500HZ: MOV A, 42H ;500HZ设置定时初值CJNE A, #05H, 200HZMOV TMOD, #00HMOV TLO, #01HMOV THO, #0FEHAJMP OPEN_TI0200HZ: CJNE A, #02H, 100HZ ;200HZ设置定时初值MOV TMOD, #00HMOV TLO, #03HMOV THO, #0FBHAJMP OPEN_TI0100HZ: CJNE A, #01H, 50HZ ;100HZ设置定时初值MOV TMOD, #00HMOV TLO, #08HMOV THO, #0F6HAJMP OPEN_TI050HZ: MOV A, 43H ;50HZ设置定时初值CJNE A, #05H, 20HZMOV TMOD, #00HMOV TLO, #0FHMOV THO, #0ECHAJMP OPEN_TI020HZ: CJNE A, #02H, 10HZ ;20HZ设置定时初值MOV TMOD, #00HMOV TLO, #16HMOV THO, #90HAJMP OPEN_TI010HZ: CJNE A, #01H, ENEND ;10HZ设置定时初值MOV TMOD, #00HMOV TLO, #0BHMOV THO, #9EHAJMP OPEN_TI0OPEN_TI0: MOV TCON, #10H ;定时器0工作,运行位TR控制MOV IE, 82H ;中断允许总控制,定时器0中断允许MOV R6, #00H ;样值初始编号ENEND: RETVREFTAB: DB 32H, 68H, A2H, CDH, FFH ;1V 2V 3V 4V 5V KEY_CL_PRO:MOV A, #00H ;“CL”键处理子程序MOV R0, #40HCL1: MOV R0, #40HINC R0CJNE R0, #46H, CL1MOV R5, AMOV TL0, #00HMOV TH0, #00HCLR TR0RETKEY_F_PRO: MOV A, #01H;“F”处理子程序MOV 46H, A ;(46H)=01H表示频率设置MOV R5, 42HMOV 41H #0AH ;频率LED位显示“- - - 0”MOV 42H #0AHMOV 43H #0AHRETKEY_V_PRO:MOV A, #02H ;“V”处理子程序MOV 46H, A ;(46H)=02H表示参考电压设置MOV 45H #0AH ;电压LED位显示“”RETKEY_W_PRO:MOV A, #03H ;“W”处理子程序MOV 46H, A ;(46H)=03H表示波形选择MOV 40H #0AH ;波形LED位显示“”RETKEY_PRO:RET ;“”处理子程序;定时中断服务程序;TOINT:PUSH PSWPUSH ACCPUSH DPHPUSH DPLPUSH R0PUSH R1PUSH R2PUSH R3PUSH R4 ;保护现场MOV R7, 40HLCALL WAVE1;调用波形产生子程序POP R4POP R3POP R2POP R1POP R0POP DPLPOP DPHPOP ACCPOP PSW;恢复现场RETI;返回断点处,执行主程序;波形产生子程序;WAVE1: CJNE R7, #01H, WAVE2CLR P1.0MOV DPTR, #W_TAB1 ;指向方波表首址MOV A, R6MOVC A, A+DPTRMOV DPTR, #0AFFFH ;指向DAC0832(2)MOVX DPTR, AMOV A, R6INC AMOV R6, A ;指向下一个样值CJNE A, #32, W_ENDMOV R6, #00HAJMP W_ENDWAVE2: CJNE R7, #02H, WAVE3CLR P1.1MOV DPTR, #W_TAB2 ;指向正弦波表首址MOV A, R6MOVC A, A+DPTRMOV DPTR, #0AFFFH ;指向DAC0832(2)MOVX DPTR, AMOV A, R6INC AMOV R6, A ;指向下一个样值CJNE A, #32, W_ENDMOV R6, #00HAJMP W_ENDWAVE3: CJNE R7, #03H, WAVE4CLR P1.2MOV DPTR, #W_TAB3 ;指向三角波表首址MOV A, R6MOVC A, A+DPTRMOV DPTR, #0AFFFH ;指向DAC0832(2)MOVX DPTR, AMOV A, R6INC AMOV R6, A ;指向下一个样值CJNE A, #32, W_ENDMOV R6, #00HAJMP W_ENDWAVE4: CJNE R7, #04H, W_ENDCLR P1.3MOV DPTR, #W_TAB4 ;指向锯齿波表首址MOV A, R6MOVC A, A+DPTRMOV DPTR, #0AFFFH ;指向DAC0832(2)MOVX DPTR, AMOV A, R6INC AMOV R6, A ;指向下一个样值CJNE A, #32, W_ENDMOV R6, #00HW_END : RET ;返回中断服务程序执行;波形样值表;W_TAB1: DB 0FFH, FFH, F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 3755-2008卡套式锥密封组合三通管接头》:未来流体连接技术的关键基石与前瞻性应用指南
- 深度解析(2026)《GBT 3099.3-2017紧固件术语 表面处理》
- 2026年人教版初中八年级语文上册说明文语言特点卷含答案
- 2026年初中九年级语文阅读答题模板冲刺卷含答案
- 《JBT 10652-2006轮式拖拉机轮毂螺栓、车轮螺钉和螺母 技术条件》专题研究报告
- 《JBT 10454-2018激光打印机负电性有机光导鼓技术条件》专题研究报告
- 2026年党员干部党史知识竞赛试卷及答案(八)
- (正式版)DB43∕T 771-2013 《动物卫生监督检查规程》
- 2026年土地管理法基层适用与宅基地审批问答
- 2026年农信社团委干事岗测试大纲梳理
- 非学历教育培训管理制度
- 孕期保健英文-含四步触诊法
- 2026年高考语文备考之文本互证类(文评联读)文学类文本阅读专项训练含答案
- 大型设备基础大体积混凝土浇筑施工方案
- 安全工程课程培训课件
- 《渔业法》2025修订解读:新制度亮点及职责条例强化
- 水箱安装及施工方案
- 浙江国企招聘2025宁波慈溪市国有企业公开招聘工作人员130名笔试参考题库附带答案详解(3卷)
- 醋的介绍课件
- 2026东吴证券秋季校园招聘(公共基础知识)测试题附答案解析
- 2025年国家义务教育质量监测心理健康和德育测试题+答案
评论
0/150
提交评论