




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ORG 0000h MOV 30h,#09h ;显示缓冲单元 MOV 31h,#08h MOV 32h,#07h MOV 33h,#06h MOV 34h,#05h MOV 35h,#04h START:SETB PSW.1 MAIN:MOV R0,#0 LOOP:ACALL KINP JB PSW.5,LP9 ;无键不处理键值 MOV R0,A CJNE A,#8,LP4SETB P2.0 SETB P2.1ACALL DELAYLOOP SJMP START LP4:CJNE A,#9,LP3 MOV R0,#0 SETB PSW.1;按下9键,循环显示 LP3:MOV B,#0AH ;有键,分离键码 DIV AB;-AD转换- LP9:MOV A,R0; PUSH ACC ACALL DISP ;调用键盘 MOV DPTR,#7FFFH ; MOVX DPTR,A ACALL DELAY MOVX A,DPTR CPL A MOV P1,A CJNE A,#19h,NEXT4 NEXT4:JC NEXT5 ;温度50,跳到NEXT5, 温度50,跳到NEXT6 NEXT5:CLR P2.0 ;蜂鸣器响 CLR P2.1 ;灯亮 CLR PSW.1;标志位PSW.1清零,可以单路显示 AJMP NEXT7 NEXT6:SETB P2.0 ;蜂鸣器不响 SETB P2.1; 正常时灯灭 NEXT7:MOV R1,A ;R1为转化的十六进制 PUSH ACC ACALL DISP POP ACC ;保护;-温度转换- MOV R6,#3;R6R7为1000的高位和低位 MOV R7,#0E8H MOV R3,A MOV B,R6 MUL AB MOV R5,B;R5为03*A的高位 MOV R1,A;R1为03*A的低位 MOV B,R7 MOV A,R3 MUL AB MOV R4,B;e8*A的高位 CLR A CLR C ADD A,R1 ADD A,R4 MOV R7,A ;温度转换后的双位十六进制低位 CLR A ADDC A,R5 MOV R6,A ;温度转换后的双位十六进制高位 ACALLHEX2BCD;调用BCD码转换,用BCD码代替十进制码 MOV 30H,R0;第一位 MOV 31H,#10H;第二位 MOV 32H,R3;第三位 MOV A,R4 MOV B,#16 DIV AB ADD A,#11H;带小数点 MOV 33H,A ; 第四位 MOV 34H,B;第五位 MOV 35H,#0CH;第六位 ACALL DISP;显示且延时 MOV R4,#200 DELAY3:ACALL DISP DJNZ R4,DELAY3 JB PSW.1,NEXT2 LJMP LOOP;若有键按下单路显示 NEXT2:INC R0 CJNE R0,#08H, LP2;共八路循环显示 LJMP MAIN LP2:LJMP LOOP;-显示- DISP:MOV A,R0 MOV R1,A PUSH ACC MOV R0,#30H ;显示缓冲首址MOVR2,#01H ;位控初始码(先亮最低位) LOOP1:MOVA,#0FFH ;共阳 灭码MOV P1,A MOVA,R2 ;送位控信号MOV P0,AMOVA,R0 ;从显示缓冲中取数MOV DPTR,#TABMOVCA,A+DPTR ;查出字形代码 MOV P1,A ;送显示字符段代码ACALLDY1MS ;稳定显示信息INC R0 ;取下一个数MOVA,R2 JBACC.5,EXIT ;判断是否送到最高位?RL AMOVR2,A ;得到下一个位控信号AJMPLOOP1 EXIT:POP ACC MOV R0,A MOV R1,A RET DY1MS:MOV R7,#0FFH DJNZ R7,$ RET DELAY:MOV R1,#08FH DJNZ R1,$ RET;-转换成BCD码的程序如下- ;功能:16位二进制数变换成为 BCD 码;;入口:R6 R7 中是 16 位二进制数,其中R6中是高 8 位;;出口:R2 R3 R4 中是 BCD 码,其中R2中是万位,R3中是千、百位,R4中是十、个位。 HEX2BCD:CLR A MOV R2, A ;先清零 MOV R3, A MOV R4, A MOV R5, #16 ;共转换十六位数H2B_LOOP:CLR C MOV A, R7 ;从待转换数的高端移出一位到Cy RLC A MOV R7, A MOV A, R6 RLC A MOV R6, A MOV A, R4 ;送到BCD码的低端 ADDC A, R4 ;带进位加。自身相加,相当于左移一位 DA A ;十进制调整,变成BCD码 MOV R4, A MOV A, R3 ADDC A, R3 DA A MOV R3, A MOV A, R2 ADDC A, R2 MOV R2, A DJNZ R5, H2B_LOOP ;共转换十六位数 RET;-键盘- DELAYLOOP:MOV R5,#200;延时子程序 DELAYTIME:MOV R6,#0FAH LOOPTIME:MOV R7,#70H DJNZ R6,LOOPTIME DJNZ R5,DELAYTIME RET KINP:LCALL KAP ;扫描键子程序 JNZ KP1 SETB PSW.5;置无键标志 RET KP1:LCALL DELY ;去抖 LCALL KAP ;再次扫描键盘 JNZ KP2 ;转识键码程序 SETB PSW.5;置无键标志 RET KP2:CLR PSW.5 CLR PSW.1 ;置有键操作标志 MOV R2,#0FEH ;逐列扫描初始值 MOV R4,#00H ;0列加数 KP4:MOV A,R2 MOV P0,A ;送列扫描信号 MOV A,P3 ;回读行信号 JB ACC.0,L1 ;不是第一行,转第二行 =1,tiao MOV A,#00H ;是第一行,行吗=0 AJMP KP5 L1:JB ACC.1,NEXT MOV A,#08H ;是第二行,行码=8 AJMP KP5 KP5:ADD A,R4 ;对应的行码+对应的列码=键码 PUSH ACC ;保护已经得到的键码 KP3:LCALL DELY LCALL KAP ;继续扫描 JNZ KP3 ;A值不等于0,表示手未松开! POP ACC ;A值等于0,手已经松开,弹回键码! RET NEXT:INC R4 ;下一列列码加1 MOV A,R2 JNB ACC.7,KINP ;列到最后列了吗? RL A MOV R2,A ;下一列 AJMP KP4 ;扫描下一列 KAP:MOV A,#00H ;全扫描字(列) MOV P0,A ;送全扫描字 MOV A,P3 ;回读行信息 CPL A ANL A,#0FH ;得到A值,=0,无键;0,有键 RET DELY:MOV R6,#14H ;去抖! DL:MOV R7,#0FFH DJNZ R7,$ DJNZ R6,DL RETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三级英语第一单元测试题及答案
- 预应力钢筋张拉技术方案
- 离异家庭财产分割中人寿保险利益分配协议
- 离婚协议中财产分割及子女监护权变更申请书
- 夫妻共同债务清算及财产分割协议范本
- 婚姻关系解除及子女抚养权移交协议范本3
- 离婚案件第二次财产分割执行及变更合同
- 离婚协议书模板及离婚后共同财产分割及子女抚养协议
- 无人驾驶汽车技术研发保密与道路测试协议
- 高级技术岗位员工全面聘用与责任履行合同
- 产品品质及售后无忧服务承诺书3篇
- 2025年养老产业市场营销策略调整分析报告
- 部编版二年级道德与法治上册第4课《欢欢喜喜庆国庆》精美课件
- 潍坊市2026届高三开学调研监测考试生物试题及答案
- 安徽省定远县藕塘中学高三上学期周考训练物理试题
- 三维波动方程双变网格有限差分并行模拟方法:理论、实践与优化
- 邮政银行一点一策课件
- 膝关节炎科普知识课件
- 餐饮咨询顾问合同范本
- 四级专项模拟考试题库及答案
- 川教版(2024)七年级上册信息科技全册教案
评论
0/150
提交评论