《单片机系统功能扩展.ppt》由会员分享,可在线阅读,更多相关《单片机系统功能扩展.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第7章章 单片机系统功能扩展单片机系统功能扩展 单片机原理、接口及应用单片机原理、接口及应用单片机原理、接口及应用单片机原理、接口及应用第第7章章 单片机系统功能扩展单片机系统功能扩展 内内 容容 提提 要要 并行并行并行并行I/OI/O接口的扩展接口的扩展接口的扩展接口的扩展 *中断扩展中断扩展中断扩展中断扩展 *定时器扩展定时器扩展定时器扩展定时器扩展 小结小结小结小结 第第7章章 单片机系统功能扩展单片机系统功能扩展 7.1 并行并行I/O接口的扩展接口的扩展 MCS-51单片机共有单片机共有4个个8位并行位并行I/O口口,在外部扩展时在外部扩展时,P0和和P2口做为总线使用口做为总线
2、使用,因而提供给用户的因而提供给用户的 I/O口就只有口就只有P1或或P3口的部分口线所接的外设较多时口的部分口线所接的外设较多时,就必须扩展就必须扩展I/O接接口。口。MCS-51单片机扩展的单片机扩展的I/O口和外部数据存储器统一编口和外部数据存储器统一编址、址、采用相同的控制信号、采用相同的控制信号、相同的寻址方式和相同的指令。相同的寻址方式和相同的指令。扩展扩展I/O所用的芯片有通用可编程芯片所用的芯片有通用可编程芯片(如如8251,8155,8255等等)和和TTL,CMOS锁存器锁存器,缓冲器缓冲器(如如273,377,244,245等等),用户可根据系统对输入输出的要求适当选择芯
3、片。用户可根据系统对输入输出的要求适当选择芯片。第第7章章 单片机系统功能扩展单片机系统功能扩展 图图9-24为为8XX51 扩展一个输入接口扩展一个输入接口244 和一个输出接口和一个输出接口273 的电路的电路.第第7章章 单片机系统功能扩展单片机系统功能扩展 244的选通信号由的选通信号由RD和和P2.0相或产生相或产生,当执行读该片的指当执行读该片的指令时令时,RD和和P2.0有效有效,打开打开244控制门控制门,从而把数据通过从而把数据通过244读入读入8XX51。273的选通信号由的选通信号由WR和和P2.0相或产生,通过执行对该片相或产生,通过执行对该片的写指令,的写指令,WR和
4、和P2.0有效有效,使使8XX51的数据往的数据往273输出。输出。8XX51内部有内部有ROM/EPROM,不用扩展外部程序存储器不用扩展外部程序存储器,所以所以P0口作为双向数据线连在的数据端。口作为双向数据线连在的数据端。273、244有相同的地址有相同的地址FEFFH(实际上只要保证实际上只要保证P2.0=0,其他其他地址位无关紧要)地址位无关紧要),然而由于使用不同的控制信号然而由于使用不同的控制信号RD或或WR,它们地址相同却不会发生数据传送冲突。它们地址相同却不会发生数据传送冲突。第第7章章 单片机系统功能扩展单片机系统功能扩展 例如将例如将244的输入数据从的输入数据从273输
5、出只需使用如下指令输出只需使用如下指令:MOV DPTR,#0FEFFH ;DPTRZ指向扩展指向扩展I/O地址地址MOVX A,DPTR ;从从244读入数据读入数据MOVX DPTR,A ;向向273输出数据输出数据 多个芯片扩展实例多个芯片扩展实例 图图9-25是一个用是一个用8031/80C31扩展扩展1片片2716(EPROM),2片片6116(SRAM)和和1片片8255(可编程并行可编程并行接口接口)的电路。的电路。第第7章章 单片机系统功能扩展单片机系统功能扩展 第第7章章 单片机系统功能扩展单片机系统功能扩展 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6、000H 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 07FFH 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 3000H 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 37FFH 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2800H 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 2FFFH 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1800H 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1803H 2716仅一片仅一片,片选端接地。片选端接地。图中采用线选
7、法图中采用线选法:P2.3 6116(1)P2.4 6116(2)P2.5 8255P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 每个芯片片内地址填写全每个芯片片内地址填写全“0”全全“1”,片选地址必须,片选地址必须填填“0”,无关位填,无关位填“0”或填或填“1”均可,但要避免和别的同类均可,但要避免和别的同类芯片片选相同。芯片片选相同。第第7章章 单片机系统功能扩展单片机系统功能扩展 8255为可编程并行接口芯片为可编程并行接口芯片,它有它有3个个8
8、位数据口位数据口:A口口,B口口,C口口(其中其中C口可作为两个四位口口可作为两个四位口),一个控制口,口地址由一个控制口,口地址由A1,A0决定。图中决定。图中8255的三个数据口地址分别为的三个数据口地址分别为1800H1802H,控制口地址为控制口地址为1803H。8255有三种工作方式有三种工作方式:方式方式0(基本方式基本方式),方式方式1(选通方式选通方式,此时此时C口高四位为口高四位为A口的联络线口的联络线,低四位为低四位为B口联络线口联络线),方式方式2(双向方式双向方式,仅仅A口有口有)。8255的方式控制字格式为的方式控制字格式为:第第7章章 单片机系统功能扩展单片机系统功
9、能扩展 例例7-1 将将8255A口输入的数据从口输入的数据从B口输出口输出,C口不用口不用,均采用均采用方式方式0。MOV DPTR,#1803H ;DPTR指向控制口指向控制口MOV A,#10010000B ;设定设定A口方式口方式0输输 入入,B口方式口方式0输出输出MOVX DPTR,A ;写入控制口写入控制口MOV DPTR,#1800H ;DPTR指向指向A口口MOVX A,DPTR ;从从A口输入数据口输入数据 到到A累加器累加器INC DPTR ;DPTR指向指向B口口MOVX DPTR,A ;A的内容从的内容从B口输出口输出SJMP$第第7章章 单片机系统功能扩展单片机系统
10、功能扩展 7.2 中断扩展中断扩展 标准的标准的80518051单片机只有两个外部中断输入端。而当系统的外单片机只有两个外部中断输入端。而当系统的外部中断源大于或等于部中断源大于或等于3 3个时,则考虑通过中断扩展获得更多的个时,则考虑通过中断扩展获得更多的外部中断端口。中断扩展的基本思想就是,通过系统的标准外部中断端口。中断扩展的基本思想就是,通过系统的标准外部中断端口(一级中断)的复用来扩展若干个二级中断。外部中断端口(一级中断)的复用来扩展若干个二级中断。当有扩展的中断请求输入时,系统响应后首先进入复用的一当有扩展的中断请求输入时,系统响应后首先进入复用的一级中断服务程序,在中断服务程序
11、的开始处,读入二级中断级中断服务程序,在中断服务程序的开始处,读入二级中断向量,依据不同的中断向量来区别不同的中断请求源,然后向量,依据不同的中断向量来区别不同的中断请求源,然后执行对应的中断服务程序代码。常见的中断扩展有编码器线执行对应的中断服务程序代码。常见的中断扩展有编码器线和与两种方式。前者适合中断源较多的情况,后者电路简单,和与两种方式。前者适合中断源较多的情况,后者电路简单,但只适合中断源扩展较少的情况。编码器方式的扩展电路如但只适合中断源扩展较少的情况。编码器方式的扩展电路如图图7.67.6所示。所示。第第7章章 单片机系统功能扩展单片机系统功能扩展 图图7.6 编码器方式的中断
12、扩展电路编码器方式的中断扩展电路第第7章章 单片机系统功能扩展单片机系统功能扩展 在图在图7.6中,使用一片优先中,使用一片优先编码器编码器74148,扩展了,扩展了8个中断源。个中断源。编码器产生编码器产生83线的中断向量码的线的中断向量码的同时,通过同时,通过GS产生复用的中断请求产生复用的中断请求信号输入至单片机的外部中断输入信号输入至单片机的外部中断输入口口INT0或或INT1。中断向量码由。中断向量码由P1口或中断向量数据端口(需另加三口或中断向量数据端口(需另加三态数据缓冲器)在进入中断后读入。态数据缓冲器)在进入中断后读入。148优先编码器优先级别从优先编码器优先级别从IN7到到
13、IN0依次变低,向量码分别为依次变低,向量码分别为111、110、000。一般扩展中断不需要一般扩展中断不需要8路,路,只需要只需要4路左右。此时可以用线与路左右。此时可以用线与方式扩展完成,其电路如图方式扩展完成,其电路如图7.7所示所示。图图7.7 线与方式的中断扩展电路线与方式的中断扩展电路第第7章章 单片机系统功能扩展单片机系统功能扩展 在图在图7.7中,直接使用二极管的中,直接使用二极管的“线与线与”操作来实现中断输入的操作来实现中断输入的判别。当判别。当INT0到到INT3的某个扩展中断源有中断请求时,因二极管的某个扩展中断源有中断请求时,因二极管的的“线与线与”功能,使得功能,使
14、得INT为低电平,从而引起系统中断。进入中为低电平,从而引起系统中断。进入中断后,通过查询断后,通过查询P1.0到到P1.3便可知道应该执行哪一部分中断服务程便可知道应该执行哪一部分中断服务程序。假设序。假设INT接至接至51单片机的脚,对应的中断服务程序的框架结构单片机的脚,对应的中断服务程序的框架结构为:为:ORG 0013HJMP INTSERV INTSERV:;现场保护现场保护JNB P1.0,INT0SERV;是中断是中断INT0请求,则执行请求,则执行INT0对应的中断服对应的中断服务程序务程序JNB P1.1,INT1SERV;是中断是中断INT1请求,则执行请求,则执行INT
15、1对应的中断服对应的中断服务程序务程序 第第7章章 单片机系统功能扩展单片机系统功能扩展 JNB P1.2,INT2SERV;是中断是中断INT2请求,则执行请求,则执行INT2对应的中断服对应的中断服务程序务程序JNB P1.3,INT3SERV;是中断是中断INT3请求,则执行请求,则执行INT3对应的中断服对应的中断服务程序务程序INT0SERV:;INT0的中断服务程序的中断服务程序JMP RETUINT1SERV:;INT1的中断服务程序的中断服务程序JMP RETUINT2SERV:;INT2的中断服务程序的中断服务程序JMP RETUINT3SERV:;INT3的中断服务程序的中
16、断服务程序RETU:;恢复现场恢复现场RETI第第7章章 单片机系统功能扩展单片机系统功能扩展 7.3定时器的扩展定时器的扩展8254 是是8253 的改进型,具有的改进型,具有3个独立个独立的功能完全相同的的功能完全相同的16位计数器,每个位计数器,每个计数器都有计数器都有6种工作方式,这种工作方式,这6种工作种工作方式可以由控制字设定,因而能以方式可以由控制字设定,因而能以6种不同的工作方式满足不同的接口要种不同的工作方式满足不同的接口要求。求。CPU还可以随时更改他们的方式还可以随时更改他们的方式和计数值,并读取他们的计数状态。和计数值,并读取他们的计数状态。7.3.1 8254的结构和
17、引脚的结构和引脚 8254的外部引脚如图的外部引脚如图7-8所示。其内所示。其内部主要由数据总线缓冲器、读写逻辑、部主要由数据总线缓冲器、读写逻辑、控制字寄存器和计数器等控制字寄存器和计数器等4个部分构个部分构成成。图图7-8 8254的引脚的引脚第第7章章 单片机系统功能扩展单片机系统功能扩展 1)数据总线缓冲器数据总线缓冲器 数数据据总总线线缓缓冲冲器器是是三三态态、双双向向、8位位的的缓缓冲冲器器。用用于于系系统统数数据据总总线线和和8254的的接接口口,写写控控制制字字到到8254的的控控制制寄寄存存器器、写写计计数数初初值值到到指指定定的的计计数数器器、读读取取某某个个计计数数器器的
18、的计计数数的的现现行行值值等,均是通过缓冲区输出输入实现和等,均是通过缓冲区输出输入实现和CPU的互传。的互传。2)读读/写控制逻辑写控制逻辑 接接收收系系统统总总线线的的5个个输输入入信信号号,控控制制操操作作。其其中中RD、WR 读、写控制信号操控制读、写控制信号操控制8254读、写操作。读、写操作。CS片选信号,低电平有效,芯片使能片选信号,低电平有效,芯片使能 A1、A0计计数数器器通通道道选选择择。A1A0的的取取值值00、01和和10时时分分别别选选择择计计数数器器0、计计数数器器1和和计计数数器器2,当当A1A011时时选选择择控控制制寄寄存器。存器。CS、RD、WR、A1、A0
19、组组合起来所完成的合起来所完成的选择选择和操作功和操作功能如下表能如下表7.3所示。所示。第第7章章 单片机系统功能扩展单片机系统功能扩展 表表7.3 8254内部寄存器读内部寄存器读/写操作表写操作表第第7章章 单片机系统功能扩展单片机系统功能扩展 3)计数器计数器 计数器计数器0、计数器、计数器1和计数器和计数器2有着相同有着相同的结构,见图的结构,见图7-9 写入计数器的初始值保存在计数初值寄写入计数器的初始值保存在计数初值寄存器中,由存器中,由CLK脉冲的一个上升沿或一个脉冲的一个上升沿或一个下降沿将其装入减下降沿将其装入减1计数器。减计数器。减1计数器在计数器在CLK脉冲脉冲(GAT
20、E允许允许)作用下进行递减计数,作用下进行递减计数,直至计数值为直至计数值为0,输出,输出OUT信号。输出寄信号。输出寄存器的值跟随减存器的值跟随减1计数器变化,仅当写入计数器变化,仅当写入锁存控制字时,它锁存减锁存控制字时,它锁存减1计数器的当前计数器的当前计数值计数值(减减1计数器可继续计数计数器可继续计数),CPU读读取后,它自动解除锁存状态,又跟随减取后,它自动解除锁存状态,又跟随减1计数器变化。所以在计数过程中,计数器变化。所以在计数过程中,CPU随随时可以用指令读取任一计数器的当前计数时可以用指令读取任一计数器的当前计数值,这一操作对计数没有影响。每个计数值,这一操作对计数没有影响
21、。每个计数器对输入的器对输入的CLK脉冲可按二进制减计数也脉冲可按二进制减计数也可按十进制减计数。可按十进制减计数。图图7-9 计数器的结构计数器的结构第第7章章 单片机系统功能扩展单片机系统功能扩展 8254可作为计数器,也可作为定时器,若输入的可作为计数器,也可作为定时器,若输入的CLK是频是频率精确的时钟脉冲,计数器可作为定时器。此时定时时间率精确的时钟脉冲,计数器可作为定时器。此时定时时间计数初值计数初值TCLK 在计数过程中,计数器受门控信号在计数过程中,计数器受门控信号GATE的控制。计数器的控制。计数器的输入的输入CLK与输出与输出OUT以及门控信号以及门控信号GATE之间的关系
22、,取之间的关系,取决于计数器的工作方式。决于计数器的工作方式。4)控制和状态寄存器控制和状态寄存器 当当A1A011时选择控制或状态寄存器。控制寄存器存放计时选择控制或状态寄存器。控制寄存器存放计数器的工作方式控制字和对输出寄存器发的锁存命令;状态数器的工作方式控制字和对输出寄存器发的锁存命令;状态寄存器存放寄存器存放8254当前的工作状态,三个控制字共用一个口地当前的工作状态,三个控制字共用一个口地址,通过标识位区别是什么控制字和写入哪个计数器。址,通过标识位区别是什么控制字和写入哪个计数器。第第7章章 单片机系统功能扩展单片机系统功能扩展 7.3.2 8254的工作方式控制字和读回命令字的
23、工作方式控制字和读回命令字 8254的控制字有两个:工作方式控制字和读回命令字。两个的控制字有两个:工作方式控制字和读回命令字。两个控制字共用一个地址,由标识位来区分,通过指令完成控制字控制字共用一个地址,由标识位来区分,通过指令完成控制字的写入。工作方式控制字其格式见表的写入。工作方式控制字其格式见表7.4。表表7.4 8254的方式控制字格式的方式控制字格式第第7章章 单片机系统功能扩展单片机系统功能扩展 当欲读出计数器当前计数值或计数器状态时,应先发读命令当欲读出计数器当前计数值或计数器状态时,应先发读命令字至控制寄存器,使计数器的当前计数值或计数器状态锁存在字至控制寄存器,使计数器的当
24、前计数值或计数器状态锁存在输出寄存器中,再从工作的计数器读计数值。输出寄存器中,再从工作的计数器读计数值。读回命令字见表读回命令字见表7.5表表7.5 8254的读回命令字格式的读回命令字格式第第7章章 单片机系统功能扩展单片机系统功能扩展 7.3.3 8254的状态字的状态字8254的状态字端口地址和控制字端口地址相同,不过状态字使的状态字端口地址和控制字端口地址相同,不过状态字使用读指令。状态字格式如表用读指令。状态字格式如表7.6所示所示。8254的的3个计数器均有个计数器均有6种工作方式,其主要区别在于输出波种工作方式,其主要区别在于输出波形不同、启动计数器的触发方式不同和计数过程中门
25、控信号形不同、启动计数器的触发方式不同和计数过程中门控信号GATE对计数操作的影响不同。为方便使用,表对计数操作的影响不同。为方便使用,表7.7(课本(课本P162页)比较了页)比较了8254的的6种工作方式种工作方式表表7.6 8254的状态字格式的状态字格式第第7章章 单片机系统功能扩展单片机系统功能扩展 7.3.4 8254的应用举例的应用举例7.3.4.1 8254的初始化编程的初始化编程1根据要求确定工作方式,将控制字填写进控制寄存器。根据要求确定工作方式,将控制字填写进控制寄存器。2确定计数初值:确定计数初值:计数方式:计数初值要计的脉冲个数。计数方式:计数初值要计的脉冲个数。定时
26、方式:计数初值定时方式:计数初值T/TCLK=fCLK/f 其中其中T为定时时间,为定时时间,(频率频率f=1/T)3.计数初值按工作方式控制字中计数初值按工作方式控制字中RW1、RW0、BCD位的要求写进位的要求写进所使用的计数器通道。所使用的计数器通道。7.3.4.2 8254的工作编程的工作编程 8254的工作编程主要完成计数初值的改变和当前计数器值及状的工作编程主要完成计数初值的改变和当前计数器值及状态的读取两个任务。改变计数初值的操作比较简单,写入相应的态的读取两个任务。改变计数初值的操作比较简单,写入相应的计数器端口即可。而读当前计数值和当前状态相对复杂,通常有计数器端口即可。而读
27、当前计数值和当前状态相对复杂,通常有3种方法,简介如下。种方法,简介如下。第第7章章 单片机系统功能扩展单片机系统功能扩展 1.直直接接读读计计数数器器。由由于于计计数数器器在在实实时时变变化化,读读出出的的值值不不稳稳定定。若要稳定,可停止计数,但这会影响计数器的工作。若要稳定,可停止计数,但这会影响计数器的工作。2.用用方方式式控控制制字字锁锁存存住住指指定定计计数数器器的的当当前前值值,然然后后再再读读。这这既既不影响计数,读出值又稳定。不影响计数,读出值又稳定。3.用读回命令字进行操作,又可分为三种情况:用读回命令字进行操作,又可分为三种情况:a)如如果果仅仅锁锁存存状状态态信信息息,
28、则则对对相相应应的的计计数数器器端端口口进进行行一一次次读操作就可读回。读操作就可读回。b)如如果果仅仅锁锁存存当当前前计计数数值值,同同时时若若计计数数初初值值为为16位位,则则要要依次读回当前计数值的低依次读回当前计数值的低8位和高位和高8位。位。c)如如果果同同时时锁锁存存状状态态信信息息和和当当前前计计数数值值,则则先先读读回回状状态态信信息,后息,后读读回当前回当前计计数数值值。16位位计计数初数初值值的情况同前。的情况同前。第第7章章 单片机系统功能扩展单片机系统功能扩展 例例7-2 读读8254的计数器的计数器0的当前计数值,并存入的当前计数值,并存入R7、R6寄存器中。寄存器中
29、。MOV DPTR,#8003H MOV A,#1101000B ;读计数器;读计数器0的读回控制字送控制口的读回控制字送控制口 MOVX DPTR,A MOVX DPTR,#8000H;指向计数器;指向计数器0 MOVX A,DPTR;读低;读低8位位 MOV R6,A MOVX A,DPTR;读高;读高8位位 MOV R7,A 第第7章章 单片机系统功能扩展单片机系统功能扩展 7.4 小小 结结 单片机应用系统的设计中单片机应用系统的设计中I/O接口和中断源的扩展。接口和中断源的扩展。1 1、I/OI/O接口扩展有两类:通用型和可编程型,在硬件连接中,接口扩展有两类:通用型和可编程型,在硬
30、件连接中,无论哪种芯片,都要将单片机的无论哪种芯片,都要将单片机的WR(WR(写写)或或RD(RD(读读)连接上,以连接上,以此作为输出或输入的选通控制,对于通用型输入接口,应使此作为输出或输入的选通控制,对于通用型输入接口,应使用使用用使用RDRD,而对于通用型输出接口,应使用使用,而对于通用型输出接口,应使用使用WRWR,对于,对于可编程型,芯片本身有上可编程型,芯片本身有上WRWR和和RDRD信号,使其和单片机的信号,使其和单片机的WRWR和和RDRD对应连接就可以了对应连接就可以了2 2、地址译码的方法和存贮器地址译码方法相同,可以是线选法,、地址译码的方法和存贮器地址译码方法相同,可
31、以是线选法,部分译码或全译码。也可将片选端可接地,视外接芯片的多部分译码或全译码。也可将片选端可接地,视外接芯片的多少决定,原则是外接少决定,原则是外接I/OI/O接口和外接接口和外接RAMRAM不能有相同的地址;不能有相同的地址;外接外接I/OI/O接口之间不能有相同的地址接口之间不能有相同的地址。第第7章章 单片机系统功能扩展单片机系统功能扩展 3 3、在软件设计中,外围、在软件设计中,外围I/OI/O接口使用接口使用MOVXMOVX指令完成输指令完成输入或输出,使用可编程型入或输出,使用可编程型I/OI/O接口芯片时要先写控制接口芯片时要先写控制字,且要注意控制字要写入控制口,数据的输入输出字,且要注意控制字要写入控制口,数据的输入输出使用数据口。使用数据口。在掌握了单片机的总线结构和连接方法,查阅到各钟芯在掌握了单片机的总线结构和连接方法,查阅到各钟芯片的功能、结构和引脚、控制字格式后片的功能、结构和引脚、控制字格式后,各种芯片和单各种芯片和单片机连接是轻而易举的,也就具备了嵌入式系统的设片机连接是轻而易举的,也就具备了嵌入式系统的设计能力。计能力。