版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 键盘和显示器的应用,键盘用于实现单片机应用系统中的数据信息和控制命令的输入,按结构可分为编码键盘和非编码键盘。编码键盘上闭合键的识别由专用的硬件编码器实现,并产生相应的键码值,如计算机键盘。非编码键盘是通过软件的方法产生键码,不需要专用的硬件电路。为了减少电路的复杂程度,节省单片机的I/O口,在单片机应用系统中广泛使用非编码键盘,主要对象是各种按键或开关。这些按键或开关可以独立使用(称之为独立键盘),也可以组合使用(称之为矩阵式键盘)。,由于按键的闭合与断开都是利用其机械弹性实现的,当机械触点断开、闭合时,会产生抖动,这种抖动操作用户感觉不到,但对CPU来说,其输出波形则明显发生变化
2、.按键按下和释放时的抖动时间一般为 1020ms ,按键的稳定闭合期由操作用户的按键动作决定,一般为几百毫秒到几秒,而单片机CPU的处理速度在微秒极,因此,按键的一次闭合,有可能导致CPU的多次响应。,实例4-1 独立按键编号显示 任务要求:单片机端口连接3个按键,从13进行编号,如果其中一个按键按下时,则在LED数码管上显示相应的按键编号。,#include MSP430f249.h unsigned char const table= 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
3、,0 x5e,0 x79,0 x71; /共阴数码管段选码表,无小数点 void delayus(unsigned int t) unsigned int i; while(t-) for(i=1330;i0;i-); unsigned char ReadKey(void) unsigned char temp; temp= P3IN if(temp!= 0 x07), delayus(10); /等待按键抖动时间 if(temp = (P3IN ,void main(void) unsigned char key,i; WDTCTL=WDTPW + WDTHOLD; / 关闭看门狗 P1DI
4、R=0 xFF; / 设置方向 P1OUT=0 x00; P3DIR = 0 x00; /P3口作为键盘输入 while(1) key = ReadKey(); switch(key) case 0 x06: P1OUT=table1; break; case 0 x05: P1OUT=table2; break; case 0 x03: P1OUT=table3; break; ,实例4-2 矩阵键盘编号显示 任务要求:将44矩阵式键盘编号,如果其中一个按键按下时,则在LED数码管上显示相应的按键编号。,确定矩阵式键盘上哪个键被按下通常采用行扫描法,又称为逐行(或列)扫描查询法,其软件主要基
5、于扫描方式完成。关于键盘扫描查询的程序大致可分为以下几个步骤: (1)检测当前是否有键被按下。 首先看输入的列线,假设4条行线都输出低电平,4条列线都是上拉至VCC的,在没有任何按键按下时4条列线输入都为“1”。但当与某一条行线相连的4个按键中的任何一个被按下时,这条列线将输入低电平,即当某条列线输入低电平时,必定是连接在这条列线上的某个按键被按下了。 (2)去除键抖动。 当检测到有键被按下后,延时一段时间再作下一步的检测判断。 (3)若有键被按下,检测出是哪一个键被按下。,程序说明:主程序通过调用键盘扫描程序获取键值,并通过数码管显示出键盘编号。键盘扫描首先通过读取列线输入,如果不是全为1,
6、则延迟20ms后再次判断列线是否全为1,如果依旧不是全为1,可以确定是稳定的按键动作;通过逐行扫描的方式得到按键的位置。从程序上来看还存在两个问题:一是按键扫描中延迟去抖需要20ms的时间,浪费的单片机的运算资源。二是在扫描到按键后如果按键按下不动,主程序会得到多个相同的键值,即重复按键,这种情况可以通过判断按键弹起的动作予以解决。,4.2 LED点阵显示,LED点阵显示器与LED数码管类似,常用的工作方式有静态显示和动态显示两种方式。所谓静态显示,就是当显示器显示一个字符时,相应的发光二极管始终保持导通或截止,在显示的这个过程中,其状态是静止不变的,直到一个字符显示完毕,将要显示下一个字符时
7、其状态才改变。而动态显示方式则不同,它在显示每一个字符的过程中,都是按列(或行)不停扫描,一位一位地轮流点亮要显示的各个位,如此反复循环。动态显示方式利用了人眼的视觉暂留性质,当扫描的速度足够快时,可以得到静态的显示效果。由于 LED点阵引脚设计的特殊性,一般采用动态扫描显示方式。,实例4-3 88 LED点阵数字显示 任务要求:利用MSP430F249单片机控制一个88 LED点阵显示器,使其循环显示数字09。,4.2.3 1616汉字点阵显示,74HC595的逻辑功能是在串行移位时钟SHCP的上升沿,将串行数据输入DS的数据,从低位到高位依次移入内部的寄存器中,当8个数据都移入后,若OE为
8、低电平,通过STCP 的上升沿将8个数据输出到Q0Q7引脚上。由于74HC595输出电流较大,可以直接驱动LED,因此,在亮度要求不高的设计中,可以直接将74HC595输出端连接到LED点阵。一片74HC595能驱动一个8位的点阵列输入,若需要驱动多个点阵,则可利用74HC595的Q7串行数据输出端,将多个74HC595串联起来使用 。,另外,由于74HC595串行数据时钟和锁存时钟是独立的,移位时钟SHCP的上升沿将串行数据移入内部的寄存器后,在锁存时钟STCP的作用下才会输出到Q0Q7。当多片74HC595级联驱动点阵的时候,通过同一个锁存时钟STCP,在所有列数据准备好后,启动锁存信号使
9、所有数据同时锁存并输出,满足多个点阵列数据并行输出的目的。串行数据时钟,串行数据输入对于430单片机可以通过内部的SPI接口实现高速数据传输,也可以采用I/O端口模拟所需的时序的方式。,字模提取软件,实例4-4 1664 LED点阵汉字显示 任务要求:利用16个88点阵构成4个1616点阵,显示四个汉字字符:“中国你好”。 74HC595首尾串行连接,每两片驱动一个1616点阵的列,一共有8片74HC595,所有74HC595共用SHcp和STcp时钟信号,在单片机输出的SHcp驱动下,数据从DS端输入到第一片74HC595的DS端,经过8个时钟脉冲将第一个数据输出到第一片74HC595,在下
10、一个时钟脉冲的作用下,一方面第一片74HC595继续接收数据,另一方面将接收的数据移位输出到第二片74HC595,如此经过16x8 = 256个时钟的驱动,可将所有的行数据保存在16个74HC595内部寄存器中,再经过STcp锁存信号驱动输出到LED点阵。同时单片机此时应输出行的编号,通过74HC154选通行信号点亮汉字字模对应的LED。当所有的行扫描结束后再次循环,从而输出所需的汉字。,4.3 LCD液晶显示器的应用,清屏指令代码为0 x01,单片机向1602的数据端口写入0 x01后,1602自动将本身DDRAM的内容全部填入“空白”的ASCII 代码0 x20,并将地址计数器AC的值设为
11、0,同时光标归位,即将光标撤回液晶显示屏的左上方。此时显示器无显示。 光标归位指令代码为0 x02或0 x03。其主要功能是把地址计数器(AC)的值设置为0,保持DDRAM的内容不变,同时把光标撤回到显示器的左上方。 模式设置指令中,当I/D为0时,写入新数据后光标右移,当I/D为1时,写入新数据后光标左移显示不移动。当S=0时,写入新数据后显示屏幕不移动,当S=1时,写入新数据后显示屏幕整体右移1个字符。如指令代码为0 x06时,光标随写入数据自动右移。,显示开关控制指令中,D为0时关显示功能,为1开显示功能;C为0时无光烁,为1时有光烁;B为0时光标闪烁,为1时光标不闪烁。如指令码为0 x
12、0C,设置为显示功能开,无光标,光标不闪烁。 屏幕光标指令中,S/C、R/L设定为0、0时光标左移1格,且AC减1;S/C、R/L设定为0、1时光标右移1格,且AC加1;S/C、R/L设定为1、0时显示器上的字符左移1格,光标不动;S/C、R/L设定为1、1时显示器上的字符右移1格,光标不动。如指令码0 x14,设置为AC+1,光标右移1格(打字的效果)。 功能设定指令主要是设置1602的初始工作状态。其中DL为0 时,数据总线为4位,为1时,数据总线为8位;N为0时显示1行,为1时显示2行;F为0 时,1602显示的一个字符为 57点阵,F为1时为510点阵。如指令码为0 x38,1602被
13、设置成为8位并行数据接口,显示2行,57点阵显示。,设定CGRAM/DDRAM(字符发生存储器地址/数据存储器地址)指令有0 x40 + 地址、0 x80 + 地址两个。0 x40是设定CGRAM地址命令,地址是指你要设置CGRAM的地址;0 x80是设定DDRAM地址命令,地址是指要写入的DDRAM地址。 读取忙信号或AC地址指令中,RS=0、R/W=1,单片机读取忙碌信号BF的内容。当BF=1时,表示液晶显示器忙,暂时无法接收单片机送来的数据或指令,当BF=0时,液晶显示器可以接收单片机送来的数据或指令,同时单片机读取地址计数器(AC)的内容。 写入CGRAM/DDRAM数据操作中,RS=1、R/W=0,单片机可以将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符,也可以将用户自己设计的图形存入CGRAM。 从CGRAM/DDRA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026共青城市国有资产监督管理局招聘合同制工作人员1人(江西)笔试备考题库及答案解析
- 2026中移铁通中移建设四川分公司招聘笔试备考试题及答案解析
- 2026吉林省省直事业单位招聘19人(5号)笔试备考试题及答案解析
- 2026江西信丰铭利达科技有限公司诚聘英才54人笔试备考试题及答案解析
- 2026上半年四川事业单位统考金堂县教育局考试招聘中小学教师53人笔试模拟试题及答案解析
- 2026年河北邯郸市第一医院医疗健康集团春季博硕人才选聘53人笔试备考试题及答案解析
- 2026年泸州医疗器械职业学院单招综合素质考试题库附答案详解
- 2025浙江宁波市象山县商贸集团有限公司第四期招聘招聘岗位笔试历年备考题库附带答案详解
- 2025浙江温州市粮油储运有限公司招聘3人笔试历年难易错考点试卷带答案解析2套试卷
- 2025河南中豫国际港务集团有限公司二季度招聘35人笔试历年难易错考点试卷带答案解析
- 高校交通安全课件
- 雨课堂在线学堂《医学实验技术与方法新进展》单元考核测试答案
- 雨课堂在线学堂《文化差异与跨文化交际》单元考核测试答案
- 机械设计程序
- 2026年山东圣翰财贸职业学院单招职业技能考试题库及答案1套
- 2025年医保培训试题(答案+解析)
- 《新污染物治理技术》-课件 第1章 新污染物简介
- 高效课堂建设+课件-2025-2026学年上学期教法探讨
- 2025年天津商务职业学院专任教师及专职辅导员岗位招聘10人方案笔试备考题库及参考答案详解一套
- 助产士规培考试题及答案
- 车队防春困安全培训课件
评论
0/150
提交评论