单片机原理及应用c语言

单片机原理及应用c语言

ID:26700111

大小:2.43 MB

页数:118页

时间:2018-11-28

单片机原理及应用c语言_第1页
单片机原理及应用c语言_第2页
单片机原理及应用c语言_第3页
单片机原理及应用c语言_第4页
单片机原理及应用c语言_第5页
资源描述:

《单片机原理及应用c语言》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单片机原理及应用(C语言版)第9章单片机系统配置及接口主编:周国运本章制作:鲁庆宾中国水利水电出版社第9章单片机系统配置及接口目录9.1键盘接口9.2LED显示接口9.3A/D转换接口9.4D/A转换接口9.5开关器件接口本章要点单片机主要应用于测控系统中,应用系统通常需要人的干预。本章主要讲述键盘、显示器、A/D转换器、D/A转换器、开关器件等的工作原理及接口电路。第9章单片机系统配置及接口图9-1单片机应用系统配置框图9.1键盘接口主要内容9.1.1键盘基本问题9.1.2键盘结构及处理程序9.1.3中断扫描方式1、键的识别当按键K未被按下时,P1.0输入为高电平

2、;当K闭合时,P1.0输入为低电平。9.1.1键盘基本问题图9-2按键电路2、键的抖动由于机械触点的弹性作用,按键在闭合时不会马上稳定地接通,在断开时也不会一下子断开。在闭合及断开的瞬间均伴随有一连串的抖动,如图9-3所示。抖动时间一般为5~10ms。抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅做一次处理,必须去除键抖动。9.1.1键盘基本问题9.1.1键盘基本问题图9-3按键时的抖动9.1.1键盘基本问题一.独立式键盘独立式按键是指各按键相互独立地接通一条输入数据线。当任何一个键按下时,与之相连的输入数据线即可读入数据0,而没有按下时读入1。9.1.

3、2键盘结构及处理程序优点:电路简单;缺点:键数较多时,要占用较多的I/O线。图9-4独立式键盘例9-1设计一个独立式按键的键盘接口,并编写键扫描程序,电路原理图如图9-4所示,键号从上到下分别为0~7。C语言程序清单:#includevoidkey(){unsignedchark;P1=0xff;//输入时P1口置全1k=P1;//读取按键状态if(k==0xff)//无键按下,返回return;delay20ms();//有键按下,延时去抖9.1.2键盘结构及处理程序k=P1;if(k==0xff)//确认键按下return;//抖动引起,返回w

4、hile(P1!=0xff);//等待键释放switch(k){case:0xfe…//0号键按下时执行程序段break;case:0xfd…//1号键按下时执行程序段break;9.1.2键盘结构及处理程序…//2~6号键程序省略case:0x7f…//7号键按下时执行程序段break;}}汇编语言程序清单:KEY:MOVP1,#0FFH;P1口为输入口MOVA,P1;读取按键状态CPLA;取正逻辑JZEKEY;无键按下,返回9.1.2键盘结构及处理程序LCALLDELAY20MS;有键按下,去抖MOVA,P1CPLAJZEKEY;抖动引起,返回MOVB,A;存键

5、值KEY1:MOVA,P1;以下等待键释放CPLAJNZKEY1;未释放,等待MOVA,B;取键值送AJBACC.0,PKEY0;K0按下转PKEY0JBACC.1,PKEY1;K1按下转PKEY1…9.1.2键盘结构及处理程序JBACC.7,PKEY7;K7按下转PKEY7EKEY:RETPKEY1:LCALLK0;K0命令处理程序RETPKEY2:LCALLK1;K1命令处理程序RET…PKEY4:LCALLK7;K7命令处理程序RET9.1.2键盘结构及处理程序二.行列式键盘为了减少键盘与单片机接口时所占用I/O线的数目,在键数较多时,通常都将键盘排列成行列矩

6、阵形式。每一水平线(行线)与垂直线(列线)的交叉处通过一个按键来连通。图9-54×4矩阵键盘接口利用这种结构只需N条行线和M条列线,即可组成具有N×M个按键的键盘。9.1.2键盘结构及处理程序图9

7、54×4矩阵键盘接口9.1.2键盘结构及处理程序1.行扫描法工作原理判别键盘中有无键按下。向行线输出全0,读入列线状态。如果有键按下,总有一列线被拉至低电平,从而使列输入不全为1。查找按下键所在位置。依次给行线送低电平,查列线状态。全为1,则所按下的键不在此行;否则所按下的键必在此行且是在与零电平列线相交的交点上的那个键。对按键位置进行编码。找到所按下按键的行列位置后,对

8、按键进行编码,即求得按键键值。9.1.2键盘结构及处理程序2.键盘扫描识别子程序C语言程序清单:#includecharkey(){charrow,col,k=-1;//定义行、列、返回值P1=0xf0;if((P1&0xf0)==0xf0)returnk;//无键按下,返回delay20ms();//延时去抖if((P1&0xf0)==0xf0)returnk;//抖动引起,返回9.1.2键盘结构及处理程序for(row=0;row<4;row++)//行扫描{P1=~(1<

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

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

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