当前位置:文档之家› 8单片机原理(控制数码管显示)

8单片机原理(控制数码管显示)


7
程序
MOVC A,@A+DPTR MOV P0,A MOV P2,#0FBH ACALL DELAY MOV P2,#0FFH MOV A,#0 MOVC A,@A+DPTR MOV P0,A MOV P2,#0F7H ACALL DELAY MOV P2,#0FFH SJMP MAIN ;取显示数据 ;送显示数据到数据总线 ;第三位数码管选通显示 ;调用延时子程序 ;关显示 ;偏移量1送A ;取显示数据 ;送显示数据到数据总线 ;第四位数码管选通显示 ;调用延时子程序 ;关显示 ;转到MAIN处运行程序
RN1
16 15 14 13 12 11 10 9 1k
18
XTAL2
9
RST
29 30 31
PSEN ALE EA
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89S51
序 号
1
元件
关键字
参数
51单片机AT89C51 AT89C51 排阻 数码管 RES16DIPS 330欧姆
第三 单元
项目四、控制数码管显示
陈永杰
1
1位数码管显示
U1
19 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89S51
显示数据 扫 描 信 号
P20 P21 P22 P23
R1
10k
R2
10k
R3
10k
R4
10k
四位数码管动态显示电路 序号 1 元件 51单片机AT89C51 关键字 AT89C51 参数
2
3 4
排阻
数码管 三极管
MOVC 是特殊数据的转移,一般在查表时用到。
5
程序细析
MOV P1,#11111110B
INC R1
INC 自加一指令,执行完成后R1的内容加一
DEC 自减一指令,执行完成后R1的内容减一
6
4位数码管显示
四位数码管引脚排列 四位数码管实物
动态扫描显示原理
显示过程如下:将第一个数码 管的显示数据送到显示数据端 ,扫描信号A置低电平,其余为 高电平,则Q1导通第一个数码 管得电显示,而Q2、Q3、Q4 由于基极为高电平而截止,相 应的数码管不能得电工作;同 理,依次显示第二、三、四个 数码管,虽然在任一时间里, 只能点亮一个数码管,但只要 从第一个到最后一个的扫描时 间不超过16ms,由于人眼的视 觉延时效应,感觉就会同时看 到所有数字
18
XTAL2
8 7 6 5 4 3 2 1
9
RN1
500
RST
R5
9 10 11 12 13 14 15 16
R6
200
R7
200
R8
200
200
29 30 31
PSEN ALE EA
P00 P01 P02 P03 P04 P05 P06 P07
Q1
9012
Q2
9012
Q3
9012
Q4
9012
1 2 3 4 5 6 7 8
2
1位数码管的查表实现
开始 偏移量R1置初值
循环次数放入R2 取数据表地址 偏移量送寄存器A
取数据 偏移量增加 数据输出 R2减一是否为0? 是 一位数码管显示0~9流程图 否
调用延时子程序
3
MAIN:
程序
ORG 0000H MOV R1,#0 ;偏移量R1置初值 MOV R2,#10 ;设置循环次数 MOV DPTR,#TAB ;取数据表地址 LOOP: MOV A,R1 ;偏移量送寄存器A MOVC A,@A+DPTR;取显示数据 MOV P0,A ;送显示 CALL DELAY ;调用延时子程序 INC R1 ;偏移量加一 DJNZ R2,LOOP ;判断循环次数是否到10次 SJMP MAIN ;循环显示 ;================延时子程序======================== DELAY: MOV R7,#250 D1: MOV R6,#250 DJNZ R6,$ DJNZ R7,d1 RET ;=================显示数据表======================= ORG 0100H TAB: DB 0C0H ;0的显示代码 DB 0F9H ;1的显示代码 DB 0A4H ;2的显示代码 DB 0B0H ;3的显示代码 DB 099H ;4的显示代码 DB 092H ;5的显示代码 DB 082H ;6的显示代码 DB 0F8H ;7的显示代码 DB 080H ;8的显示代码 DB 090H ;9的显示代码 END
一位数码管显示电路
2 3
7SEG-MPXI-CA 红色,共阳
1
1位数码管显示
开始 向P0口输出数字0的编码 调用延时
调用延时
向P0口输出数字4的编码 调用延时 向P0口输出数字5的编码 调用延时 结束
向P0口输出数字1的编码
调用延时 向P0口输出数字2的编码 调用延时 向P0口输出数字3的编码
ORG 0030H MAIN: MOV P0,#0C0H CALL DELAY MOV P0,#0F9H CALL DELYA …… SJMP MAIN DELAY: MOV R7,#250 D1: MOV R6,#200 DJNZ R6,$ DJNZ R7,D1 RET END
显 示 数 据
a b c d e f g h com1 com2 com3 com4
Q1
9012
Q2
9012
Q3
9012
Q4
9012
R1
10k
R2
10k
R3
10k
R4
10k
扫 描 信 号
A B C D
四位数码管动态扫描显示原理
U1
19 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23
RES16DIPS
7SEG-MPXI-CA PNP
330欧姆
红色,共阳 PNP ,9012
6
4位数码管显示
开始 取数据表地址
偏移量3送A 取数据 数据输出到数据 总线 第一位选通显 示 调用延时子程序 关位选
偏移量2送A 取数据 数据输出到数据 总线 第二位选通显 示 调用延时子程序 关位选
偏移量1送A 取数据 数据输出到数据 总线 第三位选通显 示 调用延时子程序 关位选
偏移量0送A 取数据 数据输出到数据 总线 第四位选通显 示 调用延时子程序 关位选
四位数码管显示“3210”流程图

7
MAIN: LOOP:
程序
ORG 0000H MOV DPTR, #TABLE ;取数据表地址 MOV A,#3 ;偏移量3送A MOVC A,@A+DPTR ;取显示数据 MOV P0,A ;送显示数据到数据总线 MOV P2,#0FEH ;第一位数码管选通显示 ACALL DELAY ;调用延时子程序 MOV P2,#0FFH ;关显示 MOV A,#2 ;偏移量2送A MOVC A,@A+DPTR ;取显示数据 MOV P0,A ;送显示数据到数据总线 MOV P2,#0FDH ;第二位数码管选通显示 ACALL DELAY ;调用延时子程序 MOV P2,#0FFH ;关显示 MOV A,#1 ;偏移量1送A
;
7
程序
;;;;;;;;;;;;;;;;;;;;延时子程序 DELAY: MOV R7,#40 D1: MOV R6,#40 DJNZ R6,$ DJNZ R7,D1 RET ;;;;;;;;;;显示数据表 TABLE: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H DB 080H,090H ;0-9 END
8
程序细析
5
MOV
程序细析
ORG 0030H
DPTR, #TAB
;取数据表地址
DPTR : 特殊的寄存器,用来存放数据指针,数据指针指向的是数据的内 存地址 简单来说,DPTR存放的是地址
5
MOVC
程序细析
A , @A+DPTR ;取显示数据
MOVC 与MOV 的区别
MOV 是普通数据的转移指令,完成的是普通数据的赋值操作;
相关主题