ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:409.22KB ,
资源ID:21835404      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21835404.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第3章数码管显示输出Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第3章数码管显示输出Word文件下载.docx

1、0xC08100000000x801111110010xF99100100000x902101001000xA4A100010000x883101100000xB0b100000110x834100110010x99C110001100xC65100100100x92d101000010xA16100000100x82E100001100x867111110000xF8F100011100x8E共阳数码管全部熄灭不显示如果要让共阳数码管全部熄灭不显示,可以在公共端接高电平的条件下,各段对应的所有阴极引脚都接高电平,即段码为0xFF(二进制11111111)。此段码一般被用作共阳消隐处理(消隐的

2、原理及意义后叙)。3.2.2共阴数码管显示输出原理共阴数码管显示数字或字符给共阴数码管的公共端(com端)接低电平,将需要点亮的段对应的阳极引脚接高电平,将不需要点亮的段对应的阳极引脚接低电平,就可使数码管显示我们希望看到的数字或字符。表3-2列出了共阴数码管显示数字和字符时各引脚所加电平的情况,俗称共阴段码表,其中,小数点段dp不点亮且排在8位二进制数据的最高位(位7),后面依次是段g、f、e、d、c、b和a,段a排在8位二进制数据的最低位(位0)。表3-2 共阴数码管段码表001111110x3F011111110x7F000001100x06011011110x6F010110110x5

3、B011101110x77010011110x4F011111000x7C011001100x66001110010x39011011010x6D010111100x5E011111010x7D011110010x79000001110x07011100010x71共阴数码管全部熄灭不显示如果要让共阴数码管全部熄灭不显示,可以在公共端接低电平的条件下,所有阳极引脚都接低电平,即段码为0x00(二进制00000000)。此段码一般被用作共阴消隐处理。3.2.3数码管显示输出驱动电路在数码管的实际应用中,除按以上段码数据加载引脚的电平外,还需考虑数码管的驱动问题,数码管的驱动电流大小一般在5mA左

4、右,使用74LS573类锁存器驱动电路或使用8550类晶体管驱动均可。3.2.4 静态显示和动态显示静态显示和动态显示,是在多位数码管同时显示信息的前提下分类的,1位数码管的显示不存在静态和动态显示之分。在了解和掌握静态显示和动态显示原理之前,需先掌握位码的概念。当多位数码管同时显示时,自然要关注每个数码管显示的内容是什么,但同时也要区分是哪一个或者是哪几个数码管在显示。这时,除控制数码管显示内容的段码数据外,还要有用于区分数码管位置的数据,即位置码,简称位码。如图3-6所示,8个数码管同时显示时,名称相同的段的引脚彼此相连,即8个数码管中,8个名称为a的段的引脚连接在一起,形成公共“A”段的

5、引脚;8个名称为b的段的引脚连接在一起,形成公共“B”段的引脚,8个名称为dp的段的引脚连接在一起,形成公共“DP”段的引脚。这样,送到公共段引脚A,B,C,D,E,F,G,DP的段码数据,自然会送到每个数码管,并用来控制数码管显示的内容。而每个数码管的公共端(引脚3和引脚8并联后的引脚)各自独立,在图3-6中,从左至右,8个数码管的公共端暂且命名为W1,W2,W8,这些独立的公共端可以用来区分每一个数码管,而送到这些独立的公共端上的电平数据就是数码管的位码,使用这些位码数据可以区分每一个数码管。假设图3-6中8个数码管是共阳的,则公共端W1,W2,W8是各个数码管的阳极。根据共阳数码管显示的

6、原理,只有在阳极是高电平的前提下,送到段引脚的段码数据(低电平有效)才可以显示出来,如果阳极是低电平,则无论段引脚是高电平还是低电平,数码管都不会显示。所以,8个数码管中,如果希望哪个数码管显示,就将其公共端置成高电平。例如,如果仅仅希望数码管LED1这一个数码管显示,则送数据0x01(二进制00000001) 到公共端W8W1,此处假定W8W1引脚连接到一个8位的数据I/O口,而W8是一个字节数据的最高位,W1是一个字节数据的最低位。送到段引脚的数据将在第一个数码管LED1上显示出来,其余七个数码管尽管得到了段数据,但其公共端是低电平,是不显示的。此时,送到公共端引脚的数据0x01就是位码。

7、如果希望8个数码管全部显示,则送到公共端引脚的位码数据就是0xFF。如果图3-6中的8个数码管是共阴的,则送到段引脚的数据应是共阴数码管的段码(如表3-2所示),送到公共引脚com的数据就是位码,因为是共阴数码管,所以位码中低电平0对应的数码管将显示信息。例如,如果计划让数码管LED1和LED3显示,则位码为0xFA(二进制11111010,依旧假定W8是字节数据中的最高位,W1是字节数据中的最低位)图3-6 8个数码管同时显示在学习和掌握位码的概念之后,下面来说明静态显示和动态显示。所谓静态显示,就是多个数码管同时显示时,相同的段码数据,能使位码数据选中的多个数码管,同时显示相同的内容,如同

8、一个数码管一样。相反,动态显示可以使同时显示的各个数码管显示出不同的内容。数码管动态显示的本质是动态扫描显示,即分时显示的过程。动态显示的原理可以这样描述:让多个数码管一个接一个地依次点亮,这样,送到每个数码管用于显示的段码数据就可以不同,每个数码管显示的内容自然不同,但每个数码管被点亮时间必须要短,并且依次点亮的过程要不断地快速重复。尽管某一时刻只有一个数码管在显示,但在数码管的余辉效应和人眼的视觉暂留效应共同作用之下,人眼看到的是多个数码管“同时”被点亮的效果。3.2.5数码管静态显示实例功能要求:使用数码管静态显示数字或字符。硬件说明:如图3-7所示共阳数码管显示输出电路,单片机P0口输

9、出位码数据, P1口输出段码数据。8位位码数据经驱动晶体管8550后,分别连接到8个数码管的公共端(阳极)。8个数码管的同名段引脚彼此连接,100电阻起限流作用。软件说明:1、P1口依据表3-1所示共阳数码管段码表,送出段码数据;2、在PNP驱动晶体管8550的作用下,共阳数码管的位码数据是低电平有效,即P0口送出的位码数据中,低电平数据位经晶体管8550之后会变为高电平数据位,恰好选中对应的数码管;例如,选中数码管LED1的位码数据是0xFE,8个数码管全部选中用于显示的位码是0x00。3、本例P1口送出的段码数据是0xF8,即数组元素duan7,则显示数字“7”;P0口送出的位码数据是0x

10、00,即8个数码管全部显示。最终显示效果是8个数码管同时静态显示数字“7”。4、通过改变本例主函数中送到P0口的位码数据和送到P1口的段码数据,可以显示其它数字或字符。图3-7 共阳数码管显示输出程序清单如下:#include #define uchar unsigned char unsigned char duan16=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E;main() P0=0x00; P1=duan7; 3.2.6数码管动态显示实例1使用数码管动态显示数字或字符。动

11、态显示与静态显示使用同一电路,如图3-7所示共阳数码管显示输出电路。具体细节请参照静态显示硬件说明。1、P0口输出位码,低电平有效。因为采用动态扫描方式,每次只能有一个数码管被点亮,所以P0口输出位码依次是0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;2、P1口输出段码,共阳数码管段码如表3-2所示;3、主程序中的for延时语句for(j=0;j=200;j+);是动态扫描的时间间隔,读者可通过调节延时时间的长短,观察现象,深入理解动态扫描的原理。首先设置较长的延时时间,则各个数码管如同流水灯一样被逐个点亮;将延时时间逐渐减小,各个数码管类似流水灯一样“跑”得

12、会更快;进一步将延时时间减小,可以看到数码管全部点亮,但数码管闪烁现象较严重;继续减小延时时间,数码管闪烁效果会减弱,直至肉眼感觉不到闪烁为止。4、主函数中P1=0xff;语句用于消影。动态扫描可以实现动态显示,即多个数码管同时显示,而每一个数码管的显示内容可以不同,为了使本次扫描的显示结果不影响下次扫描的显示结果,在每次扫描显示之后,将数码管各段全部熄灭,即共阳数码管送段码0xFF,共阴数码管送段码0x00,这就是消影。消影可使显示稳定、清晰。5、本例程序清单的显示效果是8个数码管依次显示数字07。改变主函数中P1=duani;语句为P1=duani+1;可使显示结果变为8个数码管依次显示数

13、字18;若改为P1=duani+8; 显示结果变为8个数码管依次显示89AbCdEF。#define uint unsigned intunsigned char wei8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; uchar i; uint j; while(1) for(i=0;i=7;i+) P0=weii; P1=duani; for(j=0; P1=0xff; 3.2.7数码管动态显示实例2如图3-10所示,使用74HC573锁存器的共阳数码管显示输出电路。1、因为使用P0口输出位码和段码,所以P0口带有上拉电阻(PR_10K);2、电路使用两

14、片74HC573锁存器驱动,一片用于驱动段码,另一片用于驱动位码。74HC573锁存器双列直插实物如图3-8所示,引脚分布如图3-9所示,图3-8 74HC573锁存器实物图 图3-9 74HC573锁存器引脚图表3-3 74HC573引脚定义 表3-4 锁存器74HC573真值表引脚序号名称功能描述OE输出使能端,低电平有效29D0D7数据输入端10GND数字地11LE锁存使能端1219Q7Q0数据输出端20Vcc电源端输入输出输出使能OE锁存使能LEDQX不变化高阻从74HC573的真值表可见,输出使能OE端高电平时,不论锁存使能LE和输入D是什么值,输出都是高阻,所以输出使能OE端必须接

15、低电平,一般是直接接地。在输出使能OE端接低电平的前提下,锁存使能端LE高电平时,输出与输入一致,即输出Q紧跟输入D的变化而变化;当LE处于低电平时,不论输入是什么,输出电平Q都保持不变,还是LE变为低电平之前的Q值(锁存)。从以上分析可见,通过对锁存使能端的控制,可以使输出端Q跟随输入端D的变化而变化(LE高电平),也可以使输出端保持上一次输出端的状态不变化(LE低电平)。对于数码管显示输出而言,从51单片机I/O口输出的位码和段码,可分别锁存在两片74HC573中,两片74HC573的输出端再分别连接到数码管的各段引脚和各位引脚,即可实现数码管的显示输出。还有一点需要提及的是,本节前面讲述

16、的数码管静态和动态显示中,51单片机用两个I/O口分别输出位码和段码,占用口线较多,这对口资源缺乏的51单片机而言,显然不够高效。运用74HC573锁存器时,位码和段码可以从同一个I/O口上分时输出,例如,先从P0口输出位码到一片74HC573并锁存,再从P0口输出段码到另一片74HC573并锁存,锁存的位码和段码加载到数码管上,数码管就可以显示设定的内容。当然,两片74HC573的锁存使能端(LE)要分开并占用不同的I/O口线。本例中,两片74HC573的锁存使能端,分别连接到P2.0(位码)和P2.1(段码),位码和段码都从P0口输出。这样的驱动电路除两片74HC573外,不再需要其它额外

17、的元器件,电路简单实用。1、从P0口输出位码和段码时,首先将位码锁存使能端LW拉高,使其呈高电平;然后位码从P0口输出,进入到第一片74HC573中,随后将位码锁存使能端LW拉低,锁存位码。接着将段码锁存使能端LD拉高,使其呈高电平;然后段码从P0口输出,进入到第二片74HC573中;随后将段码锁存使能端LW拉低,锁存段码。2、语句for(j=0;的功能与前面的例子一样,起到延时功能;3、段码和位码依旧采用查表实现。图3-10 使用74HC573锁存器的共阳数码管显示输出unsigned char duanca16=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8

18、, /unsigned char weica8=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;sbit LW=P20;sbit LD=P21; while(1) for(i=0;8; LW=1; P0=weicai; LW=0; LD=1; P0=duancai; LD=0; for(j=0; 3.2.8数码管动态显示实例3设计一个使用数码管显示时间的电子钟。显示格式是“HH-MM-SS”,其中“HH”表示小时,“MM”表示分钟,“SS”表示秒。本例继续使用图3-10所示硬件电路。1、子函数void delay4ms(void)是一个延时子函数,延时用for循

19、环嵌套实现,延时时间约为4ms,由于不是精确的4ms延时,所以本例的电子钟时间有较大误差(1小时慢大约1分钟)。如果想得到精确的延时,可以使用51单片机的定时/计数器来实现,定时/计数的知识将在第四章讲解,届时再设计精确延时电子钟并用数码管显示时间;2、由于延时时间是4ms,1秒钟就需要250次4ms延时,然后秒值才加1;秒值计数到60后,分钟值加1,同时将秒值清零;当分钟值计数到60后,小时值加1,同时将分钟值清零;小时值计数到24时,小时值清零;3、全局变量hour表示小时值,minute表示分钟值,second表示秒值。它们的十位和个位数值分别对各自变量用10整除和求余数得到;4、送到P

20、0口的数值0xbf,用于在小时和分钟、分钟和秒之间显示一条短线“-”,以示区分。unsigned char duanca10=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;uint hour=0,minute=0,second=0,second0=0;void delay4ms(void) uint i,j;=2; for(j=0;=164; LW=1; P0=weicai; LW=0; LD=1; switch(i) case 0:P0=duancahour/10;break; case 1:P0=duancahour%10; case

21、2:P0=0xbf; case 3:P0=duancaminute/10; case 4:P0=duancaminute%10; case 5: case 6:P0=duancasecond/10; case 7:P0=duancasecond%10; default: delay4ms(); second0+; if(second0=250) second0=0; second+; if(second=60) second=0; minute+; if(minute=60) minute=0; hour+; if(hour=24) hour=0; 思考题1. 简述数码管的原理和应用领域。2. 3. 如何区分共阳和共阴数码管?4. 5. 简述数码管显示输出的原理。6. 7. 分别编写09,A,b,C,d,E,F的共阳和共阴数码管的段码值。8. 9. 试说明数码管的静态扫描和动态扫描各有何特点?10. 11. 消影是什么?数码管如何消影?12. 13. 如何理解数码管动态显示中的段码和位码概念?14. 15. 简述74HC573的使用方法。16. 17. 简述PNP三极管8550的使用方法。18. 19. 编制程序实现数码管动态显示“HELLO”字样。20.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1