新闻中心

EEPW首页>嵌入式系统>设计应用> 单片机控制数显“消屏”算是的探讨

单片机控制数显“消屏”算是的探讨

作者: 时间:2012-03-15 来源:网络 收藏


CLR SIGN ;初始化清零“”标志位
LOOP0:MOV R1,#51H ;显示字段的缓冲区由内存51H单元开始
MOV R2,#04H
MOV R3,#05H ;显示数码为5位
LOOP1:MOV DPH,#00H
MOV DPL,#50H
MOV A,@R1
MOVC A,@A+DPTR
JNB DECIMAL,LOOP2
ADD A,#02H ;小数点显示处理
LOOP2:MOV P0,A
MOV A,#03H
ADD A,R2
MOV P3,A
JNB FUNCT,KSM0 ;跳至键解释子程序
JNB FANNER,KSM0 ;跳至键解释子程序
JNB EYRE,KSM0 ;跳至键解释子程序
JNB 72H,LOOP3
ANL 2EH,#0BH
CLR 72H
LOOP3:JB SIGH,LOOP20;若标志位为“1”则跳之“”循环
LOOP4:LCALL YSCX ;调用循环显示延时子程序
CLR DECIMAL
LOOP5:MOV A,R2
RL A
MOV R2,A
JB 55H ,LOOP7
LOOP6:CJNE A,#10H,LOOP7
SETB DECIMAL
LOOP7:INC R1
MOV P1,2AH ;内存2A记录值赋予P1口
MOV P2,2BH ;内存2BH记录值赋予P2口
DJNZ R3,LOOP1
LJMP LOOP0

主循环显示程序是一个扫描式显示的主循环。假若程序运行到倒数第十四条“JB SIGN,LOOP20”指令、且标志位“SIGN”(即“2FH”)已被置为逻辑“1”时,程序将跳出扫描显示主循环,而进入“”循环运行。其中,内存寄存器2AH、2BH是可位寻址操作的——分别对应于端口P1、P2的内存字节单元,它们的数据由具体运算监控程序赋予。另外,扫描显示主循环程序中所牵涉到的诸如“跳至键解释子程序”中的“键解释子程序”、“调用循环显示延时子程序”中的“循环显示延时子程序”,以及下文中的温度信息采访监控程序等,由于篇幅的关系都没有具体阐述,因为,它们不影响关于“消屏”的讨论。

3.2 “消屏”辅助循环程序
LOOP20:INB SIGN,LOOP23
MOV P1,#0FBH
MOV P3,#03H
ORL 0D0H,#18H
MOV R5,#25H
LOOP21:MOV R6,#2AH
LOOP22:DJNZ R6,LOOP22
DJNZ R5,LOOP21
ANL 0D0H,#0E7H
MOV P0,#00H ;保证显示输出为“0” ——“消屏”
ANL P1,#0E7H ;而监控通信端口仍正常工作
MOV P3,#03H
JNB FUNCT,LOOP23
JNB FANNER,LOOP23
JNB EYRE,LOOP23
LJMP LOOP20
LOOP23:MOV P1,2AH ;记录内容赋值给相应端口
MOV P2,2BH
CLR SIGN
LJMP LOOP1

在“消屏”循环程序运行中,当其倒数第6、第7、第8条指令中任一条指令的条件转换成立,即有任一按键按下时,程序便退出“消屏”循环,回到主循环运行,进而由键解释子程序对该按键作出解释响应。“消屏”辅助循环程序中包含子延时程序。其实,整个“消屏”循环便是以延时程序做主体来运行“等待”的——等待时机(如有键按入或某种因素引起复位)跳出“消屏”运行程序,并“清零”标示位 “SIGN”,回到扫描显示主循环中去。“消屏”辅助循环程序只是为了“消屏” ——数码管及LED指示灯中的几个或全部不亮,而不影响系统的其它功能。



评论


相关推荐

技术专区

关闭