📄 8255_2_2.asm
字号:
;采用查询方式
ORG 0000H
LJMP START
ORG 0030H
START: MOV TMOD,#01H ;设置定时器0工作于模式1
MOV TL0,#0B0H ;设置计数初值
MOV TH0,#3CH
SETB TR0 ;开计数器
MOV R0,#30 ;30S,数码输出
MOV R1,#10 ;10次定时为1s
MOV DPTR,#TABLE
LOOP1: MOV P1,#81H
LCALL QINGLING
DJNZ R0,NEXT1
MOV R0,#30
LJMP LOOP2
NEXT1: LCALL D1S
LCALL SHOW
LJMP LOOP1
LOOP2: MOV P1,#41H ;L1灯亮,L7灯闪
LCALL D1S ;
MOV P1,#01H ;
LCALL D1S ;
DJNZ R0,LOOP2
MOV R0,#30 ;
LOOP3: MOV P1,#24H
LCALL QINGLING
DJNZ R0,NEXT2
MOV R0,#30
LJMP LOOP4
NEXT2: LCALL D1S
LCALL SHOW
LJMP LOOP3
LOOP4: MOV P1,#22H ;L1灯亮,L7灯闪
LCALL D1S ;
MOV P1,#20H ;
LCALL D1S ;
DJNZ R0,LOOP4
MOV R0,#30 ;
D1S: MOV TL0,#0B0H ;定时1s
MOV TH0,#3CH
JNB TF0,$
CLR TF0
DJNZ R2,D1S
MOV R1,#10
RET
SHOW: MOV A,R0 ;数码分高低位输出
MOV B,#10 ;
DIV AB ;
PUSH A ;
MOV A,B ;
LCALL DISPLAY ;
POP A
LCALL DISPLAY
RET
QINGLING:MOV R4,#04H ;清零
LOOP: MOV A,#20
LCALL DISPLAY
DJNZ R4,LOOP
RET
;显示
DISPLAY:MOVC A,@A+DPTR ;查表
MOV SBUF,A ;输出
DELAY: JNB TI,DELAY ;八个字节是否发送完
CLR TI ;清标志位
RET
TABLE: DB 0BBH,09H,0EAH,6BH,59H,73H,0F3H,0BH,0FBH,7BH
DB 0F1H,0B2H,0E9H,0F2H,0D2H
DB 49h,40h,0d9h,51h,60H,00H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -