《单片机原理及应用(C语言版)》-周国运-电子教案 单片机原理及应用 C语言版 9

上传人:E**** 文档编号:89430889 上传时间:2019-05-25 格式:PPT 页数:118 大小:2.43MB
返回 下载 相关 举报
《单片机原理及应用(C语言版)》-周国运-电子教案 单片机原理及应用 C语言版 9_第1页
第1页 / 共118页
《单片机原理及应用(C语言版)》-周国运-电子教案 单片机原理及应用 C语言版 9_第2页
第2页 / 共118页
《单片机原理及应用(C语言版)》-周国运-电子教案 单片机原理及应用 C语言版 9_第3页
第3页 / 共118页
《单片机原理及应用(C语言版)》-周国运-电子教案 单片机原理及应用 C语言版 9_第4页
第4页 / 共118页
《单片机原理及应用(C语言版)》-周国运-电子教案 单片机原理及应用 C语言版 9_第5页
第5页 / 共118页
点击查看更多>>
资源描述

《《单片机原理及应用(C语言版)》-周国运-电子教案 单片机原理及应用 C语言版 9》由会员分享,可在线阅读,更多相关《《单片机原理及应用(C语言版)》-周国运-电子教案 单片机原理及应用 C语言版 9(118页珍藏版)》请在金锄头文库上搜索。

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

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

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

4、 /确认键按下 return; /抖动引起,返回 while(P1!=0xff); /等待键释放 switch(k) case:0xfe /0号键按下时执行程序段 break; case:0xfd /1号键按下时执行程序段 break;,9.1.2 键盘结构及处理程序, /26号键程序省略 case:0x7f /7号键按下时执行程序段 break; 汇编语言程序清单: KEY: MOV P1,#0FFH ;P1口为输入口 MOV A,P1 ;读取按键状态 CPL A ;取正逻辑 JZ EKEY ;无键按下,返回,9.1.2 键盘结构及处理程序,LCALL DELAY20MS ;有键按下,去抖

5、MOV A,P1 CPL A JZ EKEY ;抖动引起,返回 MOV B,A ;存键值 KEY1:MOV A,P1 ;以下等待键释放 CPL A JNZ KEY1 ;未释放,等待 MOV A,B ;取键值送A JB ACC.0,PKEY0 ;K0按下转PKEY0 JB ACC.1,PKEY1 ;K1按下转PKEY1 ,9.1.2 键盘结构及处理程序,JB ACC.7,PKEY7 ;K7按下转PKEY7 EKEY: RET PKEY1:LCALL K0 ;K0命令处理程序 RET PKEY2:LCALL K1 ;K1命令处理程序 RET PKEY4:LCALL K7 ;K7命令处理程序 RET

6、,9.1.2 键盘结构及处理程序,二行列式键盘 为了减少键盘与单片机接口时所占用I/O线的数目,在键数较多时,通常都将键盘排列成行列矩阵形式。每一水平线(行线)与垂直线(列线)的交叉处通过一个按键来连通。,图9-5 44矩阵键盘接口,利用这种结构只需N条行线和M条列线, 即可组成具有NM个按键的键盘。,9.1.2 键盘结构及处理程序,图 9 | 5 4 4 矩 阵 键 盘 接 口,9.1.2 键盘结构及处理程序,1.行扫描法工作原理 判别键盘中有无键按下。向行线输出全0,读入列线状态。如果有键按下,总有一列线被拉至低电平,从而使列输入不全为1。 查找按下键所在位置。依次给行线送低电平,查列线状

7、态。全为1,则所按下的键不在此行;否则所按下的键必在此行且是在与零电平列线相交的交点上的那个键。 对按键位置进行编码。找到所按下按键的行列位置后,对按键进行编码,即求得按键键值。,9.1.2 键盘结构及处理程序,2.键盘扫描识别子程序 C语言程序清单: #include char key() char row,col, k =-1; /定义行、列、返回值 P1=0xf0; if(P1 /抖动引起,返回,9.1.2 键盘结构及处理程序,for(row=0;row4;row+) /行扫描 P1=(1row); /扫描值送P1 k=P1 /返回键值 ,9.1.2 键盘结构及处理程序,汇编语言程序清单

8、(返回键值:在累加器A中): KEY:LCALL KS ;判断是否有键按下 JZ EKEY ;无键按下,返回 LCALL DELAY20MS ;延时去抖 LCALL KS JZ EKEY ;抖动引起,返回 SKEY:MOV R0,#0 ; 行扫描计数器R0 清0 MOV R1,#0 ; 列计数器R1 清0 MOV R3,#0FEH ;R3为行扫描字暂存 SKEY1:MOV P1,R3 ;输出行扫描字,9.1.2 键盘结构及处理程序,MOV A,P1 ;读列值 MOV R1,A ;暂存列值 CPL A ANL A,#0F0H JNZ SKEY2 ;键在该列,转SKEY2 INC R0 ;行计数器

9、加1 SETB C MOV A,R3 RLC A MOV R3,A ;进行下一行扫描 CJNE R0,#4,SKEY1 ;4未完成, 转SKEY1 EKEY: MOV A,#0FFH ;无键返回0FFH RET,9.1.2 键盘结构及处理程序,SKEY2: MOV A,R1 JNB ACC.4,SKEY3 JNB ACC.5,SKEY4 JNB ACC.6,SKEY5 JNB ACC.7,SKEY6 SKEY3: MOV R2,#0 ;存0列号 SJMP DKEY SKEY4: MOV R2,#1 ;存1列号 SJMP DKEY SKEY5: MOV R2,#2 ;存2列号 SJMP DKEY

10、,9.1.2 键盘结构及处理程序,SKEY6:MOV R2,#3 ;存3列号 SJMP DKEY DKEY: MOV A,R0 ; 行号送A MOV B,#4 MUL AB ADD A,R2 ;行号4+列号=键值 PUSH ACC LK: LCALL KS ;等待键释放 JNZ LK POP ACC RET,9.1.2 键盘结构及处理程序,;是否有键按下子程序,有返回非0,无返回0 KS: MOV P1,#0F0H MOV A,P1 CPL A ANL A,#0F0H RET,9.1.2 键盘结构及处理程序,3.行列反转法工作原理 判别键盘中有无键按下。(方法同行扫描法) 输入变输出,再读。将

11、上一步读取到的列线输入值从列线输出,读取行线值。 定位求键值。根据上一步输出的列线值和读取到的行线值就可以确定所按下键所在的位置,从而查表确定键值。,9.1.2 键盘结构及处理程序,4.行列反转法识别子程序 C语言程序代码: #include char key() char code keycode= 0xee,0xde,0xbe,0x7e, 0xed,0xdd,0xbd,0x7d, 0xeb,0xdb,0xbb,0x7b, 0xe7,0xd7,0xb7,0x77 /键盘表,定义16个按键的行列组合值,9.1.2 键盘结构及处理程序,char row,col,k=-1,i; /定义行、列、返回

12、值、循环控制变量 P1=0xf0; if(P1 /列值输出,读取行值,9.1.2 键盘结构及处理程序,/查找行列组合值在键盘表中位置 for(i=0;i16;i+) if(row|col)=keycodei) /找到,i即为键值, /否则,返回-1 key=i; /对重复键,该方法 break; /处理为无键按下 P1=0xf0; while(P1 /返回键值 ,9.1.2 键盘结构及处理程序,9.1.3 中断扫描方式,为了提高CPU的效率,可以采用中断扫描工作方式,即只有在键盘有键按下时才产生中断申请,CPU响应中断,进入中断服务程序进行键盘扫描,并做相应处理。也可以采用定时扫描方式,即系统

13、每隔一定时间进行键盘扫描,并做相应处理。,9.1.3 中断扫描方式,图9-6 中断方式键盘接口,9.2 LED显示接口,主要内容 9.2.1 LED显示器结构原理 9.2.2 LED显示器接口及显示方式 9.2.3 LED显示器与89C52接口及显示子程序,9.2.1 LED显示器结构原理,单片机中通常使用7段LED构成字型为“8”且加一个小数点的数码管,以显示数字、符号及小数,常见数码管如下图。,显示器有共阴极和共阳极两种。发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。 一位显示器由8个发光二极管组成,其中,7个发光二极管构成字型“8”的各个笔划,另一个为小数点

14、。 当在某段发光二极管上施加一定的正向电压时,该段笔划即亮;不加电压则暗。,9.2.1 LED显示器结构原理,以共阴极显示器为例,当a、b、c三段送1时,数码管显示数字7。,(c)引脚配置外形图,(b)共阳极,(a)共阴极,9.2.1 LED显示器结构原理,表9-1 共阴极和共阳极7段LED显示字型编码表,以上为8段,8段最高位为小数点段。表中为小数点不点亮段码。,9.2.1 LED显示器结构原理,9.2.2 LED显示器接口及显示方式,LED有静态显示和动态显示两种方式。 1LED静态显示方式 静态显示就是当显示器显示某个字符时,相应的段(发光二极管)恒定地导通或截止,直到显示另一个字符为止

15、。 共阴极(公共端K0)接地; 共阳极(公共端K0)接+5V电源。 每位的段选线(adp)分别与一个8位锁存器的输出口相连,显示器中的各位相互独立。,优点:亮度较高、编程容易、管理简单; 缺点:但占用I/O口线资源较多。 2LED动态显示方式 在多位LED显示时,为了简化电路,降低成本,将所有位的段选线并联在一起,由一个8位I/O口控制。而共阴(或共阳)极公共端K分别由相应的I/O线控制,实现各位的分时选通。图9-8为6位共阴极LED动态显示接口电路。,9.2.2 LED显示器接口及显示方式,图9-8 6位LED动态显示接口电路,9.2.2 LED显示器接口及显示方式,各位扫描显示:由于6位LED所有段选线皆由P1口控制,要想每位显示不同的字符,就必须采用扫描方流点亮各位LED,在每一瞬间只使某一位显示字符。 段选码、位选码控制:P1口输出相应字符段选码,P2口在该显示位送入选通电平,保证该位显示相应字符,如此轮流。 扫描延时:段选码、位选码每送入一次后延时1ms,保证每位有一定亮度,因人眼的视觉暂留效果,看上去每个数码管总在亮。,9.2.2 LED显示器接口及显示方式,9.2.3 显示器与8

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号