好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第4章 数码显示及按键.docx

8页
  • 卖家[上传人]:天****步
  • 文档编号:300034535
  • 上传时间:2022-05-29
  • 文档格式:DOCX
  • 文档大小:19.42KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 本文格式为Word版,下载可任意编辑第4章 数码显示及按键 第4章 数码显示及按键识别 数码管在仪器仪表中主要用于显示输出数据、状态等,作为典型显示器件,数码管是反映系统输出和人机交互的有效器件键盘是由若干个按键组成的,是单片机最简朴也是最常用的输入设备操作人员通过键盘输入数据或命令,实现简朴的人机对话本章将介绍数码管和按键在单片机系统中的应用,同时持续陈述有关C51编程的根基学识 4.1 数码管静态显示 在单片机系统中,假设需要显示的只有数字和某些英文字母时,就可以选择8段数码管数码管显示明显,亮度高,本金低,配置生动,与单片机接口简朴 4.1.1 数码管简介 1.数码管的布局 数码管由8个发光二极管(以下简称字段)构成,其中的有7个是长条形,7段排列构成字形“”,7段分别称为abcdefg,如图4-1(a)所示,第8个发光二极管是小圆点形,用来显示小数点,称为dp,点亮各段发光二极管需要有驱动电路在数码管内部,通常将8个发光二极管的阴极或阳极连在一起作为公共端将各段发光二极管阳极连在一起的是共阳极数码管,如图4-1(c)所示,点亮各段用低电平驱动;将各段发光二极管gfcomabaafegdbcdpbcdefgdpabcdefgdpedcomcdp(a) 符号和引脚(b) 共阴极(c) 共阳极阴极连在一起的是共阴极数码管,如图4-1(b)所示,点亮各段用高电平驱动。

      图4-1 数码管布局图 2.数码管显示原理 应用共阳极数码管时,应将公共阳极端接高电平(一般接电源),其他管脚接段驱动输入当某段驱动输入为低电平日,那么该段所对应的发光二极管导通并点亮,根据发光各段的不同组合可显示出各种数字或字符,主要有:数字0~9、字符A~F、H、L、P、U、Y及小数点“.”等如a、b、d、e、g段导通,c、f、dp段截止,那么显示“”此时,要求段驱动电路能吸收额定的段导通电流,额定字段导通电流一般为(5mA~20mA),需根据外接电源及额定段导通电流来确定相应的限流电阻 应用共阴极数码管时,应将公共阴极端接低电平(一般接地),其他管脚接段驱动输入当某段驱动输入为高电平日,那么该端所连接的发光二极管导通并点亮,根据发光各段的不同组合可显示出各种数字或字符此时,要求段驱动电路能供给额定的段导通电流,同样需根据外接电源及额定段导通电流来确定相应的限流电阻 3.数码管的字形编码 要使数码管显示出相应的数字或字符,务必使dpgfedcba 8段驱动输入适合的电平信号,这组驱动输入信号称为字形码,也称段码使用共阳极数码管,输入低电平0使对应字段亮,高电平1使对应字段暗;使用共阴极数码管,输入高电平1使对应字段亮,低电平0使对应字段暗。

      如要显示“0”,共阳极数码管的段码应为11000000B(即C0H);共阴极数码管的段码应为00111111B(即3FH)依次类推,可求得不同字形的数码管段码见表4-1 表4-1 数码管字型编码表 显示 字形 0 1 2 3 4 5 6 7 8 9 A B C 共阳极 dp g f e d C b a 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 0 段码 C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 88H 83H C6H 共阴极 dp g f e d c b a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 段码 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H D E F P U Y . 灭 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 A1H 86H 8EH 8CH C1H 91H 7FH FFH 0 0 0 0 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5EH 79H 71H 73H 3EH 6EH 80H 00H 4.1.2数码管静态显示 静态显示电路如图4-2所示,共阳数码管的公共端固定的接高电平,其8 个字段与一个并行P2口的8位分别对应相连,根据字形编码规律,将a段与端口的最低位相连,小数点dp段与端口的最高位相连,其他各段按依次依次连接。

      这样I/O 口只要有字形码输出,相应字符即显示出来,并保持点亮不变,直到I/O 口输出新的字形码,变更显示字符 U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161723456789191Vcc18XTAL29RSTU2A0A1A2A3A4A5A6A7CEAB/BA74HC245B0B1B2B3B4B5B6B7181716151413121112345678RN1161514131211109RX8293031PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51Vcc 图4-2 静态数码管显示电路 单片机端口的负载才能有限,假设超过其负载才能,应加驱动器。

      静态显示时,为了保证足够的显示亮度,一般在I/O端口和数码管之间增加总线驱动电路74HC245是一种总线驱动器,典型的TTL型双向三态缓冲门电路,共20个引脚引脚CE是使能操纵端,低电平有效当CE引脚为高电平日,74HC245的输入/输出均为高阻状态;当CE引脚为低电平日,允许输入/输出引脚AB/BA操纵数据传输方向,该引脚为低电平日数据传输方向是B→A;高电平日数据传输方向是A→B 电路中,74HC245的19脚为片选端,接地使其有效,1脚接高电平日,数据从A传 输至B;RN1为8个并排的限流电阻 本书中全体的电路原理图均由Proteus软件绘制,该软件将每个集成芯片的电源和地引脚暗藏,默认为已连接好本书中沿用Proteus软件的习惯,疏忽全体集成芯片的电源和地引脚晶振和复位电路是单片机的必要工作条件,在系统中必不成少,为了简化原理图,从本电路开头将它们省略不画AT89C51内部包含4KB的ROM,在不需要扩展外部ROM的场合,EA引脚应接高电平,从本电路原理图开头,也将此引脚接高电平省略不画 操纵数码管静态显示的程序对比简朴,由于公共端已接为固定的高电平(共阳极数码管),所以只要根据需要显示字形,确定相应的段码,并将段码通过对应的端口输出,并保持不变即可。

      让数码管显示1的程序(chengxu4_1_1.c)如下: 1. #include 2. void main() 3. { 4. P2=0xf9; 5. while(1); 6. } 程序的第4行将1的字形码0xf9输出给P2口,数码管显示1到此任务执行完毕,程序便可以终止了,但此时单片机的CPU将没有指令执行,即不成控,俗称程序跑飞,这种处境一般是不允许展现的为此第5行使用一条“while(1);”语句,CPU将一向执行该语句,也称等待或原地踏步,目的便是使CPU可控,有指令可执行,防止程序跑飞梦想掌管这种方法 采用静态显示方式,由于驱动电流持续供给,不休止,较小的电流即可获得较高的亮度同时字形码输出后,只有变更显示字形时才需要变更端口输出,一般处境端口输出固定不变,所以占用CPU 时间少,编程简朴,便于监测和操纵但由于每位数码管的字形码驱动都需单独占有一个端口,所以当需多位数码显示时,要占用多个端口,本金高,所以静态显示方式适合显示位数较少的场合 4.1.3 一位数码管循环显示0~9 在图4-2所示电路中,编写程序让数码管循环显示0~9。

      分析:由于采用静态显示,每隔一段时间,让P2口输出相应的段码即可,采用查表法,程序(chengxu4_1_2.c)如下: #include #define uchar unsigned char #define uint unsigned int //以下为共阳极数码管0~9的段码表 uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90}; void delay(uint t) { uint i,j; for(i=t;i>0;i--) for(j=110;j>0;j--); } void main() { uchar i=0; while(1) { for(i=0;i<10;i++) //共10个数码 { P2=DSY_CODE[i]; //依次引用数组元素,并将其送P2口显示 delay(500); //延时 } } } 程序中使用预处理命令#define,用“uchar”代替“unsigned char”;用“uint”代替“unsigned int”。

      作用与使用typedef语句一样,以后便可以使用uchar声明无符号字符型变量;用uint声明无符号整型变量 4.1.4 作业 1. 画出数码管内部布局电路图,说明其显示原理 2. 根据数码管的内部布局图,说明使用万用表判别共阴极和共阳极数码管的方法,及其各段引脚的判定方法 3. 数码管静态显示有何特点? — 8 —。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.