第七讲 数码管显示
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0 0 0 0 1 1 0 1 1 0 0 1 1 1
0 1 0 1 1 0 1 1 1 0 0 1 1 1
1 1 0 1 1 0 1 0 1 0 0 1 1 1
1 0 1 0 0 1 1 0 0 1 1 1 1 1
83H C6H A1H 86H 8EH 89H C7H 8CH CEH C1H 91H BFH 7FH FFH
C2
22pF
R1
10k
9
RST
C3
10uF 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 AT89C51
2 3 4 5 6 7 8 9
源程序:
#include<reg51.h>
#defined uchar unsigned char #defined uint unsigned int //0~9的数码管段码,最后一个为关闭 uchar code DSY_CODE[]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,0x00}; void DelayMS(uint x) { uchar i; while(x--) for(i=0; i<120; i++); }
3) 数码管字型编码 要使数码管显示出相应的数字或字符,必须使段数据口
输出相应的字型编码。对照下图,字型码各位定义如下:
数据线: D7 D6 D5 D4 D3 D2 D1 D0
I/O口线:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 LED段: dp g f e d c b a
第七讲 数码管显示
电子信息学院 电子技术教研室
一、显示器及其接口
单片机系统中常用的显示器有:
发光二极管LED(Light Emitting Diode)显示器、 液晶LCD(Liquid Crystal Display)显示器、CRT显示 器等。LED、LCD显示器有两种显示结构:段显示 (7段、米字型等)和点阵显示(5×8、8×8点阵 等)。
0 0 1 0 0 1 0 1 0 1 1 0 0 0
0 1 0 1 1 0 0 1 1 0 0 0 0 0
7CH 39H 5EH 79H 71H 76H 38H 73H 31H 3EH 6EH 40H 80H 00H
二、 LED数码显示方式及电路
LED显示器工作方式有两种:静态显示方式和动态显示方式。
11
7 4 2 10 1
a b c d e f a b f e g d b c dp f e
89C52
DPY a f e g d
5 3
g dp a g d b c dp f e a g d b c dp DPY 4 -LED
12
RX D TXD ALE PSEN
C0
C2
C3 9
P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 7
一起,由位选线控制是哪一位数码管有效。选亮数码管
采用动态扫描显示。所谓动态扫描显示即轮流向各位数 码管送出字形码和相应的位选,利用发光管的余辉和人
眼视觉暂留作用,使人的感觉好像各位数码管同时都在
显示。动态显示的亮度比静态显示要差一些,所以在选 择限流电阻时应略小于静态显示电路中的。
动态显示是指一位一位地轮流点亮各位数码管,这种逐
7SEG-MPX8-CA-BLUE
SEVEN-SEG
8 7 6 5 4 3 2 1
RN1
220
9 10 11 12 13 14 15 16
C1
1 2 3
22pF
a b c d e f g dp
1 2 3 4 5 6 7 8
a b c d e f g dp q1 q2 q3 q4 q5 q6 q7 q8
依此规律循环,即可使各位数码管显示将要显示的字符,虽
然这些字符是在不同的时刻分别显示的,但由于人眼存在视 觉暂留效应,因此只要每位显示间隔足够短就可以给人以同 时显示的感觉。
16 15 14 13 12 11 10
9
R 1K
5V U1 P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 INT1 INT0 T1 T0 1 2 3 4 5 6 7 8 13 12 15 14 31 19 18 9 RD 1 7 W R 16 P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 INT1 INT0 T1 T0 EA/VP X1 X2 RESET RD WR P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 7 P2 0 P2 1 P2 2 P2 3 P2 4 P2 5 P2 6 P2 7 VC C GN D RX D TXD ALE/P PSEN 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 40 20 10 11 30 29 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 7 P2 0 P2 1 P2 2 P2 3 P2 4 P2 5 P2 6 P2 7
LED数码管简介 1) 数码管结构 数码管由8个发光二极管(以下简称字段)构成,通过不
同的组合可显示数字0~9、字符A~F、H、L、P、R、U、
Y、符号“”及小数点“”。数码管的外型结构如图所示。
数码管又分为共阴极和共阳极两种结构,分别如图所示。
g f GND a b a a f e d g b c dp b c d e f g dp a b c d e f g dp
位点亮显示器的方式称为位扫描。通常,各位数码管的段选
线相应并联在一起,由一个8位的I/O口控制;各位的位选线 (公共阴极或公共阳极)由另外的I/O口线控制。以动态方式显
示时,各数码管分时轮流选通。要使其稳定显示,必须采用
扫描方式,即在某一时刻只选通一位数码管,并送出相应的 段码,在另一时刻选通另一位数码管,并送出相应的段码。
1、静态显示接口
从下图可以看出,静态显示方式的特点是各位数码管相 互独立,公共端恒定接地(共阴极)或接正电源(共阳极)。每个 数码管的8个字段分别与一个8位I/O口地址相连,I/O口只要 有段码输出,相应字符即显示出来并保持不变,直到I/O口输 出新的段码。 采用静态显示方式时,用较小的电流即可获得较高的亮 度,且占用CPU时间少,编程简单,显示便于监测和控制,
U1 X1
19 XTAL1 12M 18 XTAL2 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
数据线D0与a字段对应,D1字段与b字段对应„„,依 此类推。如使用共阳极数码管,则数据为0表示对应字段亮, 数据为1表示对应字段暗;如使用共阴极数码管,则相反。
表: 数码管字型编码表
显示 字符 0 1 2 3 4 5 6 7 8 9 A 字 形 0 1 2 3 4 5 6 7 8 9 A dp 1 1 1 1 1 1 1 1 1 1 1 g 1 1 0 0 0 0 0 1 0 0 0 f 0 1 1 1 0 0 0 1 0 0 0 共 e 0 1 0 1 1 1 0 1 0 1 0 d 0 1 0 0 1 0 0 1 0 0 1 阳 c 0 0 1 0 0 0 0 0 0 0 0 极 b 0 0 0 0 0 1 1 0 0 0 0 a 0 1 0 0 1 0 0 0 0 0 0 字型码 C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 88H dp 0 0 0 0 0 0 0 0 0 0 0 g 0 0 1 1 1 1 1 0 1 1 1 f 1 0 0 0 1 1 1 0 1 1 1 共 e 1 0 1 0 0 0 1 0 1 0 1 d 1 0 1 1 0 1 1 0 1 1 0 阴 c 1 1 0 1 1 1 1 1 1 1 1 极 b 1 1 1 1 1 0 0 1 1 1 1 a 1 0 1 1 0 1 1 1 1 1 1 字形码 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H
但其占用的口线多,硬件电路复杂,成本高,只适用于显示
位数较少的场合。
图: 两位的LED数码管静态显示示意图
例1:用一只共阴极的单只数码管循环显示0, 1,2,3,…,9。 RP1
RESPACK-8
C1
22pF
1
U1 X1
19 XTAL1 12M 18 XTAL2 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
+5V
·
e d GND c dp
(a)
共阴极
(b)
共阳极
2) 数码管工作原理 共阳极数码管的8个发光二极管的阳极(二极管正端)连接 在一起,通常接高电平(一般接电源),其它管脚接段驱动电路 输出端。当某段驱动电路的输出端为低电平时,该端所连接的 字段导通并点亮,根据发光字段的不同组合可显示出各种数字 或字符。此时,要求段驱动电路能吸收额定的段导通电流,还 需根据外接电源及额定段导通电流来确定相应的限流电阻。 共阴极数码管的8个发光二极管的阴极(二极管负端)连接 在一起,通常接低电平(一般接地),其它管脚接段驱动电路输 出端。当某段驱动电路的输出端为高电平时,该端所连接的字 段导通并点亮,根据发光字段的不同组合可显示出各种数字或 字符。此时,要求段驱动电路能提供额定的段导通电流,还需 根据外接电源及额定段导通电流来确定相应的限流电阻。
Fra Baidu bibliotek
0 0 0 0 0 0 0 0 0 0 0 0 1 0
1 0 1 1 1 1 0 1 0 0 1 1 0 0
1 1 0 1 1 1 1 1 1 1 1 0 0 0
1 1 1 1 1 1 1 1 1 1 0 0 0 0
1 1 1 1 0 0 1 0 0 1 1 0 0 0
1 0 1 0 0 1 0 0 0 1 1 0 0 0
Q1
NPN
Q2
NPN
Q3
NPN
4
c dp
P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 7 6 8 C4 P2 3
1 2 3 4 5 6 7 8
LED
P2 0
P2 1
P2 2
例2:用8只集成式共阳极的数码管在相应位 循环显示单个数字0~7。
例:用一只共阴极的单只数码管循环显示0, 1,2,3,…,9。
void main ( ) { uchar i=0; P0=0x00; while(1) { P0=DSY_CODE[i]; i=(i+1)%10; DelayMS(180); } }
2、动态显示
当需要显示的位数较多时,为了节省硬件接口,往 往采用动态显示的方式。 动态显示的特点是将所有位数码管的段选线并联在
B C D E F H L P R U Y . 熄灭
B C D E F H L P R U Y . 灭
1 1 1 1 1 1 1 1 1 1 1 1 0 1
0 1 0 0 0 0 1 0 1 1 0 0 1 1
0 0 1 0 0 0 0 0 0 0 0 1 1 1
0 0 0 0 0 0 0 0 0 0 1 1 1 1