📄 dtled.asm
字号:
;实验名称:动态8字数码管显示
; 功能:数码管显示123456
; 作者:http://www.mcuyjf.com.cn
; 05-02-01
;***********************************************************
E BIT P3.5 ;LCD口线的定义
RW BIT P3.6
RS BIT P3.7
LED12 EQU 30H ;第1,2个数码管显示的内容
LED34 EQU 31H ;第3,4个数码管显示的内容
LED56 EQU 32H ;第5,6个数码管显示的内容
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: CLR E ;取消LCD对LED的影响
CLR RW
SETB RS
MOV LED12,#12H ;分别送显示内容
MOV LED34,#34H
MOV LED56,#56H
MOV DPTR,#LEDCODE
MOV P2,#0FFH
LOOP: MOV A,LED12
ANL A,#0F0H ;取出LED12中的高4位
SWAP A
MOVC A,@A+DPTR ;查表
MOV P0,A ;送出段码
MOV P2,#0FEH ;第一个数码管位选取通
DJNZ R7,$ ;延时
MOV P2,#0FFH ;关显示,以送显示数据
MOV A,LED12
ANL A,#0FH ;取出LED12中的低4位
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#0FDH ;第二个数码管位选取通
DJNZ R7,$ ;延时
MOV P2,#0FFH
MOV A,LED34
ANL A,#0F0H ;取出LED34中的高4位
SWAP A
MOVC A,@A+DPTR ;查表
MOV P0,A ;送出段码
MOV P2,#0FBH ;第三个数码管位选取通
DJNZ R7,$ ;延时
MOV P2,#0FFH ;关显示,以送显示数据
MOV A,LED34
ANL A,#0FH ;取出LED34中的低4位
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#0F7H ;第四个数码管位选取通
DJNZ R7,$ ;延时
MOV P2,#0FFH
MOV A,LED56
ANL A,#0F0H ;取出LED56中的高4位
SWAP A
MOVC A,@A+DPTR ;查表
MOV P0,A ;送出段码
MOV P2,#0EFH ;第五个数码管位选取通
DJNZ R7,$ ;延时
MOV P2,#0FFH ;关显示,以送显示数据
MOV A,LED56
ANL A,#0FH ;取出LED56中的低4位
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#0DFH ;第四个数码管位选取通
DJNZ R7,$
AJMP LOOP
;8字LED的连接方法
;P0.7 P.06 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
; H G F E D C B A
;LED字段码表
LEDCODE: DB 0C0H ;0
DB 0F9H ;1
DB 0A4H ;2
DB 0B0H ;3
DB 99H ;4
DB 92H ;5
DB 82H ;6
DB 0F8H ;7
DB 80H ;8
DB 90H ;9
DB 88H ;A
DB 83H ;B
DB 0C6H ;C
DB 0A1H ;D
DB 86H ;E
DB 8EH ;F
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -