并行输入与输出_第1页
并行输入与输出_第2页
并行输入与输出_第3页
并行输入与输出_第4页
并行输入与输出_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

并行输入与输出第1页,共45页,2023年,2月20日,星期一学习目标:了解并行通信的基本概念;掌握键盘的基本组成及工作原理;掌握七段LED显示器的基本组成及工作原理。技能目标:能够正确在AT89S52外连接键盘和显示设备。能够灵活应用典型键盘、显示电路构成各种实际电路第2页,共45页,2023年,2月20日,星期一串行通信与并行通信第3页,共45页,2023年,2月20日,星期一项目一矩阵式键盘电路设计第一部分 项目要求设计一个4×4矩阵键盘与AT89S52接口电路。要求用查询法读取行列键盘键码,并将键码存入内部RAM32H单元。第4页,共45页,2023年,2月20日,星期一第二部分相关知识

在单片机应用系统中,经常使用简单的键盘和数码管显示电路作为系统的输入和输出,完成人机对话活动,即人机通道。实际上是单片机与键盘和数码管显示器的接口电路。键盘接口应有以下功能:键扫描功能,即检测是否有键闭合;键识别功能,确定被闭合键所在的行列位置;产生相应的键值功能;消除按键抖动功能。第5页,共45页,2023年,2月20日,星期一一、键盘工作原理

键盘是一组按键的集合,它是最常用的单片机输入设备,操作人员可以通过键盘输入数据或命令,实现简单的人机通信。根据按键的识别方法分类,键盘有编码和非编码的两种。编码键盘是通过一个编码电路来识别闭合键的键码,如BCD码键盘、ASCII码键盘等;通过软件来识别键码为非编码键盘。第6页,共45页,2023年,2月20日,星期一由于非编码键盘的电路简单,可以方便地增减键的数量,因此在单片机应用系统中得到广泛的应用。1、按键电路和抖动的消除键盘中每个按键都是一个常开关电路。开关为机械弹性开关,当机械触点断开、闭合时有抖动。第7页,共45页,2023年,2月20日,星期一消除的办法:硬件—单脉冲触发器,即双稳态触发器或基本R-S触发器。软件—延时,用子程序2、键盘连接方式键盘可分为独立式和行列(矩阵式)两类。(1)独立式非编码键盘电路:见图4只按键分别接到89S52P1口的4条I/O线上。在没有键按下的情况下,

第8页,共45页,2023年,2月20日,星期一89S52第9页,共45页,2023年,2月20日,星期一由于上拉电阻的作用,P1.0~P1.3线上输入均为高电平。当有某键按下时,与其相连的I/O线将得到低电平,其他未按之键的输入线上,仍维持其原来的高电平输入。

这种键盘结构的优点是电路简单,编程简单;缺点是当键盘数较多时,要占用较多的I/O线。这种键盘结构可用程序去掉抖动。(2)非编码行列式键盘为了减少键盘与单片机接口时所占用I/O线的数目,在键数较多时,通常都将键盘排列成行列矩阵形式。第10页,共45页,2023年,2月20日,星期一即将I/O线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上。行列式键盘的数量为:行线数m乘以列线数n,即可组成m×n个按键的键盘。见图。这是一个4×4行列式键盘,按键数量为16个。矩阵式键盘接口处理的内容:●判断键盘中有无键按下的方法是:先向所有连接列线的I/O线输出0;然后,将连接行线的按键状态,由相应的I/O线读入累加器A中。有键按下时对应的行线,输入为0;没有键按下时对应的行线,输入为1。

第11页,共45页,2023年,2月20日,星期一X3第12页,共45页,2023年,2月20日,星期一●求键码的过程是:

依次从一条列线上输出低电平,然后检查各行线的状态。若都为1,说明闭合键不在该列;若有的行线为0,则说明闭合键在该列与为0的行线的交点上。由于每个按键所在的行号和列号不相同,所以,每个按键都按行列号赋予了一个键号。(键值)列Y3Y2Y1Y0行X3X2X1X01110E1110E1101D1101D1011B1011B0111701117第13页,共45页,2023年,2月20日,星期一键号:列×行EEEDEBE7DEDDDBD7BEBDBBB77E7D7B77键值N=行首键号+列号

3.编码键盘按键的处理过程处理程序分为:程序扫描方式和中断扫描方式。(1)程序扫描方式,即查询方式。在单片机应用系统中,对键盘的处理只是CPU工作的一部分。为了能及时发现有键按下,CPU要不断第14页,共45页,2023年,2月20日,星期一地调用键盘处理程序,对键盘进行扫描。这种CPU主动调用键盘处理程序的方式,称为程序扫描方式。程序控制扫描工作方式的工作过程与键盘扫描子程序。(Ⅰ)判断键盘上有无键按下。其方法为:D0~D3输出0000B(列线),读D4~D7状态(行线),若D4~D7为全“1”则键盘无键按下,若不全为“1”则有键按下。(Ⅱ)去除键的机械抖动影响:在判断有键按下后,软件延时一段时间(5~10mS)后再判断键盘状态,如果仍为有键按下状态,则认为有一个稳定的键按下,否则按照键抖动处理。第15页,共45页,2023年,2月20日,星期一(Ⅲ)判别闭合键的键号:对键盘的列线进行扫描,再相应地顺序读出D4~D7的可能状态。(Ⅳ)CPU对键的一次闭合仅作一次处理,采用的方法为等待键释放以后再将键号送入累加器A中。(2)中断扫描方式为了提高CPU的效率,可以让键盘工作在中断扫描方式。有键闭合,产生中断请求信号。消抖、求键号等工作由中断服务子程序完成。采用中断方式的键盘接口电路。第16页,共45页,2023年,2月20日,星期一89S52第17页,共45页,2023年,2月20日,星期一二、键盘接口控制方式1、判别键盘上有无键闭合;2、键盘去抖3、判别闭合键的键号;N=行首键号+列号4、判断闭合键是否释放。三、应用举例【例4.1】硬件连接如图所示,编程完成如下功能:按键按下后,对应的小灯亮,再按下,对应的小灯灭。第18页,共45页,2023年,2月20日,星期一89S52第19页,共45页,2023年,2月20日,星期一编程如下:KEY:MOVP1,#0FFH;灯全灭MOVP2,#0FFH;P2口为输入状态MOVA,P2;读键值,键按下相应位为0CPLA;取反,键按下相应位为1ANLA,#0FH;屏蔽高4位,保留低4位JZLRET;全零,无键按下,返回LCALLDEL20;非全零,有键按下,延时,软件去抖MOVA,P2;重读键值CPLA第20页,共45页,2023年,2月20日,星期一ANLA,#0FHJZLRET;全零,无键按下,返回

JBACC.0,K0;K0按下,转K0程序JBACC.1,K1;K1按下,转K1程序JBACC.2,K2;K2按下,转K2程序JBACC.3,K3;K3按下,转K3程序SJMPLRETK0:CPLP1.0;P1.0状态取反,小灯LED0亮变灭,灭变亮SJMPLRETK1:CPLP1.1;P1.1状态取反,小灯LED1亮变灭,灭变亮SJMPLRET第21页,共45页,2023年,2月20日,星期一K2:CPLP1.2;P1.2状态取反,小灯LED2亮变灭,灭变亮SJMPLRETK3:CPLP1.3;P1.3状态取反,小灯LED3亮变灭,灭变亮LRET:RETDEL20:MOVR7,#27H;延时20ms左右LOOP1:MOVR6,#0FFHLOOP2:DJNZR6,LOOP1DJNZR7,LOOP2RET第22页,共45页,2023年,2月20日,星期一第三部分项目实施

(一)硬件电路

图中P1.4~P1.7用于控制行线,P1.0~P1.3用于控制列线。行、列线通过上拉电阻接+5V,没有键按下时,被钳在高电平状态。通过发送扫描字确定键码,具体方法如下:

第23页,共45页,2023年,2月20日,星期一89S52+5VP1.05.1kW×4P1.7P1.6P1.5P1.4+5V5.1kW×4P1.3P1.2P1.1第24页,共45页,2023年,2月20日,星期一(1)由列线输出0,然后读入P1口的值存入内部RAM30H单元。(2)由行线输出0,然后读入P1口的值存入内部RAM31H单元。(3)把30H的低4位与31H的高4位的值相加存入累加器A。(4)最后判断累加器A的值,如果累加器A的数据全为1,说明无键按下,否则说明有键按下,且累加器A的数据就是被按下键的键值(程序中对累加器A取反,目的是用JNZ指令判断是否有键按下)。第25页,共45页,2023年,2月20日,星期一(二)参考程序键扫描程序如下:BOAD:LCALLBOADD JNZBOAD1;无键按下转BOAD LCALLDELAY;调延时子程序 AJMPBOAD;继续扫描键盘BOAD1:LCALLDELAY;消除键抖动(延时子程序略) LCALLBOADD;确认是否有键按下 JNZBOAD2 LCALLDELAY SJMPBOAD;转键扫描第26页,共45页,2023年,2月20日,星期一BOAD2: CPL A MOV 32H,A;取键值BOAD3: LCALL DELAY LCALL BOADD JNZ BOAD3;等待键松开B2: RET;返回;获取键值子程序BOADD: MOV P1,#0FH;置行线为0 MOV A,P1 MOV 30H,A第27页,共45页,2023年,2月20日,星期一MOV P1,#0F0H;置列线为0 MOV A,P1 MOV 31H,A ANL 30H,#0FH ;取列值MOV A,30HANL 31H,#0F0H;取行值ADD A,31H;行值加列值CPL A;A全0无键按下RET键盘扫描程序的运行结果是把闭合键的键码放在32单元中。

第28页,共45页,2023年,2月20日,星期一项目二字符显示第一部分 项目要求设计一个八位显示电路,要求8只数码管从左到右顺序显示1、2、3、4、5、6、7、8共8个字符;将内存10H、11H、12H、13H中存放的压缩BCD码显示出来。第29页,共45页,2023年,2月20日,星期一第二部分相关知识

单片机应用系统中使用的显示器主要有:发光二极管显示器(LED);液晶显示器(LCD);阴极射线管显示器(CTR)。一、发光二极管及LED显示器发光二极管第30页,共45页,2023年,2月20日,星期一LED显示器由发光二极管组成,不同的发光段亮,可组成不同字型,电流太大,耗电量大,电流太小,发光度不够,一般各管电流在10mA较合适。第31页,共45页,2023年,2月20日,星期一7段LED字型码(段码)显示字形habcdefg共阳极段选码共阴极段选码0123456789ABCDEF“灭”110000001

11110011

01001001

01100001

00110101

00100101

00000101

11110001

00000001

00100001

00010001

00000111

10001101

01000011

00001101

000111011111111C0HF9HA4HB0H99H92H82HF8H80H90H88H83HC6HA1H86H8EHFFH3FH06H5BH4FH06H6DH7DH07H7FH6FH77H7CH39H5EH79H71H00H第32页,共45页,2023年,2月20日,星期一LED显示器接口

LED显示器用于显示工业控制参数、过程状态。

1.LED数码管

共阴极LED和共阳极LED

当LED字段引线与数据线连接,每个显示字形对应一个字形码。COM

P1.0~1.789S52afbge

cdhabhabhCOMD7D6D5D4D3D2D1D0hgfedcba

第33页,共45页,2023年,2月20日,星期一显示程序任务:1)设置显示缓冲区,存放待显示数据。2)显示译码:程序存储器中建立字形码常数表,查表得出对应数据的字形码。3)输出显示:输出字形码到显示端口。例: MOVDPTR,#WTAB;指向字形码表首地址 MOVA,@R0 ;取显示缓冲区中数据 MOVCA,@A+DPTR;查表显示译码 MOVP1,A ;输出显示 … WTAB:DB 3FH,06H,5BH;字形码表 … COM

P1.0~1.789S52afbge

cdhabh第34页,共45页,2023年,2月20日,星期一二、七段LED显示器工作原理

LED显示器有静态显示和动态显示两种方式1.静态显示器多位LED分别用一组8位字段口,各位LED公共端接地,分别输出显示不同字形。

abhCOMafbge

cdh

abhCOM

abhCOM第35页,共45页,2023年,2月20日,星期一在AT89S52的串行口上扩展多片串行输入并行输出的移位寄存器74LS164作为静态显示器接口,图中给出了8位共阳极静态显示器的逻辑接口。设要显示的数据放在78H-7FH中。89S52第36页,共45页,2023年,2月20日,星期一静态显示程序如下:DISPLAY:MOVR7,#8;8位显示计数器MOVR0,#78H;78H-7FH为显示器缓冲区MOVDPTR,#TABLE;显示字形码表首地址LOOP1:MOVA,@R0;取出要显示的数据INCR0;指向缓冲区下一地址MOVCA,@A+DPTR;取出显示字形码MOVSBUF,A;送出该LED上的字形码第37页,共45页,2023年,2月20日,星期一LOOP2:JNBTI,LOOP2;输出完否?CLRTI;完,清发送中断标志DJNZR7,LOOP1;8位显示未完,继续RETTABLE:DB0C0H,0F9H,0A4H,0BH,99HDB92H,82H,0FBH,80H,90HDB88H,83H,0C6H,0A1H,86HDB8EH,0FFH;F,暗第38页,共45页,2023年,2月20日,星期一2.LED动态显示动态显示方式是各位数码管的a~

h端分别连在一起,并与单片机系统的一个I/O口相连。从该I/O口输出显示代码。每只数码管的共阴极端或共阳极端则与另一个I/O口相连,控制该位的点亮。每一时刻,只有一位数码管被点亮,各位之间,依次轮流被点亮,对每位来说,每隔一段时间点亮一次。

利用发光二极管的余辉和人眼的驻留效应,并通过适当调整每位数码管点亮的时间和时间间隔,便可以得到稳定的显示输出。

在单片机系统应用中,广泛采用动态显示方式。

第39页,共45页,2023年,2月20日,星期一第40页,共45页,2023年,2月20日,星期一

第三部分项目实施

(一)硬件电路分析

P1口输出与对应显示位的关系

端口P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7位码01H02H04H08H10H20H40H80H数码管L1L2L3L4L5L6L7L8第41页,共45页,2023年,2月20日,星期一89S52第42页,共45页,2023年,2月20日,星期一(二)程序清单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论