📄 8.sdi
字号:
,,, ORG 0000H
0000,01 30,, AJMP START
,,, ORG 000BH ;定时器0的中断向量地址
000B,01 71,, AJMP TIME0 ;跳转到定时器0中断处理程序处
,,, ORG 30H
0030,,START,START:
0030,75 89 01,, MOV TMOD,#00000001B ;定时0工作于方式1(16位)
0033,75 8C B1,, MOV TH0,#0B1H
0036,75 8A E0,, MOV TL0,#0E0H ;设定定时时间20ms
0039,D2 8C,, SETB TR0 ;定时器0开关打开
003B,D2 A9,, SETB ET0 ;打开开定时/计数器0允许
003D,D2 AF,, SETB EA ;打开总中断允许
003F,90 00 A8,, MOV DPTR,#TABLE ;将数据表TABLE的首地址赋给DPTR
0042,75 30 00,, MOV 30H,#0 ;30H-33H为显示内容,初始为0
0045,75 31 00,, MOV 31H,#0
0048,75 32 00,, MOV 32H,#0
004B,75 33 00,, MOV 33H,#0
004E,7B 32,, MOV R3,#50 ;计溢出次数50×20ms=1S
0050,,DISAGAIN,DISAGAIN:
0050,7C 04,, MOV R4,#4
0052,79 30,, MOV R1,#30H
0054,7A 80,, MOV R2,#10000000B
0056,,LOOP,LOOP:
0056,E7,, MOV A,@R1 ;
0057,93,, MOVC A,@A+DPTR ;将(A+DPTR)地址中的值赋给A
0058,8A A0,, MOV P2,R2 ;选择数码管
005A,F5 80,, MOV P0,A ;送到P0口数码管显示
005C,12 00 68,, LCALL DELAY ;显示延时
005F,EA,, MOV A,R2 ;R2的值移位
0060,03,, RR A
0061,FA,, MOV R2,A
0062,09,, INC R1
0063,DC F1,, DJNZ R4,LOOP ;扫描完4个否?
0065,02 00 50,, LJMP DISAGAIN ;重新开始扫描
0068,,DELAY,DELAY:
0068,7E 04,, MOV R6,#4
006A,7F 64,D1,D1: MOV R7,#100
006C,DF FE,D2,D2: DJNZ R7,D2
006E,DE FA,, DJNZ R6,D1
0070,22,, RET
,,,
0071,C0 D0,TIME0,TIME0: PUSH PSW
0073,75 8C B1,, MOV TH0,#0B1H
0076,75 8A E0,, MOV TL0,#0E0H ;重置定时时间20ms
0079,DB 2A,, DJNZ R3,TRUESC;不到1S退出中断程序
007B,7B 32,, MOV R3,#50 ;重新赋溢出计数值
007D,05 30,, INC 30H ;P2口左移
007F,E5 30,, MOV A,30H
0081,B4 0A 21,, CJNE A,#10,TRUESC
0084,75 30 00,, MOV 30H,#0
0087,05 31,, INC 31H
0089,E5 31,, MOV A,31H
008B,B4 06 17,, CJNE A,#6,TRUESC
008E,75 31 00,, MOV 31H,#0
0091,05 32,, INC 32H
0093,E5 32,, MOV A,32H
0095,B4 0A 0D,, CJNE A,#10,TRUESC
0098,75 32 00,, MOV 32H,#0
009B,05 33,, INC 33H
009D,E5 33,, MOV A,33H
009F,B4 06 03,, CJNE A,#6,TRUESC
00A2,75 33 00,, MOV 33H,#0
,,,
00A5,D0 D0,TRUESC,TRUESC: POP PSW
00A7,32,, RETI
00A8,C0 F9 A4 B0,TABLE,TABLE: DB 0C0H,0F9H,0A4H,0B0H ;0,1,2,3
00AC,99 92 82 F8,, DB 99H,92H,82H,0F8H,80H,90H ;4,5,6,7,8,9
000E,,, END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -