AT89C51单片机怎么用汇编语言让数码管显示学号?最好有电路图
发布网友
发布时间:2022-05-01 06:09
我来回答
共4个回答
热心网友
时间:2022-06-25 09:38
数码管连接电路如图1所示,P0口输出码型,P2口输出位选。锁存器74HC573起驱动作用,提供驱动电流供数码管发光。译码器74HC138将位选地址转换成位选信号,例如当前是第5个数码管显示,那么P2口输出位选地址05H,译码器输入CBA=110,输出位选信号Y7-Y0=11101111,其中Y5=0,第5个数码管选通并显示,其它数码管不显示。实验时将J6的左边两个引脚针(1和2)用跳冒连接,锁存器11脚接VCC,关闭锁存功能。
数码管显示方式为动态扫描方式,当P0口送第一个数0的码型到锁存器时,P2送位选地址01H,即Y0=0,只有第一个数码管亮,显示0,其他数码管不显示。当P0口送第二个数1的码型到锁存器时,P2送位选地址02H,即Y1=0,只有第二个数码管亮,显示1,其他数码管不显示。即每次只有一个数码管点亮,8个数码管是轮流被点亮的,轮流点亮的间隔时间很短(一般用延时程序延时几个毫秒),由于视觉的暂留现象,看到的却好象全都点亮着,这就是动态扫描。
数码管显示数字的码型由数码管的数据脚a~dp决定,图2为数码管的笔段分布图,由于是共阴极的,所以当a~dp为高电平时相应的笔段会亮,电路中P1.0~P1.7分别接数码管的a.b.c.d.e.f.g.dp,得到0~9这10个数字的码型如表1所示。
图2 数码管的笔段分布图
引脚P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0数字 码型
笔段dpgfedcb a
0011111 10 3FH
0000011 01 06H
0101101 12 5BH
0100111 13 4FH
0110011 04 66H
0110110 15 6DH
0111110 16 7DH
0000011 17 07H
0111111 18 7FH
0110111 19 6FH
1000000 0小数点80H
只要把上面的相关数,改成学好就可以了。
热心网友
时间:2022-06-25 09:39
这是数码管动态动态现实方式0—7,一共8个数字,你自己可以改成学好,对应显示就可以了。
ORG 00H
MOV 20H,#3FH
MOV 21H,#06H
MOV 22H,#5BH
MOV 23H,#4FH
MOV 24H,#66H
MOV 25H,#6DH
MOV 26H,#7DH
MOV 27H,#07H
START:CALL SCAN
JMP START
SCAN: MOV A,#0 ;扫描子程序
MOV R0,#20H
MOV R2,#8
LOOP: MOV P2,A
MOV P0,@R0
INC R0
CALL DELAY
ADD A,#01H
DJNZ R2,LOOP ;循环显示8个数字
MOV R2,#8
CLR A
RET
DELAY:MOV R3,#1 ;扫描延时
D1:MOV R4,#2
D2:MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
RET
END
P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0 数字 码型
dpgfedcba
00111111 0 3FH
00000110 1 06H
01011011 2 5BH
01001111 3 4FH
01100110 4 66H
01101101 5 6DH
01111101 6 7DH
00000111 7 07H
01111111 8 7FH
01101111 9 6FH
10000000 小数点 80H
P0口输出码型,P2口输出位选。锁存器74HC573起驱动作用,提供驱动电流供数码管发光。译码器74HC138将位选地址转换成位选信号,例如当前是第5个数码管显示,那么P2口输出位选地址05H,译码器输入CBA=110,输出位选信号Y7-Y0=11101111,其中Y5=0,第5个数码管选通并显示,其它数码管不显示。实验时将J6的左边两个引脚针(1和2)用跳冒连接,锁存器11脚接VCC,关闭锁存功能。
数码管显示方式为动态扫描方式,当P0口送第一个数0的码型到锁存器时,P2送位选地址01H,即Y0=0,只有第一个数码管亮,显示0,其他数码管不显示。当P0口送第二个数1的码型到锁存器时,P2送位选地址02H,即Y1=0,只有第二个数码管亮,显示1,其他数码管不显示。即每次只有一个数码管点亮,8个数码管是轮流被点亮的,轮流点亮的间隔时间很短(一般用延时程序延时几个毫秒),由于视觉的暂留现象,看到的却好象全都点亮着,这就是动态扫描。
热心网友
时间:2022-06-25 09:39
ORG 00H
AJMP MAIN
ORG 30H
MAIN: MOV 20H,#2 ;把你的学号的10位送到相应单元
MOV 21H,#8
MOV 22H,#3
MOV 23H,#0
MOV 24H,#8
MOV 25H,#5
MOV 26H,#0
MOV 27H,#4
MOV 28H,#0
MOV 29H,#7
LCALL DISP ;显示子程序
AJMP MAIN
DISP: MOV A,20H ;送最高位到A
ACALL SEG7 ;取码指针子程序
MOV P0,A ;段码送P0口
CLR P2.0 ;位选
ACALL DLY ;延时1MS,即显示1MS
SETB P2.0 ;关显示。 动态显示的方法就是 :取优码,送段码,位选,延时1MS,关显示.
MOV A,21H ;下一位
ACALL SEG7
MOV P0,A
CLR P2.1
ACALL DLY
SETB P2.1
MOV A,22H
ACALL SEG7
MOV P0,A
CLR P2.2
ACALL DLY
SETB P2.2
MOV A,23H
ACALL SEG7
MOV P0,A
CLR P2.3
ACALL DLY
SETB P2.3
MOV A,24H
ACALL SEG7
MOV P0,A
CLR P2.4
ACALL DLY
SETB P2.4
MOV A,25H
ACALL SEG7
MOV P0,A
CLR P2.5
ACALL DLY
SETB P2.5
MOV A,26H
ACALL SEG7
MOV P0,A
CLR P2.6
ACALL DLY
SETB P2.6
MOV A,27H
ACALL SEG7
MOV P0,A
CLR P2.7
ACALL DLY
SETB P2.7
MOV A,28H
ACALL SEG7
MOV P0,A
CLR P3.0
ACALL DLY
SETB P3.0
MOV A,29H
ACALL SEG7
MOV P0,A
CLR P3.1
ACALL DLY
SETB P3.1
RET
DLY: MOV R7,#10 ;延时1MS子程序。12M晶振,粗略算法:2X R7 X R6
D1: MOV R6,#50
DJNZ R6,$
DJNZ R7,D1
RET
SEG7: INC A
MOVC A,@A+PC
RET
DB 03FH;0 共阴管段码
DB 006H;1
DB 05BH;2
DB 04FH;3
DB 066H;4
DB 06DH;5
DB 07DH;6
DB 007H;7
DB 07FH;8
DB 06FH;9
热心网友
时间:2022-06-25 09:40
不知道汇编语言,只知道C