资源描述:
《温度显示程序清单》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ORG0000hMOV30h,#09h;显示缓冲单元MOV31h,#08hMOV32h,#07hMOV33h,#06hMOV34h,#05hMOV35h,#04hSTART:SETBPSW.1MAIN:MOVR0,#0LOOP:ACALLKINPJBPSW.5,LP9;无键不处理键值MOVR0,ACJNEA,#8,LP4SETBP2.0SETBP2.1ACALLDELAYLOOPSJMPSTARTLP4:CJNEA,#9,LP3MOVR0,#0SETBPSW.1;按下9键,循环显示LP3:MOVB,#0AH;有键,分离键码DIVAB;-----------------------AD转换
2、------------------------------LP9:MOVA,R0;PUSHACCACALLDISP;调用键盘MOVDPTR,#7FFFH;MOVX@DPTR,AACALLDELAYMOVXA,@DPTRCPLAMOVP1,ACJNEA,#19h,NEXT4NEXT4:JCNEXT5;温度<10,跳到NEXT5CJNEA,#80h,NEXT8NEXT8:JCNEXT6;温度>50,跳到NEXT5,温度<50,跳到NEXT6NEXT5:CLRP2.0;蜂鸣器响CLRP2.1;灯亮CLRPSW.1;标志位PSW.1清零,可以单路显示AJMPNEXT7NEXT6:SETBP2.
3、0;蜂鸣器不响SETBP2.1;正常时灯灭NEXT7:MOVR1,A;R1为转化的十六进制PUSHACCACALLDISPPOPACC;保护;-------------------------温度转换-------------------------MOVR6,#3;R6R7为1000的高位和低位MOVR7,#0E8HMOVR3,AMOVB,R6MULABMOVR5,B;R5为03*A的高位MOVR1,A;R1为03*A的低位MOVB,R7MOVA,R3MULABMOVR4,B;e8*A的高位CLRACLRCADDA,R1ADDA,R4MOVR7,A;温度转换后的双位十六进制低位CLRA
4、ADDCA,R5MOVR6,A;温度转换后的双位十六进制高位ACALLHEX2BCD;调用BCD码转换,用BCD码代替十进制码MOV30H,R0;第一位MOV31H,#10H;第二位MOV32H,R3;第三位MOVA,R4MOVB,#16DIVABADDA,#11H;带小数点MOV33H,A;第四位MOV34H,B;第五位MOV35H,#0CH;第六位ACALLDISP;显示且延时MOVR4,#200DELAY3:ACALLDISPDJNZR4,DELAY3JBPSW.1,NEXT2LJMPLOOP;若有键按下单路显示NEXT2:INCR0CJNER0,#08H,LP2;共八路循环显示L
5、JMPMAINLP2:LJMPLOOP;-------------------显示------------------------------DISP:MOVA,R0MOVR1,APUSHACCMOVR0,#30H;显示缓冲首址MOVR2,#01H;位控初始码(先亮最低位)LOOP1:MOVA,#0FFH;共阳灭码MOVP1,AMOVA,R2;送位控信号MOVP0,AMOVA,@R0;从显示缓冲中取数MOVDPTR,#TABMOVCA,@A+DPTR;查出字形代码MOVP1,A;送显示字符段代码ACALLDY1MS;稳定显示信息INCR0;取下一个数MOVA,R2JBACC.5,EXIT
6、;判断是否送到最高位?RLAMOVR2,A;得到下一个位控信号AJMPLOOP1EXIT:POPACCMOVR0,AMOVR1,ARETDY1MS:MOVR7,#0FFHDJNZR7,$RETDELAY:MOVR1,#08FHDJNZR1,$RET;-----------------转换成BCD码的程序如下-------------------------------;功能:16位二进制数变换成为BCD码;;入口:R6R7中是16位二进制数,其中R6中是高8位;;出口:R2R3R4中是BCD码,其中R2中是万位,R3中是千、百位,R4中是十、个位。HEX2BCD:CLRAMOVR2,A;
7、先清零MOVR3,AMOVR4,AMOVR5,#16;共转换十六位数H2B_LOOP:CLRCMOVA,R7;从待转换数的高端移出一位到CyRLCAMOVR7,AMOVA,R6RLCAMOVR6,AMOVA,R4;送到BCD码的低端ADDCA,R4;带进位加。自身相加,相当于左移一位DAA;十进制调整,变成BCD码MOVR4,AMOVA,R3ADDCA,R3DAAMOVR3,AMOVA,R2ADDCA,R2MOVR2,ADJNZR5