第07章 单片机应用系统中的按键与显示_第1页
第07章 单片机应用系统中的按键与显示_第2页
第07章 单片机应用系统中的按键与显示_第3页
第07章 单片机应用系统中的按键与显示_第4页
第07章 单片机应用系统中的按键与显示_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、授课教师:左敬龙授课教师:左敬龙电话:电话:1382868066013828680660短号:短号:6801268012邮箱:邮箱:单片机原理及应用单片机原理及应用按键的分类编码键盘 键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘。非编码键盘 靠软件编程来识别的称为非编码键盘。 在单片机组成的各种系统中,用的最多的是非编码键盘。例如在洗衣机控制面板上,用非编码按键来设置洗衣机的功能。按键的抖动按键的抖动 图图7-1 7-1 按键与单片机的连接按键与单片机的连接 图图7-2 7-2 按键的抖动过程按键的抖动过程键盘的抖动时间一般为键盘的抖动时间一般为5

2、 510ms10ms,抖动现象会引起抖动现象会引起CPUCPU对对一次键操作进行多次处理,从而可能产生错误一次键操作进行多次处理,从而可能产生错误。消除抖动的方法: 硬件去抖动 采用RS触发器去抖动。 软件去抖动 检测到按键按下后,软件延时1020ms后再确认该键是否确实按下,消除抖动影响。单片机应用系统中的按键与显示独立式按键1矩阵式按键2发光二极管3LED数码管4独立式按键1液晶显示器5一、独立式按键特点: 1)各按键相互独立,电路配置灵活; 2)软件简单; 3)按键数量较多时,I/O线耗费较多,只适 用于按键数量较少的场合。图7-4 独立式按键电路图7-4(a) 独立式按键扫描C语言程序

3、如下:#includevoid delay10ms(void);void processk0(void);void processk1(void);void processk2(void);void main()unsigned char key;while(1)P1=0 xff;keyP1;if(P1!=0 xff)delay10ms();key=P1; else continue;while(P1!=0 xff);switch(key)case 0 xfe: processk0();break;case 0 xfd: processk1();break;case 0 xfb: proces

4、sk2();break;default: continue;练习有三个独立式按键的电路如图74(a)所示,当有按键P1.0按下时P0端口输出100的二进制值,P1.1按下时P0端口值加1,P1.2按下时P0端口值减1。二、矩阵式键盘特点:占用I/O线较少,适合按键数目较多的场合, 但软件较复杂。常用的键盘工作方式有查询方式和中断方式。图7-5 矩阵式键盘结构1 查询方式键盘扫描过程包括下列四个步骤(以图7-5为例): 判别键盘上有无按键按下。方法为列线(P1.4P1.7)置低电平,行线(P1.0P1.3)置输入状态(高电平“1”)。读行线的状态,若为全“1”,则键盘无按键按下;若不全为“1”,

5、则有按键按下。 去除按键的抖动影响。方法是当判别到有按键按下时,软件延时一段时间(一般为10 ms左右)后,再判断键盘状态,如果仍为有按键按下状态,则认为有一个确定的按键被按下。 求键值(键号)。按照图7-5中的16个按键,每行的行号依次为:0、1、2、3,列号依次为0、1、2、3,则闭合按键的键号可以用公式计算获得:键号=行号4+列号。 判断按键是否释放,按键闭合一次仅进行一次按键功能操作,等按键释放以后再将键号送入累加器A中,然后执行按键指定的功能操作。实时查询定时查询#include#include#define uchar unsigned char#define uint unsig

6、ned int/矩阵键盘按键特征码表uchar code KeyCodeTable=0 x11,0 x12,0 x14,0 x18,0 x21,0 x22,0 x24,0 x28,0 x41,0 x42,0 x44,0 x48,0 x81,0 x82,0 x84,0 x88;void DelayMS(uint x)uchar i;while(x-) for(i=0;i120;i+);例:数码管显示例:数码管显示4X44X4矩阵键盘按键号矩阵键盘按键号 按下任意键时,数码管都会显示其键的序号,扫描程序首先判断按键发生在哪一列,然后根据所发生的行附加不同的值,从而得到按键的序号。 /键盘扫描uch

7、ar Keys_Scan()uchar sCode,kCode,i,k;P1=0 xf0; if(P1&0 xf0)=0 xf0) return (-1);DelayMS(2); /若高4位出现0,则有键按下if(P1&0 xf0)=0 xf0) return (-1);sCode=0 xfe;/行扫描码初值for(k=0;k4;k+) /对4行分别进行扫描P1=sCode;if(P1&0 xf0)=0 xf0) sCode=_crol_(sCode,1);continue;kCode=P1;for(i=0;i16;i+) /查表得到按键序号并返回if(kCode=Ke

8、yCodeTablei) return i; /主程序void main()uchar i,P2_LED,P3_LED;uchar KeyNo=-1;/按键序号,-1表示无按键while(1) KeyNo=Keys_Scan();/扫描键盘获取按键序号KeyNo if(KeyNo!=-1) P2_LED=0 xff;P3_LED=0 xff;for(i=0;i=KeyNo;i+) if(i=1;elseP2_LED=1;P3=P3_LED; /点亮条形LEDP2=P2_LED;2 中断扫描 当键盘上有按键闭合时产生中断请求,单片机响应中断请求后,转去执行中断服务程序,在中断服务程序中判断键盘中

9、闭合按键的键号,并做相应的处理。特点:提高了单片机的工作效率。特点:提高了单片机的工作效率。图图7-6 7-6 中断式键盘接口电路中断式键盘接口电路三、三、 发光二极管发光二极管 (常用来显示设备的运行状态)(常用来显示设备的运行状态) 发光二极管(Light Emitting Diode,LED)与普通的二极管一样由一个PN结组成。当正向连接时,即P接正极、N接负极时二极管导通;反之,二极管截止。这就是二极管的单向导电特性。导通时,若有足够的正向电流通过发光二极管,发光二极管便会发光。 根据制造材料的不同可以发出红、黄、绿、白等不同色彩的可见光来。图图7-7 7-7 发光二极管的图形符号和实

10、物图发光二极管的图形符号和实物图八只发光二极管组成的驱动电路四、四、 LEDLED数码管数码管 (可以显示各种数字和字符)(可以显示各种数字和字符) 常用的LED数码管是七段LED数码管,由八个发光二极管组成。LED数码管分为共阴极和共阳极两种。 为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节,通常称为段选码(显示代码)。段选码与数据位的对应关系如下:图7-10 数码管显示字段排列顺序LED数码管工作原理最低位最高位LED数码管显示段码表1、LED数码管静态显示所谓静态显示,是指数码管显示某一字符时,相应的 发光二极

11、管恒定导通或恒定截止,公共端恒定接地 (共阴极)或接正电源(共阳极)。优点:显示控制程序简单,显示亮度大,占用CPU时 间少,显示稳定可靠。:静态显示占用的I/O口线较多,或者需要增 加额外的硬件电路,硬件成本较高。 1位静态显示电路如下:编写10秒倒计时显示程序。练习:三位LED数码管静态显示电路74LS377为八位锁存器,用于锁存显示代码。例:设在内部RAM30H单元中存储一个十进制数D(D255)。编写程序将该数的百分位显示在左边的数码管上,十分位显示在中间的数码管上,个分位显示在右边的数码管上。2 LED数码管动态显示 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪

12、一位数码管有效。动态显示实际上是逐个地循环点亮各个数码管,但由于LED具有余辉特性以及人眼也有视觉暂留特性,使人看起来就好像在同时显示不同的字符一样。优点:简化硬件线路。 缺点:比静态显示要暗一点,消耗单片机较多的运行 时间。图7-13 LED数码管动态显示电路首先扫描该位五、液晶显示 液晶显示(Liquid Crystal Display,LCD)是一种体积小、重量轻、功耗低的显示器件,被广泛应用于单片机应用系统。目前已广泛应用在各种显示领域,尤其在袖珍仪表和低功耗应用系统中。段型:像七段LED一样,显示内容由显示段组成,其显示方式和接口形式与七段LED数码管相似。主要用于批量大、显示内容固

13、定的产品。字符型:主要由LCD控制器、LCD驱动器和LCD显示器三部分组成,常将他们称为液晶显示模块。他们一般都自带ASCII码点阵字库,显示时只需提供显示字符的ASCII代码即可,硬件接口和软件编程都很简单。:点阵信息的组合显示指定内容。更加灵活方便,可显示字符、汉字、图形等内容,但控制也较为复杂,一般用于图像显示场合。1 1、 LCD1602LCD1602液晶显示模块液晶显示模块http:/offwww.go- 0选指令寄存器选指令寄存器IRIR,1 1选数据寄存器选数据寄存器DRDR0505R/WR/W0 0写操作,写操作,1 1读操作读操作0606E E下降沿使能有效下降沿使能有效07

14、-1407-14D0-D7D0-D78 8位双向数据总线,位双向数据总线,4 4位传送时使用高位传送时使用高4 4位位1515BLABLA背光正极背光正极1616BLKBLK背光负极背光负极2、LCD1602工作原理核心控制芯片:HD44780由指令寄存器IR、数据寄存器DR、字符发生器CGROM、自定义字符发生器CGRAM和显示缓冲区DDRAM等功能部件组成。IR用来存放由微控制器送来的指令代码,如光标归位、清除显示等;DR用来存放欲显示的数据。显示的次序是先把要存放数据的地址写入IR,再把要显示的数据写入DR,DR就会自动把数据送至相应的DDRAM或CGRAM地址。字符发生器CGROM存储

15、了不同的点阵字符图形。包括数字、大小写英文字母、常用的符号和日文字符等。每一个字符都有一个固定的代码,如表所示。 DDRAM DDRAM有有8080个单元,但第个单元,但第1 1行仅用行仅用00H00H0FH0FH单单元,第元,第2 2行仅用行仅用40H40H4FH4FH单元。如上图所示。单元。如上图所示。DDRAMDDRAM单元存放的是要显示字符的单元存放的是要显示字符的ASCIIASCII编码,编码,控制器以该编码为索引,到控制器以该编码为索引,到CGROMCGROM或或CGRAMCGRAM中中取点阵字形送液晶板显示。取点阵字形送液晶板显示。LCD1602的操作命令LCD1602的操作命令

16、(1)命令1:清屏。光标回到屏幕左上角,地址计数器设置为0。命令2:光标归位。光标回到屏幕左上角,显示内容不变。命令3:输入模式设置,每写入一个数据字节后,光标及字符的移动设置。I/D=0,S=0时,光标左移一格且地址计数器减1;I/D=1,S=0时,光标右移一格且地址计数器加 1;I/D=0,S=1时,屏幕内容全部右移一格,光标不动;I/D=1,S=1时,屏幕内容全部左移一格,光标不动。命令4:显示与不显示设置。D=1:开启显示屏,D=0:关闭显示屏。C=1,开启光标,C=0,关闭光标。B=1,光标闪烁,B=0,光标不闪烁。命令5:光标或屏幕内容移位选择。S/C=1,移动屏幕内容,S/C=0

17、,移动光标。R/L=1,右移,R/L=0,左移。命令6:功能设置。DL=0,设为4位数据接口,DL=1,设为8位数据接口。N=0,单行显示,N=1,双行显示。F=1,510字形,F=0,57字形。命令7:CGRAM地址设置,地址范围00H3FH(共64个单 元,对应8个自定义字符)。命令8:DDRAM地址设置,地址范围00H7FH。命令9:读忙标志和计数器地址。BF=1,表示忙,此时模块不能接收命令或者数据,BF=0,表示不忙,可以接收送来的数据或指令。命令10:写DDRAM或CGROM。要配合地址设置命令。命令11:读DDRAM或CGROM。要配合地址设置命令。LCD1602的操作命令(2)3 3、LCD1602LCD1602应用举例应用举例单片机与LCD1602模块的接口电路如图所示。LCD1602LCD1602编程思路编程思路1.初始化:清屏、显示方式(单双行、5*7、5*10)、光标闪烁移动、字符闪烁移动等2.检查“忙”标志BF。3.写入显示地址位置(IR

温馨提示

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

评论

0/150

提交评论