1、单片机与嵌入式系统MCU and Embedded System,Done is better than perfect. 比完美更重要的是完成。FACEBOOK,2018年4月27日,教学内容,第七章 单片机外部扩展资源及应用,2,第七章 单片机外部扩展资源及应用,主要内容:LED数码显示器的结构与原理LED静态显示接口及应用LED动态显示接口及应用,7.4 单片机外部LED数码显示器的扩展,3,第六章 80C51单片机内嵌外设及应用,LED数码显示器的结构与原理LED及其工作参数LED(Light Emiting Diode):发光二极管,7.4 单片机外部LED数码显示器的扩展,4,第七
2、章 单片机外部扩展资源及应用,外加正向电压小于正向阈值电压时,LED不导通;当外加电压大于正向阈值电压时,LED导通,同时发光。LED二极管的正向导通电压比普通二极管大,具体数值与LED材料有关。,LED数码显示器的结构与原理LED及其工作参数LED(Light Emiting Diode):发光二极管,7.4 单片机外部LED数码显示器的扩展,5,第七章 单片机外部扩展资源及应用,限流电阻,控制流过LED的电流,+5V电源,正向导通发光,反向截止熄灭工作电流520mA,最大不能超过50mA压降1.22.5V之间,接单片机I/O引脚,引脚输出低电平时,发光二级管导通,LED数码显示器的结构与原
3、理LED数码显示器的结构LED数码显示器:又称数码管,是由发光二极管组成的发光器件,可以用来显示数字、字符等,在家电及工业控制领域有着很广泛的应用,例如用来显示温度、数量、重量、日期、时间等,具有显示醒目、直观的优点。,7.4 单片机外部LED数码显示器的扩展,6,第七章 单片机外部扩展资源及应用,LED数码显示器的结构与原理LED数码显示器的结构单个LED数码管内部由7个独立的条形发光二极管(排列成“日”字形)和1个小圆点发光二极管(可作为小数点)组成,根据各发光二极管(称为“段”)的亮灭组成数字或字符。每段的亮灭均可单独控制。,7.4 单片机外部LED数码显示器的扩展,7,第七章 单片机外
4、部扩展资源及应用,8个独立的LED发光二极管,abcdefgh,COM,COM,abcdefgh,共阴:阴极并联,共阳:阳极并联,a,b,c,d,e,f,g,h,在实际应用中,一般会将数码管8个LED的阳极或者阴极并联在一起。,由此可见,一个数码管至少有9个输入端,其中ah被定义为“段选端”,并联在一起的公共端com被定义为“位选端”。,LED数码显示器的结构与原理LED数码显示器的显示原理通过控制“段”的发光与熄灭,数码管可以显示数字和一些字母符号:,7.4 单片机外部LED数码显示器的扩展,8,第七章 单片机外部扩展资源及应用,abcdefgh,GND,共阴极数码管,共阴极数码管段发光:位
5、选端输入低电平0;段选端输入高电平1。,a,b,c,d,e,f,g,h,COM,10000000,LED数码显示器的结构与原理LED数码显示器的显示原理通过控制“段”的发光与熄灭,数码管可以显示数字和一些字母符号:,7.4 单片机外部LED数码显示器的扩展,9,第七章 单片机外部扩展资源及应用,+5V,abcdefgh,共阳极数码管,a,b,c,d,e,f,g,h,共阳极数码管段发光:位选端输入高电平1;段选端输入低电平0。,COM,10000000,LED数码显示器的结构与原理LED数码显示器的显示原理例:共阴极数码管显示数字“2”:,7.4 单片机外部LED数码显示器的扩展,10,第七章
6、单片机外部扩展资源及应用,abcdefgh,GND,共阴极数码管,a,b,c,d,e,f,g,h,11011010,a,段码:0101 1011 (5BH),+5V,abcdefgh,共阳极数码管,00100101,段码:1010 0100 (A4H),LED数码显示器的结构与原理LED数码显示器的显示字符及码表,7.4 单片机外部LED数码显示器的扩展,11,第七章 单片机外部扩展资源及应用,LED数码显示器的结构与原理1位LED数码显示器的引脚结构市售的LED数码管尺寸、颜色多样,常见1位LED数码管有10个引脚,排列如下:,7.4 单片机外部LED数码显示器的扩展,12,第七章 单片机外
7、部扩展资源及应用,其中3脚、8脚为公共端(位选端),根据内部发光二极管的接线形式可分为共阴极(Common Cathode,CC)和共阳极(Common Anode,CA)两种类型。,LED数码显示器的结构与原理1位共阳LED数码显示器的接口电路,7.4 单片机外部LED数码显示器的扩展,13,第七章 单片机外部扩展资源及应用,使用1位共阳极LED数码管时,公共端(位选端)接电源电压;段选端通过1k限流电阻接单片机I/O口。用单片机的I/O口控制每段LED的亮灭。通过程序从I/O口输出待显示字符的段码。,LED数码显示器的结构与原理1位共阴LED数码显示器的接口电路,7.4 单片机外部LED数
8、码显示器的扩展,14,第七章 单片机外部扩展资源及应用,使用1位共阴极LED数码管时,公共端(位选端)接地;由于单片机I/O口驱动能力不够,不能直接将段选端接单片机I/O口,因此在电路中增加三级管用作驱动。三级管的集电极与LED数码管的段选端相连。,LED数码显示器的结构与原理1位共阴LED数码显示器的接口电路,7.4 单片机外部LED数码显示器的扩展,15,第七章 单片机外部扩展资源及应用,若直接用单片机I/O口驱动LED,则LED的电流由单片机I/O口提供,由于80C51单片机I/O口(P1、P2和P3口)输出场效应管的内部上拉电阻很大,约有几百K,因此输出电流很小,一般不超过1mA,基本
9、无法驱动LED发光。,LED数码显示器的结构与原理1位共阴LED数码显示器的接口电路,7.4 单片机外部LED数码显示器的扩展,16,第七章 单片机外部扩展资源及应用,I/O口输出高电平时,LED发光,其电流由VCC提供,R为限流电阻,阻值一般为几百欧;I/O口输出低电平时,LED熄灭,R上通过的电流大于LED发光时的电流,且该电流流入单片机引脚。单片机允许向全部引脚灌入的最大总电流为有限的,一般为几十毫安,一旦单片机的I/O口通过上拉电阻驱动较多的LED(如数码管),当单片机I/O口都输出低电平时,向引脚灌入的总电流可能超过上限值,导致单片机工作不稳定。,LED数码显示器的结构与原理1位共阴
10、LED数码显示器的接口电路,7.4 单片机外部LED数码显示器的扩展,17,第七章 单片机外部扩展资源及应用,1,1,三极管导通,0,LED灭,LED数码显示器的结构与原理1位共阴LED数码显示器的接口电路,7.4 单片机外部LED数码显示器的扩展,18,第七章 单片机外部扩展资源及应用,0,0,三极管截止,1,LED亮,这种接口电路在单片机输出低电平时,利用三极管的截止,防止电流灌入单片机I/O引脚。同时,也增强了对LED的驱动能力。,LED数码显示器的结构与原理1位LED数码显示器的编程示例例:使1位共阳极数码管循环显示09,接口电路如下:,7.4 单片机外部LED数码显示器的扩展,19,
11、第七章 单片机外部扩展资源及应用,编程思路:要让LED显示数字,只需向P0口送出相应的段码即可。由于数字09的段码没有规律可循,可以考虑用查表的方式来完成。在程序设计中可以设计一个循环变量,依次赋值09,然后以这个变量为下标去查找段码数组,再把查到的数据送P0口。,LED数码显示器的结构与原理1位LED数码显示器的编程示例程序源代码:unsigned char tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /定义数组tab,并初始化为数字09的共阳极数码管段码void main(void) while(1) unsigned ch
12、ar i; /定义循环变量 for(i=0;i10;i+) P0 = tabi; /找出以循环变量为下标的数组元素,输出到P0口 delay(); /每输出1个数字,延时一小段时间 ,7.4 单片机外部LED数码显示器的扩展,20,第七章 单片机外部扩展资源及应用,问题?1个数码管只能显示1位数字,如果要显示多位数字怎么办?有两种方式:静态显示方式和动态显示方式。静态显示方式:各位LED数码管同时显示。动态显示方式:各位LED数码管分时轮流显示;同一时刻只有1位LED数码管显示;但因为显示间隔非常短暂,由于人眼的视觉暂留效应,人眼看到的仍然是同时显示的字符。,7.4 单片机外部LED数码显示器
13、的扩展,21,第七章 单片机外部扩展资源及应用,主要内容:LED数码显示器的结构与原理LED静态显示接口及应用LED动态显示接口及应用,7.4 单片机外部LED数码显示器的扩展,22,第六章 80C51单片机内嵌外设及应用,LED静态显示接口及应用LED静态显示接口电路静态显示方式接口电路:每个LED数码管的位选端按共阴极或共阳极分别接地或接电源;每个LED数码管的8根段选端通过驱动器接单片机8位并行I/O口。这样,每个数码管都要单独占用一个并行I/O口,以便单片机向数码管传送段码。当显示位数较多时,并行I/O口可能会不够用,这时也可以采用串口扩展并口的方法,使串口工作在移位寄存器方式,通过在
14、单片机外部增加移位寄存器构成多位显示电路。,7.4 单片机外部LED数码显示器的扩展,23,第七章 单片机外部扩展资源及应用,LED静态显示接口及应用LED静态显示接口电路,7.4 单片机外部LED数码显示器的扩展,24,第七章 单片机外部扩展资源及应用,4个I/O口均用于向LED显示器输出段码,称作“段控”。,LED静态显示接口及应用LED静态显示接口电路注意:在扩展多位LED数码管时,由于80C51单片机I/O口的驱动能力有限(输出电流和灌入电流均有一定限制),不论使用共阴极数码管还是共阳极数码管,单片机I/O口都必须经驱动器再与LED的段选端相连。驱动电路可以直接由三极管构成,也可以由小
15、规模集成电路驱动器(如7407)或者驱动芯片(如74HC245)构成。,7.4 单片机外部LED数码显示器的扩展,25,第七章 单片机外部扩展资源及应用,LED静态显示接口及应用LED静态显示接口电路74LS245是8路同相三态双向数据总线驱动芯片,具有双向三态功能,既可以输出,也可以输入数据。引脚说明:A0A7 总线端 B0B7 总线端 /CE 三态门允许端(低电平有效) AB/BA 方向控制端,7.4 单片机外部LED数码显示器的扩展,26,第七章 单片机外部扩展资源及应用,LED静态显示接口及应用LED静态显示接口电路共阳极LED静态显示接口电路:,7.4 单片机外部LED数码显示器的扩
16、展,27,第七章 单片机外部扩展资源及应用,LED静态显示接口及应用LED静态显示的程序设计在静态显示方式下,LED显示程序和1位LED显示的程序类似;只需通过写I/O端口,送出相应LED数码管的段码即可。如:P0=0xc0; /使P0口连接的共阳极LED数码管显示0;,7.4 单片机外部LED数码显示器的扩展,28,第七章 单片机外部扩展资源及应用,LED静态显示接口及应用LED静态显示的特点各数码管同时显示,数码管始终发光,功耗比较大;硬件电路复杂,使用元器件多、成本高;占用单片机I/O多,适合显示位数较少的场合;软件编程简单,数据一但输出,不再占用CPU时间。,7.4 单片机外部LED数
17、码显示器的扩展,29,第七章 单片机外部扩展资源及应用,主要内容:LED数码显示器的结构与原理LED静态显示接口及应用LED动态显示接口及应用,7.4 单片机外部LED数码显示器的扩展,30,第六章 80C51单片机内嵌外设及应用,LED动态显示接口及应用LED动态显示原理每次只有一位数码管显示,即在实际操作过程中各个数码管轮流显示。只要轮流显示的速度足够快,由于人的视觉暂留现象及发光二极管的余辉,人眼看到的将是整体显示的效果。,7.4 单片机外部LED数码显示器的扩展,31,第七章 单片机外部扩展资源及应用,LED动态显示接口及应用LED动态显示原理以8位LED动态显示20131126为例:
18、,7.4 单片机外部LED数码显示器的扩展,32,第七章 单片机外部扩展资源及应用,人眼实际看到的效果:,LED动态显示接口及应用LED动态显示接口电路动态显示方式接口电路:因为同一时刻只选通1个LED数码管进行显示,则每个LED数码管的位选端通过驱动器接一根独立的I/O口线;所有LED数码管的段选同名端(ah)并联在一起,通过驱动器接单片机的一个8位并行I/O口。,7.4 单片机外部LED数码显示器的扩展,33,第七章 单片机外部扩展资源及应用,LED动态显示接口及应用LED动态显示接口电路,7.4 单片机外部LED数码显示器的扩展,34,第七章 单片机外部扩展资源及应用,1个I/O口用于向
19、LED显示器输出段码,称作“段控”;1个I/O口用于控制LED显示器的亮、灭,称作“位控”,LED动态显示接口及应用LED动态显示接口电路CPU向段控端送出段码时,因为数码管的段选同名端并接,所有数码管将接收到相同的段码。但究竟是哪个数码管进行显示,则取决于LED的位选端,位选端的信号来自单片机的位控端,由单片机输出位码到位控端控制。注意:对于共阳极数码管,位选端为高电平时选通;对于共阴极数码管,位选端为低电平时选通。不论使用共阴极数码管还是共阳极数码管,单片机I/O口都必须经驱动器再与LED的位选端相连。,7.4 单片机外部LED数码显示器的扩展,35,第七章 单片机外部扩展资源及应用,LE
20、D动态显示接口及应用LED动态显示接口电路共阳极LED动态显示接口电路:,7.4 单片机外部LED数码显示器的扩展,36,第七章 单片机外部扩展资源及应用,LED动态显示接口及应用LED动态显示的程序设计例:使4位共阳极数码管显示数字“1234”;单片机P3口为段控口,P2口的低4位为位控口。解题思路:如要动态显示4位数码,则其显示步骤可表示如下:i=0;do从位控口输出位选信号使得第i位数码管处于显示状态;通过查表法找到第i位数码管需要显示的字符,从段控口输出段选信号进行显示;延时一小段时间;i+;while(i4),7.4 单片机外部LED数码显示器的扩展,37,第七章 单片机外部扩展资源
21、及应用,LED动态显示接口及应用LED动态显示的程序设计程序源代码:unsigned char tab=0xf9,0xa4,0xb0,0x99; /定义数组tab,并初始化为数字14的共阳极数码管段码void main(void) while(1) unsigned char i; /定义循环变量 for(i=0;i4;i+) P2=_cror_(0x08,i); /输出位选信号 P3 = tabi; /找出以循环变量为下标的数组元素,输出到P0口 delay(); /每输出1个数字,延时一小段时间 ,7.4 单片机外部LED数码显示器的扩展,38,第七章 单片机外部扩展资源及应用,LED动态
22、显示接口及应用LED动态显示的程序设计最后一个问题:为了使人眼看到稳定的、同时整体显示的结果,数码管轮流显示的速度到底得多快呢?答案:每个LED数码管刷新频率必须大于25Hz,即每个LED数码管相邻两次点亮的时间间隔要小于40ms,也就是单片机完整扫描1次LED数码管所需的时间必须小于40ms。对于具有N个LED数码管的动态显示电路来说,每一个LED数码管的显示时间小于40/N(ms)。,7.4 单片机外部LED数码显示器的扩展,39,第七章 单片机外部扩展资源及应用,LED动态显示接口及应用LED动态显示的特点各数码管轮流显示,数码管轮流发光,LED发光亮度和稳定度不如静态显示方式;硬件电路
23、较静态显示方式简单,使用元器件少、硬件开销低;占用单片机I/O少,适合显示位数较多的场合;软件编程比静态显示方式复杂,CPU必须要轮番送出位码和段码,花费CPU较多的时间。,7.4 单片机外部LED数码显示器的扩展,40,第七章 单片机外部扩展资源及应用,单片机外部LED数码显示器的扩展小结学完本节,你应该达成以下学习目标:理解LED数码显示器的相关概念:共阴/共阳极数码管、段选、位选、段控、位控;掌握LED数码显示器静态及动态接口电路的工作原理和应用;掌握LED数码显示器接口电路设计;掌握LED数码显示器的程序设计方法。,7.4 单片机外部LED数码显示器的扩展,41,第七章 单片机外部扩展资源及应用,