上周做的八段数码管显示汇编源码~~~
一、实验目的
1 .了解数码管动态显示的原理
2 .了解用总线方式控制数码管显示
- ORG 0000H
- AJMP MAIN
- MAIN: MOV 70H, #00H
- MLoop: INC 70H
- MOV A, 70H
- MOV B,A
- MOV R0, #60H
- FillBuf: MOV A, B
- ANL A, #0FH
- MOV DPTR, #LED
- MOVC A, @A+DPTR ; 数字转换成显示码
- MOV @R0, A ; 显示代码填入显示缓冲
- INC R0
- INC B
- CJNE R0, #66H, FillBuf
- ACALL DisplayLED ; 显示
- AJMP MLoop
- LED: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH
- DB 7DH, 07H, 7FH, 6FH, 77H, 7CH
- DB 39H, 5EH, 79H, 71H; 八段显示段代码
- DisplayLED: MOV R0, #60H ; 显示缓冲
- MOV R1, #06H ;共 共 6 个八段管
- MOV R2, #00100000B ; 从左边开始显示
- MOV DPTR, #8002H ; 位控制口
- Loop: MOV A, #00H
- MOVX @DPTR, A ; 关所有八段管
- MOV A, @R0
- MOV DPTR, #8004H ; 段控制口
- MOVX @DPTR, A
- MOV DPTR, #8002H ; 位控制口
- MOV A, R2
- MOVX @DPTR, A ; 显示一位八段管
- LCALL Delay
- MOV A, R2 ; 显示下一位
- RR A
- MOV R2,A
- INC R0
- DJNZ R1, Loop
- RET
复制代码
|