单片机第7章2
单片机原理及接口技术(C51编程)第7章 定时器计数器

图7-14 由外部计数输入信号控制LED的闪烁
(3)设置IE寄存器 本例由于采用T1中断,因此需将IE寄存器的EA、ET1位置1。
(4)启动和停止定时器T1 将寄存器TCON中TR1=1,则启动T1计数;TR1=0,则停止T1计数。
参考程序如下:
#include <reg51.h> void Delay(unsigned int i)
7.4 定时器/计数器的编程和应用 4种工作方式中,方式0与方式1基本相同,只是计数位数不同。方
式0为13位,方式1为16位。由于方式0是为兼容MCS-48而设,计数初 值计算复杂,所以在实际应用中,一般不用方式0,常采用方式1。
7.4.1 P1口控制8只LED每0.5s闪亮一次 【例7-1】在AT89S51的P1口上接有8只LED,原理电路见图7-
当TMOD的低2位为11时,T0被选为方式3,各引脚与T0的逻辑关系 见图7-8。
T0分为两个独立的8位计数器TL0和TH0,TL0使用T0的状态控制位 C/T* 、GATE、TR0 ,而TH0被固定为一个8位定时器(不能作为外部 计数模式),并使用定时器T1的状态控制位TR1,同时占用定时器T1的 中断请求源TF1。
13。采用T0方式1的定时中断方式,使P1口外接的8只LED每0.5s闪亮 一次。
23
图7-13 方式1定时中断控制LED闪亮
24
(1)设置TMOD寄存器 T0工作在方式1,应使TMOD寄存器的M1、M0=01;应设置C/T*=0,为定
时器模式;对T0的运行控制仅由TR0来控制,应使相应的GATE位为0。定时 器T1不使用,各相关位均设为0。所以,TMOD寄存器应初始化为0x01。 (2)计算定时器T0的计数初值
51单片机学习教程第7章 中断PPT课件

2020/8/20
单片机C语言程序设计
19
中断的优先原则
8051单片机中断优先级遵循以下原则:
中断 Interrupt
1
标题添加
点击此处输入相 关文本内容
标题添加
点击此处输入相 关文本内容
总体概述
点击此处输入 相关文本内容
Байду номын сангаас
点击此处输入 相关文本内容
2
中断的事例
日常生活中有很多计划任务要完成 或突发事件要处理,常用的是查询法, 但更好的处理办法是中断。
如烧开水时,水烧开后应及时切断 加热源。
RI/TI=1
10
单片机中断系统的结构
中断服务程序入口地址和中断号:
中断源
中断标志
中断服务程序入 口地址
优先级顺序
外部中断(INT0) IE0
0003H
高
定时/计数器0(T0) TF0
000BH
↓
外部中断(INT1) IE1
0013H
↓
定时/计数器1(T1) TF1
001BH
↓
串行口
RI和TI
0023H
1. 查询法:不断地检查水是否烧开 2. 中断法:在烧水的壶上装哨子,利用水
烧开后的蒸汽吹响哨子
2020/8/20
单片机C语言程序设计
3
中断的概念
计算机处理的任务按实时性要求分 为两类:
1. 非实时性任务:显示刷新、声音鸣响 2. 实时性任务:系统错误处理、实时监控
对于实时性要求高的任务,出现后 要求立即处理,采用轮询的方式容易实 现,但实时性不高,浪费CPU时间,采 用中断的方式较为适宜。
9
单片机中断系统的结构
第7章 单片机的系统扩展

第七章 单片机的系统扩展
74LS138是”3-8”译码器,具有3个选择输入端, 可组成8种输入状态。8个输出端,分别对应8种输 入状态中的1种,0电平有效。
第七章 单片机的系统扩展
第七章 单片机的系统扩展
7.2 数据存储器的扩展
MCS-51单片机内部有128B的RAM存储空间。
内部RAM通常作为工作寄存器、堆栈、软件标志 和数据缓冲区。
第七章 单片机的系统扩展
2864有四种工作方式,如表7-2所示。
第七章 单片机的系统扩展
7.1.3 程序存储器的扩展方法
1. 总线的连接与时序
第七章 单片机的系统扩展
图7-5为MCS-51单片机程序存储器的操作时序。
第七章 单片机的系统扩展
2.单片程序存储器的扩展
第七章 单片机的系统扩展
3.多片程序存储器的扩展
第七章 单片机的系统扩展
8255A的控制字
(1)工作方式控制字
第七章 单片机的系统扩展
(2)置位/复位控制字
第七章 单片机的系统扩展
例如,若将07H写入控制字 功能:PC3置位
若将08H写入控制字
功能:PC4复位
【例】 要求A口工作在方式0输入,B口为方式1输出, C口高4位PC7~PC4为输入,C口低4位PC3~PC0为 输出。设8255控制器地址为FFFDH MOV DPTR, #0FFFDH
第七章 单片机的系统扩展
第七章 单片机的系统扩展
2. 8255A芯片的控制字及其工作方式
方式0——基本输入/输出方式。 方式1——选通输入/输出方式。 方式2 ——双向传送方式。
端口A可工作于方式0、1、2,端口 B只可工作于 方式0、1,端口C只可工作于方式0。
单片机原理及应用(李桂林)章 (7)

第 7 章 单片机并行扩展技术 图 7-1 8031 最小应用系统
第 7 章 单片机并行扩展技术
8031 芯片本身的连接除了 EA 必 须 接地 地外(选择外 部存储器),其他与 80C51 / 89C51 最小应用系统一样,也必须 有复位及时钟电路。
第 7 章 单片机并行扩展技术
7. 2 总线扩展及编址方法
第 7 章 单片机并行扩展技术
7. 1 单片机的最小系统
最小应用系统,是指能维持单片机运行的最简单配置的系 统。这种系统成本低廉、结构简单,常用来构成简单的控制系 统,如开关状态的输入/输出控制等。对于片内有ROM / EPROM 的单片机,其最小应用系统即为配有晶振、复位电路和电源的 单个单片机。对于片内无 ROM / EPROM 的单片机,其最小系统 除了外部配置晶振、复位电路和电源外,还应当外接 EPROM 或 E2 PROM作为程序存储器使用。
第 7 章 单片机并行扩展技术
图 7-3 所示为线选法应用实例。图中所扩展的芯片地址 范围如表 7 -1 所示,其中 ×可以取“0 ”,也可以取 “ 1 ”,用十六进制数表示的地址如下:
2764 ( 1 ): 4000H~5FFFH ,或 C000H~DFFFH ,有地址重 叠现象。
2764 ( 2 ): 2000H~3FFFH ,或 A000H~BFFFH ,有地址重 叠现象。
第 7 章 单片机并行扩展技术
当然,最小系统有可能无法满足应用系统的功能要求。比 如,有时即使有内部程序存储器,但由于程序很长,程序存储器 容量可能不够;对一些数据采集系统,内部数据存储器容量也可 能不够等,这就需要根据情况扩展 EPROM 、 RAM 、 I / O 口 及其他所需的外围芯片。
第 7 章 单片机并行扩展技术
《单片机原理及应用教程》第7章:单片机的串行通信及接口

第7章 MCS-51单片机常用接口技术

图7.3 用8031的P1口设计的4×4键盘
第7章 MCS-51单片机常用接口技术
7.1.2 键盘按键识别方法
首先在键处理程序中将P1.3~P1.0依次按位变低, P1.3~P1.0在某一时刻只有一个为低。在某一位为低时读行线, 根据行线的状态即可判断出哪一个按键被按下。 如9号键按下时,当列线P1.2为低时,读回的行线状态中 P1.4被拉低,由此可知2号键被按下。 一般在扫描法中分两步处理按键,首先是判断有无键按下, 即使列线(P1.3~P1.0)全部为低,读行线,如行线 (P1.4~P1.7)全为高,则无键按下,如行线有一个为低,则 有键按下。当判断有键按下时,使列线依次变低,读行线,进 而判断出具体哪个键按下。
第7章 MCS-51单片机常用接口技术
7.2.2 LED显示器接口及显示方式
表7.2 段选码、位选码及显示状态表
段选码 (字型) F9H A4H B0H 99H 92H 位选码 P2.4~P2.0 11110 11101 11011 10111 01111 1 2 3 4 5 显示器显示状态
第7章 MCS-51单片机常用接口技术
7.2.1 LED显示器原理
图7.6为LED显示器的内部结构及外形。
(a)共阴极 (b)共阳极 (c)LED实物 图7.6 LED显示结构及实物
第7章 MCS-51单片机常用接口技术
7.2.1 LED显示器原理
7段LED显示数字0~F,符号等字型见表7.1,其中a段为最 低位,dp为最高位。
第7章 MCS-51单片机常用接口技术
单片机原理及应用教程
第 7章 MCS-51单片机常用接口技术
主 编 范立南 谢子殿 副主编 刘 彤 尹授远 李雪飞
第7章 MCS-51单片机常用接口技术
《单片机原理与应用及上机指导》第7章:80C51单片机系统扩展
表7.4 常用SRAM芯片的主要性能
表7.6 80C51与6264的线路连接
7.2 并行I/O扩展
MCS-51系列单片机共有4个并行I/O口,分别是P0、P1、 P2和P3。其中P0口一般作地址线的低8位和数据线使用; P2口作地址线的高8位使用;P3口是一个双功能口,其第 二功能是一些很重要的控制信号,所以P3一般使用其第二 功能。这样供用户使用的I/O口就只剩下P1口了。另外,这 些I/O口没有状态寄存和命令寄存的功能,所以难以满足复 杂的I/O操作要求。因此,在大部分MCS-5l单片机应用系 统的设计中都不可避免地要进行I/O口的扩展。 7.2.1 并行I/O扩展原理 7.2.2 常用的并行I/O扩展芯片
线选法
若系统只扩展少量的RAM和I/O口芯片,可采用线选法。 线选法是把单片机高位地址分别与要扩展芯片的片选端相连,控制选 择各条线的电路以达到选片目的,其优点是接线简单,适用于扩展芯 片较少的场合,缺点是芯片的地址不连续,地址空间的利用率低。
图7.7 片外RAM的读时序
图7.8 片外RAM的写时序
4.数据存储器芯片及扩展电路
(1) 数据存储器 数据存储器扩展常使用随机存储器芯片,用得较多的是 Intel公司的6116(容量为2KB)和6264(容量为8KB), 其性能 如表7.4所示。 (2) 数据存储器扩展电路 80C51与6264的连接 如表7.6所示。
全地址译码法
利用译码器对系统地址总线中未被外扩芯片用到的高位地址线进行译 码,以译码器的输出作为外围芯片的片选信号。常用的译码器有 74LS139、74LS138、74LS154等。优点是存储器的每个存储单元只 有唯一的一个系统空间地址,不存在地址重叠现象;对存储空间的使 用是连续的,能有效地利用系统的存储空间。缺点是所需地址译码电 路较多,全地址译码法是单片机应用系统设计中经常采用的方法 。
单片机讲义第七章
一、中断的起因
什么可以引起中断? 生活中很多事件可以引起中断:有人 按了门铃了,电话铃响了,你的闹钟闹响 了,你烧的水开了….等等诸如此类的事件, 我们把可以引起中断的称之为中断源,单 片机中也有一些可以引起中断的事件, 8051中一共有5个:两个外部中断,两个 计数/定时器中断,一个串行口中断。
三、中断的响应过程
当有事件产生,进入中断之前我们必须先记住现 在看书的第几页了,或拿一个书签放在当前页的位置, 然后去处理不同的事情(因为处理完了,我们还要回 来继续看书):电话铃响我们要到放电话的地方去, 门铃响我们要到门那边去,也说是不同的中断,我们 要在不同的地点处理,而这个地点通常还是固定的。 89C51中也是采用的这种方法,五个中断源,每个 中断产生后都到一个固定的地方去找处理这个中断的 程序,当然在去之前首先要保存下面将执行的指令的 地址,以便处理完中断后回到原来的地方继续往下执 行程序。
二、中断的嵌套与优先级处理
设想一下,我们正在看书,电话铃响了,同时又 有人按了门铃,你该先做那样呢?如果你正是在等一 个很重要的电话,你一般不会去理会门铃的,而反之, 你正在等一个重要的客人,则可能就不会去理会电话 了。如果不是这两者(即不等电话,也不是等人上 门),你可能会按你通常的习惯去处理。总之这里存 在一个优先级的问题, 单片机中也是如此,也有优先级的问题。优先级 的问题不仅仅发生在两个中断同时产生的情况,也发 生在一个中断已产生,又有一个中断产生的情况,比 如你正接电话,有人按门铃的情况,或你正开门与人 交谈,又有电话响了情况。考虑一下我们会怎么办吧。
电平触发的外部中断的清除
对于电平触发的外部中断,CPU响应中断后, 虽然也是由硬件清除了相应的标志位,但是不 能对外部引脚上的电平进行处理,也就是说, 这时如果外部引脚上的低电平依然存在,会造 成重复中断,因此我们应该在电路上增加对外 部引起中断的信号进行处理。P148图7-5是一 个可行的方案之一。通过I/O口输出一个信号, 使得外部引脚上的中断请求信号变为高电平。
精品课件-单片机应用技术(第三版)刘守义-第7章
着在其后沿就启动转换。因此启动图7.5中的ADC0809进行转换
只需要下面的指令(以通道0为例):
MOV
DPTR,#0000H
;选中通道0
MOVX @DPTR,A
; 信号有效,启动转换
WR
第7章 A/D与D/A转换接口
2.转换数据的传送 A/D转换后得到的是数字量的数据,这些数据应传送给 单片机进行处理。数据传送的关键问题是如何确认A/D转换 完成,因为只有确认数据转换完成后,才能进行传送,为此 可采用下述三种方式: (1) 定时传送方式。对于一种A/D转换器来说,转换时 间作为一项技术指标是已知的和固定的。例如ADC0809的转 换时间为128 μs,相当于6 MHz的MCS-51单片机的64个机器 周期。可据此设计一个延时子程序,A/D转换启动后即调用 这个延时子程序,延迟时间一到,转换肯定已经完成了,接 着就可进行数据传送。
8031 A15 A14 0809 × ×
×× ××
××
A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 × × × × × ST × × × × × C B A × × × × ×0 × × × × × 0 0 0 × × × × ×0 × × × × × 0 0 1
示。 该电路连接主要涉及两个问题,一是8路模拟信号通道
的选择,二是A/D转换完成后转换数据的传送。
第7章 A/D与D/A转换接口
图7.5 ADC0809与8031单片机的连接
第7章 A/D与D/A转换接口
1.8路模拟通道的选择 ADDA、ADDB、ADDC分别接地址锁存器74LS373提供的低3位地 址,只要把3位地址写入ADC0809中的地址锁存器,就实现了模拟 通道的选择。对系统来说,地址锁存器是一个输出口,为了把3 位地址写入,还要提供口地址。图7.5中使用的是线选法,口地 址由P2.0确定,同时和相或取反后作为开始转换的选通信号。因 此该ADC0809的通道地址确定如下:
单片机第7章习题答案
第7章习题答案1.通常8031给用户提供的I/O口有哪几个?为什么?答案:MCS-51系列单片机虽然有4个8位I/O口P0、P1、P2、P3,但4个I/O口实际应用时,并不能全部留给用户作系统的I/O口。
因为当单片机在外部扩展了程序存储器、数据存储器时,就要用P0和P2口作为地址/数据总线,而留给用户使用的I/O口只有P1口和一部分P3口。
(不做系统扩展,都可以用作I/O口)2.在MCS-51单片机应用系统中,外接程序存储器和数据存储器的地址空间允许重叠而不会发生冲突,为什么?外部I/O接口地址是否允许与存储器地址重叠?为什么?答案:因为单片机访问外部程序存储器与访问外部数据存储器(包括外部I/O口)时,会分别产生PSEN与RD/WR两类不同的控制信号,因此外接程序存储器和数据存储器的地址空间允许重叠而不会发生冲突。
外部扩展I/O口占用数据存储器地址空间,与外部数据存储器统一编址,单片机用访问外部数据存储器的指令来访问外部扩展I/O口。
因此外部I/O接口地址是否允许与程序存储器地址重叠不允许与数据数据存储器地址重叠。
3.在通过MOVX指令访问外部数据存储器时,通过I/O口的哪些位产生哪些控制信号?答案:MCS-51对外部数据存储器的访问指令有以下4条:1)MOVX A, @Ri2)MOVX @Ri, A3)MOVX A, @DPTR4)MOVX @DPTR, A访问外部数据存储器指令在执行前,必须把需要访问的存储单元地址存放在寄存器Ri (R0或R1)或DPTR中。
CPU在执行1)、2)指令时,作为外部地址总线的P2口输出P2锁存器的内容、P0口输出R0或R1的内容;在执行3)、4)指令时,P2口输出DPH内容,P0口输出DPL内容。
写时(/WR P3.6)有效;读时(/RD P3.7)有效。
4.外部存储器的片选方式有几种?各有哪些特点?答案:外部存储器的片选方式有线选法和译码法两种。
线选法的特点是连接简单,不必专门设计逻辑电路,但是各个扩展芯片占有的空间地址不连续,因而地址空间利用率低。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
首先判别键盘中有无键按下: 由单片机I/O口向键盘送(输出)全扫描字,然后读入 (输入)列线状态来判断。方法是: 向扫描线(图中水平线)输 出全扫描字00H,把全部行线置为低电平,然后将回读线的 电平状态读入累加器A中。如果有按键按下,总会有一根列 线电平被拉至低电平,从而使列输入不全为1。 判断键盘中哪一个键被按下: 通过将扫描线逐行置低电平后,检查回读线输入状态。 方法是: 依次给扫描线送低电平,然后查所有回读线状态, 称行扫描。如果全为1,则所按下的键不在此行;如果不全 为1,则所按下的键必在此行,而且是在与零电平列线相交 的交点上的那个键。
1. 动态显示程序设计
内部RAM 6个显示缓冲单元: 79H~7EH存放要显示的6位数据。 8155H的PB口输出相应位的段码; 8155H的PA口输出位选码,如01H。 子程序流程如图10-15 。 8155H的初始化程序:
在扫描过程中,当发现某行有键按下,也就是输入的列 线中有一位为0时,便可判别闭合按键所在列的位置,根据 行线位置和列线位置就能判断按键在矩阵中的位置,知道是 哪一个键按下。
行 读图并归纳,得出: 首 键 按键的值=行号×每行的按键个数+列号。计数译码法 号
如何 将你知道的 第i行 、 第 j列按键 被按下 的信 息 存放在A中?以什么形式 存放?读图10-10
第0行的键值为: 0行×4+列号(0~3)为0、1、2、3; 第1行的键值为: 1行×4+列号(0~3)为4、5、6、7; 第2行的键值为: 2行×4+列号(0~3)为8、9、A、B; 第3行的键值为: 3行×4+列号(0~3)为C、D、E、F。 4×4键盘行首键号为0、4、8、C,列号为0,1,2,3。
软件去抖
如果按键较多,常用软件方 法去抖动,即检测出键闭合后执 行一个延时程序,产生5~10 ms 的延时;让前沿抖动消失后,再 一次检测键的状态,如果仍保持 闭合状态电平,则确认为真正有 键按下。当检测到按键释放后, 也要给5~10 ms的延时,待后沿 抖动消失后,才能转入该键的处 理程序。
有按键信号? Y 延时等待10ms
列号译码
SKEY3: MOV A,R1 JNB ACC.4,SKEY5 JNB ACC.5,SKEY6 JNB ACC.6,SKEY7 JNB ACC.7,SKEY8 AJMP EKEY SKEY5:MOV A,#00H MOV R2,A;存0列号 AJMP DKEY SKEY6:MOV A,#01H MOV R2,A;存1列号 AJMP DKEY SKEY7:MOV A,#02H MOV R2,A;存2列号 AJMP DKEY SKEY8:MOV A,#03H MOV R2,A;存3列号 AJMP DKEY
2).键输入原理
微机键盘通常使用机械触点式按键开关,其主要功能
是把机械上的通断转换成为电气上的逻辑关系。也就是说, 它能提供标准的TTL逻辑电平,以便与通用数字系统的逻
辑电平相容。 对于一组键或一个键盘,总有一个接口电路与CPU相
连。CPU可以采用查询或中断方式了解有无将键输入,并 检查是哪一个键按下,将该键号送入累加器ACC,然后通
此公式是针对例图,若行、列与扫描线、回读线的对应关系 改变了,公式要改变。
键的位置码及键值的译码过程
按键扫描的工作过程如下: ① 判断键盘中是否有键按下; ② 进行行扫描,判断是哪一个键按下,若有键按下, 则调用延时子程序去抖动; ③ 读取按键的位置码; ④ 将按键的位置码转换为键值(键的顺序号)0、1、 2„、F。
N
仍有按键信号? N Y 键盘处理
按键释放? Y
N
图10-7 软件去抖
7.3.2
非编码键盘接口的工作原理
独立式按键接口和行列式键盘接口。
1.独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过检 测输入线的电平状态可很容易判断那个键被按下。 此种接口适于键数较少或操作速度较高的场合。 图(a)为中断方式的独立式键盘工作电路 图(b)为查询方式的独立式键盘工作电路。
LJMP PKEY1 KEY2: CJNE A,#1DH,KEY3 LJMP PKEY2 KEY3: CJNE A,#1BH,KEY4 LJMP PKEY3 KEY4: CJNE A,#17H,KEY5 LJMP PKEY4 KEY5: CJNE A,#0FH,PASS LJMP PKEY5 RETURN:RET
解: 原理如图9-8所示。 ① 判断是否有键按下: 将列线P1.0、P1.1送全0, 查P0.0、P0.1是否为0。 ② 判断哪一个键按下:
逐列送0电平信号,再逐行 扫描是否为0。
③ 键号=行首键号+列号
键盘扫描原理图
7.3.3
键盘的工作方式
单片机在忙于各项工作任务时,如何兼顾键盘的输 入,取决于键盘的工作方式。 原则:即要保证能及时响应按键操作,又不要过多占用CPU 的工作时间。
3.中断工作方式
只有在键盘有键按下时,才执行键盘扫描程序,如无键 按下,单片机将不理睬键盘。 键盘所做的工作分为三个层次 第1层:单片机如何来监视键盘的输 入。三种工作方式:①编程扫描②定 时扫描③中断扫描。 第2层:确定具体按键的键号。体现 在按键的识别方法上就是:①扫描法; ②线反转法。 第3层:执行键处理程序。
PKEY1: LJMP RETURN
2. 行列式(矩阵式)键盘接口
按键数目较多的场合,行列式键盘与独立式键盘相比, 要节省很多的I/O口线。
由行线和列线组成,按键位于行、列的交叉点上。
为了编程的需要,更准确的叫法:扫描线和回读线。为了 读到确定的值,回读线被定义在有上拉电阻的线上。
4×4矩阵键盘接口图
过跳转指令转入执行该键的功能程序,执行完后再返回主
程序。
3).按键结构与特点 行线电压信号通过键盘开关机械触点的断开、闭合, 输出波形如图10-6。
为了克服按键触点机械抖动所致的检测误判,必须采取去 抖动措施。这一点可从硬件、软件两方面予以考虑。在键数
较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。
图为8255A扩展I/O口的独立式按键接口电路。
PA
用三态缓冲器扩展的I/O口的按键接口电路。
MOV
DPTR,#0BFFFH
MOVX A,@DPTR
对独立式键盘编程,软件消抖,查询方式检测键的状态。仅 有一键按下时才有效才处理。
KEYIN: MOV DPTR,#0BFFFH ;键盘端口地址BFFFH
这样编键号有何好处?
规划:行扫描过程结束后(发现有键按下)得到的行号 存放在R0中,列号存放在R2中。
描述子程序为DECODE的 功能,出、入口参数?
出口: EKEY 键值(键号)在A中或? KEY: MOV P1,#0F0H ;令所有行为低电平 MOV ORL CPL JZ LCALL
SKEY: MOV MOV MOV MOV SKEY2:MOV MOV MOV MOV ORL CPL S123: JNZ
;是K1键按下,转K1键处理 ;子程序PKEY1 ;S2键未按下,转KEY3 ;S2键按下,转PKEY2处理 ;S3未按下,转KEY4 ;S3按下,转PKEY3处理 ;S4键未按下,转KEY5 ;S4按下,转PKEY4处理 ;S5未按下,转RETURN ;S5按下,转PKEY5处理 ;重键或无键按下,从子程序返回 PKEY*的 程序框架 怎样
去DKEY做什么?
;键位置译码
DKEY:MOV MOV MUL ADD AJMP A,R0 B,#04H AB A,R2 EKEY ;取行号送A ;每一行按键个数 ;行号×按键数 ;行号×按键数+列号=键值,在A中
解读子程序的框架。 问:何时调用?
练习:设计一个2×2行列式键盘,并编写键盘扫描子程序。
然后通过输入口读取各列的电平。检测其中是否有变为低电 平的列线。若有键按下,则进而判别哪一列有键按下,确定 按键位置。
将第2行变为低电平,其余行为高电平时,输出编码为1011。
判别是否有哪一列键按下的方法同上。
将第3行变为低电平,其余行为高电平时,输出编码为0111。
判别是否有哪一列键按下的方法同上。
A,P1 A,#0FH A EKEY DEL20 ms
A,#00 R0,A R1,A R3 #0FEH A,R3 P1,A A,P1 R1,A A,#0F0H A
;读列值 ;取列值,A中有0则有键闭合 ;A中有1则有键按下则有键闭合 ;无键按下时退出 ;延时20 ms去抖动
;下面进行行扫描,1行1行扫 ;R0作为行计数器,开始为0 ;R1作为列计数器,开始为0 ;R3为行扫描字暂存,低4位为行扫描字 ;输出行扫描字,高4位全1 ;读列值 ;暂存列值 ;取列值 ;高电平则有键闭合
具体描述
行扫描法识别键号(值)的原理
将第0行变为低电平,其余行为高电平时,输出编码为1110。
然后读取列的电平,判别第0行是否有键按下。在第0行上若 有某一按键按下,则相应的列被拉到低电平,则表示第0行 和此列相交的位置上有按键按下。若没有任一条列线为低电 平,则说明0行上无键按下。
将第1行变为低电平,其余行为高电平时,输出编码为1101。
硬件去抖 在硬件上可采用在 键输出端加R-S触发器 (双稳态触发器)或单稳 态触发器构成去抖动电 路。右图是一种由R-S触 发器构成的去抖动电路, 当触发器一旦翻转,触 点抖动不会对其产生任 何影响。
+5v
&
开关
+5v
I/O 接 口
单 片 机
&
消除抖动电路
图图 硬件去抖电路 10-6 硬件去抖电路
7.3
一、键盘接口原理
键盘接口设计
二、键盘/显示器接口设计实例
7.3.1 键盘接口原理
键盘输入的特点
1).按键的分类 按键按照结构原理可分为两类,一类是触点式开关按键, 如机械式开关、导电橡胶式开关等;另一类是无触点式开关按 键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。 目前,微机系统中最常见的是触点式开关按键。 按键按接口原理可分为键盘分编码键盘和非编码键盘。 这两类键盘的主要区别是识别键符及给出相应键码的方 法。编码键盘主要是用硬件来实现对键的识别,非编码键盘 主要是由软件来实现键盘的定义与识别。 键盘上闭合键的识别由专用的硬件译码器实现,并产生 键编号或键值的称为编码键盘,如BCD码键盘、ASCII码键盘 等;靠软件识别的称为非编码键盘。