第7次《单片机原理与应用》-键盘与显示

上传人:今*** 文档编号:112372854 上传时间:2019-11-06 格式:PPT 页数:55 大小:1.62MB
返回 下载 相关 举报
第7次《单片机原理与应用》-键盘与显示_第1页
第1页 / 共55页
第7次《单片机原理与应用》-键盘与显示_第2页
第2页 / 共55页
第7次《单片机原理与应用》-键盘与显示_第3页
第3页 / 共55页
第7次《单片机原理与应用》-键盘与显示_第4页
第4页 / 共55页
第7次《单片机原理与应用》-键盘与显示_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《第7次《单片机原理与应用》-键盘与显示》由会员分享,可在线阅读,更多相关《第7次《单片机原理与应用》-键盘与显示(55页珍藏版)》请在金锄头文库上搜索。

1、单片机原理与应用 实验 信通学院 可编程通用并行接口芯片可编程通用并行接口芯片82558255 结构与引脚 8255用于扩展单片机并行I/O接口。 一、结构: 1. 3个8位并行I/O接口PA、PB和PC: 包含I/O数据锁存器,控制寄存器和状 态寄存器。 2. 2组控制: A组:PA和PC03; B组:PB和PC47: 8255A8255A的内部结构图的内部结构图 3. 33. 3种工作方式:种工作方式: 方式0(基本I/O方式): A口、B口、C口均为数据I/O。输出锁存,输入 三态,不用联络信号。 适用于无条件或查询方式的数据传送。 方式1(选通I/O方式): A口和B口用于数据I/O,

2、输入/输出均锁存, C口 用于传送联络信号,读C口可了解外设当前状态。 适用于查询或中断方式的数据I/O。 方式2(双向数据传送方式): A口为数据I/O,B口只能为方式0,C口用作A口 双向传送的联络信号线。 适用于查询或中断方式的数据I/O。 二、二、8255A8255A的芯片引脚信号的芯片引脚信号 40脚 引脚(引脚(4040脚):脚): 1.数据线: D07:传送计算机与8255之间的数据、控制字和状态字。 PA07 PB 07 PC07:传送8255与外设之间的数据和联络 信息,PC07可用作数据线或联络线。 2.地址线: CS:片选线 A1、A0:口选线,寻址 PA、PB、PC数据

3、口和控制口。 3.读写控制线: RD、WR控制计算机与8255之间的信息传送和流向。 4.复位线: RESET高电平复位,使内部寄存器全部清零。 三、例题:三、例题: 例:求8255口地址: 解: A口(7F00H); B口(7F01H); C口(7F02H); 控制口 (7F03H)。 P0 P2.7 80C51 A0 A1 CS 8255 373 Q0 Q1 ABi: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 A口: 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 7F00H B口: 0 1 1 1 1 1 1 1 0 0 0 0 0 0

4、0 1 7F01H B口: 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 7F02H 控制口:0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 7F03H 82558255编程规定编程规定 方式选择控制字:D7=1 C口置位/复位控制字:D7=0 8255初始化编程: 往控制口写入控制字,确定8255工作方式。 方式选择控制字方式选择控制字 8255A方式选择注意: 有三种基本工作方式: 方式0基本的输入输出方式 方式1选通的输入输出方式 方式2双向传输方式 只有端口A能工作在方式2; 同一组的两端口可分别工作在输入和输出方式。 例:例: 8255PA口方式0输

5、出单片机片内RAM数据, PB口方式1输入。 PIOS:MOV DPTR,#7F03H ;控制口地址 MOV A,#86H ;写控制字 MOVX DPTR,A ;设工作方式 MOV DPTR,#7F00H ;PA数据口地址 MOV A,R0 ;取RAM的数据 MOVX DPTR,A ;由PA口输出 键盘接口技术键盘接口技术 抖动时间 10ms 开关动作时间 100ms “ 1 ” “ 0 ” 10ms 前沿抖动 后沿抖动 I/O 接 口 +5v +5v 消除抖动电路 开关 单 片 机 2. 键译码: 键号为键盘位置码,根据键号 查表得出被按键的键值。 键值:数字键09; 字符键0AH0FH;

6、功能键10H 。 键码键码= =行首键号行首键号+ +列号列号 (键号必须依次是从左至右书写)(键号必须依次是从左至右书写) 或键码或键码= =列首键号列首键号+ +行号行号 (键号必须依次是从上至下书写)(键号必须依次是从上至下书写) 一、键盘处理程序任务: 1.键输入: 检查键盘是否有键被按下,消除按键抖动 。确定被按键的键号,获取键号。 硬件电路消除抖动或软件消除抖动。 3.键处理: 根据键值转移到不同程序段。 若键值属于数字、字符键,则调用显示数 字和字符的子程序。 若键值属于功能键,则进行多分支转移, 执行各个功能程序段。 延时等待10ms 仍有按键信号? Y 有按键信号? N Y

7、N 键盘处理 按键释放? N Y 二、键盘接口方法: 1、利用单片机本身的并行口; 2、利用单片机本身的串行口; 3、利用通用接口芯片8155、8255等; 4、利用专用接口芯片8279等。 三、键盘接口的控制方式: 1、随机方式:每当CPU空闲时执行键盘扫描程序。 2、中断方式:键的按下引起中断后,单片机对键盘进行扫描。 3、定时方式:单片机定时地对键盘进行扫描。 (1 1)独立式键盘电路:)独立式键盘电路:(2)矩阵式键盘: 0 1 +5v C0 C1 R0 R1 键盘 I/O接口 (2)矩阵式键盘电路: 1)扫描法: 列线输出,行线输入。 列线逐列输出0,某行有按键,行线输入就为0; 若

8、无按键,行线输入全部为1。 2)反转法: 行列线交换输入、输出,两步获取按键键号。 (1)独立式键盘电路:每个按键单独占有一根I/O接口引线。 四、键盘接口形式: P1.0 P1.1 P1.7 +5v 按键处理程序:按键处理程序: 延时消抖 键扫描求键号 延时等待 键译码求键值 修改显示缓冲区跳转各功能程序 有按键输入? 确有按键? 按键释放? 是数字键? Y Y Y N N N Y N 1、使用8155作键盘接口: 接口应用:接口应用: P2.7=0,P2.0=1: A口地址为:0101H; C口地址为:0103H。 扫描法:列线输出,行线输入。 列线逐列输出0,某行有按键, 行线输入就为0

9、; 若无按键,行线输入全部为1。 0167 8914 15 键码键码= =行首键号行首键号+ +列号列号 (键号必须依次是从左至右书写)(键号必须依次是从左至右书写) 或键码或键码= =列首键号列首键号+ +行号行号 (键号必须依次是从上至下书写)(键号必须依次是从上至下书写) 判定有无键闭合的子程序:判定有无键闭合的子程序: MOVDPTR,#0101H MOVA,#00H;A口送00H MOVXDPTR,A INCDPTR INCDPTR;建立C口地址 MOVXA,DPTR;读C口 CPLA;A取反,无键按下则全“0” ANLA,#0FH;屏蔽A高半字节(C口只4位) RET 执行KS1子

10、程序的结果是:有闭合键则(A) 0; 无闭合键则(A) 0。 CPL A;负逻辑不直观,常采取行列线加反相器或 软件求反的方法把键盘改成正逻辑。 KS1: 键盘扫描子程序如下:(8155的A口、B口、C口和控 制口地址分别为7F00H、7F01H、7F02H、7F03H ,设8155A已在主程序中初始化。已设定为A口方式0 输出,C口的低4位方式0输入。) KEY1:ACALL KS1 ;调用判断有无键按下子程序 JNZ LK1 ;有键按下时,(A)0转消抖延时 KEY2:ACALL TM6ms AJMP KEY1 ;无键按下返回 LK1: ACALL TM12ms ;调12 ms延时子程序

11、ACALL KS1 ;查有无键按下,若有则真有键按下 JNZ LK2 ;键(A) 0逐列扫描 AJMP KEY2 ;不是真有键按下,返回 LK2:MOV R2,#0FEH ;初始列扫描字(0列)送入R2 MOV R4,#00H ;初始列(0列)号送入R4 LK4:MOV DPTR,#7F00H ;DPTR指向8155PA口 MOV A,R2 ;列扫描字送至8155PA口 MOVX DPTR,A INC DPTR ;DPTR指向8155PC口 INC DPTR MOVX A,DPTR ;从8155 PC口读入行状态 JB ACC.0,LONE ;查第0行无键按下,转查第1行 MOV A,#00H

12、 ;第0行有键按下,行首键码#00HA AJMP LKP ;转求键码 LONE: JB ACC.1,LTWO ;查第1行无键按下,转查第2行 MOV A,#08H ;第1行有键按下,行首键码#08HA AJMP LKP ;转求键码 LTWO:JB ACC.2,LTHR ;查第2行无键按下,转查第3行 MOV A,#10H ;第2行有键按下,行首键码#10HA AJMP LKP ;转求键码 LTHR:JB ACC.3,NEXT ;查第3行无键按下,转该查下一列 MOV A,#18H ;第3行有键按下,行首键码#18HA LKP: ADD A,R4 ;求键码,键码=行首键码+列号 PUSH ACC

13、 ;键码进栈保护 LK3: ACALL KS1 ;等待键释放 JNZ LK3 ;键未释放,等待 POP ACC ;键释放,键码A RET ;键扫描结束,出口状态(A)=键码 NEXT: INC R4 ;准备扫描下一列,列号加1 MOV A,R2 ;取列扫描字送累加器A JNB ACC.7,KEND ;判断8列扫描否?扫描完返回 RL A ;扫描字左移一位,变为下一列扫描字 MOV R2,A ;扫描字送入R2保存 AJMP LK4 ;转下一列扫描 KEND:AJMP KEY1 KS1: MOV DPTR,#7F00H;DPTR指向8155PA口 MOV A,#00H ;全扫描字A MOVX DP

14、TR,A ;全扫描字送往8155PA口 INC DPTR ;DPTR指向8155PC口 INC DPTR MOVX A,DPTR ;读入PC口行状态 CPL A ;变正逻辑,以高电平表示有键按下 ANL A,#0FH;屏蔽高4位,只保留低4位行线值 RET ;出口状态:(A)0时有键按下 TM12ms:MOV R7,#18H ;延时12 ms子程序 TM: MOV R6,#0FFH TM6: DJNZ R6,TM6 DJNZ R7,TM RET TM6ms: MOV R7,#0CH ;延时6 ms子程序 TM2: MOV R6,#0FFH TM62: DJNZ R6,TM6 DJNZ R7,T

15、M RET 2 2、使用、使用82798279作键盘接口:作键盘接口: P2.7=0时: A0=P2.0=1:命令口地址为:7FFFH; A0=P2.0=0:数据口地址为:7EFFH。 (程序略) 键码键码= =行首键号行首键号+ +列号列号 (键号必须依次是从左至右书写)(键号必须依次是从左至右书写) 0134 567 8 74LS15674LS156为双为双2-42-4译码器译码器/ /分配器分配器 3 3、使用中断方式作键盘接口:、使用中断方式作键盘接口: 当有键按下时,INT1为低,向CPU发出中断申请,在中断服务 程序中除完成键识别、键功能处理外,仍须有清除键抖动等功能。 04812 159 13 键码键码= =列首键号列首键号+ +行号行号 (键号必须依次是从上至下书写)(键号必须依次是从上至下书写) 显示器接口技术显示器接口技术 LED显示器用于显示工业 控制参数、过程状态。 一、 LED显示原理: 共阴极LED和共阳极LED。 当LED字段引线与数据线 连接,每个显示字形对应一个 字形码。 LED (Light Emiting Diode) COM P1.01.7 MCS-51 a f b g e c d h a b h 代码位 D7D

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

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

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