单片机的键盘与数码显示电路课件_第1页
单片机的键盘与数码显示电路课件_第2页
单片机的键盘与数码显示电路课件_第3页
单片机的键盘与数码显示电路课件_第4页
单片机的键盘与数码显示电路课件_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机技术基础教程与实践单片机的键盘与数码显示电路课件第第7章章 扫描数码管、键盘与点阵显示扫描数码管、键盘与点阵显示 7.1 扫描数码管显示扫描数码管显示(1)直接扫描数码管采用单独的引脚输出段码与位码,占用I/O引脚少,引脚数量等于8位(段码)加数码管的数量(位码),节省电源功率,但是浪费CPU时间,因为必须定时更换段码与位码,保证显示的连续性。需要点亮一个数码管一段时间(持续1ms以上),再切换到另外一个。例如三个数码管组成的显示器,数码管的工作点电流为10mA,2V压降,则可以采用30mA,33%占空比的电流工作,若是每个数码管显示时间为5ms,需要15ms完成一次显示,则每个数码管的

2、闪烁频率为66Hz。若是增加数码管数量,则占空比降低,若要保证亮度需要增加电流,但是最大不要超过100mA。图所示的是共阴极数码管的扫描工作接线图。单片机技术基础教程与实践单片机的键盘与数码显示电路课件.a11b7c4d2e1f10g5h3L12LM9RM8R6shuma2.a11b7c4d2e1f10g5h3L12LM9RM8R6shuma1共阴极s1s2s3s4s5s6s7s8VCC12345678JDATACON812345678JDSCON8Q19013Q29013Q3Q4Q5Q6Q7Q8Rsm115kRsm215kRsm315kRsm415kRsm515kRsm615kRsm715k

3、Rsm815ks1s2s3s4s5s6s7s8共阴极高电平有效高电平有效123456789Rs95101234JVCCCON4VCC.段驱动连接器IDATA与51单片机的P0口相连,位驱动连接器IDS与P2口相连,段驱动信号高电平有效,驱动晶体三极管9013的信号也是高电平有效。单片机技术基础教程与实践单片机的键盘与数码显示电路课件例题7-1直接扫描数码管8位共阴极数码管,采用扫描方式。输出1、2、3、4、5、6、7、8。#includeunsignedcharcodetable1=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0

4、x6f;/段码,高电平有效unsignedcharcodetable3=0 x01,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x80;/位码,高电平有效unsignedchari;/i是数码管扫描变量unsignedchara,b;/a、b是循环变量voidmain(void)while(1)for(i=0;i0;a-)/循环延时for(b=248;b0;b-);单片机技术基础教程与实践单片机的键盘与数码显示电路课件(2)总线法扫描数码管采用两个8D锁存器74373分时锁存段码与位码,则可以节省I/O引脚,例如8位数码管扫描显示可以采用10个I/O口实现。其中

5、8位用来分时送段码与位码,另外2位用于连接74373的锁存控制端,分别控制锁存段码与位码。100L E 1L E 2D 0D 1D 2D 3D 4D 5D 6D 7D 0D 1D 2D 3D 4D 5D 6D 7D 03Q 02D 14Q 15D 27Q 26D 38Q 39D 413Q 412D 514Q 515D 617Q 616D 718Q 719O E1L E11U 274H C 373D 03Q 02D 14Q 15D 27Q 26D 38Q 39D 413Q 412D 514Q 515D 617Q 616D 718Q 719O E1L E11U 374H C 373.a11b7c4

6、d2e1f10g5h3L12L M9R M8R6shum a2.a11b7c4d2e1f10g5h3L12L M9R M8R6shum a1s1s2s3s4s5s6s7s8s1s2s3s4s5s6s7s8图中的D0D7信号与P3口相连,LE1与LE2与P2_0和P2_1引脚相连。D0D7信号分时送出段码与位码。74373功能为:OE是输出使能控制,OE=1时,输出高阻,OE=0时,输出等于锁存器输出。LE为锁存控制端,LE=1时,锁存器输出与输入相同,LE=0时,锁存器锁存输入信号。单片机技术基础教程与实践单片机的键盘与数码显示电路课件例题7-2采用总线法扫描数码管,8位共阴极数码管,显示输出

7、数字1、2、3、4、5、6、7、8。源程序如下:#includeunsignedcharcodetable1=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/段码,高电平有效unsignedcharcodetable3=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;/位码,低电平有效unsignedchari;/i是数码管扫描变量unsignedchara,b;/a、b是循环变量voidmain(void)while(1)for(i=0;i0;a-)/延时for(b=24

8、8;b0;b-);单片机技术基础教程与实践单片机的键盘与数码显示电路课件7.2 扫描键盘扫描键盘扫描式键盘又叫行列式键盘或矩阵式键盘。用I/O口线组成行列结构,按键设置在行列的交点上。例如用22的行、列结构可构成4个键的键盘,44的行列结构可构成16个键的键盘。因此,在按键数量较多时,可以节省I/O口引脚。ANNIU2ANNIU3ANNIU4ANNIU6ANNIU7ANNIU8ANNIU10ANNIU11ANNIU12ANNIU1ANNIU5ANNIU9VCCANNIU14ANNIU15ANNIU16ANNI110Kkh0kh1kh2kh3KL0KL1KL2KL312

9、345678JKEYCON8kh0kh1kh2kh3KL0KL1KL2KL3.单片机技术基础教程与实践单片机的键盘与数码显示电路课件行、列线分别连接到按键开关的两端。行线通过上拉电阻接到电源VCC,被钳位在高电平状态。键盘中有无按键按下的判断方法是:将列线的所有I/O线均置成低电平,然后将行线电平状态读入。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入不全为1。若是列线为高4位,则可以判断低4位,如果低4位不全为1,则有按键按下。键盘中哪个键按下的判断方法是:由列线逐列置低电平后,检查行输入状态而确定的。其方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在

10、此列;如果不全为1,则所按下的键必在此列。而且是在此列与电平为0的行线相交的交点上的那个键。一旦找到哪个按键按下,就可以赋键值。单片机技术基础教程与实践单片机的键盘与数码显示电路课件例题7-34x4扫描键盘如下的键盘扫描程序,对图7-3所示的键盘进行扫描。P3高4位(P3_4P3_5)为列扫描(KL0KL3),顺序输出低电平;P3低4位为行扫描(Kh0Kh3),顺序读入数据,检测哪一行为0;源程序如下:#includeunsignedcharcodetable=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 x88,0

11、 x83,0 xc6,0 xA1,0 x86,0 x8e;/共阳数码管的十六进制-7段译码表unsignedchartemp;/暂存变量unsignedcharkey;/键值变量unsignedchari,j;/循环变量单片机技术基础教程与实践单片机的键盘与数码显示电路课件voidmain(void)while(1)P3=0 xff;/使P3口输出高电平,准备接收输入信号P3_4=0;/使P3_4为0,然后检测键盘,如果低4位不等于F,表示键盘按下temp=P3;/将P3口数值保存在变量temptemp=temp&0 x0f;/取低4位if(temp!=0 x0f)/如果低4位不等于1111,

12、则表示按键按下for(i=50;i0;i-)for(j=200;j0;j-);/延迟时间,消除抖动temp=P3;temp=temp&0 x0f;if(temp!=0 x0f)/如果低4位还是不等于1111temp=P3;temp=temp&0 x0f;单片机技术基础教程与实践单片机的键盘与数码显示电路课件switch(temp)/根据低4位的值,用分支语句确定键值case0 x0e:/如果P3低4位为1110,所以11101110key=7;break;case0 x0d:/如果P3低4位为1101,所以11101101key=8;break;case0 x0b:/如果P3低4位为1011,

13、所以11101011key=9;break;case0 x07:/如果P3低4位为0111,所以11100111key=10;break;temp=P3;P1_0=P1_0;P0=tablekey;/P0口相连的数码管显示键值temp=temp&0 x0f;while(temp!=0 x0f)/等待按键抬起P3口的低4位等于1111temp=P3;temp=temp&0 x0f;单片机技术基础教程与实践单片机的键盘与数码显示电路课件P3=0 xff; P3_5=0;/使P3_5为0,然后检测键盘,如果低4位不等于F,表示键盘按下temp=P3;temp=temp&0 x0f;if(temp!=

14、0 x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp&0 x0f;if(temp!=0 x0f)temp=P3;temp=temp&0 x0f;单片机技术基础教程与实践单片机的键盘与数码显示电路课件switch(temp)case0 x0e:/如果P3低4位为1110,所以11011110key=4;break;case0 x0d:/如果P3低4位为1101,所以11011101key=5;break;case0 x0b:/如果P3低4位为1011,所以11011011key=6;break;case0 x07:/如果P3低4位为011

15、1,所以11010111key=11;break;temp=P3;P1_0=P1_0;P0=tablekey;temp=temp&0 x0f;while(temp!=0 x0f)temp=P3;temp=temp&0 x0f;单片机技术基础教程与实践单片机的键盘与数码显示电路课件P3=0 xff;P3_6=0;/使P3_6为0,然后检测键盘,如果低4位不等于F,表示键盘按下temp=P3;temp=temp&0 x0f;if(temp!=0 x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp&0 x0f;if(temp!=0 x0f)te

16、mp=P3;temp=temp&0 x0f;单片机技术基础教程与实践单片机的键盘与数码显示电路课件switch(temp)case0 x0e:/10111110key=1;break;case0 x0d:/10111101key=2;break;case0 x0b:/10111011key=3;break;case0 x07:/10110111key=12;break;temp=P3;P1_0=P1_0;P0=tablekey;temp=temp&0 x0f;while(temp!=0 x0f)/等待按键松开temp=P3;temp=temp&0 x0f;单片机技术基础教程与实践单片机的键盘与

17、数码显示电路课件P3=0 xff;P3_7=0;/使P3_7为0,然后检测键盘,如果低4位不等于F,表示键盘按下temp=P3;temp=temp&0 x0f;if(temp!=0 x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp&0 x0f;if(temp!=0 x0f)temp=P3;temp=temp&0 x0f;单片机技术基础教程与实践单片机的键盘与数码显示电路课件switch(temp)case0 x0e:/01111110key=0;break;case0 x0d:/01111101key=13;break;case0 x0

18、b:/01111011key=14;break;case0 x07:/01110111key=15;break;temp=P3;P1_0=P1_0;P0=tablekey;/显示按键值temp=temp&0 x0f;while(temp!=0 x0f)temp=P3;temp=temp&0 x0f;单片机技术基础教程与实践单片机的键盘与数码显示电路课件7.3 发光二极管点阵显示发光二极管点阵显示点阵发光二极管器件内部如图所示。若是行加高电平,列加低电平,则行列交叉点的发光二极管亮,其实可以把每一行相连的8个发光二极管看作一个数码管的8个段,列相当于段,行相当于行,若是列加段码,行加位码,就与共

19、阳极扫描数码管显示的情况相同。列.12345678行1行2行8.单片机技术基础教程与实践单片机的键盘与数码显示电路课件如图所示,若要显示数字1,则需要8个列码为:0 xff,0 xff,0 xff,0 xff,0 xde,0 x80,0 xfe,0 xff。因为使共阳接线方式,所以列码为0(低电平)的位置,发光二极管亮。1 2345678123456780000000001011111111111111111111111111111111111111111111111111111ff ff ff ff de 80 fe ff.行扫描.列值.单片机技术基础教程与实践单片机的键盘与数码显示电路课件

20、例题7-4发光二极管点阵定时顺序显示数字09。公共端为阳极(行),连接PNP型晶体管9102的集电极,9012基极信号为低电平有效。列控制低电平有效。每给定一次列数据,就扫描1行,列数据值为零的发光二极管,由于在行公共端上加高电平,会被点亮。对应8列数据,扫描8次,完成1次显示。单片机的P0口输出行扫描信号,顺序输出低电平;P2口输出列数据。VCC12345678JJZDATACON8RA0510RA1510RA2510RA3510RA4510RA5510RA6510RA7510H41H22C23C34H15C56H37H68H89C410C611H512C113H714C715C816共阳点

21、阵H( 阳 极 公 共 端 )JuzhenLEDJZ12345678JJZDSCON8Rj110kRj210kRj310kRj410kRj510kRj610kRj710kRj8低电平有效QP19012QP29012QP39012QP49012QP59012QP69012QP79012QP89012H1H2H3H4H5H6H7H8H1H2H3H4H5H6H7H8低电平有效.单片机技术基础教程与实践单片机的键盘与数码显示电路课件#includeunsignedcharcodetab=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;/行扫描表,低电平有

22、效(驱动9012)unsignedcharcodedigittab108=0 xff,0 xff,0 xc1,0 xbe,0 xbe,0 xbe,0 xc1,0 xff,/00 xff,0 xff,0 xff,0 xff,0 xde,0 x80,0 xfe,0 xff,/10 xff,0 xff,0 xd8,0 xba,0 xba,0 xba,0 xc6,0 xff,/20 xff,0 xff,0 xff,0 xb6,0 xb6,0 xb6,0 xc9,0 xff,/30 xff,0 xff,0 xf3,0 xeb,0 xdb,0 x80,0 xfb,0 xff,/40 xff,0 xff,0

23、 x8d,0 xae,0 xae,0 xae,0 xb1,0 xff,/50 xff,0 xff,0 xc1,0 xb6,0 xb6,0 xb6,0 xd9,0 xff,/60 xff,0 xff,0 xbf,0 xbf,0 xbf,0 xb0,0 x8f,0 xff,/70 xff,0 xff,0 xc9,0 xb6,0 xb6,0 xb6,0 xc9,0 xff,/80 xff,0 xff,0 xcd,0 xb6,0 xb6,0 xb6,0 xc1,0 xff;/9,/字型码,8个列数据组成一个数字,低电平有效unsignedinttimecount;/每个数字显示时间变量unsignedcharcnta;/行数据扫描变量unsignedcharwdn;/更换显示数字的字变量单片机技术基础教程与实践单片机的键盘与数码显示电路课件voidmain(void)TMOD=0 x01;/定时器0,模式1TH0=(65536-3000)/256;/设置初值TL0=(65536-3000)%256;TR0=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论