键盘显示程序的设计说明.doc

键盘显示程序的设计说明.doc

ID:57338371

大小:794.00 KB

页数:10页

时间:2020-08-12

键盘显示程序的设计说明.doc_第1页
键盘显示程序的设计说明.doc_第2页
键盘显示程序的设计说明.doc_第3页
键盘显示程序的设计说明.doc_第4页
键盘显示程序的设计说明.doc_第5页
资源描述:

《键盘显示程序的设计说明.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验四键盘显示程序设计实验目的1、理解串行接口键盘单片机c语言程序的基本结构2、了解单片机c语言程序的设计和调试方法3、掌握几个的基本的传送类、控制类指令的使用方法实验仪器单片机开发板、稳压电源、计算机实验原理1按键下图为一个典型的接触式按键(又称轻触开关)。下图是该按键的工作特性图。其中蓝色的线表示按键未被按下之时的状态,我成为初始状态,它是不导通的;而绿色的线是却永久导通的。所以我们取(1,2)、(1,4)、(3,2)、(3,4)四种组合,都可以起到我们预期的开关作用。2按键电平的判定。先看下图当按键按下以后,请问如果这时用万用表测量导线上任何一处的电压,得到的结果是V

2、CC还是GND的电压?答案是:GND,即表示测出的电压为0V。因为导线上,对于两端的电平是一种类似于程序语言逻辑运算里面的“与”,即对于导线两端:有零即为零,只有全为一是才为一。3独立按键键盘分为编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘。而靠软件编程来识别的键盘称为非编码键盘,在单片机组成的各种系统中,用的较多的是非编码键盘。非编码键盘又分为独立键盘和行列式键盘(常说的矩阵键盘)。单片机的IO口既可作为输出也可作为输入使用,当检测按键时用的是它的输入功能,我们把按键的一端接地,另一端与单片机的某个I/O

3、口相连,开始时先给该IO口赋一高电平,然后让单片机不断地检测该I/O口是杏变为低电平,当按键闭合时,即相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为低电平则说明按键被按下,然后执行相应的指令。(2)按键抖动理论上讲,按键按下去后的点评应该为上图,实际上是下图。在高低电平直接有一段锯齿一样的波形,这就是所谓的按键抖动。一般手动按下一次键然后接着释放,按键两片金属膜接触的时间大约为50ms左右,在按下瞬间到稳定的时间为5-10ms,在松开的瞬间到稳定的时间也为5-10ms,如果我们再首次检测到键被按下后延时10ms左右再去检测,这时如果是干扰信号将不会

4、被检测到,如果确实是有键被按下,则可确认,以上为按键识别去抖动的原理。(3)独立按键开发板独立按键电路图如下:独立按键一共5个,分别连接在单片机的P3.0到P3.4口。去抖动的方式,我们采用软件延时的方法。过程如下:1先设置IO口为高电平(一般上电默认就为高)2读取IO口电平确认是否有按键按下3如有IO电平为低电平后,延时几个ms4再读取该IO电平,如果任然为低电平,说明对应按键按下5执行相应按键的程序4矩阵按键独立键盘与单片机连接时,每一个按键都需要单片机的一个I/O口若某单片机系统需较多按键,如果用独立按键便会占用过多的I/O口资源。单片机系统中I/O口资源往往比较宝贵

5、,当用到多个按键时为了节省I/O口口线,我们引入矩阵键盘。我们以4X4矩阵键盘为例讲解其工作原理和检测方法。将16个按键排成4行4列,第一行将每个按键的一端连接在一起构成行线,第一列将每个按键的另一端连接在一起构成列线,这样便一共有4行4列共8根线,我们将这8根线连接到单片机的8个I/O口上,通过程序扫描键盘就可检测16个键。首先看一下电路图上图是一个4X4的矩阵键盘,一共是16个按键。我们照习惯称横为“行”,“竖”为列。那么5、6、7、8我们称之为“行线”,则1、2、3、4称为“列线”。要正确记住各个行列线各自对应的IO。现在详细讲述一下矩阵键盘扫描的原理和步骤:扫描矩阵

6、键盘,即是把某一条(只有一条)行线置为低电平,而列线全部置为输入方向,然后检测列线,如果检测到某一条列线是低电平,那么就表示位于这条列线与输出低电平的行线的交点处的按键被按下了。要扫描16个按键,就依次以这样的方法扫描16次,之后就可以确定哪一个按键被按下了。当然这里也少不了延时消除按键抖动的环节。实验内容:P0口连接数码管,P1口连接矩阵键盘。实验连接图如下请大家根据以上内容和提示,编写程序,完成实验。实验功能是数码管静态显示矩阵按键数值0—F.显示顺序如下:FEDCBA9876543210#include#defineGPIO_DIGP0//定义P0口

7、为GPIO_DIG#defineGPIO_KEYP1//定义P1口为GPIO_KEYunsignedcharcodeDIG_CODE[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};数码管静态共阴极编码unsignedcharKeyValue;//(KeyValue什么作用?)voidDelay10ms(unsignedintc);//延时10ms(完成下面的延时程序)voidKeyDown(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。