《并行输入与输出 优秀课件.ppt》由会员分享,可在线阅读,更多相关《并行输入与输出 优秀课件.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、并行输入与输出 第1页,本讲稿共45页学习目标:学习目标:v了解并行通信的基本概念;了解并行通信的基本概念;v掌握键盘的基本组成及工作原理;掌握键盘的基本组成及工作原理;v掌握七段掌握七段LEDLED显示器的基本组成及工作原显示器的基本组成及工作原理。理。技能目标:技能目标:v能够正确在能够正确在AT89S52AT89S52外连接键盘和显示设外连接键盘和显示设备。备。v能够灵活应用典型键盘、显示电路构成各种能够灵活应用典型键盘、显示电路构成各种实际电路实际电路第2页,本讲稿共45页串行通信与并行通信串行通信与并行通信第3页,本讲稿共45页项目一项目一 矩阵式键盘电路设计矩阵式键盘电路设计第一部
2、分第一部分 项目要求项目要求 设计一个设计一个44矩阵键盘与矩阵键盘与AT89S52接口接口电路。要求用查询法读取行列键盘键码,并将电路。要求用查询法读取行列键盘键码,并将键码存入内部键码存入内部RAM 32H单元。单元。第4页,本讲稿共45页第二部分第二部分 相关知识相关知识 在单片机应用系统中,经常使用简单的键盘和数码管显示在单片机应用系统中,经常使用简单的键盘和数码管显示电路作为系统的输入和输出,完成人机对话活动,即人机通道。电路作为系统的输入和输出,完成人机对话活动,即人机通道。实际上是单片机与键盘和数码管显示器的接口电路。实际上是单片机与键盘和数码管显示器的接口电路。键盘接口应有以下
3、功能:键盘接口应有以下功能:v键扫描功能,即检测是否有键闭合;键扫描功能,即检测是否有键闭合;v键识别功能,确定被闭合键所在的行列位置;键识别功能,确定被闭合键所在的行列位置;v产生相应的键值功能;产生相应的键值功能;v消除按键抖动功能。消除按键抖动功能。第5页,本讲稿共45页一、键盘工作原理一、键盘工作原理 键盘是一组按键的集合,它是最常用的单键盘是一组按键的集合,它是最常用的单片机输入设备,操作人员可以通过键盘输入数片机输入设备,操作人员可以通过键盘输入数据或命令,实现简单的人机通信。据或命令,实现简单的人机通信。根据按键的识别方法分类,键盘有根据按键的识别方法分类,键盘有编码和编码和非编
4、码非编码的两种。的两种。编码键盘是通过一个编码电路编码键盘是通过一个编码电路来识别闭合键的键码,来识别闭合键的键码,如如BCDBCD码键盘、码键盘、ASCIIASCII码码键盘等;键盘等;通过软件来识别键码为非编码键盘。通过软件来识别键码为非编码键盘。第6页,本讲稿共45页 由于非编码键盘的电路简单,可以方便地由于非编码键盘的电路简单,可以方便地增减键的数量,因此在单片机应用系统中得到增减键的数量,因此在单片机应用系统中得到广泛的应用。广泛的应用。1 1、按键电路和抖动的消除、按键电路和抖动的消除 键盘中每个按键都是一个常开关电路。键盘中每个按键都是一个常开关电路。开关为机械弹性开关,当机械触
5、点断开、闭开关为机械弹性开关,当机械触点断开、闭合时有抖动。合时有抖动。第7页,本讲稿共45页消除的办法:消除的办法:硬件硬件 单脉冲触发器,即双稳态触发器或基本单脉冲触发器,即双稳态触发器或基本R-R-S S触发器。触发器。软件软件 延时,用子程序延时,用子程序2 2、键盘连接方式、键盘连接方式键盘可分为独立式和行列(矩阵式)两类。键盘可分为独立式和行列(矩阵式)两类。(1 1)独立式非编码键盘独立式非编码键盘电路:见图电路:见图4 4只按键分别接到只按键分别接到89S52 P189S52 P1口的口的4 4条条I/OI/O线上。在没有线上。在没有键按下的情况下,键按下的情况下,第8页,本讲
6、稿共45页89S52第9页,本讲稿共45页由于上拉电阻的作用,由于上拉电阻的作用,P1.0P1.3线上输入均为高电平。线上输入均为高电平。当有某键按下时,与其相连的当有某键按下时,与其相连的I/O线将得到低电平,其他未线将得到低电平,其他未按之键的输入线上,仍维持其原来的高电平输入。按之键的输入线上,仍维持其原来的高电平输入。这种键盘结构的优点是电路简单,编程简单这种键盘结构的优点是电路简单,编程简单;缺点缺点是当键盘数较多时,要占用较多的是当键盘数较多时,要占用较多的I/O线。线。这种键盘结构可用程序去掉抖动。这种键盘结构可用程序去掉抖动。(2)非编码行列式键盘非编码行列式键盘为了减少键盘与
7、单片机接口时所占用为了减少键盘与单片机接口时所占用I/O线的数目,线的数目,在键数较多时,通常都将键盘排列成行列矩阵形式。在键数较多时,通常都将键盘排列成行列矩阵形式。第10页,本讲稿共45页即将即将I/OI/O线的一部分作为线的一部分作为行线,行线,另一部分作为另一部分作为列线,列线,按键按键设置在行线和列线的设置在行线和列线的交叉点上。交叉点上。行列式键盘的数量为:行列式键盘的数量为:行线数行线数m m乘以列线数乘以列线数n n,即可组成,即可组成mnmn个按键的键盘。个按键的键盘。见图。见图。这是一个这是一个4444行列式键盘,按键数量为行列式键盘,按键数量为1616个。个。矩阵式键盘接
8、口处理的内容:矩阵式键盘接口处理的内容:判断键盘中有无键按下的方法是判断键盘中有无键按下的方法是:先向所有连接列线的先向所有连接列线的I/OI/O线输出线输出0 0;然后,然后,将连接行线的按键状态,由相应的将连接行线的按键状态,由相应的I/OI/O线线读入累加器读入累加器A A中。中。有键按下时对应的行线,输入为有键按下时对应的行线,输入为0 0;没有;没有键按下时对应的键按下时对应的行线,输入为行线,输入为1 1。第11页,本讲稿共45页X3第12页,本讲稿共45页 求键码的过程是:求键码的过程是:依次从一条列线上输出低电平,然后检查各行线的状态。依次从一条列线上输出低电平,然后检查各行线
9、的状态。若都为若都为1 1,说明闭合键不在该列;若有的行线为,说明闭合键不在该列;若有的行线为0 0,则说明闭,则说明闭合键在该列与为合键在该列与为0 0的行线的交点上。由于每个按键所在的的行线的交点上。由于每个按键所在的行号和列号不相同,所以,每个按键都按行列号赋予了行号和列号不相同,所以,每个按键都按行列号赋予了一个键号。(键值)一个键号。(键值)列列Y3 Y2 Y1 Y0 Y3 Y2 Y1 Y0 行行X3 X2 X1 X0X3 X2 X1 X0 1 1 1 0 E 1 1 1 0 E 1 1 1 0 E 1 1 1 0 E 1 1 0 1 D 1 1 0 1 D 1 1 0 1 D 1
10、1 0 1 D 1 0 1 1 B 1 0 1 1 B 1 0 1 1 B 1 0 1 1 B 0 1 1 1 7 0 1 1 1 7 0 1 1 1 7 0 1 1 1 7第13页,本讲稿共45页键号:列键号:列行行 EE ED EB E7EE ED EB E7 DE DD DB D7 DE DD DB D7 BE BD BB B7 BE BD BB B7 7E 7D 7B 77 7E 7D 7B 77 键值键值N=N=行首键号行首键号 +列号列号 3.3.编码键盘按键的处理过程编码键盘按键的处理过程处理程序分为:程序扫描方式和中断扫描方式。处理程序分为:程序扫描方式和中断扫描方式。(1 1
11、)程序扫描方式,即查询方式。)程序扫描方式,即查询方式。在单片机应用系统中,对键盘的处理只是在单片机应用系统中,对键盘的处理只是CPUCPU工作的一工作的一部分。为了能及时发现有键按下,部分。为了能及时发现有键按下,CPUCPU要不断要不断第14页,本讲稿共45页地调用键盘处理程序,对键盘进行扫描。这种地调用键盘处理程序,对键盘进行扫描。这种CPU主动调主动调用键盘处理程序的方式,称为程序扫描方式。用键盘处理程序的方式,称为程序扫描方式。程序控制扫描工作方式的工作过程与键盘扫描子程序。程序控制扫描工作方式的工作过程与键盘扫描子程序。()判断键盘上有无键按下。判断键盘上有无键按下。其方法为:其方
12、法为:D0D3输输出出0000B(列线),读(列线),读D4D7状态(行线),若状态(行线),若D4D7为全为全“1”则键盘无键按下,若不全为则键盘无键按下,若不全为“1”则有键按下。则有键按下。()去除键的机械抖动影响:去除键的机械抖动影响:在判断有键按下后,在判断有键按下后,软件延时一段时间(软件延时一段时间(510mS)后再判断键盘状态,如)后再判断键盘状态,如果仍为有键按下状态,则认为有一个稳定的键按下,否果仍为有键按下状态,则认为有一个稳定的键按下,否则按照键抖动处理。则按照键抖动处理。第15页,本讲稿共45页()判别闭合键的键号:判别闭合键的键号:对键盘的列线进行扫描,再相应对键盘
13、的列线进行扫描,再相应地顺序读出地顺序读出D4D7的可能状态。的可能状态。()CPU对键的一次闭合仅作一次处理,采用的方法为等对键的一次闭合仅作一次处理,采用的方法为等待键释放以后再将键号送入累加器待键释放以后再将键号送入累加器A中。中。(2)中断扫描方式)中断扫描方式为了提高为了提高CPU的效率,可以让键盘工作在中断扫描方的效率,可以让键盘工作在中断扫描方式。有键闭合,产生中断请求信号。式。有键闭合,产生中断请求信号。消抖、求键号等消抖、求键号等工作由中断服务子程序完成。工作由中断服务子程序完成。采用中断方式的键盘接口电采用中断方式的键盘接口电路。路。第16页,本讲稿共45页89S52第17
14、页,本讲稿共45页二、二、键盘接口控制方式键盘接口控制方式1、判别键盘上有无键闭合;、判别键盘上有无键闭合;2、键盘去抖、键盘去抖3、判别闭合键的键号;、判别闭合键的键号;N=行首键号行首键号+列号列号4、判断闭合键是否释放。、判断闭合键是否释放。三、应用举例三、应用举例【例例4.1】硬件连接如图所示,编程完成如下功能:硬件连接如图所示,编程完成如下功能:按键按下后,对应的小灯亮,再按下,对应的按键按下后,对应的小灯亮,再按下,对应的小灯灭。小灯灭。第18页,本讲稿共45页89S52第19页,本讲稿共45页编程如下:编程如下:KEY:MOV P1,#0FFH ;灯全灭;灯全灭 MOV P2,#
15、0FFH ;P2口为输入状态口为输入状态 MOV A,P2 ;读键值,键按下相应位为;读键值,键按下相应位为0 CPL A ;取反,键按下相应位为;取反,键按下相应位为1 ANL A,#0FH ;屏蔽高;屏蔽高4位,保留低位,保留低4位位 JZ LRET ;全零,无键按下,返回;全零,无键按下,返回 LCALL DEL20 ;非全零,有键按下,延;非全零,有键按下,延 时,软件去抖时,软件去抖 MOV A,P2 ;重读键值;重读键值 CPL A 第20页,本讲稿共45页 ANL A,#0FH JZ LRET ;全零,无键按下,返回;全零,无键按下,返回 JB ACC.0,K0 ;K0按下,转按
16、下,转K0程序程序 JB ACC.1,K1 ;K1按下,转按下,转K1程序程序 JB ACC.2,K2 ;K2按下,转按下,转K2程序程序 JB ACC.3,K3 ;K3按下,转按下,转K3程序程序 SJMP LRETK0:CPL P1.0 ;P1.0状态取反,小灯状态取反,小灯 LED0亮变灭,灭变亮亮变灭,灭变亮 SJMP LRETK1:CPL P1.1 ;P1.1状态取反,小灯状态取反,小灯 LED1亮变灭,灭变亮亮变灭,灭变亮 SJMP LRET第21页,本讲稿共45页K2:CPL P1.2 ;P1.2状态取反,小灯状态取反,小灯 LED2亮变灭,灭变亮亮变灭,灭变亮 SJMP LRE
17、TK3:CPL P1.3 ;P1.3状态取反,小灯状态取反,小灯 LED3亮变灭,灭变亮亮变灭,灭变亮LRET:RETDEL20:MOV R7,#27H ;延时;延时20ms左右左右LOOP1:MOV R6,#0FFHLOOP2:DJNZ R6,LOOP1 DJNZ R7,LOOP2 RET第22页,本讲稿共45页 第三部分第三部分 项目实施项目实施(一)硬件电路(一)硬件电路 图中图中P1.4P1.7用于控制行线,用于控制行线,P1.0P1.3用于控制列线。行、列线通过用于控制列线。行、列线通过上拉电阻接上拉电阻接+5V,没有键按下时,被钳在高,没有键按下时,被钳在高电平状态。通过发送扫描字
18、确定键码,具体电平状态。通过发送扫描字确定键码,具体方法如下:方法如下:第23页,本讲稿共45页89S52+5VP1.05.1k W W4P1.7P1.6P1.5P1.4+5V5.1kW W4P1.3P1.2P1.1第24页,本讲稿共45页(1)由由列列线线输输出出0,然然后后读读入入P1口口的的值值存存入内部入内部RAM 30H单元。单元。(2)由由行行线线输输出出0,然然后后读读入入P1口口的的值值存存入内部入内部RAM 31H单元。单元。(3)把把30H的的低低4位位与与31H的的高高4位位的的值值相加存入累加器相加存入累加器A。(4)最最后后判判断断累累加加器器A的的值值,如如果果累累
19、加加器器A的的数数据据全全为为1,说说明明无无键键按按下下,否否则则说说明明有有键键按按下下,且且累累加加器器A的的数数据据就就是是被被按按下下键键的的键键值值(程程序序中中对对累累加加器器A取取反反,目目的的是是用用JNZ指令判断是否有键按下指令判断是否有键按下)。第25页,本讲稿共45页(二)参考程序(二)参考程序键扫描程序如下:键扫描程序如下:BOAD:LCALL BOADD JNZ BOAD1 ;无键按下转;无键按下转BOAD LCALL DELAY ;调延时子程序;调延时子程序 AJMP BOAD ;继续扫描键盘;继续扫描键盘BOAD1:LCALL DELAY ;消除键抖动;消除键抖
20、动(延时延时 子程序略子程序略)LCALL BOADD ;确认是否有键按下;确认是否有键按下 JNZ BOAD2 LCALL DELAY SJMP BOAD ;转键扫描;转键扫描第26页,本讲稿共45页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页 MOV P1,#0F0H ;置列线为;置列线为0
21、 MOV A,P1 MOV 31H,A ANL 30H,#0FH ;取列值;取列值 MOV A,30H ANL 31H,#0F0H ;取行值;取行值 ADD A,31H ;行值加列值;行值加列值 CPL A ;A全全0无键按下无键按下 RET 键键盘盘扫扫描描程程序序的的运运行行结结果果是是把把闭闭合合键键的的键键码码放放在在32单单元中。元中。第28页,本讲稿共45页项目二项目二 字符显示字符显示第一部分第一部分 项目要求项目要求 设计一个八位显示电路,要求设计一个八位显示电路,要求8 8只数码只数码管从左到右顺序显示管从左到右顺序显示1 1、2 2、3 3、4 4、5 5、6 6、7 7、
22、8 8共共8 8个字符;将内存个字符;将内存10H10H、11H11H、12H12H、13H13H中存放的压缩中存放的压缩BCDBCD码显示出来。码显示出来。第29页,本讲稿共45页第二部分第二部分 相关知识相关知识 单单片片机机应应用用系系统统中中使使用用的的显显示示器器主主要要有有:发发光光二二极极管管显显示示器器(LEDLED);液液晶晶显显示示器器(LCDLCD);阴阴极极射射线线管管显示器(显示器(CTRCTR)。)。一、发光二极管及一、发光二极管及LEDLED显示器显示器发光二极管发光二极管第30页,本讲稿共45页LED显示器显示器 由发光二极管组成,不同的发光段亮,可组成不同由发
23、光二极管组成,不同的发光段亮,可组成不同字型,电流太大,耗电量大,电流太小,发光度不够,字型,电流太大,耗电量大,电流太小,发光度不够,一般各管电流在一般各管电流在10mA较合适。较合适。第31页,本讲稿共45页7段段LED字型码(段码)字型码(段码)显示显示字形字形habcdefg共阳极段共阳极段选码选码共阴极段共阴极段选码选码0123456789ABCDEF“灭灭”110000001111100110100100101100001001101010010010100000101111100010000000100100001000100010000011110001101010000110
24、0001101000111011111111C0HF9HA4HB0H99H92H82HF8H80H90H88H83HC6HA1H86H8EHFFH3FH06H5BH4FH06H6DH7DH07H7FH6FH77H7CH39H5EH79H71H00H第32页,本讲稿共45页LED 显示器接口显示器接口 LED显示器用于显示工业控制参显示器用于显示工业控制参数、过程状态。数、过程状态。1.LED数码管数码管 共阴极共阴极LED和共阳极和共阳极LED 当当LED字段引线与数据线连接,字段引线与数据线连接,每个显示字形对应一个字形码。每个显示字形对应一个字形码。COMP1.01.789S52afbge
25、cdhabhabhCOMD7 D6 D5 D4 D3 D2 D1 D0h g f e d c b a 第33页,本讲稿共45页显示程序任务:显示程序任务:1)设设置置显显示示缓缓冲冲区区,存存放放待待显显示数据。示数据。2)显显示示译译码码:程程序序存存储储器器中中建建立立字字形形码码常常数数表表,查查表表得得出出对对应应数据的字形码。数据的字形码。3)输输出出显显示示:输输出出字字形形码码到到显显示示端口。端口。例:例:MOV DPTR,#WTAB ;指向字形码表首地址;指向字形码表首地址MOV A,R0 ;取显示缓冲区中数据;取显示缓冲区中数据MOVC A,A+DPTR ;查表显示译码;查
26、表显示译码MOV P1,A ;输出显示;输出显示WTAB:DB3FH,06H,5BH;字形码表;字形码表COMP1.01.789S52afbgecdhabh第34页,本讲稿共45页二、七段二、七段LED显示器工作原理显示器工作原理 LED显示器有显示器有静态显示静态显示和和动态显示动态显示两种方式两种方式1.静态显示器静态显示器 多多位位LED分分别别用用一一组组8位位字字段段口口,各各位位LED公公共共端端接地,分别输出显示不同字形。接地,分别输出显示不同字形。abhCOMafbgecdhabhCOMabhCOM第35页,本讲稿共45页 在在AT89S52的串行口上扩展多片串行输入并行输出的
27、串行口上扩展多片串行输入并行输出的移位寄存器的移位寄存器74LS164作为静态显示器接口,图中给出作为静态显示器接口,图中给出了了8位共阳极静态显示器的逻辑接口。设要显示的数据放在位共阳极静态显示器的逻辑接口。设要显示的数据放在78H-7FH中。中。89S52第36页,本讲稿共45页静态显示程序如下:静态显示程序如下:DISPLAY:MOV R7,8;8位显示计数器位显示计数器 MOV R0,78H;78H-7FH为显示器缓冲区为显示器缓冲区 MOV DPTR,TABLE;显示字形码表首地址;显示字形码表首地址LOOP1:MOV A,R0;取出要显示的数据;取出要显示的数据 INC R0;指向
28、缓冲区下一地址;指向缓冲区下一地址 MOVC A,ADPTR;取出显示字形码;取出显示字形码 MOV SBUF,A;送出该;送出该LED上的字形码上的字形码第37页,本讲稿共45页LOOP2:JNB TI,LOOP2;输出完否?;输出完否?CLR TI;完,清发送中断标志;完,清发送中断标志 DJNZ R7,LOOP1;8位显示未完,继续位显示未完,继续 RETTABLE:DB 0C0H,0F9H,0A4H,0BH,99H DB 92H,82H,0FBH,80H,90H DB 88H,83H,0C6H,0A1H,86H DB 8EH,0FFH ;F,暗,暗 第38页,本讲稿共45页2.LED动
29、态显示动态显示动态显示方式是各位数码管的动态显示方式是各位数码管的a h端分别连在一起,并与端分别连在一起,并与单片机系统的一个单片机系统的一个I/O口相连。从该口相连。从该I/O口输出显示代码。口输出显示代码。每只数码管的共阴极端或共阳极端则与另一个每只数码管的共阴极端或共阳极端则与另一个I/O口相连,口相连,控制该位的点亮。控制该位的点亮。每每一一时时刻刻,只只有有一一位位数数码码管管被被点点亮亮,各各位位之之间间,依依次次轮轮流被点亮,对每位来说,每隔一段时间点亮一次。流被点亮,对每位来说,每隔一段时间点亮一次。利利用用发发光光二二极极管管的的余余辉辉和和人人眼眼的的驻驻留留效效应应,并
30、并通通过过适适当当调调整整每每位位数数码码管管点点亮亮的的时时间间和和时时间间间间隔隔,便便可可以以得得到到稳稳定定的的显示输出。显示输出。在单片机系统应用中,广泛采用动态显示方式。在单片机系统应用中,广泛采用动态显示方式。第39页,本讲稿共45页第40页,本讲稿共45页 第三部分 项目实施(一)硬件电路分析 P1口输出与对应显示位的关系 端口端口P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7位码位码01H02H04H08H10H20H40H80H数码管数码管L1L2L3L4L5L6L7L8第41页,本讲稿共45页89S52第42页,本讲稿共45页(二)程序清单:(二)程序清
31、单:DPLAY:MOV R0,78H ;显示数据缓冲区首;显示数据缓冲区首 地址送地址送R0 MOV R3,00000001B ;使显示器最右边位亮;使显示器最右边位亮 LPl:MOV A,R3 MOV P1,A ;扫描值送;扫描值送P1口口 MOV A,R0 ;取欲显示数据;取欲显示数据 ADD A,0EH ;加上查表指令地址偏移量;加上查表指令地址偏移量 MOVC A,A+PC ;取出段码;取出段码 MOV P2,A ;送出显示;送出显示 ACALL DELAY ;调用延时子程序;调用延时子程序 INC R0 ;指向下一个显示缓冲区地址;指向下一个显示缓冲区地址 MOV A,R3 JB A
32、CC0,LP2 ;扫描到第八个显示器否?;扫描到第八个显示器否?第43页,本讲稿共45页 RR A ;未到,扫描码右移;未到,扫描码右移1位位 MOV R3,A AJMP LPlLP2:RETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;0,1,2,3,4,5 DB 82H,0F8,80H,90H,0C8H,83H ;6,7,8,9,A,B DB 0C6H,0A1H,86H,8EH ;C,D,E,FDELAY:MOV R7,02H ;延时子程序;延时子程序DL1:MOV R6,0FFHDL2:DJNZ R6,DL2 DJNZ R7,DLl RET第44页,本讲稿共45页 设计一个数码管显示电路,要求数码管以设计一个数码管显示电路,要求数码管以闪光方式轮流显示闪光方式轮流显示0F共共16个字符,闪光频个字符,闪光频率为率为2Hz,每个字符显示,每个字符显示1s。(要求显示时间。(要求显示时间用中断方式实现)用中断方式实现)讨论题讨论题第45页,本讲稿共45页