📄 205.lst
字号:
The Cybernetic Micro Systems 8051 Family Assembler, Version 3.03 Page 1
03-21-04
;两位数码管显示00--99依次循环
0000 org 0000h
0020 = a_bit equ 20h ;数码管个位数存放内存位置
0021 = b_bit equ 21h ;数码管十位数存放内存位置
0022 = temp equ 22h ;计数器数值存放内存位置
0000 752200 star: mov temp,#0 ;初始化计数器,从0开始
0003 1112 stlop: acall display;调用显示子程序
0005 0522 inc temp;对计数器加1
0007 E522 mov a,temp
0009 B46403 cjne a,#100,next ;判断计数器是否满100?
000C 752200 mov temp,#0;满100就清零重新开始
000F 020003 next: ljmp stlop;不满就循环执行
;显示子程序
0012 E522 display: mov a,temp ;将temp中的十六进制数转换成10进制
0014 75F00A mov b,#10 ;10进制/10=10进制
0017 84 div ab
0018 F521 mov b_bit,a ;十位在a
001A 85F020 mov a_bit,b ;个位在b
001D 900044 MOV DPTR,#NUMTAB;指定查表启始地址
0020 7804 mov r0,#4
0022 79FA dpl1: mov r1,#250 ;
0024 E520 dplop: mov a,a_bit ;取个位数
0026 93 MOVC A,@A+DPTR ;查个位数的7段代码
0027 F580 mov p0,a ;送出个位的7段代码
0029 C2A7 clr p2.7 ;开个位显示
002B 113F acall d1ms ;显示162微秒
002D D2A7 setb p2.7;关闭个位显示,防止鬼影
002F E521 mov a,b_bit ;取十位数
0031 93 MOVC A,@A+DPTR ;查十位数的7段代码
0032 F580 mov p0,a ;送出十位的7段代码
0034 C2A6 clr p2.6 ;开十位显示
0036 113F acall d1ms ;显示162微秒
0038 D2A6 setb p2.6;关闭十位显示,防止鬼影
003A D9E8 djnz r1,dplop ;循环执行250次
003C D8E4 djnz r0,dpl1 ;循环执行250X4=1000次
003E 22 ret
;2+2X80=162微秒,延时按12MHZ计算
003F 7F50 D1MS: MOV R7,#80
0041 DFFE DJNZ R7,$
0043 22 RET
;实验板上的7段数码管0~9数字的共阴显示代码
0044 CF 03 5D NUMTAB:DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH
0047 5B 93 DA DE 43 DF DB
0000 end
The Cybernetic Micro Systems 8051 Family Assembler, Version 3.03 Page 2
03-21-04
;%T Symbol Name Type Value
A_BIT . . . . . . . . . . . . . I 0020
B_BIT . . . . . . . . . . . . . I 0021
D1MS. . . . . . . . . . . . . . L 003F
DISPLAY . . . . . . . . . . . . L 0012
DPL1. . . . . . . . . . . . . . L 0022
DPLOP . . . . . . . . . . . . . L 0024
NEXT. . . . . . . . . . . . . . L 000F
NUMTAB. . . . . . . . . . . . . L 0044
STAR. . . . . . . . . . . . . . L 0000
STLOP . . . . . . . . . . . . . L 0003
TEMP. . . . . . . . . . . . . . I 0022
;%Z
00 Errors (0000)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -