《MCS单片机系统的并行扩展技术.pptx》由会员分享,可在线阅读,更多相关《MCS单片机系统的并行扩展技术.pptx(135页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5 5章章 MCS-51MCS-51单片机系统的并行扩展技术单片机系统的并行扩展技术内容提要:内容提要:本章学习本章学习MCS-51MCS-51单片机的并行扩展技术。首先介绍单片机的并行扩展技术。首先介绍并行扩展的原理和常用芯片,然后详细给出程序存储器扩并行扩展的原理和常用芯片,然后详细给出程序存储器扩展、数据存储器扩展、展、数据存储器扩展、I/OI/O口扩展、口扩展、81558155综合扩展、综合扩展、82798279键盘和显示器扩展、并行键盘和显示器扩展、并行A/DA/D和和D/AD/A扩展的原理和具体应用扩展的原理和具体应用实例。实例。第1页/共135页5.1 5.1 单片机并行扩展
2、概述单片机并行扩展概述5.1.1 单片机的外部扩展总线5.1.2 系统扩展常用芯片 5.1.3 系统扩展的寻址方法第2页/共135页 5.1 5.1 单片机并行扩展概述单片机并行扩展概述单片机扩展系统框图第3页/共135页 5.1.1 5.1.1 单片机的外部扩展总线单片机的外部扩展总线 单片机的外部扩展总线:MCS-51单片机内部有地址总线、数据总线和控制总线,内部部件的运行和操作要依靠这三种总线。在进行系统扩展时,需要利用这三种总线把外部芯片与单片机连接为一体。第4页/共135页 5.1.1 5.1.1 单片机的外部扩展总线单片机的外部扩展总线单片机的并行总线第5页/共135页 5.1.1
3、 5.1.1 单片机的外部扩展总线单片机的外部扩展总线单片机系统扩展所用到的控制线主要有如下几根:ALE:作为低8位地址锁存的选通信号;#PSEN:作为扩展程序存储器的读选通信号;#RD,#WR:作为扩展数据存储器和外接I/O口芯片的读、写选 通信号。第6页/共135页 5.1.2 5.1.2 系统扩展常用芯片系统扩展常用芯片系统扩展常用芯片:1.锁存器 锁存器在地址扩展中的作用就是锁存地址。地址锁存器可使用带三态缓冲输出的8位锁存器74HC373,常简称74373或373。第7页/共135页 5.1.2 5.1.2 系统扩展常用芯片系统扩展常用芯片74HC373芯片引脚图 74HC373常用
4、连接方法 第8页/共135页 5.1.2 5.1.2 系统扩展常用芯片系统扩展常用芯片系统扩展常用芯片:2.缓冲/驱动器 由于单片机功率有限,故每个I/O管脚的驱动能力有限。因此,为驱动负载,往往采用缓冲/驱动器。74HC245是常用的数据缓冲/驱动器,也简称245,其输入阻抗高,输出阻抗低,具有三态缓冲功能 第9页/共135页5.1.2 5.1.2 系统扩展常用芯片系统扩展常用芯片74HC245引脚图 74HC245常用接法 第10页/共135页 5.1.2 5.1.2 系统扩展常用芯片系统扩展常用芯片输入输入输入输入/输出输出#OE#OEDIRDIRAnAnBnBnL LL LA=BA=B
5、输入输入L LH H输入输入B=AB=AH HX X高阻高阻高阻高阻74HC245的真值表 第11页/共135页 5.1.2 5.1.2 系统扩展常用芯片系统扩展常用芯片系统扩展常用芯片:3.译码器 译码器有变量译码器、代码译码器和显示译码器等,在此仅介绍用作地址译码的变量译码器。常用译码器有74HC138和74HC139等。第12页/共135页5.1.2 5.1.2 系统扩展常用芯片系统扩展常用芯片74HC245的读写操作原理图 第13页/共135页5.1.2 5.1.2 系统扩展常用芯片系统扩展常用芯片74HC138引脚图 74HC139引脚图 第14页/共135页 5.1.3 5.1.3
6、 系统扩展的寻址方法系统扩展的寻址方法系统扩展的寻址方法:系统扩展的寻址方法是指当单片机扩展了存储器、I/O接口等外围接口芯片之后,寻找这些芯片的地址的方法。包括:1.线选法寻址 2.译码法寻址第15页/共135页 5.1.3 5.1.3 系统扩展的寻址方法系统扩展的寻址方法线选法寻址的单片机接线图 第16页/共135页 5.1.3 5.1.3 系统扩展的寻址方法系统扩展的寻址方法线选法寻址地址分配表 第17页/共135页 5.1.3 5.1.3 系统扩展的寻址方法系统扩展的寻址方法译码法寻址的单片机接线图 第18页/共135页 5.1.3 5.1.3 系统扩展的寻址方法系统扩展的寻址方法线选
7、法寻址的单片机接线图 第19页/共135页 5.2 5.2 外部存储器的扩展外部存储器的扩展 单片机可以根据需要在片外扩展程序存储器和/或数据存储器,本节介绍采用并行总线结构进行扩展的方法。第20页/共135页5.2 5.2 外部存储器的扩展外部存储器的扩展5.2.1 程序存储器扩展5.2.2 数据存储器扩展第21页/共135页 5.2.1 5.2.1 程序存储器的扩展程序存储器的扩展程序存储器扩展:MCS-51单片机的程序存储器为只读存储器,目前使用最多的是EEPROM存储器芯片,EPROM芯片已很少采用,但其使用方法和EEPROM相同。这些存储器的型号有:EPROM:2716,2732,2
8、764,27128,27256,27512;EEPROM:2864,2817等。第22页/共135页5.2.1 5.2.1 程序存储器的扩展程序存储器的扩展扩展2K程序存储器的单片机系统 第23页/共135页 5.2.1 5.2.1 程序存储器的扩展程序存储器的扩展 地址线连接:2716的存储容量为2k8bit,需11位地址(A10A0)进行存储单元的选择。为此先把芯片的A7A0与地址锁存器的低8位地址输出对应连接,剩下的高位地址(A10A8)与P2口的P2.2P2.0相连。数据线的连接:程序存储器的数据输出引脚与P0口对应连接。控制信号线的连接:单片机的外部存储器选通信号#PSEN与2716
9、的#OE端相接,以便进行存储单元的读出选通。第24页/共135页 5.2.1 5.2.1 程序存储器的扩展程序存储器的扩展 片选线的连接:本例采用线选法,选取高位地址线P2.7作为芯片选择信号,与2716的#CE端相连。扩展芯片的地址范围:最低地址:当A0A10取值为00000000000时;最高地址:当A0A10取值为11111111111时。该连接方式程序存储器的地址范围是0000H07FFH,同时,0800H0FFFH、1000H17FFH、,也是其地址范围。这种地址范围重叠是由线选法造成的。第25页/共135页 5.2.2 5.2.2 数据存储器的扩展数据存储器的扩展数据存储器扩展:M
10、CS-51单片机的数据存储器分为片内存储器和片外存储器,它们占用不同的地址空间。片外数据存储器最大可扩展64KB,一般采用静态RAM型芯片进行扩展。在51单片机系统中,可以用做数据存储器的芯片主要是静态存储器,常用芯片有2K8位的RAM 芯片6116,16K8位的RAM芯片 62128,32K8位的RAM芯片 62256,64K8位的RAM芯片62512等。第26页/共135页 5.2.2 5.2.2 数据存储器的扩展数据存储器的扩展单片机扩展外部数据存储器原理框图 第27页/共135页 5.2.2 5.2.2 数据存储器的扩展数据存储器的扩展扩展2K数据存储器的单片机系统 第28页/共135
11、页 5.3 5.3 并行并行I/OI/O接口的扩展接口的扩展 MCS-51单片机共有4个8位并行I/O,这些I/O口一般不能完全供用户使用。但是在有些情况,即使4个I/O口全部外用,也不能满足要求。此时,需要对单片机应用系统进行I/O口的扩展。在MCS-51单片机中,扩展的I/O口采取与数据存储器相同的寻址方法。所有扩展I/O口以及通过扩展I/O口连接的外设均与片外数据存储器统一编址。扩展I/O口所用芯片主要有通用可编程I/O芯片和TTL、CMOS锁存器、缓冲器芯片等。第29页/共135页 5.3 5.3 并行并行I/OI/O接口的扩展接口的扩展5.3.1 简单的I/O扩展5.3.2 5.3.
12、2 可编程I/O接口电路的扩展第30页/共135页 5.3.1 5.3.1 简单的简单的I/OI/O扩展扩展简单的I/O扩展:扩展I/O口的数据一般挂在数据总线上,即连接到P0口,I/O口的选通一般由地址线译码得到。常用的I/O口扩展芯片有373、573、377、245、244、273、367等。第31页/共135页 5.3.1 5.3.1 简单的简单的I/OI/O扩展扩展简单的I/O扩展 第32页/共135页 5.3.1 5.3.1 简单的简单的I/OI/O扩展扩展 上图采用74HC245作扩展输入、74HC373作扩展输出的简单I/O 扩展电路。图中,P0为双向数据线,既从74HC245输
13、入数据,又向74HC373输出数据。要求实现如下功能:任意按下一个键,对应的LED发亮,例如,按K0则LED0发亮,按K1则LED1发亮等。则编写程序如下LOOP:MOV DPTR,#0FEFFH ;数据指针指向扩展I/O口地址MOVX A,DPTR ;从245主动读数据,检测按钮MOVX DPTR,A ;向373输出数据,驱动LEDSJMP LOOP ;循环第33页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展可编程I/O接口电路的扩展:可编程序接口是指其功能可由计算机的指令来加以改变的接口芯片。可编程I/O接口芯片可通过编程来执行多种不同的接口功
14、能,因此使用十分灵活。常用的可编程接口芯片有可编程计数/定时器8253、可编程串行接口8250、可编程并行接口8255和8155、可编程中断控制器8259等。下面以MCS-51单片机中常用的8155为例来说明可编程接口芯片的使用:第34页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展8155片内资源有:256字节的静态RAM;两个可编程的8位并行IO口PA、PB;一个可编程的6位并行IO口PC;一个可编程的14位定时/计数器;第35页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展8155的引脚分布 8155
15、的结构框图 1.8155引脚功能第36页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展 地址数据线:AD0AD7 AD0AD7是8位地址线和数据线共用输入/输出口,它应与51单片机的P0口相连。8155是专为Intel单片机设计的I/O扩展芯片,因此,其接口线也采用了地址/数据复用结构,连接时将其复用总线直接连接到51单片机的P0口,将其ALE信号与51单片机的ALE信号连接即可。端口线:PA0PA7、PB0PB7、PC0PC5 其中:PA0PA7、PB0PB7 用于8155与外设之间传送数据。PC0PC5既可用于8155与外设之间传送数据,也可作为
16、A口、B口的控制信号线。第37页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展 地址锁存线:ALE 在ALE的下降沿,8155将单片机P0口输出的低8位地址信息及#CE、IO/#M的状态都锁存至内部寄存器。因此,单片机P0口输出的低8位地址信号不需外接锁存器。RAM或I/O口选择线:IO/#M 当IO/#M=0时,选中8155的片内RAM,AD0AD7为RAM的地址(00HFFH)或数据;当IO/#M=1时,选中8155片内3个I/O端口以及命令/状态寄存器和定时/计数器。AD0AD7为I/O口地址,其分配如表5-6所示。第38页/共135页 5.3
17、.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展 片选线:#CE:若#CE为低电平,选中本芯片。读、写线:#RD、#WR。控制对8155的读、写操作。定时/计数器的脉冲输入、输出线:TI、TO。TI是外界向8155输入计数脉冲信号的输入端,TO是8155向外界输出脉冲或方波的输出端。第39页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展A7A7A6A6A5A5A4A4A3A3A2A2A1A1A0A0选中寄存器选中寄存器0 00 00 0内部命令内部命令/状态寄存器状态寄存器0 00 01 1PAPA口寄存器口寄存器0 01 10
18、 0PBPB口寄存器口寄存器0 01 11 1PCPC口寄存器口寄存器1 10 00 0定时定时/计数器低计数器低8 8位寄存器位寄存器1 10 01 1定时器定时器/计数器高字节寄存器计数器高字节寄存器计数方式码计数方式码M2M1M2M18155口地址分布 第40页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展2.8155的工作方式与基本操作 8155可作为通用I/O口,也可作为片外256字节RAM及定时/计数器使用,在各种不同工作方式下的操作分述如下。片外256字节RAM操作 在这种工作方式,将IO/#M引脚置为低电平,这时8155内部的RAM只
19、能作片外RAM使用,其寻址范围由片选线#CE(高位地址译码)和AD0AD7决定,应与应用系统中其它的片外数据存储器统一编址。使用“MOVX”指令对片外RAM进行读/写操作。第41页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展 作扩展I/O口使用 8155作扩展I/O口时,IO/#M引脚置为高电平,这时PA、PB、PC口分别占用端口地址1、2、3(设地址无关位为0时),参见表5-6。8155的I/O工作方式选择是通过对8155内部命令寄存器送命令字来实现的。命令寄存器由8位锁存器组成,只能写入不能读出,它占用端口地址0,参见8155口地址分布表。命令
20、字每位定义如下表所示。第42页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展76543210TM2TM1IEBIEAPC2PC1PBPA8155的命令寄存器格式 第43页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展PA:A口数据传送方向设置位。0:输入;1:输出。PB:B口数据传送方向设置位。0:输入;1:输出。PC1、PC2:C口工作方式设置位。具体方式如表5-8所示。IEA:A口的中断允许设置位。0:禁止;1:允许。IEB:B口的中断允许设置位。0:禁止;1:允许。TM2、TM1:计数器工作方式设置位
21、。其具体方式如表5-9所示。第44页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展C口工作方式 PC2 PC1PC2 PC1工作方式工作方式说明说明0000ALT1ALT1A A、B B口为基本口为基本I/OI/O,C C口方向为输入口方向为输入1111ALT2ALT2A A、B B口为基本口为基本I/OI/O,C C口方向为输出口方向为输出0101ALT3ALT3A A口为选通口为选通I/OI/O,B B为基本为基本I/OI/O口,口,PC0PC0PC2PC2作为作为A A的的选通应答选通应答1010ALT4ALT4A A,B B口为选通口为选通I
22、/OI/O,PC0PC0PC2PC2作为作为A A的选通应答的选通应答PC3-PC5PC3-PC5作为作为B B的选通应答的选通应答第45页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展定时器/计数器命令字 TM2TM1TM2TM1方式方式说明说明0000方式方式1 1不影响定时器工作不影响定时器工作0101方式方式2 2若计数器未启动,则无操作;若计数器已运行,则停止若计数器未启动,则无操作;若计数器已运行,则停止计数计数1010方式方式3 3达到当前计数达到当前计数TCTC后,立即停止,若未启动定时器,则无后,立即停止,若未启动定时器,则无操作操
23、作1111方式方式4 4装入方式和计数值后,立即启动定时器,若定时器已装入方式和计数值后,立即启动定时器,若定时器已在运行,在运行,则达到当前计数值后,按新的方式和长度予以启动则达到当前计数值后,按新的方式和长度予以启动第46页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展8155的状态字第47页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展INTRn:中断请求标志。此处n表示A或B。INTRn=1,表示A口或B口有中断请求;INTRn=0,表示A或B口无中断请求。BFn:口缓冲器空/满标志。BFn=1,表
24、示口缓冲器已装满数据,可由外设或单片机取走;BF=0,表示口缓冲器为空,可以接收外设或单片机发送数据。INTEn:口中断允许/禁止标志。INTEn=1,表示允许口中断;INTEn=0,表示禁止口中断。TIMER:计数器计满标志。TIMER=1,表示计数器的原计数初值已计满回零;TIMER=0,表示计数器尚未计满。第48页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展 端口操作 A口寄存器和B口寄存器有完全相同的功能,可工作于基本I/O方式或选通I/O方式。C口可工作于基本I/O方式,也可作为A口、B口选通方式工作时的状态控制信号线。当8155设定为方
25、式1和方式2时,A口、B口、C口均工作于基本输入/输出方式,由“MOVX”类指令进行输入/输出操作,设定为方式3时,A口定义为选通输入/输出,由C口低3位作A口联络线,C口其余位作I/O线,设定为方式4时,A口、B口均定义为选通输入/输出方式,由C口作为A口、B口的联络线,其逻辑组态下图所示。C口工作方式及每位的关系见下表。C口在不同方式下的定义和功能是不同的。第49页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展逻辑组态第50页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展 C口的工作方式引脚引脚方式方式
26、1 1方式方式2 2方式方式3 3方式方式4 4PC0PC0输入输入输出输出A A口中断请求口中断请求A A口中断请求口中断请求PC1PC1输入输入输出输出A A口缓冲器满口缓冲器满A A口缓冲器满口缓冲器满PC2PC2输入输入输出输出A A口选通口选通A A口选通口选通PC3PC3输入输入输出输出输出输出B B口中断请求口中断请求PC4PC4输入输入输出输出输出输出B B口缓冲器满口缓冲器满PC5PC5输入输入输出输出输出输出B B口选通口选通第51页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展 INTRA、INTRB分别为A、B口的中断请求输出
27、线,高电平有效。当8155的A口或B口缓冲器接收到设备输入的数据或设备从缓冲器中取走数据时,中断请求线INTR升高,向CPU请求中断;CPU对8155的相应I/O口进行一次读/写操作后,INTR自动变为低电平。BF为I/O口缓冲器标志输出线。缓冲器存有数据时,BF为高电平,否则为低电平。#STB为设备选通信号输入线,低电平有效。第52页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展 I/O口设定为输出口时,仍可用对应的口地址执行操作,读取输出口的内容;设定为输入口时,输出锁存器被清除,无法将数据写入输出锁存器。所以每次通道由输入方式转为输出方式时,输
28、出端总是低电平。8155复位时,清除所有输出寄存器,3个端口都为输入方式。第53页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展 作定时/计数器用 8155的可编程定时/计数器在功能上与MCS-51内部的定时/计数器是相同的,但是在使用上却不完全相同。见图5-21。具体表现在如下几点:(1)8155的可编程定时/计数器实际上是一个14位减法计数器,它只有一种固定的工作方式,即14位计数;(2)其不论是定时还是计数工作,都由外部提供计数脉冲,由TI端输入,使用时需注意芯片允许的最高计数频率;(3)计满溢出时,由TO端输出脉冲或方波,输出波形通过软件可定
29、义为4种形式。第54页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展 定时/计数器寄存器 第55页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展M2M1M2M1方式方式定时器输出方波定时器输出方波0000单次方波单次方波计数长度前半部分输出高电平,后半部分输出低电平计数长度前半部分输出高电平,后半部分输出低电平0101连续方波连续方波计数长度前半部分输出高电平,后半部分输出低电平,计数长度前半部分输出高电平,后半部分输出低电平,计数器回计数器回0 0后又自动向计数器重装初值后又自动向计数器重装初值1010单
30、脉冲输单脉冲输出出计数器回计数器回0 0后输出一个单脉冲后输出一个单脉冲1111连续脉冲连续脉冲计数器回计数器回0 0后输出单脉冲,又自动向计数器重装初值,后输出单脉冲,又自动向计数器重装初值,回回0 0后又输出单脉冲,如此循环后又输出单脉冲,如此循环 M2、M1位输出方式定义第56页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展 使用时,先把计数初值和输出方式装入定时器的两个寄存器。计数初值(长度)为23FFFH之间的任意值,然后通过命令寄存器的最高两位控制计数器的启动和停止。以计数值是8为例,所谓单次方波,是从启动计数开始,前4个计数输出1电平,
31、后4个计数输出0电平。若计数值是奇数,则1电平比0电平多一个计数值。当计数器正在计数时,允许装入新的计数方式和长度,但必须再向定时器发一个启动命令。硬件复位后,停止计数,应注意重新发启动命令。第57页/共135页 5.3.2 5.3.2 可编程可编程I/OI/O接口电路的扩展接口电路的扩展单片机与8155接口电路第58页/共135页5.4 5.4 键盘与显示器的接口技术键盘与显示器的接口技术5.4.1 键盘接口技术 5.4.2 显示器接口技术 5.4.3 典型键盘/显示器接口实例 5.4.3 可编程键盘/显示器接口8279 第59页/共135页 5.4.1 5.4.1 键盘接口技术键盘接口技术
32、 计算机键盘有全编码键盘和非编码键盘两种。全编码键盘由硬件逻辑来提供与被按键对应的编码,它一般还具有去抖动和多键、串键保护电路。这种键盘使用方便,但需要较多的硬件,价格较贵,一般的单片机应用系统较少采用。非编码键盘只简单地提供输入按键连接电路,其它工作靠软件来完成,它具有经济实用的特点,目前在单片机应用系统中多采用这种办法。本节将介绍非编码键盘接口。第60页/共135页 5.4.1 5.4.1 键盘接口技术键盘接口技术1.键盘工作原则 键盘通过接口电路与CPU相连,CPU可以采用查询或中断方式了解有无按键输入并检查是哪一个键按下,并根据输入的键号转入执行该按键的功能程序,执行完毕又返回到原始的
33、查询或等待中断的状态。第61页/共135页 5.4.1 5.4.1 键盘接口技术键盘接口技术 键开关状态的可靠输入 按键大都是利用机械触点的开合作用,机械触点在闭合及断开瞬间,由于其弹性作用的影响有一个抖动过程,从而使电压信号也出现抖动,抖动时间长短与开关的机械特性有关,一般为5ms10ms。按键的稳定闭合时间,由操作人员的按键动作所确定,一般为十分之几秒至几秒。为了保证CPU对按键的一次闭合仅作一次键输入处理,必须去除抖动影响,这个过程称为去抖。去抖通常有硬件和软件两种方法。硬件方法通常可在按键的输出端加入R-S触发器或单稳态电路。软件方法通常可在检测到有按键按下时,执行一个延时程序,然后再
34、检查该按键以确认它是否处于闭合状态。第62页/共135页 5.4.1 5.4.1 键盘接口技术键盘接口技术 对按键进行编码以得到键值或直接给出键号 一个完善的键盘控制程序应能完成下述任务:1)监测有无键按下;2)有键按下时,若无硬件去抖电路,则软件上应延时去抖;3)有可靠的逻辑处理办法,如多键锁定,即一段时间只处理一个键,其间任何按下又松开的键不产生影响;不管一次按键持续有多长时间,仅执行一次按键功能程序;4)输出确定的键号以满足跳转指令要求。第63页/共135页 5.4.1 5.4.1 键盘接口技术键盘接口技术2.独立式按键工作原理 独立式按键电路第64页/共135页 5.4.1 5.4.1
35、 键盘接口技术键盘接口技术3.行列式键盘工作原理 行列式键盘电路第65页/共135页 5.4.1 5.4.1 键盘接口技术键盘接口技术4.键盘的工作方式 键盘的工作方式一般有编程扫描和中断扫描方式两种。编程扫描方式是利用CPU在完成其它工作的空余,调用键盘扫描程序,来响应键输入要求。在执行键功能程序时,CPU不再响应键输入要求。该方式通常需要定时查询。为了提高CPU的利用率,可采用中断扫描方式,即只有在键盘有键按下时,发中断请求,CPU响应中断请求后,转中断服务程序,进行键盘扫描,识别键码。第66页/共135页 5.4.1 5.4.1 键盘接口技术键盘接口技术键盘扫描程序一般应具有下述几个功能
36、:1)判断有无键按下及延时去抖2)扫描键盘,得到按下键的键号 3)判别闭合的键是否释放 第67页/共135页 5.4.1 5.4.1 键盘接口技术键盘接口技术中断工作方式键盘 中断扫描方式的一种简易键盘接口:第68页/共135页 5.4.2 5.4.2 显示器的接口技术显示器的接口技术1.LED显示器的结构与原理(a)LED外形结构(b)共阴极(c)共阳极第69页/共135页 5.4.2 5.4.2 显示器的接口技术显示器的接口技术2.LED静态显示接口 静态显示电路 第70页/共135页 5.4.2 5.4.2 显示器的接口技术显示器的接口技术3.LED动态显示接口 六位动态显示电路第71页
37、/共135页 5.4.2 5.4.2 显示器的接口技术显示器的接口技术动态显示子程序流程图第72页/共135页 5.4.3 5.4.3 典型键盘典型键盘/显示器的接口实例显示器的接口实例8155扩展I/O口的键盘、显示器接口电路 第73页/共135页 5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279 8279是Intel-8279的简称,是一种通用可编程接口芯片,它有键盘和显示两部分。键盘部分可以作为常规的打字机式键盘或随机触发器开关接口,显示部分可以驱动文字数字显示器或一系列指示灯。8279与单片机的总线连接,键盘部分能自动消抖、识别按键并给出编码,能对双键
38、或多键同时按下实行保护,显示部分为数码管提供了按扫描方式工作的显示接口,它提供多路复用信号,最多可连接16个数码管。第74页/共135页5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279 CPU通过编程来设置8279的工作模式。需要编程的输入模式包括键盘扫描的方式、传感器矩阵扫描的方式和选通输入模式等,需要编程的输出模式包括是显示模式设置、显示数据输入方式等。8279的其它可编程特性还包括时钟分频系数和中断控制方式等。第75页/共135页8279封装及引线 5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口827982791.硬件引脚定义及寄存器
39、功能描述第76页/共135页5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口827982798279的逻辑框图第77页/共135页5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口827982798279各寄存器的功能描述 数据缓冲器。数据缓冲器用于传送CPU和8279之间的命令、状态或数据,是双向缓冲器。引脚A0用于区别信息的状态。A0=1时,数据缓冲器输入的是CPU命令字,输出的是8279的状态。A0=0时,数据缓冲器输入和输出的均为数据。控制寄存器及定时控制器。控制寄存器用于寄存键盘及显示器的工作方式,以及由CPU编程的其它操作方式。定时控制器是一个5位
40、的可编程计数器,其计数值N可由软件设置为231之间的一个值,它用于对外部时钟CLK进行分频,从而得到内部所需要的100kHZ的时钟信号,作为逐行扫描和显示扫描的时钟。第78页/共135页5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279 扫描计数器。扫描计数器为4位二进制计数器,有编码和译码两种工作方式。按编码方式工作时,4位计数状态从扫描线SL0-SL3输出,经外部译码后,可为键盘和传感器提供最多16根扫描线。按译码方式工作时,扫描计数器的最低2位被译码后,从SL0-SL3输出。其输出可直接用作键盘和显示的扫描码。回复缓冲器、键盘消抖及控制。来自RL0RL7这
41、8根回复线的回复信号,由回复缓冲器缓冲并储存。在键盘工作方式中,这些线被接到键盘矩阵的列线。在逐行扫描时,回复线用来搜索一行中闭合的键。当某一键闭合时,消抖电路就被置位,延时等待10mS之后,再检验该键是否继续保持闭合。若闭合,则该键的地址和附加的位移、控制状态一起形成键盘数据被送入8279内部的FIFO存储器。第79页/共135页 5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279键盘数据的格式 键盘数据的格式见下表,其中,控制码D7和移位码D6的状态分别由独立的附加开关CNTL和SHIFT决定,而扫描码和回复码则是被按键的位置数据,D5、D4、D3来自扫描计
42、数器,是按键的行编码,而D2、D1、D0则是来自列计数器,是根据回复信号而确定的列编码。在传感器矩阵方式中,回复线的内容直接被送往相应的传感器RAM(即FIFO存储器)。在选通输入方式时,回复线的内容在CNTL/STB线的脉冲上升沿时,被送入FIFO存储器 第80页/共135页 5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279 FIFO存储器/传感器RAM及其状态寄存器。FIFO存储器/传感器RAM是一个双重功能的8bit8的RAM。在键盘或选通工作方式时,它是FIFO存储器。每次新的输入都顺序写入到RAM 单元,而每次读出时,总是按输入的顺序,将最先输入的数
43、据读出。FIFO状态寄存器用来存放FIFO存储器的工作状态。例如:RAM是满还是空,其中存有多少字符,是否操作出错等等。当FIFO存储器不空时,状态逻辑将产生IRQ=1信号,向CPU申请中断。在传感器矩阵方式时,这个存储器又是传感器RAM。它存放着传感器矩阵中每一个传感器的状态。在此方式中,若检索出传感器的变化,IRQ信号便变为高电平,向CPU请求中断。第81页/共135页 5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279 显示RAM和显示地址寄存器。显示RAM用来存储显示数据。该区具有16个字节,也就是最多可以存储16个字节的显示信息。显示寄存器暂存显示RA
44、M中取出的数据,显示寄存器分为两组,A组由OUTA0OUTA3输出,B组由OUTB0OUTB3输出,它们可以单独送数,即输出A组或B组数据,也可以组成8位的字即A、B组同时输出。显示地址寄存器用来寄存由CPU进行读/写的显示RAM的地址,它可以由命令设定,也可以设置成每次读出或写入之后自动递增。第82页/共135页5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口827982792.8279的控制命令 键盘/显示方式设置命令其中,DD设置显示模式,KKK设置键盘模式DD(缺省值为01):00:8位字符显示,左侧输入 01:16位字符显示,左侧输入 10:8位字符显示,右侧输入
45、11:16位字符显示,右侧输入命令代码:第83页/共135页 5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279KKK(缺省值为000):000:编码扫描键盘,双键锁定 001:译码扫描键盘,双键锁定 010:编码扫描键盘,N键轮回 011:译码扫描键盘,N键轮回 100:编码扫描传感器矩阵 101:译码扫描传感器矩阵 110:选通输入,编码显示扫描 111:选通输入,译码显示扫描第84页/共135页 5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279时钟编程命令命令代码:PPPP(D4,D3,D2,D1,D0)用来设定对CLK端
46、输入时钟的分频次数N,N=2-31。第85页/共135页 5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279读FIFO/传感器RAM命令命令代码:该命令字只在传感器方式时使用,在CPU读传感器RAM之前,必须用这条命令来设定将要读出的传感器RAM地址。由于传感器RAM的容量是88bit,因此需要用命令字中的三位二进制代码AAA来选址。命令字中的AI为自动增量特征位。若AI=1,则每次读出传感器RAM后,地址将自动增量(加1),使地址指针指向顺序的下一个存储单元。这样,下一次读数便从下一个地址读出,而不必重新设置读FIFO/传感器RAM命令。在键盘工作方式中,由于
47、读操作严格按照先入先出的顺序,因此不必使用这条命令。第86页/共135页 5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279读显示RAM命令 命令代码:写显示RAM命令 命令代码:与前面读命令字位相同 在CPU读显示RAM之前,该命令字用来设定将要读出的显示RAM的地址,四位二进制代码AAAA用来寻址显示RAM中的一个存储单元。如果自动增量特征位AI=1,则每次读出后,地址自动加1,使下一次读出顺序指向下一个地址。第87页/共135页 5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279 显示禁止写入/消隐命令命令代码:IW用来屏蔽
48、A组和B组的显示写入(D3位对应A组,D2位对应B组)。例如,当A组的屏蔽位D3=1时,A组的显示RAM禁止写入。因此从CPU写入传感器RAM的数据不会影响A的显示。这种情况通常在采用双四位显示时使用。因为两个四位传感器是相互独立的,为了给其中一个四位传感器输入数据,而又不影响另一个四位传感器,因此必须对另一组的输入实行屏蔽。BL位是消隐特征,要消隐两组显示输出,必须设置两个BL位。若BL=1。则执行此命令后,对应组的显示输出被消隐。若BL=0,则恢复显示。第88页/共135页 5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279 清除命令 命令代码:该命令字用来
49、清除FIFO RAM和显示RAM。D4D3D2三位(CD)用来设定清除显示RAM的方式清除命令 第89页/共135页 5.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279 D1位用来清空FIFO存储器。D1=1时,执行清除命令后,FIFO RAM被清空,使中断IRQ复位。同时,传感器RAM的读出地址也被清0 D0位是总清的特征位,它兼有CD和CF的联合有效。在CA=1时,对显示RAM的清除方式由D3D2的编码决定。清除显示RAM大约需要100uS的时间。在此期间,FIFO状态字的最高位Du=1,表示显示无效。CPU不能向显示RAM写入数据。第90页/共135页 5
50、.4.4 5.4.4 可编程键盘可编程键盘/显示器接口显示器接口82798279 结束中断/错误方式设置命令 命令代码:这个命令有两种作用:第一种是作为结束中断命令。在传感器工作方式中,每当传感器状态出现变化时,扫描检测电路,就将其状态写入传感器RAM,并启动中断逻辑,使IRQ变高,向CPU请求中断,并且禁止写入传感器RAM。此时,如传感器RAM读出地址的自动递增特征没有置位(AI=0),则中断请求IRQ在CPU第一次从传感器RAM读出数据时就被清除。若自动递增特征已置位(AI=1),则CPU对传感器RAM的读出并不能清除IRQ,而必须通过给8279写入结束中断/错误方式设置命令才能使IRQ变