




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 MCS51单片机I/O接口技术v存储器扩展和I/O扩展均是接口技术研究的内容,而且在本质上是一样的,但二者有较大的区别:v前者完成的是计算机系统本身的扩展,而后者实现的是计算机系统和外部设备的连接,是计算机在测控系统中使用必须解决的问题;v存储器芯片内部一般有数千个单元,芯片有若干根地址线,而I/O设备一般只有少数几个或者一个单元,只有一、两根地址线甚至没有专门的地址线,这种区别导致了存储器扩展和I/O扩展时,地址线和译码信号的连接上有较大的不同。 9.1 I/O接口的功能和作用计算机系统IO接口示意图逻辑接口电气接口v控制系统中计算机和外围设备进行数据交换时可能存在以下一个或多个问题
2、速度不匹配时序不匹配数据格式不匹配信号类型不匹配v接口应有的功能: 通过地址译码实现对不同设备的选择; 设置数据的寄存、缓冲逻辑,解决CPU与外设之间的速度差异;进行数据格式的转换,如串并相互转换; 协调CPU和外设在信号类型和电平的差异; 协调数据读写时序; 设置中断和DMA控制逻辑等9.2 用通用芯片扩展I/O口9.2.1 8155接口芯片及其应用 v8155是由Intel公司开发的可编程并行接口芯片,内部包含256Byte静态RAM两个8位、一个6位的可编程I/O口一个14位定时/计数器具有地址锁存器v8155和MCS51单片机同是Intel公司的产品,兼容性好,和单片机连接非常简单,是
3、单片机应用系统中很常用的接口芯片。8155/8156芯片引脚和内部逻辑框图8155包含3大功能模块:v存储器部分:256字节8位静态RAM。v并行I/O接口部分,共有3个并行口及相应控制寄存器:端口A,可编程8位I/O口,对应PA0PA7端口B,可编程8位I/O口,对应PB0PB7。端口C,可编程6位I/O口,对应PC0PC5。命令寄存器。8位寄存器,只能写入。状态寄存器。8位寄存器,只能读出。9.2.1.1 8155的结构及引脚介绍 v定时计数器部分:14位减法定时计数器。v由低8位寄存器和高6位(高两位为操作方式控制位)寄存器操作、控制 8155引脚功能:vAD0AD7:地址数据复用总线。
4、vALE:地址锁存信号输入线。vIO/M:RAM/IO口选择信号输入。该引脚为低是,读写其内部RAM;为高时,操作I/O口。v/CE :片选信号输入。v/RD、/WR:RAM/IO口读写控制信号输入。 9.2.1.2 8155的RAM和I/O口编址 v8155片内有256字节RAM单元,在具体系统中的地址为00HFFH,低8位地址由AD0AD7 8根地址线编址,高8位地址由/CE和IO/M端信号共同决定,即/CE 0、 IO/M 0时的高位地址线状态决定了RAM单元的高8位地址。8155片内内寄存器 v8155片内共有6个寄存器低位地址由AD0AD2三根地址线编址,/CE0、IO/M1时的高位
5、地址线状态决定寄存器和I/O口的高8位地址。 9.2.1.3 8155的工作方式与基本操作 1)作片外256字节数据存储器v将8155的引脚置低可作片外数据存储器使用,其地址高8位由片选线决定,低8位为00H0FFH。2)作扩展I/O口使用v8155作扩展I/O口使用时, IO/M引脚必须置高电平,vPA、PB、PC口和命令寄存器的低位地址分别为01H、02H、03H和00H。(设地址无关位为0)。v8155的A、B口可工作于基本I/O方式也可工作于选通方式,通过设置8155内部命令寄存器的相关位,可在两种方式间切换。基本 I/O 方式 v基本I/O方式为无条件传送,不需要任何联络信号,815
6、5的A、B、C三个口都可工作于基本 I/O 方式。选通I/O方式v8155的A口和B口可工作于选通方式,这时C口作为A、B口的联络控制信号线,如果有剩余可作为输出口线。9.2.1.4 8155命令/状态字 v命令寄存器可写入控制字,用以确定8155的工作方式;v状态寄存器可读出,不同的位分别代表8155各个功能部件的当前工作状态。v这两个寄存器共用一个地址,但在物理上是相互独立的:对其写入时作为命令寄存器,写入的是命令;而对其读出时,作为状态寄存器,读出的是当前I/O口和定时器的状态。1)命令字 vD3和D2位定义C口工作方式,具体含义为:D3D200,ALT1方式:即A、B口均为基本I/O方
7、式,C口为输入方式;D3D201,ALT2方式:即A、B口均为基本I/O方式,C口为输出方式;D3D210,ALT3方式:即A口为选通I/O方式、B口为基本I/O方式,C口低3位作A口联络线、高3位为输出方式;D3D211,ALT4方式:即A、B口均为选通I/O方式,C口低3位作A口联络线、高3位位作B口联络线。D7D6(TM2TM1)定时器运行控制位 vTM2TM100:维持原来状态v TM2TM101:停止计数,准备读取定时/计数值;vTM2TM110:预停,基数寄存器减为0后停止计数;vTM2TM111:如果定时/计数器未工作,装入计数初值后,立即开始计数;如果定时/计数器正在计数,则待
8、计数器溢出后按新装入的计数初值方式开始计数。2)状态字 v状态字是8155状态寄存器的内容,只能读出不能写入,反映各个口及定时/计数器的当前工作状态9.2.1.5 8155的定时器/计数器 v定时器的计数基值和输出方式由04H、05H口寄存器确定v定时器/计数器的输出波形由TH的M2和M1两位确定9.2.1.6 8155与单片机接口方式 及应用举例 例:电路如图所示,PA口为基本输入方式,PB口为基本输出方式,要求对PA口输入的信号求反后,再从PB口输出。试写程序。 v8155 I/O口地址分配:命令/状态寄存器的地址: 7F00HPA口的地址:7F01HPB口的地址:7F02HPC口的地址:
9、7F03H v命令字设定:TM2TM1(D7D6)00定时器无操作;IEB(D5)0.禁止B口中断;IEA(D4)0.禁止A口中断PC2PC1(D3D2)00A、B口基本I/O,C口输入;PB(D1)1B口输出;PA(D0)0. A口输入。控制字为00000010B,即02H MOVDPTR,#7F00H;命令控制口地址MOVA,#02H MOVXDPTR, A;设定命令控制字Loop:MOVDPTR,#7F01H;PA口地址MOVXA,DPTR;读入PA口状态CPLA;取反INCDPTR;指向PB口MOVXDPTR, A;从PB口输出SJMPLoop;循环 9.2.2 8255接口芯片及其应
10、用 v8255是Intel公司开发的8位通用I/O接口芯片,内部具有3个8位I/O口,分别称为PA口、PB口和PC口v通过设置控制字,3个口可工作于基本I/O方式、选通I/O方式和双向总线等3种方式v3个口都可工作于I/O方式,另两种方式,3个口情况有所不同 8255内部结构A组数据总线缓冲器内部控制线内部数据线D0D7A组控制端口AB组控制端口B端口C低4位读写控制逻辑PC0PC3PB0PB7PC4PC7PA0PA7端口C高4位B组A0A1RSTP2.4P2.3P2.2P2.1PSENP2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0单片机EAALE&ENBOE
11、PGM CE PSEN CS WRRD G CE1 CE2 INT0INT1 INT IO/M EAD7D6D5D4Q7Q6Q5Q4D3D2D1D0Q3Q2Q1Q0GOE74373P2.4P2.3P2.2P2.1PSENP2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0单片机EAALE&ENBOEPGM CE PSEN CS WRRD G CE1 CE2INT0INT1INT IO/M EAD7D6D5D4Q7Q6Q5Q4D3D2D1D0Q3Q2Q1Q0GOE74373P2.4P2.3P2.2P2.1PSENP2.0P0.7P0.6P0.5P0.4P0.3P0.2
12、P0.1P0.0单片机EAALE&ENBOEPGM CE PSEN CS WRRD G CE1 CE2 INT0INT1 INT IO/M EAD7D6D5D4Q7Q6Q5Q4D3D2D1D0Q3Q2Q1Q0GOE743739.2.2.1 8255结构1.输入/输出端口 PA口:具有数据输出锁存/缓冲和数据输入锁存功能的8位并行口。PB口:具有数据输出锁存/缓冲和数据输入缓冲功能的8位并行口。PC口:具有数据输出锁存/缓冲和数据输入缓冲功能的8位并行口。v通常情况下,PA口和PB口作为数据输入/输出口,而PC口作为控制/联络端口使用。2.工作方式控制 v8255内部有两个工作方式控制电
13、路A组控制电路,B组控制电路,两个控制电路共用一个控制命令寄存器。vA组由PA口和PC口的上半部分(PC7PC4)组成,由A组控制电路控制;vB组由PB口和PC口的下半部分(PC3PC0)组成,由B组控制电路控制。3 数据总线缓冲器v数据总线缓冲器是一个8位3态缓冲器,实现8255与系统数据线的缓冲和隔离。v一般情况下,8255内部数据总线通过该缓冲器与系统数据总线相连。 4.读/写控制逻辑电路 v功能:根据CPU发来有关控制信号选择内部寄存器v完成与CPU之间的数据交换,vRESET信号实现对8255内部寄存器单元的复位。 9.2.2.2 8255的工作方式 1. 方式0基本输入/输出 vP
14、A、PB和PC都可工作于方式0,该方式下,3个口的每一位都可以独立地设置为输入口或输出口,CPU可以采用无条件读写方式或查询方式与8255交换数据。v基本输入/输出方式下工作时,8255将输出的数据锁存于相应端口,输入数据不锁存。2. 方式1选通输入/输出v三个端口分成A、B两组,A组由PA口和PC口的高4位组成;B组由PB口和PC口的低4位组成。vPA、PB两个口用于传输数据,而PC分别作为PA口和PB口与CPU以及PA口和PB口与外设之间的联络信号。 3.方式2双向选通输入/输出v只有PA口可以工作于方式2,需要5根PC口线(PC3PC7)作为控制联络线。v方式2与方式1的区别在于:方式1
15、是单向的,而PA口工作于方式2时,既可输入数据也可输出数据,且输入和输出均带有锁存。vPA口工作于方式2时需要5根控制联络线,由于PC口不能再提供5根信号线供PB口使用,因而PB口不能工作于方式2。 选通方式下,PC口控制联络信号定义9.2.2.3 8255的控制字 v8255有两个控制字,一个用来选择IO端口的工作方式,称为工作方式控制字;v另一个用来控制PC口的每一位,称为PC口位控制字。v两个控制字共用一个内部寄存器地址,即A1A011,控制字最高位作为标识位,用于区分不同的控制字:当D71时,写入的是工作方式控制字;当D70时,对PC口位控制字进行操作。1.工作方式控制字 2. PC口
16、位控制字 例:89C51通过8255与微型打印机相连。单片机通过查询方式向打印机发送数据。要求编写打印子程序,需打印的字节数存R7,需打印的数据在片内数据存储区,首址存于R1。 v控制字设置PC0连接输入信号BUSY,PC3 PC0为输入PC7连接/STB,PC7 PC4为输出PA口为打印数据输出口,PB口未用,故 8255A的控制字为:1 0 0 0 0 0 0 1B = 81H。v口地址确定:8255片选端由单片机最高位地址线P2.7控制,因此,如果将无关位视为“1”,8255各寄存器地址是:PA口:7FFCHPB口:7FFDHPC口:7FFEH控制口:7FFFH打印程序 MOV DPTR
17、,#7FFFH;控制口地址 MOV A,#81H;控制字 MOVX DPTR,A ;写入控制字NEXT:MOV DPTR,#7FFEH ;PC口地址 MOV A,#80H ;使PC7为高电平 MOVX DPTR,A ;向/STB输出高电平,送数结束 MOVX A,DPTR;读入打印机状态WAIT:JB ACC.0,WAIT ;若PC0(BUSY)= 1,打印机忙,等待MOVDPTR,#7FFCH ;BUSY=0,指向PA口MOV A,R1 ;取打印数据MOVX DPTR,A ;输出数据MOV DPTR,#7FFEH;指向PC口MOV A,#00HMOVX DPTR,A ;置低,通知打印机数据送
18、出LCALL DELAY ;延时,保持信号为低一段时间INC R1;指向下一打印数据DJNZ R7,NEXT ;判断打印是否结束SJMP $9.2.3 8279接口芯片及其应用v8279是可编程键盘/显示器接口芯片,它具有键盘输入和显示器输出两种功能。v键盘输入时,与按键或传感器组成的矩阵相连,自动扫描,接收输入信息,具有按键消抖功能,并能对多键同时按下提供保护。v显示输出时,它有一个168位显示RAM,其内容自动扫描输出,可由8或16 位LED数码管显示。8279的内部结构和工作原理8 2 7 9IR QD0 D7R DW RC SA0R E S E TC L KR L0 R L7S H I
19、F TC N T L /S T BS L0 S L3O U T A0O U T A3O U T B0O U T B3B D8计 算 机接 口按 键 数 据显 示 数 据4448扫 描 线1. 8279的引脚和功能vD0D7:双向三态数据总线。vA0:数据选择输入端:A0=1时,CPU写入数据为命令字,读出数据为状态字;A0=0时,CPU读、写均为数据。v/CS:片选输入端,低电平有效 v/RD、/WR:读、写信号输入端,低电平有效。vSL0SL3:扫描输出端,扫描键盘和显示器。可编程为编码(4中选1)或译码输出(16选1)。vRL0RL7:反馈线,键盘或传感器的列信号输入端。vSHIFT:移位
20、信号输入端,高电平有效。键盘数据的D6位,通常作上、下档功能键。在传感器和选通方式中,SHIFT无效。vCNTL/STB:控制/选通输入端,高电平有效。在键盘工作方式时,是键盘数据的D7位,通常用作控制键。在选通输入方式时,它的上升沿可把来自RL0RL7的数据存入FIFO/传感器RAM中。在传感器方式时,该引脚无效。vOUTA0OUTA3:A组显示信号输出端。vOUTB0OUTB3:B组显示信号输出端。vIRQ:中断请求输出端,高电平有效。v/BD:显示熄灭输出端,低电平有效。它在数字切换显示或使用熄灭命令时关显示。vCLK:系统时钟输入端。vRESET:系统复位输入端,高电平有效。复位状态为
21、:16个字符显示;编码扫描键盘;双键锁定;外部时钟分频系数31。2. 内部结构及功能模块数据缓冲器定时与控制寄存器定时控制逻辑I/O控制 FIFO/传感器RAM状态寄存器RDWRCSA0168位显示RAM显示地址寄存器显示寄存器88 FIFO/传感器RAM键盘消抖与控制扫描计数器反馈48SHIFT CNTL/STBRL0RL7SL0SL38BDOUTA0OUTA3,OUTB0OUTB3IRQD0D7CLK RESET内部总线1)I/O控制及数据缓冲器模块v数据缓冲器是双向缓冲器,连接内外总线,用于传送CPU和8279之间的命令或数据,对应的引脚为数据总线D0D7。vI/O控制线是CPU对827
22、9进行控制的信号输入线,对应的引脚为数据选择线A0、片选线/CS 、读/写信号线/RD和/WR。2)控制与定时寄存器及定时控制模块v控制与定时寄存器用来寄存键盘及显示工作方式控制字,及其它操作方式控制字。这些寄存器接收并锁存各种命令,再通过译码电路产生相应的信号,从而完成相应的控制功能。与其对应的引脚为时钟输入端CLK,复位端RESET。v定时控制电路包括若干个基本计数器组成,其中,第一个计数器可编程,取值N= 231,该值作为分频系数,对外部时钟CLK进行分频得到内部所需的100KHz时钟,为键盘提供适当的扫描频率和显示扫描时间。与其相关的引脚是显示熄灭控制端。3)扫描计数器模块v扫描计数器
23、模块由键盘和显示器共用,提供键盘和显示器的扫描信号,相关引脚是扫描线SL0SL3。扫描计数器有两种工作方式:编码工作方式:计数器作二进制计数,4位计数状态从扫描线SL0SL3输出,经外部译码器译码后,可为键盘和显示器提供16个扫描信号;译码工作方式:扫描计数器的最低两位被译码后,从SL0SL3输出,提供了4选1的扫描译码。4)反馈缓冲器、键盘去抖及控制模块v在键盘工作方式中,反馈线作为行列式键盘的列输入线,由反馈缓冲器缓冲并锁存,8279以此判别是否有键按下。v当某一键闭合时,消抖电路被置位,延时10ms后,再检查该键是否仍处在闭合状态v延时后,如果按键不再是按下状态,则作为抖动信号不予处理;
24、如是仍然闭合,则将该键的地址和附加的换档、控制键状态一起形成键盘数据送入8279内部的FIFO存储器。5)FIFO/传感器及其状态寄存器模块 vFIFO/传感器RAM是一双功能88 RAM,相关引脚是中断请求线IRQ:在键盘选通工作方式时,它是FIFO存储器,输入输出遵循先入先出的原则。此时,FIFO状态寄存器用来存放FIFO的工作状态。当FIFO存储器中有数据(有键按下)时,状态逻辑将产生IRQ=1信号,向CPU申请中断。传感器矩阵方式中,存放传感器矩阵中的每个传感器状态,若检索出传感器的变化,IRQ信号输出高电平,向CPU申请中断。6)显示RAM和显示寄存器模块v显示RAM存储要显示数据,
25、容量为168位。在显示过程中,存储的数据轮流从显示寄存器输出。v显示寄存器分为A组:OUTA0OUTA3和B组OUTB0OUTB3。它们既可输出数据,也可组成一个8位(A组为高4位,B组为低4位)的字。v与该模块相关的引脚是数据显示线OUTA0OUTA3和OUTB0OUTB3。v显示地址寄存器用来寄存CPU读/写显示RAM的地址,它可以由命令设定,也可以设置成每次读出或写入后自动递增。3. 8279的工作方式v8279的工作方式由CPU对8279写入命令字设定或改变。vCPU与8279之间进行数据传输时,当低位地址线A0为“1”时,CPU对8279写入的数据为命令字,读出的数据为状态字;vA0
26、为“0”时,CPU读/写8279内部数据。 1)键盘的工作方式v键盘工作方式包括双键互锁和N键巡回两种方式:双键互锁:如果有两个或两个以上键同时按下,只识别最后一个释放的键,并把该键键值送入FIFO/传感器RAM中。N键巡回:若有多个键同时按下时,按按键先后顺序依次将键值送入FIFO/传感器RAM中。2)显示器工作方式v通过对键盘/显示方式命令字和写显示RAM命令字的设置,显示数据写入显示缓冲器时可置为左端送入和右端送入两种方式。v左端送入为依次填入方式,右端送入为移位方式。4. 8279的命令格式和命令字1)键盘/显示方式命令字vD7D6D5为000,是方式设置命令特征位。DD(D4D3):
27、设定显示方式:00:8个字符显示,左边输入01:16个字符显示,左边输入10:8个字符显示,右边输入 11:16个字符显示,右边输入KKK:设定8种键盘/显示工作方式:000:编码扫描键盘,双键锁定001:译码扫描键盘,双键锁定010:编码扫描键盘,N键巡回 011:译码扫描键盘,N键巡回100:编码扫描传感器矩阵 101:译码扫描传感器矩阵110:选通输入,编码显示扫描 111:选通输入,译码显示扫描2)时钟编程命令vD7D6D5为001,是时钟编程命令特征位vPPPPP:设定对CLK输入端输入的外部时钟信号进行分频的分频系数N,用以产生100KHz的内部时钟,N的取值为231。v若CLK输
28、入的时钟频率为2MHz,则需要设置N=20,即PPPPP=10100B。3)读FIFO/传感器RAM命令 vD7D6D5为010,读FIFO/传感器RAM命令特征位vAI(D4)为自动加1标志。AI=0时,读完传感器RAM的数据后地址不变;AI=1时,读完传感器RAM的数据后地址自动加1 vAAA为FIFO/传感器RAM地址。v键扫描方式时,读取数据按先进先出的原则读出,与AI、AAA无关 4)读显示RAM命令 vD7D6D5为011,读显示RAM命令特征位vAI(D4)自动加1标志,AI=1时,每次读数据后地址自动加1。vAAAA(D3D2D1D0):将要读的显示RAM中的存储单元地址。 0
29、115)写显示RAM命令 vD7D6D5为100,写显示RAM命令特征位 vAI(D4)自动加1标志,AI=1时,每次写数据后地址自动加1。vAAAA(D3D2D1D0)为将要写入的显示RAM中的存储单元地址。 6)显示禁止写入/消隐命令 vD7D6D5为101,显示禁止写入/熄灭命令的特征位。vIWA、IWB(D3D2):A、B组显示RAM写入屏蔽位。当IWA=1时,A组显示RAM禁止写入,从CPU写入显示器RAM数据不影响A组显示器的显示IWB的用法与IWA相同,可屏蔽B组显示器。vBLA、BLB(D1D0)为A、B组的消隐设置位。为“1”时关闭对应组的显示;为“0”时恢复显示。 101I
30、WAIWB BLABLB7)清除命令 vD7D6D5为110,是清除命令的特征位。vCDCDCD(D4D3D2)设定清除显示RAM的方式 vCF(D1)用于清除FIFO存储器,CF=1清除FIFO状态,并使中断输出线复位;同时,传感器RAM的读出地址也被置0。vCA(D0)为总清除特征位,兼有CD和CF两位的功能。CA=1时,清除显示器和FIFO的状态。 110CDCDCFCACD8)结束中断结束中断/出错方式设置命令出错方式设置命令 vD7D6D5为111,结束中断/出错方式设置命令特征位。vE(D4)为1时,N键巡回工作方式可工作在特殊出错方式(多个键同时按下);对传感器工作方式,此命令使
31、IRQ变低,结束中断,并允许对RAM进一步写入。111E7. 应用实例9.3 用74/54系列芯片扩展I/O口 v可用74/54系列中小规模芯片进行简单I/O扩展,优点:体积、功耗小,成本低v74/54系列芯片没有专门的片选端,一般将地址信号和读写信号组合到一起,直接控制其读写,以这种方式给它分配硬件地址。v一般用74273、74373等锁存器芯片扩展单片机的输出接口输出锁存 v一般使用74244或74245等具有隔离缓冲功能的芯片扩展输入接口输入缓冲用锁存器和缓冲器扩展单片机I/O接口 9.4 常用外围设备接口技术 v键盘和显示器却是绝大多数系统共有的外围设备,接口方法基本是通用和类似的,v
32、本节介绍这两种设备和单片机的常用接口方法。 v通过学习键盘和显示器的接口方法,理解接口电路设计的一般原则和规律。9.4.1 键盘接口技术 9.4.1.1 键盘工作原理v按键本质上是一个开关,通过接通或断开一个回路,使电路出现通和断两种状态,即“开关”状态,v计算机通过识别电路的通断(判断输入电平的高/低或1/0状态)来判断按键是否按下,从而进行相应的处理。1.编码键盘与非编码键盘 v编码键盘用硬件来实现对键的识别,有键按下时,能够由硬件逻辑自动提供与键对应的编码,此外,一般还具有去抖动和多键保护等相关功能;v非编码键盘只简单地提供按键的行列矩阵,由软件实现键的定义与识别。v编码键盘使用方便,但
33、需要较多的硬件,价格较贵,v非编码键盘经济实用,单片机系统普遍采用这种键盘接口方式 2.按键抖动及消除 v触点式开关按键一般靠弹簧弹起复位,按键在按下和放开时有机械振动,会出现虽然只按了一次键,但按键触点接通/断开多次的情况,这称为键抖动。v抖动时间的长短与开关的机械特性有关,一般为510ms,v计算机在识别按键时必须消除抖动的影响,否则会出现人工按一次键而计算机处理多次的问题。v消除抖动可以用硬件或软件的方法完成。 硬件去抖 软件消除v在检测到有按键按下时,延时10ms左右(具体时间根据使用的按键调整),再次检测该键是否仍保持闭合状态,若仍保持闭合,则确认该键按下。v在检测到按键释放后,也采
34、用相同的步骤进行二次确认,从而消除抖动的影响。 9.4.1.2 独立式键盘 v独立式键盘的特点是每个按键独占一根I/O线,每个按键的工作不会影响其它I/O口线的状态。v按键电路配置灵活,软件结构简单,但按键较多时,需占用较多的I/O口,如果系统的I/O设备较多,不宜采用这种方式。v独立式按键的软件一般采用查询式结构。先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平(与硬件接法有关),则可确认该I/O口线所对应的按键已按下,去除抖动后如仍然是按下的,则转向该键的功能处理程序 P 1.0P 1.1P 1.2P 1.3P 1.4P 1.5P 1.6P 1.789C 51+ 5 V按
35、键检测、处理子程序 KEY:MOVA,P1;读入I/O口状态 CPLA;反相 JZXEND;无键按下,返回XD: MOVR0,A;暂存按键状态 LCALL DELAY;延时10ms。去抖 MOVA,P1;再次读入按键状态 CPLA JZXEND;无键按下,返回 CJNEA,R0,XEND;和前次按键不同,抖动,返回JBACC.0,KEY0;0号键按下,转0号键处理程序JBACC.1,KEY1JBACC.7,KEY7KEY0:;0号键处理程序,略SJMPXEND;处理完毕,返回KEY7:XEND:RET 9.4.1.3 行列式键盘行列式键盘 v行列式键盘(也称矩阵式)由行线和列线组成,按键位于行
36、、列线的交叉点上 v行列式键盘较独立式键盘节省的I/O口线v行列式键盘的按键识别方法比独立式键盘要复杂一些,常用的方法有扫描法线反转法一. 行列式键盘按键扫描识别法 行列式键盘扫描流程三. 键盘的扫描工作方式 v 编程扫描方式 v 定时扫描方式 v 中断扫描方式 中 断 入 口有 键 按 下 ?去 抖 标 志 1 ?处 理 标 志 1 ?处 理 标 志 1识 别 按 键保 存 键 号返 回去 抖 标 志 0处 理 标 志 0去 抖 标 志 1NYNYYN中断式键盘v无键按下时,CPU不扫描键盘,而有键按下时,通过相应电路产生中断请求,CPU响应中断,执行键盘扫描程序,识别按键 v该方式节约CPU时间 四.键真值和键盘编码 v无论采用什么方式检测键状态,最终都需要确定出按下的键的“代号”,以便后续程序执行该
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论