hong动态数码管显示与键盘实验.ppt

上传人:小飞机 文档编号:5433263 上传时间:2023-07-06 格式:PPT 页数:21 大小:1.55MB
返回 下载 相关 举报
hong动态数码管显示与键盘实验.ppt_第1页
第1页 / 共21页
hong动态数码管显示与键盘实验.ppt_第2页
第2页 / 共21页
hong动态数码管显示与键盘实验.ppt_第3页
第3页 / 共21页
hong动态数码管显示与键盘实验.ppt_第4页
第4页 / 共21页
hong动态数码管显示与键盘实验.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《hong动态数码管显示与键盘实验.ppt》由会员分享,可在线阅读,更多相关《hong动态数码管显示与键盘实验.ppt(21页珍藏版)》请在三一办公上搜索。

1、第十四章 数码管的显示与键盘识别,Page 2,第十四章数码管的显示与键盘识别数码管的显示,14.1.1 7段数码管原理与结构把7个细长的LED排成日字型8个LED,使用一个公用端,共阳型:所有LED的阳极连在一起,共阴型:所有LED的阴极连在一起单独控制每个段的亮灭,可以表示出数字 09使用多个数码管表示数字应用非常广泛多种颜色,多种尺寸,Page 3,第十四章数码管的显示与键盘识别数码管的显示,14.1.2 7段数码管编码,共阴型:1 表示点亮 0 表示熄灭共阳型:取反每一个能够显示的字符都有一个对应的段码。,Page 4,第十四章数码管的显示与键盘识别数码管的显示,14.1.3 数码管动

2、态扫描通过段控制信息确定数码管显示的数字(多位复用)通过位控制信号使得任意时刻只有一位数码管处于显示状态利用视觉暂留现象,定时更改位控制信息和段控制信息,得到稳定的数字显示多个LED同时点亮的电流都经过公共端,MCU的IO无法承受,必须使用三极管为了减小MCU的灌入电流,段控制端都连接了输出驱动器74LS07(PNP:集电极开路,高压输出驱动器),段控制,位控制,4个共阳极数码管注:所有引脚都是低电平有效,Page 5,第十四章数码管的显示与键盘识别数码管的显示,14.1.4 数码管显示硬件设计实验板上有4位数码管,共阳极结构,引出12根连线,8根段控制,4根位控制,对应关系如下:实验中可将段

3、控制连接到P口,将位控制连接到T口,连线关系如下:注:a-g,DP接P0-P7,C1-C4接T0-T3,Page 6,第十四章数码管的显示与键盘识别数码管的显示,14.1.4 数码管显示软件设计显示一位数字:const unsigned char DisplayDecode=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;/0-9 ABCDEF DDRP|=0XFF;DDRT|=0XFF;/点亮一个数码管,显示2 PTP=DisplayDecode2;

4、PTT=0 xfe;LED动态显示时,按人眼的反应,刷新频率得大于80Hz,即所有LED在12ms内必须刷新一次。现有4组LED,即每段显示3ms。这个3ms可以用软件延迟实现,但为提高CPU效率,一般使用定时器。,Page 7,第十四章数码管的显示与键盘识别数码管的显示,示例程序/unsigned char showdata4;void Show()unsigned char DisplayNumber;PTT=0 x0f;for(DisplayNumber=0;DisplayNumber4;DisplayNumber+)PTP=DisplayDecodeshowdataDisplayNum

5、ber;if(DisplayNumber=2)PTP,Page 8,第十四章数码管的显示与键盘识别数码管的显示,示例程序/unsigned char showdata4;void delay(unsigned int countert)/3ms unsigned int i,j;for(i=0;icountert;i+)for(j=0;j4000;)j+;,123/1,晶振16M,总线时钟8M,延时为:4000*(1+2+3)/(8*106)s=3ms,第十四章数码管的显示与键盘识别键盘识别,14.2.1 开关与键盘开关(Switch)开关有两种状态闭合和断开船形开关,拨位开关按键:带有自恢复

6、装置的开关,常开常闭型各种形状,各种尺寸耐高压,轻触式,带指示键盘:由多个按键组合而成为了区分按键,给每个按键安排了一个代码,称键码。编码键盘和非编码键盘前者较复杂,较贵。后者较简单,极便宜。非编码键盘分为独立式键盘和行列式键盘,Page 9,第十四章数码管的显示与键盘识别键盘识别,14.2.2 键盘的消抖问题按键用于产生一个脉冲,1个MCU的IO口可以检查一个按键的状态按下和释放的时刻会有抖动需要设计硬件消抖电路或软件消抖硬件消抖:阻容滤波或双稳态触发器(P180)软件消抖:延时等待(12ms),时间长度与机械弹性有关,Page 10,void delay(void)unsigned int

7、 i,j;for(i=0;i4;i+)for(j=0;j4000;)j+;,12ms,第十四章数码管的显示与键盘识别键盘识别,14.2.3 键盘的识别功能(扫描法)键盘的硬件设计分为独立式按键和行列式键盘结构 适用于行列式键盘的逐行扫描法:有无键按下 软件延时消抖扫描求键码等待键释放查表求键值,Page 11,第十四章数码管的显示与键盘识别键盘识别,Page 12,14.2.4 键盘的硬件设计,5V,行端口输出,Y1,X1,Y2,Y3,Y4,X2,X3,X4,列端口输入,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,注:将MCUI/O口输入端的内部上拉电阻使能,键码,键值,行

8、列式键盘,X4(PA7),X3(PA6),X2(PA5),X1(PA4),第十四章数码管的显示与键盘识别键盘识别,Page 13,0,实验板上有一个4*4的薄膜键盘,板上无上拉电阻,接口是X1-4、Y1-4,实验中可将其连接到PORTA口上,Y1-4(PA0-3)为输出,X1-4(PA4-7)做为输入,使能PORTA的上拉电阻,行端口输出,列端口输入,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,Y1(PA0),Y2(PA1),Y3(PA2),Y4(PA3),第十四章数码管的显示与键盘识别键盘识别,Page 14,5V,行端口输出,X1(PA4),X2(PA5),X3(PA6),

9、X4(PA7),列端口输入,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,14.2.5 键盘扫描法软件设计当所有行输出为0,列输入码若不全为1,说明有键按下;令一行输出为0,其余行输出为1,列输入码若不全为1,说明该行有键按下根据行输出码和列输入码中同时为0的行号和列号,可以确定键号。多键识别时需要依次扫描所有行(shift+A)窜键问题:软件处理连续输入问题:需要考虑扫描策略,Y1(PA0),Y2(PA1),Y3(PA2),Y4(PA3),扫描法示例程序:unsigned char KeyScan()unsigned char Input,Output,Keynumber,

10、Keyvalue1,i;Keyvalue1=0 xFF;Output=0 xF0;PORTA=Output;Input=PORTA4;if(Input!=0 x0F)delay(4);Input=PORTA4;if(Input!=0 x0F)Output=0 x01;for(i=0;i4;if(Input!=0 x0F)switch(Input)case 0 x0E:Keynumber=0;break;case 0 x0D:Keynumber=1;break;case 0 x0B:Keynumber=2;break;case 0 x07:Keynumber=3;break;Keynumber=

11、Keynumber+i*ColumnSize;Keyvalue1=KeyDecodeKeynumber;break;else Output=1;return(Keyvalue1);,第十四章数码管的显示与键盘识别键盘识别,Page 15,5V,Y1(PA0),X1(PA4),Y2(PA1),Y3(PA2),Y4(PA3),X2(PA5),X3(PA6),X4(PA7),0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,第十四章数码管的显示与键盘识别键盘识别,Page 16,键值表:const unsigned char KeyDecode=0 x01,0 x02,0 x03,0

12、x04,0 x05,0 x06,0 x07,0 x08,0 x09,0 x00,0 x0a,0 x0b,0 x0c,0 x0d,0 x0e,0 x0f;,行端口输出,Y1,X1,Y2,Y3,Y4,X2,X3,X4,列端口输入,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,第十四章数码管的显示与键盘识别键盘识别,Page 17,5V,行端口输出,X1(PA4),X2(PA5),X3(PA6),X4(PA7),列端口输入,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,14.2.6 键盘反转法软件设计当所有行输出为0,列输入码若不全为1,说明有键按下;读入列值,存

13、入temp1;令所有列输出为0,读入行值,存入temp2;temp=temp1|temp2;查表,求键号或键值多键识别时需要依次扫描确定行列(shift+A)窜键问题:软件处理连续输入问题:需要考虑扫描策略,Y1(PA0),Y2(PA1),Y3(PA2),Y4(PA3),反转法示例程序:unsigned char KeyScan1()/反转法 unsigned char Keyvalue1;Keyvalue1=0 xFF;DDRA=0 x0F;PORTA=0 xF0;if(PORTA,第十四章数码管的显示与键盘识别键盘识别,Page 18,5V,Y1(PA0),X1(PA4),Y2(PA1),

14、Y3(PA2),Y4(PA3),X2(PA5),X3(PA6),X4(PA7),0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,第十四章数码管的显示与键盘识别键盘识别,14.2.7 键盘的扫描策略循环扫描:可行、可靠,占用CPU时间;定时扫描:可能丢失按键动作,需要确定扫描频率,触点接触时间在几十到几百ms量级;键盘中断:发现有任何按键按下时启动键盘扫描,需要设计相应的硬件电路,Page 19,示例程序:void main(void)/*put your own code here*/unsigned char Keyresult;showdata0=1;showdata1=2

15、;showdata2=3;showdata3=4;EnableInterrupts;Init_PORT();Show();for(;)Keyresult=KeyScan();/键盘扫描 if(Keyresult!=0 xFF)showdata0=Keyresult;Show();/显示,一、实验任务(1)在8位数码管上显示班级和学号,之间用小数点分隔。(2)在4个数码管上实现“0”字符跑马灯(3)编制实验一中的已知年月,求天数的C程序,将天数显 示在数码管中间两位上,前后放上分隔符“_ _”例如:(4)键盘输入年和月,在数码管上显示对应的天数。(5)键盘键盘输入班级和学号,并在8位数码管上显示。(6)自由发挥,如:组合键:F+1,显示班级;F+2,显示学号反转法识别键盘编制函数y=3*x+4,x由键盘输入,y用数码管显示菜单,Page 20,实验三、数码管的显示与键盘识别,第十章 单片机片内外模块并行I/O,二、硬件连线,Page 21,数码管12线连P口和T口,数码管12线连P口和T口,T口,P口,A口,键盘8根线接A口,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号