《单片机中断与定时系统.ppt》由会员分享,可在线阅读,更多相关《单片机中断与定时系统.ppt(134页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、16.1 MCS-51单片机的中断系统6.2 MCS-51单片机的定时器/计数器6.3 MCS-51单片机外部中断源的扩展6.4 定时器/计数器与中断综合应用举例6 单片机中断与定时系统26 单片机中断与定时系统6.1 MCS-51单片机的中断系统6.1.1 单片机中断技术概述6.1.2 中断源1.外部中断源 (P3.2)和 (P3.3)2.定时器中断源T0和T13.串行口中断源INT0INT136 单片机中断与定时系统6.1.3 中断控制1.定时器控制寄存器(TCONTimer/Counter Control Register)(1)IE0和IE1外中断请求标志位(硬件置1或清0)(2)IT
2、0和IT1外中断请求触发方式控制位(软件置1或清0)(0电平触发,1脉冲触发)(3)TF0和TF1计数器溢出标志位(硬件置1或清0)(4)TR0和TR1Run Control bits for Timer 1 and Timer 0.Set to run,reset to hold.(软件置1或清0)位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT046 单片机中断与定时系统2.串行口控制寄存器(SCONSerial Port Control Register)(1)SM0、SM1、SM2Serial Port Mode Bits (2
3、)REN允许串行接收位Receiver Enable(软件置1或清0)(3)TB8Transmit bit 8.Ninth bit transmitted(in mode 2 and 3);set/cleared by software.(4)RB8Receive bit 8.Ninth bit received(in mode 2 and 3);Mode 0:Not used Mode 1:Stop bit Mode 2,3:Ninth data bit.(5)TI发送中断标志位Transmit interrupt flag.Set at end of character transmiss
4、ion;cleared by software.(6)RI接收中断标志位Receive interrupt flag.Set at end of character reception;cleared by software.位地址9FH9EH9DH9CH9BH9AH99H98H位符号SM0SM1SM2RENTB8RB8TIRI56 单片机中断与定时系统3.中断允许控制寄存器(IEInterrupt Enable Register)(1)EA中断允许总控制位 (2)EX0和EX1外部中断允许控制位 (3)ET0和ET1定时/计数中断允许控制位 (4)ES串行中断允许控制位位地址 0AFH 0A
5、EH 0ADH 0ACH 0ABH 0AAH 0A9H 0A8H位符号EA/ESET1EX1ET0EX066 单片机中断与定时系统4.中断优先级控制寄存器(IPInterrupt Priority Register)(1)PX0外部中断0优先级设定位 (2)PT0定时中断0优先级设定位 (3)PX1外部中断1优先级设定位 (4)PT1定时中断1优先级设定位 (5)PS串行中断优先级设定位位地址 0BFH 0BEH 0BDH 0BCH 0BBH 0BAH 0B9H 0B8H位符号/PSPT1PX1PT0PX076 单片机中断与定时系统5.中断优先级控制原则和控制逻辑n 中断嵌套高优先级可以中断低
6、优先级n 同级不能嵌套n 同级中断同时请求,查询次序为:外部中断0定时中断0外部中断1定时中断1串行中断6.中断初始化与中断控制寄存器状态设置MOV IE,#81H ;开放外部中断0或SETB EASETB EX086 单片机中断与定时系统MCS-51的中断系统IE0TF0IE1TF1TIRIEX0ET0EX1ET1ES1PX0PT0PX1PT1PS高级低级内部查询内部查询入口地址入口地址INT0INT1T0T1TIRI中断请求标志中断允许控制中断优先级EA中断源96 单片机中断与定时系统6.1.4 中断响应过程1.中断采样在每个机器周期的S5P2采样 和2.中断查询在每个机器周期的最后一个状
7、态S6查询3.中断响应硬件自动产生LCALL addr16指令响应过程单片机响应中断后,自动执行下列操作:(1)置位中断优先级有效触发器,即关闭同级和低级中断:(2)调用入口地址,断点入栈,相当于LCALL指令;(3)进入中断服务程序。例如:LCALL 0003H ;响应外部中断0INT0INT1106 单片机中断与定时系统响应条件CPU要响应中断需满足下列条件:(1)无同级或高级中断正在服务;(2)当前指令周期结束,如果查询中断请求的机器周期不是当前指令的最后一个周期,则不响应;(3)若现行指令是RETI、RET或访问IE、IP指令,则需要执行完当前指令及下一条指令方可响应。4.中断响应时间
8、最短为3个机器周期;最长为8个机器周期。响应时间从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。116 单片机中断与定时系统(1)最快响应时间以外部中断的电平触发为最快。从查询中断请求信号到中断服务程序需要三个机器周期:1个周期(查询)2个周期(长调用LCALL)(2)最长时间若当前指令是RET、RETI和访问IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期:2个周期执行当前指令(其中含有1个周期查询)4个周期乘除指令2个周期长调用8个周期。126 单片机中断与定时系统6.1.5 中断请求的撤销1.定时中断请求的撤销自动撤销(硬件自动清TF0和TF1)2.脉冲方式外部中
9、断请求的撤销自动撤销(硬件自动清IE0和IE1;脉冲信号消失)3.电平方式外部中断请求的撤销硬件自动清IE0和IE1,但低电平中断请求信号需强制变为高电平。4.串行中断请求的撤销软件撤销(CLR TI,CLR RI)136 单片机中断与定时系统ORL P1,#01HANL P1,#0FEHP1.0Q外部中断请求信号1INT080C51DCPSD电平方式外部中断请求的撤销电路146 单片机中断与定时系统6.1.6 中断服务流程1.现场保护和现场恢复(PUSH direct、POP direct)2.关中断和开中断(CLR、SETB)3.中断处理4.中断返回(RETI)6.1.7 MCS-51的单
10、步工作方式外部中断0的中断服务程序:JNBP3.2,$JBP3.2,$RETI80C51+5VINT0156.2 MCS-51单片机的定时器/计数器6.2.1 定时方法概述1.软件定时2.硬件定时3.可编程定时器定时6.2.2 定时器/计数器的定时和计数功能1.计数功能2.定时功能6 单片机中断与定时系统166 单片机中断与定时系统6.2.3 定时器/计数器的控制寄存器1.定时器/计数器控制寄存器 (TCONTimer/Counter Control Register)D7D6D5D4D3D2D1D0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0中断请求标志触发方式选择启动定时
11、/计数器0 低电平1 下降沿0 停止1 启动176 单片机中断与定时系统2.定时器/计数器方式控制寄存器 (TMODTimer/Counter Mode Control Register)M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7T1控制T0控制GATE门控位C/T计数/定时选择M1 M0工作方式选择6 单片机中断与定时系统6.2.4 定时工作方式01.电路逻辑结构方式013位方式 计数脉冲输入TF0T0TR0GATEINT011&C/T=1振荡器1/12C/T=0TL0 TH08位低5位13位计数器定时器计数器18196 单片机中断与定时系统2.定时和计数应
12、用 设晶振频率fosc=6MHz,方式0的最长定时时间为:(2130)2us=214us=16384us=16.384ms例 6.1 设晶振频率fosc=6MHz,使用定时器1以方式0产生周期为500s的方波脉冲,并由P1.0 输出。以查询方式实现。80C51P1.0P1.0500s206 单片机中断与定时系统例 6.1程序如下:org0movtmod,#0movth1,#0fchmovtl1,#3movie,#0setbtr1loop:jbctf1,loop1ajmplooploop1:movth1,#0fchmovtl1,#3cplp1.0ajmploopend216 单片机中断与定时系统
13、6.2.5 定时工作方式1方式116位方式 振荡器1/12TL0 TH0TF011&T0TR0GATEINT0C/T=0C/T=18位8位16位计数器226 单片机中断与定时系统设晶振频率fosc=6MHz,方式1的最长定时时间为:(2160)2us=217us=131.072ms例 6.2 设晶振频率fosc=6MHz,使用定时器1以方式1产生周期为500s的方波脉冲,并由P1.0 输出。以中断方式实现。80C51P1.0P1.0500s236 单片机中断与定时系统例 6.2程序如下:org0ljmpmainorg001bhljmpintt1main:movtmod,#10hmovth1,#
14、0ffhmovtl1,#83hsetbeasetbet1setbtr1sjmp$intt1:movth1,#0ffhmovtl1,#83hcplp1.0retiend6 单片机中断与定时系统6.2.6 定时工作方式21.电路逻辑结构24方式28位自动装入时间常数方式 TF0振荡器1/1211&T0TR0GATEINT0C/T=0C/T=1TL0 TH0256 单片机中断与定时系统设晶振频率fosc=6MHz,方式2的最长定时时间为:(280)2us=29us=0.512ms例 6.3 设晶振频率fosc=6MHz,使用定时器0以方式2产生周期为200s的方波脉冲,并由P1.0 输出。分别以查询
15、和中断方式实现。80C51P1.0P1.0200s266 单片机中断与定时系统例 6.3程序如下:查询方式:org0movtmod,#2movth0,#0cehmovtl0,#0cehmovie,#0setbtr0loop:jbctf0,loop1ajmp looploop1:cplp1.0ajmp loopend中断方式:org0ljmpmainorg000bhcplp1.0retimain:movtmod,#2movth0,#0cehmovtl0,#0cehsetbeasetbet0setbtr0sjmp$end276 单片机中断与定时系统例 6.4 设晶振频率fosc=6MHz,使用定时
16、器1以方式2实现计数,每计数100次累加器加1。org0movtmod,#60hmovth1,#9chmovtl1,#9chmovie,#0setbtr1loop:jbctf1,loop1ajmp looploop1:incaajmp loopend6 单片机中断与定时系统6.2.7 定时工作方式328方式32个8位方式 INT0振荡器1/12TL0TF011&T0TR0GATEC/T=0C/T=18位TH0TF1振荡器1/12TR18位296 单片机中断与定时系统n 只有T0可以工作在方式3此时T0分成2个独立的计数器TL0和TH0,前者用原来T0的控制信号(TR0、TF0),后者用原来T1
17、的控制信号(TR1、TF1)。n T1处于方式3时相当于TR1=0,停止计数。306.3 MCS-51单片机外部中断源的扩展6.3.1 通过OC门线或实现ORG0013HINTER:JBP1.0,LOOP1JBP1.1,LOOP2JBP1.n,LOOPnINTEND:RETILOOP1:AJMP INTEND6 单片机中断与定时系统316.3.2 通过自身的定时器/计数器实现 在计数方式下,如果把计数器预置为全1,则只要在计数输入端(T0或T1输入端)加一脉冲就可以使计数器溢出,产生溢出中断。这就是定时器/计数器实现外部中断扩展的思想。具体方法是:(1)置定时器/计数器为工作方式2,即自动加载
18、式8位计数,以便在一次中断响应后,自动为下一次中断作准备;(2)TH和TL均置为FFH;(3)扩展的外部中断请求信号接计数脉冲输入端(T0或T1);(4)把扩展的外中断服务程序存放在所占用的定时器/计数器中断入口地址处(000BH或001BH)。6 单片机中断与定时系统32 例如用定时器/计数器0扩展一个外部中断,其初始化程序段如下:MOVTMOD,#06HMOVTH0,#0FFHMOVTL0,#0FFHSETB EASETB ET0SETB TR06 单片机中断与定时系统336.4 定时器/计数器与中断综合应用举例时钟程序org0start:ajmp mainorg000bhajmp pit
19、omain:movsp,#60hmovr0,#79hmovr7,#6ml1:movr0,#0incr0djnzr7,ml16 单片机中断与定时系统movtmod,#1movtl0,#0dchmovth0,#0bhsetbtr0setbeasetbet0mov30h,#8;ml0:lcallsmxs;sjmp ml0sjmp$34pito:pushpswpushaccsetbpsw.3movtl0,#0dchmovth0,#0bhdjnz30h,ret0mov30h,#8movr0,#7ahacalldaad1mova,r2xrla,#60hjnzret0acallclr06 单片机中断与定时系
20、统movr0,#7chacalldaad1mova,r2xrla,#60hjnzret0acallclr0movr0,#7ehacalldaad1mova,r2xrla,#24hjnzret0acallclr0ret0:popaccpoppswreti35daad1:mova,r0decr0swap aorla,r0adda,#1daamovr2,aanla,#0fhmovr0,amova,r2incr0anla,#0f0hswap amovr0,aret6 单片机中断与定时系统clr0:clramovr0,adecr0movr0,aretend367.1 单片机为什么需要I/O扩展7.2 单
21、片机简单I/O扩展7.3 8255A可编程通用并行接口芯片7.4 8155带RAM和定时器/计数器的可编程并行接口芯片7.5 8279可编程键盘/显示器接口芯片7.6 MCS-51单片机键盘接口技术7.7 MCS-51单片机显示器接口技术7.8 MCS-51单片机打印机接口技术7 单片机I/O扩展及应用377.1 单片机为什么需要I/O扩展7.1.1 I/O口的直接使用1.数据的无条件传送7 单片机I/O扩展及应用P1.0P1.1P1.2P1.3P1.7P1.6P1.5P1.480C51K0K3LED0LED3+5VORG0200HEXTR:MOVA,#0FHMOVP1,AMOVA,P1CPL
22、AANLA,#0FHSWAPAMOVP1,ARETEND382.中断方式的数据传送7 单片机I/O扩展及应用P1.0P1.1P1.2P1.3P1.7P1.6P1.5P1.480C51INT0+5VK0K3LED0LED3K+5V74LS001K1KORG0000HSTART:AJMPMAINORG0003HAJMPEXTRORG0030HMAIN:SETBIT0SETBEX0 SETBEA SJMP$ORG0200HEXTR:MOVA,#0FHMOVP1,AMOVA,P1CPLAANLA,#0FHSWAPAMOVP1,ARETIEND397.1.2 为什么要扩展I/O接口1.单片机本身接口功能
23、有限2.单片机控制应用中的复杂接口要求 (1)速度差异大 (2)设备种类繁多 (3)数据信号形式多种多样3.扩展I/O接口电路的功能 (1)速度协调 (2)输出数据锁存 (3)输入数据三态缓冲 (4)数据转换7 单片机I/O扩展及应用407.1.3 I/O扩展的相关技术1.接口与端口2.数据总线隔离技术3.单片机I/O编址技术 (1)独立编址方式 (2)统一编址方式7.1.4 单片机I/O控制方式1.无条件传送方式2.查询方式3.中断方式7 单片机I/O扩展及应用417.2 单片机简单I/O扩展7.2.1 简单输入口扩展1.两个输入口扩展 简单输入口扩展使用中小规模集成电路芯片,比较典型的有7
24、4LS244芯片。7 单片机I/O扩展及应用1510CE11A12Y41A22Y31A32Y21A42Y1GND输入设备74LS244CE1CE2地址选通信号ALEP074LS373271674LS24480C51RDVccCE21Y12A41Y22A31Y32A21Y42A1201611422.多输入口扩展 使用多片74LS244实现多个(例如5个)输入口扩展。3.应用举例 一个拨盘可产生一个BCD码形式的十进制数(4位)。现有A、B、C、D 4个拨盘,要求把它们产生的BCD码依次输入到R4(B、A)和R5(C、D)中去。MOVDPTR,#7FFFHMOVX A,DPTRMOVR4,AMOV
25、DPTR,#0BFFFHMOVX A,DPTRMOVR5,A7 单片机I/O扩展及应用437.2.2 简单输出口扩展1.简单输出口扩展使用的典型芯片74LS3772.输出口扩展连接7 单片机I/O扩展及应用QDP0 WR地址译码信号80C5174LS377输出设备CKG447.3 8255A可编程通用并行接口芯片7.3.1 可编程I/O接口扩展概述n 8255A可编程通用并行接口n 8155带RAM和定时器/计数器的可编程并行接口n 8259可编程中断控制器n 8279可编程键盘/显示器接口n 8253可编程通用定时器7.3.2 8255A的逻辑结构和信号引脚7.3.3 8255A的工作方式及
26、数据I/O操作7.3.4 8255A控制字及初始化编程7 单片机I/O扩展及应用457 单片机I/O扩展及应用7.4 8155带RAM和定时器/计数器的可编程并行接口芯片7.4.1 8155基本结构及工作方式Vcc(+5V)Vss(GND)RDCEAD7AD0RESETWRTIMER INTIMER OUTM/IOALE256字节静态RAM14位定时计数器ABCPA7PA0PB7PB0PC5PC0467 单片机I/O扩展及应用1.主要接口信号AD7AD0地址数据复用线。ALE地址锁存信号。除了进行AD7AD0的地址锁存控制外,还用于把片选信号 和 等信号进行锁存。读选通信号。写选通信号。片选信
27、号。I/O与RAM的选择信号。RESET复位信号。复位后A口、B口和C口均为数据输入方式。2.I/O及其工作方式A口该口作输入还是输出,由软件决定。B口该口作输入还是输出,由软件决定。C口该口除可作输入、输出口外,还可作为控制口,传送控制和状态信号,因此C口共有四种工作方式,即:输入方式(ALT1),输出方式(ALT2),A口控制端口方式(ALT3)以及A口 和B口控制端口方式(ALT4)。其工作方式由软件决定。CEIO/MCEIO/MWRRD477 单片机I/O扩展及应用3.RAM单元及I/O口编址AD7AD6AD5AD4AD3AD2AD1AD0对应端口000命令/状态寄存器001A口010
28、B口011C口100定时器/计数器低8位101定时器/计数器高8位487 单片机I/O扩展及应用7.4.2 8155与MCS-51单片机的连接1.用或非门产生 信号2.以高位地址直接作为 信号IO/MIO/M497 单片机I/O扩展及应用7.4.3 8155的命令/状态寄存器1.命令字434210D1D2D3D4D5D6D7DA口工作方式0:输入1:输出43421定时器工作方式00:无操作01:停止计数10:计满后停止11:开始计数B口工作方式0:输入1:输出C口工作方式00:ALT101:ALT210:ALT311:ALT4A口中断0:禁止1:允许B口中断0:禁止1:允许507 单片机I/O
29、扩展及应用2.状态字0D1D2D3D4D5D6DINTRA:A口中断请求TIMER:定时器中断(计数满时为高电平,读出状态字或硬件复位为低电平)ABF:A口缓冲器满/空INTEA:A口中断允许INTEB:B口中断允许INTRB:B口中断请求BBF:B口缓冲器满/空517 单片机I/O扩展及应用7.4.4 8155的定时器/计数器1.定时器/计数器的计数结构 8155的定时器/计数器是一个14位的减法计数器,由两个8位寄存器构成,以其中的低14位组成计数器,剩下的两个高位(M2,M1)用于定义计数器输出的信号形式。输出方式计数器高6位计数器低8位D7D6D5D4D3D2D1D0T7T6T5T4T
30、3T2T1T0D7D6D5D4D3D2D1D0M2M1T13T12T11T10T9T8527 单片机I/O扩展及应用2.定时器/计数器的使用n 8155的定时器/计数器是减法计数,而MCS-51单片机的定时器/计数器却是加法计数,因此确定计数初值的方法是不同的。n MCS-51单片机的定时器/计数器有多种工作方式,而8155的定时器/计数器只有一种固定的工作方式,即14位计数。通过软件方法进行计数初加载。n MCS-51单片机的定时器计数器有两种计数脉冲。定时功能时,内部按机器周期提供固定频率的计数脉冲;计数功能时,从芯片外部引入计数脉冲。但8155的定时器/计数器,不论是定时功能还是计数功能
31、都是由外部提供计数脉冲,其信号引脚是TIMER IN。n MCS-51单片机的定时器/计数器,计数溢出时,自动置位TCON寄存器的计数溢出标志位(TF),供用户查询或中断方式使用;但8155的定时器/计数器,计数溢出时向芯片外部输出一个信号(TIMER OUT)。而且这一信号还有脉冲和方波两种形式,可由用户进行选择。具体(M2,M1)两位定义。537 单片机I/O扩展及应用M2M1=00 单个方波M2M1=01 连续方波M2M1=10 单个脉冲M2M1=11 连续脉冲这四种输出形式如下图所示。2M1M 0 00 11 01 1单个方波连续方波单个脉冲连续脉冲开始计数停止计数547 单片机I/O
32、扩展及应用3.定时器/计数器的控制 8155定时器/计数器的工作方式由命令字中的最高两位进行控制。具体说明如下:D7D6=00 不影响计数器工作。D7D6=01 停止计数。如计数器未启动则无操作,如计数器正运行则停止计数。D7D6=10 达到计数值(计数器减为0)后停止。D7D6=11 启动,如果计数器没运行,则在装入计数值后开始计数;如果计数器已运行,则在当前计数值计满后,再以新的计数值进行计数。557 单片机I/O扩展及应用7.4.5 8155初始化 要求使用8155定时器/计数器对计数脉冲进行千分频,即计数1000后,TIAMER OUT端电平状态发生变化,并重新置数以产生连续方波。此外
33、假定A口为输入方式,B口为输出方式,C口为输入方式,禁止中断。请编写初始化程序。解:要求输出连续方波,所以定时器/计数器的最高两位M2M1=01。计数器的其它14位装入计数初值。8155为减法计数,所以计数初值为1000,化为16进制数为03E8H。则定时器/计数器的高8位为:43H,低8位为:0E8H。命令字为0C2H。567 单片机I/O扩展及应用初始化程序如下:MOVDPTR,#0FD00HMOVA,#0C2HMOVDPTR,AMOVDPTR,#0FD04HMOVA,#0E8HMOVDPTR,AINCDPTRMOVA,#43HMOVDPTR,A577.5 8279可编程键盘/显示器接口芯
34、片 8279是Intel公司生产的通用可编程键盘和显示器I/O接口器件。由于它本身可提供扫描信号,因而可代替微处理器完成键盘和显示器的控制,从而减轻了主机的负担。7 单片机I/O扩展及应用587.5.1 8279的电路逻辑和信号引脚1.8279的电路逻辑 (1)I/O控制和数据缓冲器 双向的三态数据缓冲器将内部总线和外部总线DB07相连,用于传送CPU和8279之间的命令、数据和状态。(2)控制逻辑 控制与定时寄存器用以存储键盘及显示器的工作方式,锁存操作命令,通过译码产生相应的控制信号,使8279 的各个部件完成一定的控制功能。定时控制含有一些计数器,其中有一个可编程的5位计数器,对外部输入
35、时钟信号进行分频,产生100kHz 的内部定时信号。外部时钟输入信号周期不小于500ns。7 单片机I/O扩展及应用59 (3)扫描计数器 扫描计数器有两种输出方式。一种为外部译码方式(也称编码方式),计数器以二进制方式计数,4位计数状态从扫描线SL0SL3输出,经外部译码器译码出l6 位扫描线;另一种为内部译码方式(也称译码方式),即扫描计数器的低2位经内部译码器后从SL0SL3输出。(4)键输入控制 这个部件完成对键盘的自动扫描,锁存RL0RL7的键输入信息,搜索闭合键,去除键的抖动,并将键输入数据写入内部先进先出(FIFO)的RAM 存储器。(5)FIFO/传感器RAM 和显示RAM 8
36、279具有8个先进先出的键输入缓冲器,并提供16个字节的显示数据缓冲器。CPU将段数据写入显示缓冲器,8279自动对显示器扫描,将其内部显示缓冲器中的数据在显示器上显示出来。7 单片机I/O扩展及应用607 单片机I/O扩展及应用8279逻辑框图数据缓冲器数据缓冲器I/O控制控制FIFO传感器传感器 RAM状态状态IRQ16 8显示用显示用RAM控制用控制用时序寄存器时序寄存器8 8FIFO/传感器传感器RAM键盘去抖动键盘去抖动和控制和控制显示寄存器显示寄存器时序时序和和控制控制扫描计数器扫描计数器回送回送显示地址显示地址寄存器寄存器848DB07OUTA03OUTB03BDRD WR CS
37、A0SL03RL07CNTL/STBSHIFTCLK RESET617 单片机I/O扩展及应用8279引脚图622.8279芯片的信号引脚n DB07双向外部数据总线。用于传送8279与CPU 之间的命令、数据和状态。可直接与MCS-51系列芯片连接。n/CS选片信号。当/CS为低电平时,CPU才选中8279 芯片,并对其进行操作。n A0区分信息的特性位。当A0为1时,CPU写入8279的信息为命令,CPU从8279读出的信息为8279的状态。当A0为0时,I/O信息均为数据。n/RD、/WR是读、写选通信号,低电平有效。n IRQ中断请求输出线。高电平有效。在键盘工作方式下,当FIFO/传
38、感器RAM中有数据时,此中断请求线变高电平。在FIFO/传感器RAM 每次读出时,中断请求线就下降为低电平,若在RAM中还有信息,则此线又重新变为高电平。在传感器工作方式中,每当传感器信号变化时,中断请求线就变为高电平。7 单片机I/O扩展及应用63n RL0RL7反馈输入线,作为键输入线,由内部拉高电阻拉成高电平,也可由键盘上按键拉成低电平。n SL03扫描输出线,用于对键盘显示器扫描。n OUTA03,OUTB03显示段数据输出线,可分别作为两个半字节输出,也可作为8位段数据输出口,此时OUTB0为最低位,OUTA3 为最高位。n/BD消隐输出线,低电平有效,当显示器切换时或使用显示消隐命
39、令时,将显示消隐。n RESET复位输入线,高电平有效。当RESET输入端出现高电平时,8279被复位,复位后8279被设置为:16个8 位字符显示为左端输入;编码的扫描键为两键连锁;程序时钟前置分频器被置为31H。n SHIFT、CNTL/控制键输入线,由内部拉高电阻拉成高电平,也可由外部控制按键拉成低电平,SHIFT为换档,CNTL为控制,为选通。7 单片机I/O扩展及应用STBSTB64n CLK外时钟输入端,CLK信号由外部振荡器提供。需说明的一点是:CLK是系统来的外时钟,8279靠设置定时器将外部时钟变为内时钟。其内时钟频率外时钟/定时值。内部时钟控制着扫描时间和键盘去抖动时间的长
40、短。若8279内部时钟为100kHz,则扫描时间为5.1ms,去抖动时间为10.3ms。7 单片机I/O扩展及应用657 单片机I/O扩展及应用7.5.2 8279的寄存器1.命令寄存器 (1)键盘/显示器方式设置命令 其中:D7D6D0=000是方式设置命令的特征位。DD(D4D3)为显示器方式选择位,其定义如下:所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列,所谓右入口,则是显示位置从最右一位(最低位)开始,以后逐次输入显示字符时,已有的显示字符依次向左移动。D7D6D5D4D3D2D1D0000DDKKKD4D3显示器方式008个字符显示,左入口0
41、 116个字符显示,左入口10 8个字符显示,右入口 1116个字符显示,右入口667 单片机I/O扩展及应用 KKK(D2D1D0)为键盘工作方式选择位,其定义如下:n 双键锁定与N 键轮回是多键按下时的两种不同的保护方式。双键锁定为两键同时按下提供的保持方法。在消颤周期里,如果有两键同时被按下,则只有其中一个键弹起,而另一个键保持在按下位置时,才被认可。N键轮回为N键同时按下的保护方法。当有若干键按下时,键盘扫描能够根据发现它们的顺序,依次将它们的状态送入FIFO RAM 中。D2D1D0操 作 方 式000编码扫描键盘,双键锁定0 01译码扫描键盘,双键锁定010 编码扫描键盘,N 键轮
42、回011译码扫描键盘,N 键轮回100编码扫描传感器矩阵101译码扫描传感器矩阵110选通输入,编码显示扫描111选通输入,译码显示扫描677 单片机I/O扩展及应用 (2)内部时钟设置命令 8279 的内部定时信号是由外部输入时钟经过分频后产生的,分频系数由内部时钟设置命令确定。其中:D7D6D5=001为时钟编程命令的特征位,PPPPP(D4D0)用来设定对外部输入CLK 端的时钟进行分频的分频数N。N 取值为231。例如,外部时钟频率为2MHz,PPPPP被置为10100B(N=20),则对外部输入时钟20 分频,以获得8279内部要求的100kHz的基本频率。(3)读FIFO/传感器R
43、AM 命令D7D6D5D4D3D2D1D0001PPPPPD7D6D5D4D3D2D1D0010AIXAAA687 单片机I/O扩展及应用 其中:D7D6D5=010为读FIFO/传感器RAM 命令的特征位。AAA(D2D0)为传感器RAM 中的8个字节地址。AI(D4)为自动增量特征。当AI=l时,每次读出传感器RAM 后地址自动加1 使地址指针指向下一个存储单元。这样,下一个数据便从下一个地址读出,而不必重新设置读FIFO/传感器RAM命令。AI=0时仅读出一个单元内容。在键盘工作方式中,由于读出操作严格按照先入先出顺序,因此,不需使用这条命令。(4)读显示RAM命令 在CPU读显示数据(
44、用于检查)之前必须先输出读显示缓冲器RAM的命令。其中:D7D6D5=011是该命令字的特征位。AAAA(D3D2D1D0)用来寻址显示RAM中的存储单元。由于显示RAM中有16个节单元故需要4位地址。AI(D4)为自动增量特征位。AI=1时,每次读出后地址自动加1,指向下一地址。D7D6D5D4D3D2D1D0011AIAAAA697 单片机I/O扩展及应用 (5)写显示数据命令 在CPU将显示数据写入8279 的显示缓冲器RAM之前必须先输出写显示数据缓冲器的命令。其中:D7D6D5=100为写显示RAM命令宇特征位。AAAA(D3D2D1D0)为将要写入的显示RAM中的存储单元地址。AI
45、(D4)为自动增量特征位。AI=1时,每次写入后地址自动加1,指向下一地址。D7D6D5D4D3D2D1D0100AIAAAA707 单片机I/O扩展及应用 (6)显示禁止写入/消隐命令(Display write inhibit/Blank)其中:D7D6D5=101为显示禁止写入/消隐命令特征位。IWA、IWB(D3D2)为A、B组显示RAM写入屏蔽位。由于显示寄存器分成A、B两组,可以单独送数,故用两位来分别屏蔽。当A组的屏蔽位D3=1时,A 组的显示RAM禁止入。因此,从CPU写入显示器RAM数据时,不会影响A的显示。这种情况通常在采用双4位显示器时使用。因为两个4位显示器是相互独立的
46、。为了给其中一个4位显示器输入数据又不影响另一个4位显示器,因此必须对另一组的输入实行屏蔽。BLA、BLB(D3D2)为消隐设置位。用于对两组显示输出消隐。若BL=1,对应组的显示输出被消隐;当BL=0,则恢复显示。D7D6D5D4D3D2D1D0101XIWA IWB BLA BLB717 单片机I/O扩展及应用 (7)清除命令 CPU将清除命令写入8279,使显示缓冲器清成初态(暗码),同时也能清除键输入标志和中断请求标志。其中:D7D6D5=110为清除命令特征位。CDCDCD(D4D3D2)用来设定清除显示RAM方式。共有四种消除方式。CF(D1)用来置空FIFO存储器,当CF=1时,
47、执行清除命令后,FIFORAM 被置空,使中断输出线IRQ复位。同时,传感器RAM读出地址也被置为0。CA(D0)为总清的特征位。它兼有CD和CF的联合效能。在CF=1时,对显示的清除方式由D3、D2 的编码决定。清除显示RAM大约需100S时间,在此期间,CPU 不能向显示RAM 写入数据。D7D6D5D4D3D2D1D0110CDCDCDCFCAD4 D3 D2清除方式清除方式10X将显示将显示RAM全部清全部清010将显示将显示RAM清成清成20H11将显示将显示RAM全部置全部置10X X不清除不清除(CA=0时时)727 单片机I/O扩展及应用 (8)结束中断/错误方式设置命令 其中
48、:D7D6D5=111为结束中断/错误方式设置命令的特征位。此命令有两种不同的作用。n 作为结束中断命令。在传感器工作方式中使用。每当传感器状态出现变化时,扫描检测电路就将其状态写入传感器RAM,并启动中断逻辑,使IRQ变高,向CPU请求中断,并且禁止写入传感器RAM。此时,若传感器RAM读出地址的自动递增特征没有置位(AI=0),则中断请求IRQ在CPU第一次从传感器RAM读出数据时就被清除。若自动递增特征已置位(AI=0),则CPU对传感器RAM的读出并不能清除IRQ,而必须通过给8279写入结束中断/错误方式设置命令才能使IRQ变低。因此,在传感器工作方式中,此命令用来结束传感器RAM的
49、中断请求。D7D6D5D4D3D2D1D0111EXXXX737 单片机I/O扩展及应用n 作为特定错误方式设置命令。在8279已被设定为键盘扫描N键轮回方式以后,如果CPU给8279又写入结束中断/错误方式设置命令(D4=1),则8279将以一种特定的错误方式工作。这种方式的特点是:在8279的消颤周期内,如果发现多个按键同时按下,则FIFO状态宇中的错误特征位S/E将置1,并产生中断请求信号和阻止写入FIFO RAM。上述8种用于确定8279操作方式的命令字皆由D7D6D5 特征位确定,输出到8279后能自动寻址相应的命令寄存器。因此,写入命令时唯一的要求是使数据选择信号A0=1。747
50、单片机I/O扩展及应用2.状态寄存器 8279的状态字节用于键输入和选通输入方式中,指出输入数据缓冲器FIFO中的字符个数和是否出错。状态字节的格式如下:n DU(D7 Display Unavailable)在清除命令执行期间该位为“1”,D7为1时对显示RAM写操作无效。n S/E(D6 Sensor/Errorflag)为传感器信号结束/错误特征位。该特征位在读出FIFO态状字时被读出。而在执行CF=1的清除命令时被复位。当8279工作在传感器工作方式时,若S/E=1,表示传感器的最后一个信号已进入传感器RAM;而当8279工作在特殊错误方式时,若S/E=1则表示出现了多键同时按下的错误