最新单片机原理及应用胡乾斌第十一章PPT课件

上传人:cn****1 文档编号:569709393 上传时间:2024-07-30 格式:PPT 页数:40 大小:824KB
返回 下载 相关 举报
最新单片机原理及应用胡乾斌第十一章PPT课件_第1页
第1页 / 共40页
最新单片机原理及应用胡乾斌第十一章PPT课件_第2页
第2页 / 共40页
最新单片机原理及应用胡乾斌第十一章PPT课件_第3页
第3页 / 共40页
最新单片机原理及应用胡乾斌第十一章PPT课件_第4页
第4页 / 共40页
最新单片机原理及应用胡乾斌第十一章PPT课件_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《最新单片机原理及应用胡乾斌第十一章PPT课件》由会员分享,可在线阅读,更多相关《最新单片机原理及应用胡乾斌第十一章PPT课件(40页珍藏版)》请在金锄头文库上搜索。

1、单片机原理及应用胡乾斌第单片机原理及应用胡乾斌第十一章十一章输入外设:键盘;输入外设:键盘;输出外设:输出外设:LEDLED显示器、显示器、LCDLCD显示器、打印机等。显示器、打印机等。1. 1. 静态显示方式静态显示方式各位的公共端连接在一起(接地或+5V)。每位的段码线(adp)分别与一个8位的锁存器输出相连。 显示字符一确定,相应锁存器的段码输出将维持不变,直到送入另一个段码为止。显示的亮度高。4位静态LED显示器电路如图。该电路各位可独立显示。显示程序任务:1)设置显示缓冲区,存放待显示数据。2)显示译码:程序存储器中建立字形码常数表,查表得出对应数据的字形码。3)输出显示:输出字形

2、码到显示端口。例:MOVDPTR,#WTAB;指向字形码表首地址MOVA,R0;取显示缓冲区中数据MOVCA,A+DPTR;查表显示译码MOVP1,A ;输出显示WTAB:DB3FH,06H,5BH;字形码表COM P1.0 P1.7 MCS-51a f b g e c d dpabdp2. 2. 动态显示方式动态显示方式 所有位的段码线相应段并在一起,由一个8位I/O口控制,形成段码线的多路复用,各位的公共端分别由相应的I/O线控制,形成各位的分时选通。 4位8段LED动态显示电路如图。其中段码线占用一个8位I/O口,而位选线占用一个4位I/O口。 8 8位位LEDLED动态显示动态显示20

3、03.10.182003.10.18的过程如图。的过程如图。 图(a)是显示过程,某一时刻,只有一位LED被选通显示,其余位则是熄灭的; 图(b)是实际显示结果,人眼看到的是8位稳定的同时显示的字符。动态显示程序设计 在8051RAM存储器中设置6个显示缓冲单元79H 7EH,分别存放六位显示器的显示数据,8051的P3口扫描输出总是有一位为高电平,8051的P1口输出相应位(共阴极)的显示数据的字形码,使某一位显示出一个字符,其他位为暗,依次地改变P3口输出为高电平的位,P1口输出对应的字形码。六位显示器就显示出缓冲器中显示数据所确定的字符。开始扫描模式置初值,01H R3 显示缓冲器指针置

4、初值 79H R0 R3 P3口取数据查表得到字型码送P1口延时1ms指针R0加1R3.5=1?R3左移一位返回YN ORG2000HDIR: MOV R0, #79H ;显示数据缓冲区首址送R0 MOV R3, #01H ;使显示器最右边位亮LD0: MOV P3, R3 ;扫描值送P3口 MOV A, R0 ;取显示数据 ADD A , #0CH ;加上偏移量 MOVC A, A+PC ;取出字形码 MOV P1, A ;送出字形码 ACALL DL1 ;调延时程序 INC R0 ;数据缓冲区地址加1 MOV A,R3 JB ACC.5 ,LD1 ;扫描到第6个显示器转LD1 RL A M

5、OV R3, A ; R3左移一位,扫描下一个显示器 AJMP LD0LD1: RETDSEG: DB 3FH,06H,5BH,4FH,66H,6DH, 7DH DB 07H,7FH 67H,77H,7CH,39H, 5EH DB 79H,71H,73H,3EH,31H,6EH, 1CH DB 23H,40H,03H,18H,00H,00H,00H ORG 2050H DL1: MOV R7, #02H DL: MOV R6, 0FFH DL6: DJNZ R6, DL6 DJNZ R7, DL RET11.2 键盘与计算机接口键盘与计算机接口一、键盘一、键盘键盘输入数据和命令,单片机键盘有两

6、种:一种是全编码键盘,其键码全由硬件提供,但是这种方式硬件结构复杂,成本高;另一种是非编码键盘,这种键盘多采用矩阵方式,利用软件识别键码及完成各种键功能处理。单片机系统中多采用非编码键盘。键盘的可靠性键盘的可靠性I/O接接口口+5v+5v硬件消除抖动电路开关开关单单片片机机P1.0P1.1P1.7+5v硬件消除抖动电路 基本思想:基本思想:检测到有键按下,键对应的行线为低,软件延时10ms后,行线如仍为低,则确认该行有键按下。软件消除按键抖动软件消除按键抖动 当键松开时,行线变高,软件延时10ms后,行线仍为高,说明按键已松开。采取以上措施,躲开了两个抖动期的影响。独立式按键接口独立式按键接口

7、和行列式键盘接口行列式键盘接口。延时等待延时等待10ms 仍有按键信号?仍有按键信号?Y 有按键信号?有按键信号?NYN读键盘值读键盘值按键释放?按键释放?NY延时等待延时等待10ms按键释放?按键释放?键盘处理键盘处理Y二、二、 独立式按键接口设计独立式按键接口设计1、独立式键盘接口电路、独立式键盘接口电路 各键相互独立,每个按键各接一根输入线,通过各键相互独立,每个按键各接一根输入线,通过检测输入线的电平检测输入线的电平状态状态可很容易判断那个键被按下。此种接口可很容易判断那个键被按下。此种接口适于键数较少适于键数较少或或操作速度较操作速度较高高的场合。的场合。查询方式和中断方式的独立式查

8、询方式和中断方式的独立式键盘工作电路如下图。键盘工作电路如下图。2 2、独立式按键接口程序设计独立式按键接口程序设计键盘处理程序任务1)键输入 检查键盘是否有键被按下,消除按键抖动。确定被按键的键号,获取键号。 硬件电路消除抖动或软件消除抖动。2)键译码 键号为键盘位置码,根据键号查表得出被按键的键值。键值:数字键09、字符键0AH0FH、功能键10H 。3)键处理 根据键值转移到不同程序段。若键值属于数字、字符键,则调用显示数字和字符的子程序。若键值属于功能键,则进行多分支转移,执行各个功能程序段。下图是用三态缓冲器扩展的I/O口的按键接口电路。 对独立式键盘编程,软件消抖,查询方式检测键的

9、状态。仅有一键按下时才有效才处理。KEYIN:MOV DPTR,#0BFFFH;键盘端口地址BFFFHMOVX A,DPTR;读键盘状态ANL A,#1FH;屏蔽高三位MOV R3,A;保存键盘状态值LCALL DELAY10;延时10ms去键盘抖动MOVX A,DPTR;再读键盘状态ANL A,#1FH;屏蔽高三位 CJNE A,R3,RETURN ;两次不同,抖动引起转RETURNCJNE A,#1EH,KEY2 ;相等,有键按下,不等转KEY2LJMP PKEY1;是S1键按下,转S1键处理 ;子程序PKEY1KEY2: CJNE A,#1DH,KEY3 ;S2键未按下,转KEY3LJM

10、P PKEY2 ;S2键按下,转PKEY2处理KEY3: CJNE A,#1BH,KEY4 ;S3未按下,转KEY4LJMP PKEY3 ;S3按下,转PKEY3处理KEY4: CJNE A,#17H,KEY5 ;S4键未按下,转KEY5LJMP PKEY4 ;S4按下,转PKEY4处理KEY5: CJNE A,#0FH, RETURN ;S5未按下,转RETURNLJMP PKEY5 ;S5按下,转PKEY5处理RETURN:RET ;重键或无键按下,从子程序返回识别和编程简单,识别和编程简单,用在按键数较少的场合。用在按键数较少的场合。3. 行列式行列式(矩阵式矩阵式)键盘接口键盘接口 用

11、于按键数目较多的场合,用于按键数目较多的场合,由由行线和列线组成行线和列线组成,按键位于行、列的交叉点上。,按键位于行、列的交叉点上。如图所示。如图所示。 按键数目较多的场合按键数目较多的场合,行列式键盘与独立式键盘相比,要,行列式键盘与独立式键盘相比,要节省很多的节省很多的I/OI/O口线口线。 0 1+5v P1.0 P1.1 P1.4 P1.5键盘键盘I/O接口接口三、非编码键盘的接口三、非编码键盘的接口1、程控扫描法CPU不停地扫描键盘占用大量机时2、定时扫描法通过定时器产生定时中断,扫描键盘占用大量机时3、中断扫描法只有当键按下后,才产生中断,扫描键盘计算机工作效率高1、程控扫描法、

12、程控扫描法4X4扫描式键盘接口1、有无键按下的检测(全盘扫描) 计算机向P1口的低4位输出00H(各行线送低电平),然后检查P1口高4位(列线)的电平,若全部为高电平,则表示无键按下,若某个口线出现低电平,便说明有键按下,然后执行第二步检测。2、去除键抖动。若有键按下,则延时10ms,再次判断有无键按下,有键按下,则执行第三步检测。3、按键位置的确定(行扫描) 扫描从0行开始,即计算机先向P1.0口线输出低电平,P1.1-P1.3保持高电平,然后从P1.4-P1.7(列线)读入数据,当某位出现低电平,则说明被按下的键处在第0行上,若读入数据为高电平,则表示按下的键不在0行上,这时应进行下一行的

13、扫描,逐行扫描,直至找到被按下键的位置。4、键值的确定 一般说键值可由使用者任意设定,若键的位置与键值之间无任何规律,则只能用列表查询法来获取键值,若键的位置与键值安排有一定的规律,则可采用计算法确定。为保证键每闭合一次,CPU只作一次处理程序中需等闭合键释放后才对其进行处理。#1、程控扫描法、程控扫描法(参考)参考)1、有无键按下的检测(全盘扫描) 计算机向8255A的PC口的低4位输出00H(各行线送低电平),然后检查PB口低5位(列线)的电平,若全部为高电平,则表示无键按下,若某个口线出现低电平,即读入的数据不是XXX11111B,便说明有键按下,延时10ms,去除键抖动。再次判断有无键

14、按下,有键按下,然后执行第二步检测。2、按键位置的确定(行扫描) 扫描从0行开始,即计算机先在PC0口线输出低电平,PC口的其余口线保持高电平,即向PC口输出数据FEH,然后从PB口(列线)读入数据,当读入数据的低5位中某位出现低电平,例如读入数据为XXX11011B,则说明被按下的键处在第0行第2列上,若读入数据为XXX11111B,则表示按下的键不在0行上,这时应进行下一行的扫描,直至找到被按下键的位置。3、键值的确定 一般说键值可由使用者任意设定,若键的位置与键值之间无任何规律,则只能用列表查询法来获取键值,若键的位置与键值安排有一定的规律,则可采用计算法确定;为保证键每闭合一次,CPU

15、只作一次处理程序中需等闭合键释放后才对其进行处理。 其计算公式为: 键值键值K=行号行号X5+列号列号 ?1、程控扫描法(行列式键盘)(参考)、程控扫描法(行列式键盘)(参考) 程序: MOV DPTR, #0E003H MOV A ,#82H ;8255A初始化,PC输出,PB输入 MOVX DPTR, A KGET: ACALL KAS ; 调全盘检测子程序 JNZ DEL ;有键闭合,转去抖动 ACALL D1SPLAY ;调显示子程序 SJMP KGET DEL: ACALL DISPLAY ACALL D1SPLAY ;软件去抖动 ACALL KAS JNZ NEXT ;有键闭合,转

16、下一步 SJMP KGET NEXT: MOV R2, #0FEH ;0行扫描信号存放R2 MOV R3, #00H ;0行首键键值存放R3L1SCM: MOV DPTR,#0E002H ;指向PC口 MOV A,R2 ; 输出扫描信号 MOVX DPTR,A DEC DPL ;指向PB口 MOVX A, DPTR ;读入列线状态COLU0: JB ACC.0, COLU1 ;第0列检测 MOV A, #00H ;列号送A SJMP KPO ;转键值处理COLU1: JB ACC.1, COLU2 ;第1列检测 MOV A, #01H ;列号送A SJMP KPO COLU2: JB ACC.

17、2, COLU3 ;第2列检测 MOV A, #02H ;列号送A SJMP KPO ;转键值处理COLU3: JB ACC.3, COLU4 ;第3列检测 MOV A, #03H ;列号送A SJMP KPO COLU4: JB ACC.4, NXLIN ;第4列检测 MOV A, #04H ;列号送AKPO: ADD A, R3 ;键值=行首键值+列号 PUSH ACC ;键值保护 LOOP: ACALL D1SPLAY ACALL KAS ;显示并等待释放 JNZ LOOP POP ACC ; 取出键值 RET NXLIN: MOV A, R3 ADD A, #05H MOV R3,A

18、MOV A, R2 ;下一行扫描参数调整 RL A MOV R2, A CJNE R2,#0EFH,L1SCM ;未扫描一遍,则扫描下一行 AJMP KGET ;返回程序起始点 KAS: MOV DPTR, #0E002 ;指向PC口 MOV A, #0F0H MOVX DPTR, A ; PC口低四位输出0 DEC DPL ; 指向PB口 MOVX A, DPTR ;从PB口读入 CPL A ;将有效电平改变为高电平 ANL A , #1FH ; 屏蔽无效的高8位 RET2、定时扫描法、定时扫描法 定时扫描方式就是CPU每隔一定时间(如10ms)对键盘扫描一遍。当发现有键按下时,便进行读入键

19、盘操作,以求出键值,并分别进行处理。定时时间间隔由8051单片机内部定时器计数器来完成,这样可以减少计算机扫描键盘的时间,以减少CPU时间的开销。具体做法是,当定时时间一到,定时器便自动输出一脉冲信号,使CPU转去执行扫描程序。其扫描和求键值以及区别数字键、功能键的方法与程控扫描法类似。有一点需指出的是,采用定时扫描法时,必须在其初始化程序中,对定时器写入相应的命令,使之能定时产生中断,以便完成定时扫描的任务。3、中断扫描法、中断扫描法 为了更进一步节省CPU的时间,可采用中断扫描法,即当键入操作时,向CPU申请中断,CPU响应中断后,即转到相应的中断服务程序,对键进行扫描,判别键盘上闭合键的

20、键号,并作相应处理。在图中,当没有键按下时,所有列线均为1,输出一高电平到8051的/INT1引脚,此时没有中断申请。一旦某一个键按下以后,则高电平经过按键加到该键所在行的二极管正端,使二极管导通,同时,该列线输出为低电平,从而使/INT1有效,向8051申请中断。8051响应后,即转到中断扫描程序,查出按键号,并且作相应处理。其扫描方法与程控法相同,不同的只是当有键按下时,才进行扫描;若无键按下,CPU进行其它操作。 中断式键盘电路小结:了解:按键的基本输入过程,按键响应程序的基本功能消除按键抖动的必要性和方法LED的基本结构,静态LED显示和动态LED显示的基本特点掌握:独立式按键和行列式键盘的基本接口方法独立式按键的应用程序设计方法行列式键盘扫描和键值读取的基本原理静态LED显示器的接口和程序设计方法动态LED显示器的接口方法和软件设计原理

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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