并行输入与输出实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习情景四 并行输入与输出
学习目标:
了解并行通信的基本概念;
掌握键盘的基本组成及工作原理;
掌握七段LED 显示器的基本组成及工作原理。 技能目标:
能够正确在AT89S52外连接键盘和显示设备。
能够灵活应用典型键盘、显示电路构成各种实际电路。
在数据通信与计算机领域中,有两种基本的数据传送方式,即串行数据传送方式与并行数据传送方式,也称串行通信与并行通信。串行通信将在以后介绍。
数据在多条并行传输线上各位同时传送的方式,称为并行传送方式,多用于近距离传送,如图4.1(a)所示;而数据在单条一位宽的传输线上按时间先后一位一位地传送,称为串行数据传送方式,常用于远距离传送,如图4.1(b)所示。
在单片机应用系统中,通常都有操作面板。操作人员通过操作面板实现与应用系统的信息交流,包括下达命令、修改程序和参数、干预应用系统的状态、显示运行状态和运行结果。
本学习环境主要介绍人机对话通道中常用的输入设备――键盘,输出设备――LED 显示器。
图4.1 (a )并行通信方式 (b)串行通信方式
项目一矩阵式键盘电路设计
第一部分项目要求
设计一个4×4矩阵键盘与AT89S52接口电路。要求用查询法读取行列键盘键码,并将键码存入内部RAM 32H单元。
第二部分相关知识
键盘是由若干个按键组成的开关矩阵,它是最简单的单片机输入设备,操作员可以通过键盘输入数据或命令,实现简单的人机通信。若键盘闭合键的识别是由专用硬件实现的,则称为编码键盘;若用软件实现闭合键识别的,则称为非编码键盘。非编码键盘又分为行列式和独立式两种。本项目主要讨论,非编码键盘的工作原理、接口技术和程序设计。
键盘接口应有以下功能:
✓键扫描功能,即检测是否有键闭合;
✓键识别功能,确定被闭合键所在的行列位置;
✓产生相应的键值功能;
✓消除按键抖动功能。
一、键盘工作原理
图4.2 键闭合和断开时的电压抖动
1.按键去抖动
常用键盘的按键是一个机械开关结构,被按下时,由于机械触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会出现电压抖动,如图4.2所示。抖动时间长短与按键的结构和机械特性有关,一般为5~10 ms。而按健的闭合时间和操作者的按键动作有关,大约为十分之几秒到几秒不等。
去抖动有硬件和软件两种方法。硬件方法就是在键盘中附加去抖动电路,从根本上消除抖动产生的可能性,图4.3为利用双稳电路的去抖动电路;而软件方法则是采用时间延迟以躲过抖动(大约延时20-30ms即可),待行线上状态确定之后,再进行状态输入。一般为简单起见多采用软件方法。
2
图4.3去抖动电路
2.按键连接方式
键盘和CPU的连接方式可分为独立式键盘和矩阵式键盘。
①独立式键盘
独立式是一组相互独立的按健,这些按键可直接与单片机的I/O口连接,即每个按键独占一条口线,接口简单。独立式键盘因占用单片机的硬件资源较多,只适合按键较少的场合。
图4.4(a)是一个具有4个按键的独立式键盘,每一个按键的一端都接地,另一端接AT89S52的I/O口。从图中可以看出,独立式键盘每一按键都需要一根I/O线,占用AT89S52的硬件资源较多。
图4.4独立式键盘和矩阵式键盘
3
②矩阵式键盘
也称行列式键盘,因为键的数目较多,所以按键按行列组成矩阵。图7.4(b)是由4根行线和4根列线组成的16个按键的键盘。与独立式键盘相比,16个按键只占用了8个I/O 口线,因此适用于按键较多的场合。
矩阵式键盘接口处理的内容:
A.键扫描
键盘上的键按行列组成矩阵,在行列的交点上都对应有一个键。为判定有无键被按下(闭合健)以及被按键的位置,可使用扫描法说明查找闭合健的方法。
首先是判定有没有键被按下。如图4.5所示,键盘的行线一端经电阻接+5V 电源,另一端接单片机的输入口线。各列线的一端接单片机的输出口线,另一端悬空。为判定有没有键被按下,可先经输出口向所有列线输出低电平,然后再输入各行线状态。若行线状态皆为高电平,则表明无健按下;若行线状态中有低电平,则表明有健被按下。
图4.5键扫描示意图
然后再判定被按键的位置。判定键位置的扫描是这样进行的:先使输出口输出0FEH,即Y0为低电平“0”,其它列线为高电平“1”,然后输入行线状态,测试行线状态中是否有低电平的。如果没有低电平,再使输出口输出0FDH,即Y1为“0”,其它列线为“1”,再测试行线状态。以次类推,直检测到行线中有低电平,则闭合健找到,通过此次扫描的列线值和行线值就可以知道闭合健的位置。
B.去抖动
判断有键按下后,延时一段时间,再判断键盘状态,如果仍为有键按下状态,则认为有键按下,否则按抖动处理。
C.确定按键的键值
如图4.6所示,以键的排列顺序安排健号,则键值的计算公式为:
键值=行首号+列号
4
5
图4.6键值表
D .判断闭合键是否释放
计算键值之后,等待键释放是为了保证键的一次闭合仅进行一次处理。
二、 键盘接口的控制方式
在单片机的运行过程中,扫描键盘只是CPU 的工作任务之一,何时执行键盘扫描和处理,可以有两种方式:程序扫描方式和中断扫描方式。程序扫描是指CPU 空闲时执行键盘扫描,或每隔一定时间执行一次键盘扫描,定时可由单片机的定时器完成。中断扫描是指,当有键闭合时才向CPU 发出中断请求,中断响应后执行键盘扫描程序。
三、 应用举例
【例4.1】硬件连接如图4.7所示,编程完成如下功能:按键按下后,对应
的小灯亮,再按下,对应的小灯灭。
编程如下:
KEY :MOV P1, #0FFH ;灯全灭
MOV P2 , #0FFH ;P2口为输入状态
MOV A, P2 ;读键值,键按下相应位为0 CPL A ;取反,键按下相应位为1 ANL A, #0FH ;屏蔽高4位,保留低4位 JZ LRET ;全零,无键按下,返回
LCALL DEL20 ;非全零,有键按下,延时,软件去抖 MOV A, P2 ;重读键值 CPL A
ANL A, #0FH
图4.7硬件连接示意图
89S52