资源预览内容
第1页 / 共73页
第2页 / 共73页
第3页 / 共73页
第4页 / 共73页
第5页 / 共73页
第6页 / 共73页
第7页 / 共73页
第8页 / 共73页
第9页 / 共73页
第10页 / 共73页
亲,该文档总共73页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
L/O/G/O项目四、数码计数牌的设计课程负责人:林宏伟任务一、认识LED数码管一、LED数码管显示器LED数码管显示器是由发光二极管显示字段组成的 显示器,有“8”字形和“米”字形之分。 1数码管结构 数码管结构图 abcdefggf com a be d com c dp数码管的每段LED分别引出一个电极,名为a、b、c、d、e、f、g、h(或dp)单片机系统中通常使用8段LED数码显示器(也有的称为七段LED显示器),8段LED显示器由8个发光二极管组成。其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符,包括数字、部分英文字母和小数点“”等字样。由于主要用于显示各种数字符号,故又称之为LED数码管。 为使LED显示不同的符号或数字,要为LED提供段码(或称七 段码、字型码),一个字节(8段)。各段与字节中各位对应 关系如下(习惯上还是以“a” 段对应段码的最低位):字型及段码可由设计者自行设定,如:2数码管工作原理 数码管原理图 共阳极型共阴极型abcdefggf coma be d comc dp共阳极型相应字段置0点亮。 比如共阳极型显示“3”条件 1)com接高电平1 (+5V) 2)a、b、c、d、g置0 3)代码为10110000B,即 B0H阳极:ANODE 阴极:CATHODE显示共阳极型 段 代 码十六进制 代码 dp gfedcba共阳极 0 1 2 3 4 5 6 7 8 9 A b C d E F H P1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 00 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 00 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 00 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 10 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 10 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 0 00 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 88H 83H C6H A1H 86H 8EH 89H 8CH3数码管字型编码 共阴极型LED数码管字型显示代码表 显示 段 代 码十六进制 代码 dp gfedcba共阴极 0 1 2 3 4 5 6 7 8 9 A b C d E F H P0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 11 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 11 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 11 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0 0 01 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 01 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 11 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 13FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H 5EH 79H 71H 76H 73H静态显示是指数码管显示某一字符时,相应的发光二极 管恒定导通或恒定截止。这种显示方式的各位数码管的 公共端恒定接地(共阴极)或+5V(共阳极)。每个数 码管的八个段控制引脚分别与一个八位I/O端口相连。 只要I/O端口有显示字型码输出,数码管就显示给定字符,并保持不变,直到I/O口输出新的段码。 LED静态显示 多位合一的数码管 将多个八段数码管的段选线分别并在一起,位选 线引出任务二、LED数码管的显示控制一、 LED数码显示方式及电路 LED显示器工作方式有两种:静态显示方式和动态显示方式。1. 静态显示方式各位的公共端连接在一起(接地或+5V)。每位的段码线(adp)分别与一个8位的锁存器输出 相连。显示字符一确定,相应锁存器的段码输出将维持 不变,直到送入另一个段码为止。 图: 4位静态LED显示器 电路。该电路各位可独立 显示。每个数码管必须接一个8位锁存器用来锁存待显示的字形码。2. 动态显示方式1)动态显示是一种按位轮流点亮各位数码管的显示方式,即在某一时段,只让其中一位数码管“位选端”有效,并送出相应的字型显示编码。此时,其它位的数码管因“位选端”无效而都处于熄灭状态;下一时段按顺序选通另外一位数码管,并送出相应的字型显示编码,依此规律循环下去,即可使各位数码管分别间断地显示出相应的字符。这一过程称为动态扫描显示。如何显示2个不同的数据?传送对应的第1个显示数据点亮第1个数码管显示延时传送1个显示消隐数据传送对应的第2个显示数据点亮第2个数码管显示延时传送2个显示消隐数据微观上看来, 程序只是瞬间 点亮了一个数 码管,但是只要 这个循环消耗 的时间足够短, 我们看起来就 是不闪烁的, 这就是扫描的 根本含义。利用了发光管的余辉和人眼视觉暂留作用。因人眼的视觉暂留时间为0.1s(100ms),所以每位送显示码的间隔不能超过20 ms;段选码、位选码每送入一次后保持延时一段时 间(1ms) ,以造成视觉暂留效果。某一时刻,只有一位LED被选通显示,其余位是熄灭的;实际显示结果,人眼看到的却是几位“同时”显示的稳定字符。2)动态稳定显示的条件只要有动态显示,则主程序中必须不停地刷新显示:逐 位轮流点亮各个LED,每一位保持1 ms,在1020 ms之内 再一次点亮,重复不止。是把所有显示器的8个笔画段adp同名端连在一起(即所有位的段码线相应段并在一起,由一个8位I/O口控制),形成段码线的多路复用;而每一个显示器的公共极各自独立地受I/O线控制,形成各位的分时选通。图:4位8段LED动态显 示电路。其中段码 线占用一个8位I/O 口,而位选线占用 一个4位I/O口。3) 动态显示电路静态显示器的亮度较高。这种显示方式编程容易,管理也较简单,但占用口线资源较多,只适合于显示位数较少的场合。动态显示器占用口线资源较少,在显示位数较多的情况下,一般都采用动态显示方式。但动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的值。这种显示方式编程稍复杂,且占用CPU的时间多。3. 两种显示方式的对比数码管显示电路原理图LED显示器所需的工作电流较大。在静态显示方式下 ,一般每段需要几mA。在动态显示方式下,为了要达到足 够的亮度,瞬时电流约为静态方式的N倍(N是显示器位数 )。共阴极点或共阳极点处的电流因要考虑8段同时导通 ,其数值就更大,因此在LED接口电路中常接有驱动器。 常用的驱动器有7406(六反相缓冲/驱动器,OC门)、 7407(六缓冲/驱动器,OC门)、 、75452(双与非驱动 器)等。也可以用分立元件三极管作为驱动器。在一些场合为了更进一步节约I/O口的开支,采用硬 件译码的形式,即,将待显示的数据不在CPU内部查表, 而是直接用4条I/O口线输出BCD码,用BCD7段字段码的 硬件如MC14495、74LS47、74LS48等器件来译码,然后输 出。任务二、LED数码管显示编程 一、静态显示 1. 显示固定数字 只要给相应数码管传送显示码即可。 例如: P0 = 0xC0;/显示“ 0 ”2. 循环显示多个数字1) 正序显示 #include #define uchar unsigned char #define uint unsigned int uchar code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,; uchar i,t; delay(uint t) while (t-) ; void main(void) while(1) for(i=0;i #define uchar unsigned char #define uint unsigned int uchar code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,; uchar i,t; delay(uint t) while (t-) ; void main(void) while(1) for(i=10;i0;i-) P2 = P3 =P0 = tabi-1; delay(40000); while(1) i=10; while(i-) P2 = P3 =P0 = tabi; delay(40000); 二、动态显示 按位选通,送段码。 为了稳定显示不闪烁,要保证在1秒内循环 扫描每个数码管的次数大于25次。 为了亮度均匀,每个数码管点亮的持续时 间要相同。(15ms)4位数码管动态显示电路:#include unsigned char code tab11= 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0xFF ; /0,1,2,3,4,5,6,7,8,9,off 的代码 unsigned char t,j; delay(unsigned char t) while (t-) ; 4位数码管动态显示参考程序:void main() P2 = 0xff; /关闭所有数码管P1 = 0x00;while(1) j=4; while(j-) P1 = 1, 举例:ANL A,#0FH ;将A中数据与立即数#0FH( 00001111B)按位与运算 ANL逻辑与运算指令示意图如图4-14所示。3.算术运算类指令:INC、MUL、DIV加1指令:INC ;将各种寻址方式中的数值加1,然后 再存回原来的位置。 乘法指令:MUL AB ;将A和B中的两个8位元符号数相乘, 16位的乘积的高8位存于B中,低8位存于A中。 除法指令:DIV AB ;两个8位元符号数的除法运算,其中被 除数置于累加器A中,除数置于寄存器B中。除法指令执行后,商 存放放于A中,余数存放于B中。4. 控制转移类指令:JNB、DJNZ、CJNEJNB bit, ;直接位为0,则相对转移。 DJNZ , ;先对寄存器中的数值减1,若 (寄存器)0,转移到相对地址处执行;若(寄存器)=0, 则顺序执行。 CJNE A, ,;将A中数据和操作数相比较 ,若(A)操作数,转移到相对地址处执行;若(A)操作 数,则顺序执行。一、硬件电路制作技能实训三 制作三位LED数码计数牌1. 电路原理图2. 元件清单3. 电路制作步骤(1)按电路原理图在 万能实验板中绘制电路元 器件排列布局图; (2)按布局图依次进 行元器件的排列、插装; (3)按焊接工艺要求 对元器件进行焊接,背面 用0.5mm1mm镀锡 裸铜线链接,直到所有的 元器件连接并焊完为止。 三位LED数码计数牌电 路装接图如图4-21所示。4. 电路的调试通电之前先用万用表检查各种电源线与地线之间是 否有短路现象。 给硬件系统加电,检查所有插座或器件的电源端是 否有符合要求的电压值、接地端电压是否0V。 二
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号