原创 4位八段数码管显示1234的汇编程序

2007-10-31 21:48 12448 6 9 分类: MCU/ 嵌入式

用EDN的51实验板,做了个4位八段数码管显示1234的数字,程序用汇编语言编写,通电后按实验田板上第一个按键开关启动程序执行。此程序的原意是学会动态扫描显示,程序如下:


ORG 0000H                        ;地址 0000H
               LJMP STAR0              ;转 STAR
ORG 0200H                      ;地址 0100H
STAR0:  CLR 00            ;位 00 清 0
              MOV P1,#0FFH      ;#0FFH-->P1
              MOV P2,#0FH       ;#0FH-->P2
              MOV P0,#0FFH      ;#0FFH-->P0
              MOV 30H,#0FFH  ;#0FFH-->30H
              MOV 31H,#0FFH  ;#0FFH-->31H
              MOV 32H,#0FFH  ;#0FFH-->32H
              MOV 33H,#0FFH  ;#0FFH-->33H
STAR1: MOV P1,#0FFH      ;#0FFH-->P1
              MOV P1,#0FEH   ;#0FEH-->P1
              MOV P0,30H   ;30H-->P0
              MOV R0,#00H   ;#00H-->R0
              LCALL STS1   ;调延时子程序 STS1
              MOV P1,#0FFH      ;#0FFH-->P1
              MOV P1,#0FDH   ;#0FDH-->P1
              MOV P0,31H   ;31H-->P0
              MOV R0,#00H   ;#00H-->R0
              LCALL STS1   ;调延时子程序 STS1
              MOV P1,#0FFH      ;#0FFH-->P1
              MOV P1,#0FBH   ;#0FBH-->P1
              MOV P0,32H   ;32H-->P0
              MOV R0,#00H   ;#00H-->R0
              LCALL STS1   ;调延时子程序 STS1
              MOV P1,#0FFH      ;#0FFH-->P1
              MOV P1,#0F7H   ;#0F7H-->P1
              MOV P0,33H   ;33H-->P0
              NOP     ;空操作
              LCALL STS1   ;调延时子程序 STS1
ST2:      JNB P2.0,ST3      ;P2.0=0 转 ST3
             CLR 00    ;位 00 清 0
             SJMP STAR1        ;转STAR1
ST3:      JNB 00,ST4        ;位 00=0 转 ST4
             SJMP STAR1        ;转 STAR1
ST4:      MOV 30H,#0F9H     ;#0F9H-->30H
             MOV 31H,#0A4H  ;#0A4H-->31H
             MOV 32H,#0B0H  ;#0B0H-->32H
             MOV 33H,#99H   ;#99H-->33H
             SETB 00           ;位 00 置 1
             SJMP STAR1        ;转 STAR1
         


ORG 0100H
STS1:   MOV R6,#03H   ;#03H-->R6  (211)
DEL1:   MOV R7,#0FFH   ;#0FFH-->R7  (255)
DEL2:   DJNZ R7,DEL2   ;R7-1=\0    DEL2
             DJNZ R6,DEL1   ;R6-1=\0  DEL1
             RET     ;子程序调用返回
             END     ;结束


 


此程序在能在EDN-51的实验板上运行正常,但在仿真上执行不正常,还没找到原因。


点击下载


 


下面的程序是能在仿真上能显示的程序。但在EDN-51的实验板上显示不正常。


 


点击下载


 

文章评论3条评论)

登录后参与讨论

用户1341432 2007-12-3 10:20

原因找到了,是仿真软件的问题,不能用PNP管真接驱动4位八段数码管,后改用74HC04门电路驱动,一切正常。

用户386504 2007-11-1 11:14

那你表述清楚点 是让一个顺序显示1234那 还是 四个分别显示1.2.3.4呢,我看你得程序有点乱 没有头绪。

用户741296 2007-11-1 08:08

那不正常整上来不忽悠人吗?
相关推荐阅读
用户1341432 2007-12-13 21:39
80C51 汇编指令集
经本人整理,此指令集含80C51的汇编指令与内部储存单元分配表,常用控制寄存器的使用说明。...
用户1341432 2007-12-07 16:04
能显示并读写EDN-51实验板24C04的应用程序(汇编语言)
经几天的努力,终于搞出来了。这个程序在仿真软件与EDN-51实验板上均已通过。24C0 共有512个储存单元,所以它的地址为0000H--01FFH。此程序把#00H写入0000H地址,每写一个地址加...
用户1341432 2007-12-03 21:13
欢迎加入网友自己组建的电子论坛网站
欢迎加入网友自己组建的电子论坛网站。本网站由电子爱好者自己组建,内设单片机 Proteus 仿真版块、Keil 软件应用版块、嵌入式系统应用版块、单片机编程版块、工控技术交流版块、Protel 软件应...
用户1341432 2007-11-27 19:53
能显示并读写EDN-51实验板24C02的应用程序(汇编语言)
经几天的努力,终于搞出来了。这个程序在仿真软件与EDN-51实验板上均已通过。24C0 2共有256个储存单元,所以它的地址为00H--FFH。此程序把#00H写入00H地址,每写一个加一,直写到FF...
用户1341432 2007-11-19 22:34
LCD1602常用驱动子程序(汇编语言)
最近找到了LCD1602的驱动程序,经本人整理把常用的驱动子程序现上传给大家,希望能对大家有用。此程序以EDN的51实验板为基础,数据口为P0,控制口为P1。程序共有9段,START为主程序,INSE...
用户1341432 2007-11-11 23:13
4位八段数码管的十进制加计数仿真(汇编语言)改进版
本人按照EDN-51实验板的线路,做了个4位八段数码管的十进制加计数仿真实验,程序采用汇编语言编写。此程序在仿真软件上与EDN-51实验板上均通过。仿真图中的数码管位驱动采用74HC04,如按EDN-...
我要评论
3
6
关闭 站长推荐上一条 /2 下一条