完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
前几天,回答了一个问题:数码管显示0-9999计数器,两个按键,一个按键复位,一个按键累加计数。
呵呵,刚刚提交了程序,就被提问者选为最佳答案! 其实,提交的当时,只是准备看看回答的效果,因为百度知道有时犯混,提交的回答显示不出来。 结果,电路也没有来得及附上;另外在程序中,还忽略了消除无效0的功能。 下面把消除无效0的功能进行简单的介绍,并给出完整的程序。 四位显示器,是可以显示0000~9999的,但是在设计工程实际的产品时,前三个0,是不应该显示的。 一个成熟的程序,都应该有消除无效0的程序段。 消除无效0,其实就是用“空白”的代码来代替“0”。 在程序中,大家都知道有个七段码表,一般是把0123.。.的七段码依次排列在里面,那么第0~15个,通常就是0~F的七段码。 如果把“空白”七段码FFH,排在第16个位置,那么“空白”的代码就是16。 消除无效0的程序,应该从高位到低位(千位、百位、十位)依次判断,个位的0,是应该显示的,则不用判断。 某一位是0,就替换为16,如果不是0,不仅不用替换,还要停止判断后面其它的位。 比如: 千位是0:替换成16; 百位不是0:不用改,正常显示百位; 十位:无论是不是0,都应该正常显示,不用判断了。 做而论道看过不少大学的教材和参考书,都没有看到消除无效0的程序(也许,还是没有看全)。 呵呵,这大概就是“教学”和“工程”的区别吧。 ;=========================================== 下面做而论道把自己编写的“消除无效0的程序”公布出来,希望能够抛砖引玉。 消除无效0,话是说了很多,可是做而论道编写的程序,都是很简练的,看了不要失望。 程序如下: ; ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV 70H, #0 ;显示缓冲区。 MOV 71H, #0 MOV 72H, #0 MOV 73H, #0 MOV 74H, #00H ;计数单元。 MOV 75H, #80H ;都是 BCD 码。 ;------------------------------- M_LOOP: LCALL DISP JNB P3.2, JIA_YI JNB P3.3, QING_L AJMP M_LOOP ;------------------------------- JIA_YI: LCALL DISP JB P3.2, M_LOOP MOV A, 75H ADD A, #1 DA A MOV 75H, A MOV A, 74H ADDC A, #0 DA A MOV 74H, A J_L: LCALL DISP JNB P3.2, J_L AJMP M_LOOP ;------------------------------- QING_L: LCALL DISP JB P3.3, M_LOOP MOV 74H, #0 MOV 75H, #0 AJMP M_LOOP ;------------------------------- DISP: MOV R0, #70H MOV A, 74H SWAP A ANL A, #0FH MOV @R0, A INC R0 MOV A, 74H ANL A, #0FH MOV @R0, A INC R0 MOV A, 75H SWAP A ANL A, #0FH MOV @R0, A INC R0 MOV A, 75H ANL A, #0FH MOV @R0, A ;---------------------------下面是消除无效的0 MOV R0, #70H LL: CJNE @R0, #0, QQ MOV @R0, #16 PP: INC R0 CJNE R0, #73H, LL QQ: ;---------------------------下面是显示部分 MOV DPTR, #D_TAB MOV R2, #254 MOV R0, #70H D_LOOP: MOV A, @R0 MOVC A, @A+DPTR MOV P2, #255 ;消隐。 MOV P0, A ;输出段码。 MOV P2, R2 ;输出位码。 LCALL DL_1MS MOV A, R2 RL A MOV R2, A INC R0 CJNE R0, #74H, D_LOOP RET D_TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H DB 80H, 90H, 88H, 83H, 86H, 0A1H, 86H, 8EH, 0FFH ;FF是空白的代码 ;------------------------------- DL_1MS: DJNZ R7, $ DJNZ R7, $ RET ;------------------------------- END 仿真电路图可以看前面给出的链接。 |
|
|
|
只有小组成员才能发言,加入小组>>
889浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 00:54 , Processed in 0.556385 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号