版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、8.1 单片机的系统扩展概述系统扩展的含义在单片机芯片外加相应的芯片、电路,使得有关功能得以扩充,称为系统扩展。系统扩展包括:外部存储器扩展,I/O接口扩展,总线扩展等系统扩展分类单一功能的扩展综合功能的扩展第1页/共97页8.1 单片机的系统扩展概述系统扩展的含义第1页/共97页8.1 单片机I/O扩展概述扩展I/O接口电路的功能:速度协调输出数据锁存输入数据三态缓冲数据转换为什么要扩展I/O口单片机本身接口功能有限单片机控制应用中的复杂接口要求第2页/共97页8.1 单片机I/O扩展概述扩展I/O接口电路的功能:为什常用编址方法有:独立编址和统一编址。MCS51单片机采用与外部RAM统一编
2、址方法,即每一个扩展的I/O口相当于一个扩展的RAM单元;访问外部I/O口的指令同访问外部数据存储器指令。 51单片机扩展I/O接口编址方法例如:MOVXDPTR , AMOVXA,DPTR MOVXRI,AMOVXA,RI ;其中,DPTR、RI中装I/O对应的地址第3页/共97页常用编址方法有:独立编址和统一编址。51单片机扩展I/O接口(1)无条件传送方式无条件传送也称为同步程序传送。只有那些能一直为数据I/O传送作好准备的设备,才能使用无条件传送方式。因为在进行I/O操作时,不测试设备的状态,可以根据需要随时进行数据传送操作。该方式适用于两类设备的数据输入输出:具有常驻的数据信号变化缓
3、慢的数据信号的设备。 无条件传送接口逻辑示于图8-1单片机I/O控制方式第4页/共97页(1)无条件传送方式单片机I/O控制方式第4页/共97页图8-1 无条件传送的接口逻辑第5页/共97页图8-1 无条件传送的接口逻辑第5页/共97页在I/O操作之前,要先检浏设备的状态,以了解设备是否已为数据I/O作好了准备;只有在确认设备已“准备好”的情况下,单片机才能执行数据I/O操作。操作流程见图8-2为了实现查询方式的数据传送,需要由接口电路提供设备状态,并以软件方法进行状态测试。这是一种软硬件方法结合的数据传送方式。程序查询方式,电路简单,查询软件也不复杂,而且通用性强。 (2)查询方式(有条件传
4、送方式)图8-2 查询传送流程第6页/共97页在I/O操作之前,要先检浏设备的状态,以了解设备是否已为数据中断方式又称程序中断方式、它与查询方式的主要区别在于知何知道设备是否为数据传送作好了准备,查询方式是单片机的主动形式,而中断方式则是单片机等待通知(中断请求)的被动形式。采用中断方式进行数据传送时,当设备为数据传送作好准备之后,就向单片机发出中断请求;单片机接收到中断请求之后,即作出响应,暂停正在执行的原程序,而转去为设备的数据输入输出服务待服务完成之后,程序返回,单片机再继续执行被中断的原程序。中断传送逻辑见图8-3。(3)中断方式第7页/共97页中断方式又称程序中断方式、它与查询方式的
5、主要区别在于知何知道图8-3 中断方式数据传送逻辑第8页/共97页图8-3 中断方式数据传送逻辑第8页/共97页I/O扩展的分类利用锁存器、缓冲器进行并行口简单扩展用可编程并行接口芯片进行扩展I/O接口扩展常用芯片51单片机常用I/O扩展芯片示于表8-1。表8-1 MCS-51单片机I/O扩展常用芯片第9页/共97页I/O扩展的分类利用锁存器、缓冲器进行并行口简单扩展表8-18.2 简单I/O口扩展8.2.1 简单接口常用锁存器、缓冲器芯片I/O口的简单扩展输出口-利用锁存器扩展输入口-利用缓冲器扩展74LS377、74LS273、74LS244、74LS245第10页/共97页8.2 简单I
6、/O口扩展8.2.1 简单接口常用锁存器、8位数据/地址锁存器74LS273/373(1)74LS27374LS273是一种带清除功能的8D触发器其内部结构如图8-4所示引脚分布如图8-5所示真值表见表8-2所示1D8D为数据输入端1Q8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。第11页/共97页8位数据/地址锁存器74LS273/373(1)74LS27表8-2 74LS273真值表图8.4 74LS273内部结构图第12页/共97页表8-2 74LS273真值表图8.4 74LS273内部图8-5 74LS273封装图第13页/共97页图8-5 74LS273封装图第1
7、3页/共97页 (2)74LS37374LS373是一种带有三态输出门的8D触发器其内部结构如图8-6所示引脚分布如图8-7所示数据输入由允许端G控制数据输出由数据输出控制端控制各触发器仅输出单一状态D1D8为数据输入端Q1Q8为数据输出端触发器的功能如表8-3所示常用作数据/地址锁存器第14页/共97页(2)74LS37374LS373是一种带有三态输出门的8D图8-6 74LS373内部结构图表8-3 74LS373真值表第15页/共97页图8-6 74LS373内部结构图表8-3 74LS373真图8-7 74LS373引脚功能图第16页/共97页图8-7 74LS373引脚功能图第16
8、页/共97页(3)74LS24474LS244是三态八缓冲器/线驱动器/线接收器(3S,两组控制)内部结构逻辑图(见图8-8):图8-8 74LS244引脚功能图第17页/共97页(3)74LS24474LS244是三态八缓冲器/线驱动器/(3)74LS244(续)引出端符号:1A11A4,2A12A4:输入端1G#, 2G#:三态允许端(低电平有效)1Y11Y4,2Y12Y4:输出端真值表:(见表8-4)表8-4 74LS244真值表第18页/共97页(3)74LS244(续)引出端符号:真值表:表8-4 74(4)74LS24574LS245: 8位双向3态缓冲电路,主要用在数据的双向缓冲
9、内部结构逻辑见图8-9图8-9 74LS245引脚功能图第19页/共97页(4)74LS24574LS245: 8位双向3态缓冲电路,(4)74LS245(续)74LS245的真值表见表8-5表8-5 74LS245真值表第20页/共97页(4)74LS245(续)74LS245的真值表见表8-5表8.2.2 简单I/O口扩展简单输入口扩展图8-10 74LS244扩展输入接口电路第21页/共97页8.2.2 简单I/O口扩展简单输入口扩展图8-10 74简单输出口扩展图8-11 74LS377扩展输出接口电路第22页/共97页简单输出口扩展图8-11 74LS377扩展输出接口电路第简单并行
10、口扩展应用举例 图8-12 74LS系列扩展输入/输出接口电路第23页/共97页简单并行口扩展应用举例 图8-12 74LS系列扩展输入/【例8-1】 如图8-12所示为一个利用74LS244和74LS273芯片,将P0口扩展成简单的输入/输出口的电路。74LS244和74LS273的工作受AT89S51的P2.0、RD#、WR# 3条控制线控制。74LS244作为扩展输入口,8个输入端分别接8个按钮开关。74LS273是8D锁存器扩展输出口,接8个LED发光二极管,以显示8个按钮开关状态。当某条输入口线的按钮开关按下时,该输入口线为低电平,读入单片机后,其相应位为“0”,然后再将口线的状态经
11、74LS273输出,某位低电平时二极管发光,从而显示出按下的按钮开关的位置。简单并行口扩展应用举例 第24页/共97页【例8-1】 如图8-12所示为一个利用74LS244和74该电路的工作原理如下当P2.0=0,RD#=0(WR#=1)时,选中74LS244芯片,此时若无按钮开关按下,输入全为高电平。当某开关按下时则对应位输入为“0”,74LS244的输入端不全为“1”,其输入状态通过P0口数据线被读入AT89S51片内。当P2.0=0,WR#=0(RD#=1)时,选中74LS273芯片,CPU通过P0口输出数据锁存到74LS273,74LS273的输出端低电平位对应的LED发光二极管点亮。
12、总之,在图8-12中只要保证P2.0为“0”,其他地址位或“0”或“1”即可。如地址用FEFFH(无效位全为“1”),或用0000H(无效位全为“0”)都可。【例8-1】 分析第25页/共97页该电路的工作原理如下【例8-1】 分析第25页/共97页输入程序段:MOV DPTR,#0FEFFH;I/O地址DPTRMOVX A,DPTR ;RD#为低,74LS244数据被读入A中输出程序段:MOV A,#data;数据#dataAMOV DPTR,#0FEFFH;I/O地址#0FEFFHDPTRMOVXDPTR,A;WR#为低,数据经74LS273口输出【例8-1】 输入、输出程序第26页/共9
13、7页输入程序段:【例8-1】 输入、输出程序第26页/共97页程序如下:DDIS:MOV DPTR,#0FEFFH ;输入口地址DPTRLP:MOVX A,DPTR;按钮开关状态读入A中 MOVX DPTR,A;A中数据送显示输出口 SJMP LP ;反复连续执行由程序可看出,对于扩展接口的输入/输出就像从外部RAM读/写数据一样方便。图8-12仅仅扩展了两片,如果仍不够用,还可扩展多片74LS244、74LS273之类的芯片。但作为输入口时,一定要求有三态功能,否则将影响总线的正常工作。【例8-1】 程序编写程序把按钮开关状态通过图8-12的发光二极管显示出来。第27页/共97页程序如下:【
14、例8-1】 程序编写程序把按钮开关状态通过图8-8.3 用51单片机的串行口扩展并行口串口的方式0用于I/O扩展。方式0为同步移位寄存器工作方式,波特率为fosc/12。数据由RXD端(P3.0)输入,同步移位时钟由TXD端(P3.1)输出。用74LS165扩展并行输入口如图8-13,用51单片机的串口扩展两个8位并行输入口。74LS165是8位并行输入串行输出的寄存器。当74LS165的S/L#端由高到低跳变,并行输入端的数据被置入寄存器;当S/L#=1,且时钟禁止端(15脚)为低时,允许TXD(P3.1)移位时钟输入,在该脉冲作用下,数据由右向左方向移动。第28页/共97页8.3 用51单
15、片机的串行口扩展并行口串口的方式0用于I/用74LS165扩展并行输入口TXD与所有74LS165的CP相连;RXD与74LS165的串行输出端QH相连;P1.0与 S/L#相连,控制74LS165的串行移位或并行输入;15脚接地,允许时钟输入。当扩展多个8位输入口时,相邻两芯片的首尾(QH与SIN)相连。图8-13 利用74LS165扩展16位并行输入口第29页/共97页用74LS165扩展并行输入口TXD与所有74LS165的C【例8-2】从16位扩展口读入5组数据(每组2B),把它们转存到内部RAM 20H开始的单元。编程如下:MOVR7,#05H;设置读入组数 MOVR0,#20H;设
16、置内部RAM数据区首址START:CLRP1.0;并行置入数据,S/L#=0SETBP1.0;允许串行移位,S/L#=1MOVR2,#02H;设每组字节数,即74LS165的个数RXDATA:MOVSCON,#00010000H;设置串口方式0,允许;接收,启动接收过程WAIT:JNBRI,WAIT;未接收完一帧,循环等待 CLRRI;RI标志清“0”,准备下次接收 MOVA,SBUF;读入数据 MOVR0,A;送至RAM缓冲区 INCR0;指向下一个地址 DJNZR2,RXDATA;未读完一组数据, 继续 DJNZR7,START;5组数据未读完重新并行置入 ;对数据进行处理串行接收过程采用
17、查询等待的方式,如必要,可改中断方式。第30页/共97页【例8-2】从16位扩展口读入5组数据(每组2B),把它们转用74LS164扩展并行输出口图8-14为51单片机的串口外接两片74LS164(8位串入并出移位寄存器)扩展两个8位并行输出口的接口电路。图8-14 利用74LS164扩展16位并行输出口第31页/共97页用74LS164扩展并行输出口图8-14为51单片机的串口外当串口工作在方式0的发送,串行数据由P3.0(RXD)送出,移位时钟由P3.1(TXD)送出。注意,由于74LS164无并行输出控制端,在串行输入中,其输出端的状态会不断变化,故某些场合,在74LS164输出端应加接
18、输出三态门控制,以便保证串行输入结束后再输出数据。用74LS164扩展并行输出口第32页/共97页当串口工作在方式0的发送,串行数据由P3.0(RXD)送出,START:MOVR7,#02H;设置要发送的字节个数 MOV R0,#30H;设置地址指针 MOV SCON,#00H;设置串行口为方式0SEND:MOV A,R0 MOV SBUF,A;启动串行口发送过程WAIT:JNBTI,WAIT;一帧未发完,等待 CLR TIINC R0;取下一个数DJNZ R7,SEND ;未发完,继续,从子程序返回RET【例8-3】将内部RAM单元30H、31H的内容经串行口由74LS164并行输出的子程序
19、。第33页/共97页START:MOVR7,#02H;设置要发送的字节个数【8.4 可编程并行接口芯片的扩展8.4.1 利用可编程并行接口芯片8255的I/O扩展常用的外围I/O接口芯片:82C55:可编程通用并行接口(3个8位I/O口)。81C55:可编程的IO/RAM扩展接口电路(2个8位I/O口,1个6位I/O口,256RAM单元,1个14位的减法计数器)。都可以和AT89S51直接连接,接口逻辑简单。第34页/共97页8.4 可编程并行接口芯片的扩展8.4.1 利用可编程并行接8255的结构图8-15 8255的内部结构框图第35页/共97页8255的结构图8-15 8255的内部结构
20、框图第35页/图8-16 8255的扩展逻辑电路图8255的扩展逻辑电路MCS-51单片机可以和8255直接连接,图8-16给出了一种扩展电路。 第36页/共97页图8-16 8255的扩展逻辑电路图8255的扩展逻辑电路8255并口扩展举例【例8-4】8255与8031连接如图8-17所示,要求:试确定8255A的端口地址欲使A口: 方式0,输出口;B口:方式1,输入口; 上C口:方式0,输出。编写初始化程序欲使8051内部RAM30H的内容从PA口输出,试编程。欲使PC7向外输出一个正脉冲信号,试编程。第37页/共97页8255并口扩展举例【例8-4】8255与8031连接如图8图8-17
21、 8255与8031连接图第38页/共97页图8-17 8255与8031连接图第38页/共97页【例8-4】解答P2 P0 0, ,0 0 A口:7FFCH(0000H)0, ,0 1B口:7FFDH(0001H)0, ,1 0C口:7FFEH(0002H)0, ,1 1控制口:7FFFH(0003H)MOVDPTR ,#7FFFH;控制口地址MOVA ,#86H;方式字:10000110B=86HMOVXDPTR ,A 初始化编程确定地址第39页/共97页【例8-4】解答P2 P0 MOVDPTR ,程序段MOVA,30HMOVDPTR,#7FFCHMOVXDPTR,A 程序段MOVDPT
22、R,#7FFFHMOVA,#86H;设工作方式MOVXDPTR,AMOVA,#0EH;C口置位字,PC7=0MOVXDPTR ,AACALLDELAY1;延时MOVA,#0FH;C口置位字,PC7=1MOVXDPTR ,A ACALLDELAY1;延时DECA;C口置位字,PC7=0MOVX DPTR,AACALL DELAY2;延时【例8-4解答】第40页/共97页程序段 程序段【例8-4解答】第40页/共97页【例8-5】 设单片机通过8255来控制一顺序控制过程,该系统连接如图8-18,A口输出6路顺序控制信号,以指示灯指示,6道工序,每道工序时间为10秒。PC0输入启动信号,PC7输入
23、停止信号,分别与SA1和SA2相连。试编写此应用程序。图8-18 8255A的应用举例第41页/共97页【例8-5】 设单片机通过8255来控制一顺序控制过程,该系(2)端口的工作方式为方式0,A口为输出口,C口为输入口, 8255的控制字为89H。(1)8255四个端口的地址:,00,00B A口地址:FCFCH,00,01B B口地址:FCFDH,00,10B C口地址:FCFEH,00,11B 控制口地址:FCFFH【例8-5】解答第42页/共97页(2)端口的工作方式为方式0,A口为输出口,C口为输入口,(ORG 0100HMA:MOVDPTR,#0FCFFH;控制寄存器地址MOVA,
24、#89H ;控制字MOVXDPTR,A ;控制字送控制寄存器MOVDPTR,#0FCFEH ;C口地址QD: MOVXA,DPTR ;读C口JNBACC.0,QD ;判断有无启动信号LOOP: MOV DPTR,#0FCFCH ; A口地址MOVA,#01H ;第一路控制信号LOOP1:MOVX DPTR,A ;输出第一路控制信号ACALLDELAY ;延迟10秒RLA ;下一路控制信号JNBACC.6,LOOP1 ;判断6路控制信号有无输出完()控制程序如下:第43页/共97页ORG 0100H()控制程序如下:第43页/共97页MOVDPTR,#0FCFEH ;C口地址MOVXA,DPTR
25、 ;读C口JB ACC.7,TZ ;判断有无停止信号JMPLOOP ;无停止信号则进行下一轮控制TZ: MOVDPTR,#0FCFCH ;有停止信号则使A口输出清零CLRAMOVXDPTR,ASJMP$ORG1000H ;延时子程序DELAY:MOV22H,#50HL1:MOV 21H,#100HL2:MOV20H,#250HL3:NOPNOPDJNZ20H,L3DJNZ21H,L2DJNZ22H,L1RET()控制程序(续):第44页/共97页MOVDPTR,#0FCFEH ;C口地址()控制程8.4.2 可编程并行接口芯片8155的扩展8155的结构8155芯片内部逻辑由三部分组成: 存储
26、单元为256字节静态RAM三个可编程I/O口:PA口,8位PB口,8位PC口,6位14位二进制减法计数器第45页/共97页8.4.2 可编程并行接口芯片8155的扩展8155的结构88155芯片的内部结构(图8-19)图8-19 8155芯片的内部结构第46页/共97页8155芯片的内部结构(图8-19)图8-19 8155芯片8155的引脚功能8155芯片40引脚,采用双列直插式封装,如图8-20所示。8155芯片的引脚功能见表8-6图8-20 8155芯片的引脚第47页/共97页8155的引脚功能8155芯片40引脚,采用双列直插式封装,表8-6 8155芯片的引脚功能PA0PA7端口A的
27、I/O线(8位,接外设)PB0PB7端口B的I/O线(8位,接外设)PC0PC5端口C的I/O线(6位,接外设)AD0AD7三态地址/数据复用线(8位,一般接单片机P0口)CPU与8155之间的地址、数据、命令、状态等信号通过它来传送IO/M#端口/存储器 选择控制: “0”选择片内RAM; “1”选择片内I/O口TIMER IN8155片内定时器/计数器的计数脉冲输入引脚TIMER OUT8155片内定时器/计数器的计满回零输出引脚RD#、WR#分别是对8155片内的RAM或I/O口的的读、写控制信号ALE地址锁存引脚CE#选片RESET复位信号。复位后A口、B口和C口均为数据输入方式第48
28、页/共97页表8-6 8155芯片的引脚功能PA0PA7端口A的I/8155各引脚功能如下地址/数据线AD7AD0,与AT89S51单片机的P0口相连,用于分时传送地址/数据信息。I/O总线(22条)PA7PA0为通用I/O线,数据传送方向由写入81C55的命令字决定(图9-13);PB7PB0为通用I/O线,用于传送PB口上的外设数据,数据传送方向也由写入81C55的控制字决定。PC5PC0为数据/控制线,共有6条,在通用I/O方式下,用作传送I/O数据;在选通I/O方式下,用作传送命令/状态信息(见表9-3)。8155的引脚功能第49页/共97页8155各引脚功能如下8155的引脚功能第4
29、9页/共97页控制引脚RESET:复位输入线,在RESET线上输入一个大于600ns宽的正脉冲时,81C55即可处于复位状态,PA、PB、PC三口也定义为输入方式。CE#:片选线,若CE#=0,则AT89S51单片机选中本81C55工作,否则,本81C55未被选中。IO/M#:I/O端口或RAM存储器选择线。若IO/M#=0,则AT89S51单片机选中81C55片内的RAM存储器;若IO/M#=1,则AT89S51单片机选中81C55的某一I/O端口。RD#:读控制。当RD#=0且WR#=1时,81C55为读出数据状态;WR#:写控制。当WR#=0且RD#=0时,81C55为写入数据状态。81
30、55的引脚功能第50页/共97页控制引脚8155的引脚功能第50页/共97页控制引脚ALE:允许地址输入线,高有效。若ALE=1,则81C55允许AT89S51通过AD7AD0线发出地址锁存到81C55片内“地址锁存器”;否则,81C55地址锁存器处于封锁状态。81C55的ALE常和AT89S51的ALE相连。TIMERIN:计数器脉冲输入线,输入的脉冲上跳沿用于对81C55片内的14位计数器减1。TIMEROUT:计数器输出线,当14位计数器减为0时就可以在该引线上输出脉冲或方波,输出脉冲或方波与所选的计数器工作方式有关。电源线VCC为+5V电源输入线VSS接地。8155的引脚功能第51页/
31、共97页控制引脚8155的引脚功能第51页/共97页8155 的RAM 单元地址8155有256个RAM单元,使用AD7AD0,共8位地址线进行编址;RAM地址:(当IO/M#加低电平)此时AD0AD7上得到的编码值即是8155的某一RAM单元的地址,地址范围是00HFFH。8155共有6 个可编址的I/O端口,这 6 个端口是: 命令状态寄存器; PA口; PB口; PC口; 定时器计数器低8位; 定时器计数器高8位当IO/M#加高电平,选中I/O端口。8155只使用AD2AD0对I/O端口编址。8155的I/O端口地址编码见表8-78155的RAM单元地址及I/O口编址第52页/共97页8
32、155 的RAM 单元地址8155的RAM单元地址及I/O8155端口地址(当IO/M#加高电平)表8-7 8155的端口地址编码AD7AD6AD5AD4AD3AD2AD1AD0对应端口000命令/状态寄存器001A口010B口011C口100定时器/计数器低8位101定时器/计数器高8位第53页/共97页8155端口地址(当IO/M#加高电平)表8-7 8155的8155的使用与工作方式(1)8155内部RAM的使用:当IO/M#加低电平时,对片内256B RAM单元进行读/写。与一般外部数据存储器的使用基本一样,唯一区别是事先要使IO/M#为低电平。(2)8155的I/O口的使用:当IO/
33、M#加高电平时,对I/O口访问。8155的3个I/O口,分别称为PA口、PB口和PC口。PA口和PB口是8位通用数据口,主要用于数据传送。PC口为6位口,既可作为数据I/O口,还可作为控制口,用于传送控制信号和状态信号,对PA和PB的I/O操作进行控制;PA、PB、PC各端口可工作于不同的工作方式,它们靠设置工作命令字来确定,使用前要进行初始化(写命令字到命令口)。第54页/共97页8155的使用与工作方式(1)8155内部RAM的使用:第58155的I/O口可以用基本I/O方式和选通(或中断)I/O方式传送数据。基本I/O(即无条件传送)方式。在该方式下无须联络信号,PA、PB、PC三口均可
34、独立当数据口,输入/输出数据。选通I/O方式(或中断方式)PA口和PB口可工作于选通(或中断)方式传送数据,此时PC口为联络口,提供联络信号。PC口四种工作方式:方式1(ALT1):PA口和PB口基本输入/输出,PC口输入方式2(ALT2):PA口和PB口基本输入/输出,PC口输出方式3(ALT3):PA口选通输入/输出,PB口基本输入/输出方式4(ALT4):PA口和PB口选通输入/输出(3)I/O口的工作方式:第55页/共97页8155的I/O口可以用基本I/O方式和选通(或中断)I/O联络信号定义:当以基本I/O方式传送数据时,无需联络信号,此时,PA、PB、PC皆可进行数据的输入/输出
35、;当PA或PB以选通(中断)方式进行数据传送时,所需的联络信号由 PC 提供:PC2PC0是为PA口提供;PC5PC3是为PB口提供联络信号共有三个:INTR:中断请求信号(输出),高电平有效,送给C51的外中断请求。BF:缓冲器满信号(输出),高电平有效。STB#:选通信号(输入),低电平有效。数据输入时,STB#是外设送来的选通信号;数据输出时,STB#是外设送来的应答信号。以上各信号由PC口的引脚承担,其的信号定义见表8-8第56页/共97页联络信号定义:当以基本I/O方式传送数据时,无需联络信号,此表8-8 PC口的工作方式与联络信号定义基本I/O方式选通I/O方式方式1(ALT1)方
36、式2 (ALT2)方式3 (ALT3)方式4 (ALT4)PC0输入输出A口中断请求(AINTR)A口中断请求(AINTR)PC1输入输出A口缓冲器满(ABF)A口缓冲器满(ABF)PC2输入输出A口选通(ASTB#)A口选通(ASTB#)PC3输入输出输出B口中断请求(BINTR)PC4输入输出输出B口缓冲器满(BBF)PC5输入输出输出B口选通(BSTB#)第57页/共97页表8-8 PC口的工作方式与联络信号定义基本I/O方式选通I8155的方式4(ALT4)时PC口各引脚的信号定义设备数据线设备数据线至中断请求输入线至设备来自设备至中断请求输入线至设备来自设备AINTRBINTRABF
37、BBFASTBBSTBPAPB8155PC0PC1PC2PC3PC4PC5图8-21 8155在方式4时PC口各引脚信号定义第58页/共97页8155的方式4(ALT4)时PC口各引脚的信号定义设备数据选通I/O方式说明选通I/O方式又可分为选通I/O数据输入和选通I/O数据输出两种方式。选通I/O数据输入PA口和PB口都可设定为本方式。本工作方式和82C55的选通I/O输入情况类似,如图8-22(a)所示。选通I/O数据输出PA口和PB口都可设定为本方式。选通I/O数据的输出过程也和82C55的选通I/O输出情况类似,图8-22(b)所示为选通I/O数据输出的示意图。第59页/共97页选通I
38、/O方式说明选通I/O方式又可分为选通I/O数据输入和图8-22 选通I/O方式示意图第60页/共97页图8-22 选通I/O方式示意图第60页/共97页定时器计数器的计数结构 8155 的定时器计数器是一个 14 位的减法计数器,由两个低8位计数器TL(04H)和高8为计数器TH(05H)构成。计数器的格式如图8-23所示。其中,T13T0为计数器的计数位;M2、M1用来设置计数器的输出方式。 (4)8155的定时器/计数器的使用D7D6D5D4D3D2D1D0T7T6T5T4T3T2T1T0D7D6D5D4D3D2D1D0M2M1T13T12T11T10T9T8输出方式计数器高6位TH(0
39、5H)低8位计数器TL(04H)图8-23 8155计数器格式第61页/共97页定时器计数器的计数结构 (4)8155的定时器/计数器的使81C55计数器的4种工作方式及对应的引脚输出波形如图8-24所示。8155 的定时器计数器的输出方式图8-24 81C55的定时器/计数器的输出方式定义与引脚输出波形第62页/共97页81C55计数器的4种工作方式及对应的引脚输出波形如图8-28155计数器与51单片机计数器不同8155 的定时器计数器是减法计数; 8155 的定时器计数器则只有一种固定的工作方式,即 14 位计数,通过软件方法进行计数值加载; 8155 的定时器计数器,由外部提供计数脉冲
40、,信号引脚是 TIMER IN; 8155 的定时器计数器,计数溢出时向芯片外边输出一个信号(TIMER OUT )。这一信号有脉冲和方波两种形式,供用户进行选择,具体由 M2、M1 两位定义。第63页/共97页8155计数器与51单片机计数器不同8155 的定时器计数8155内部有一个8位地址锁存器,无需外接锁存器;8155的许多信号与MCS-51单片机兼容,可以直接连接。表8-5列出了这些信号的对应关系。在二者的连接中,8155的地址译码即片选端可以采用线选法、全译码等方法;IO/M#的连接可用或非门产生使用高位地址8155与单片机的连接第64页/共97页8155内部有一个8位地址锁存器,
41、无需外接锁存器;8155与8155与MSC-51的兼容信号8155MCS-518155MCS-51AD0AD7P0口RD#RD#ALEALEWR#WR#RESETRST表8-9 8155与MSC-51的兼容信号第65页/共97页8155与MSC-51的兼容信号8155MCS-518155IO/M#的连接图8-25(a) 或非门产生IO/M#信号第66页/共97页IO/M#的连接图8-25(a) 或非门产生IO/M#信号IO/M#的连接图8-25(b) 高位地址作IO/M#信号第67页/共97页IO/M#的连接图8-25(b) 高位地址作IO/M#信号8155与51单片机连接电路举例图8-26
42、AT89S51单片机与81C55的接口电路第68页/共97页8155与51单片机连接电路举例图8-26 AT89S51单硬件接口电路地址分析表8-10 8155的各端口及RAM单元地址在图8-26中,单片机P0口输出的低8位地址不需要另外加锁存器(8155片内集成有地址锁存器),而直接与8155的AD0AD7相连,既可作为低8位地址总线,又可作为数据总线,地址锁存控制直接用AT89S51发出的ALE信号。81C55的CE#端接P2.7,IO/M#端与P2.0相连。当P2.7=0时,若P2.0=0,则访问8155的RAM单元。由此可得到图8-23中8155的各端口以及RAM单元的地址编码,见表8
43、-10。第69页/共97页硬件接口电路地址分析表8-10 8155的各端口及RAM单命令字用于设置端口及定时器计数器的工作方式;命令寄存器只能写不能读。命令字格式如图8-27状态字用于寄存各端口及定时器计数器的工作状态状态字只能读不能写状态字格式如图8-28命令字、状态字共用一个端口地址8155的控制8155通过对命令字的设和读状态字来控制输入/输出第70页/共97页命令字8155的控制8155通过对命令字的设和读状态字来控制8155命令字格式TM1TM2IEBIEAPC2PC1PAPAPBA 口方式B 口A 口计数器方式00:空操作01:停止计数10:计满后停止11:启动计数0:输入1:输出
44、0:禁止中断1:允许中断00011011方式 1:A、B口基本I/O;C口输入方式 2:A、B口基本I/O;C口输出方式 3:A口选通I/O ,B口基本I/O方式 4:A、B口选通I/OB 口方式C口方式图8-27 8155的命令字格式第71页/共97页8155命令字格式TM1TM2IEBIEAPC2PC1PAP8155状态字格式A口中断请求标志:0:无;1:有定时器中断标志:1:有定时器溢出中断0:读状态字后或硬件复位后INTEBTIMERBBFINTRBINTEAINTRAABFA口中断允许:0:禁止;1:允许B口缓冲器:0:空;1:满B口中断请求标志:0:无;1:有A口缓冲器:0:空;1
45、:满B口中断允许:0:禁止;1:允许图8-28 8155的状态字格式第72页/共97页8155状态字格式A口中断请求标志:0:无;1:有定时器中8155 定时器计数器的工作方式由命令字中的高两位 D7D6(M2M1)进行控制。D7D600:不影响计数器工作。D7D6 01:停止计数。如计数器未启动则无操作,如计数器正运行则停止计数。D7D6 10:达到计数值(计数器减为 0 )后停止。D7D6 11:启动。如计数器没运行,则在装入计数值后开始计数;如计数器已运行,则在当前计数值计满后,再以新的计数值进行计数。任何时候都可设置计数器长度和工作方式,将控制字写入控制寄存器。如果计数器正在计数,只有
46、在写入启动命令后,计数器才接收新计数长度并按新的工作方式计数。定时器计数器的控制第73页/共97页8155 定时器计数器的工作方式由命令字中的高两位 D7D8155 定时器计数器的工作方式由命令字中的高两位 D7D6(M2M1)进行控制。若写入计数器的初值为奇数, 引脚的方波输出是不对称的。例如,初值为9时,计数器的输出,在5个计数脉冲周期内为高电平,4个计数脉冲周期内为低电平,如图8-29所示。定时器计数器的控制图8-29 计数长度为奇数时的不对称方波输出(长度为9)第74页/共97页8155 定时器计数器的工作方式由命令字中的高两位 D7D8155 定时器计数器的工作方式由命令字中的高两位
47、 D7D6(M2M1)进行控制。定时器计数器的控制注意,81C55的计数器初值不是从0开始,从2开始。这是因为,如果选择计数器的输出为方波形式(无论是单方波还是连续方波),则规定是从启动计数开始,前一半计数输出为高电平,后一半计数输出为低电平。显然,如果计数初值是0或1,就无法产生这种方波。因此81C55计数器的写入初值范围是3FFFH2H。如果硬要将0或1作为初值写入,其效果将与送入初值2的情况一样。81C55复位后使计数器停止计数第75页/共97页8155 定时器计数器的工作方式由命令字中的高两位 D7D(1)初始化通常要完成两项任务:确定命令字计数初值81C55的接口软件编程【例8-6】
48、初始化举例:要求使用8155定时器/计数器对计数脉冲进行千分频,即计数1000后,TIAMEROUT端电平状态发生变化,并重新置数以产生连续方波。此外假定A口为输出方式,允许中断;B口为输入方式,禁止中断;C口为对A口控制方式(ALT3)。请编写初始化程序。 第76页/共97页(1)初始化81C55的接口软件编程【例8-6】初始化举例:【例8-6】8155初始化举例(分析)要求输出连续方波,所以定时器/计数器的最高两位:M2 M101;计数初值:1000,其16进制数:03E8H,则定时器/计数器的高8位:43H,低8位:0E8H。命令字的设置如图8-30 计数器B口A口C口B口A口装入后启动
49、禁止中断允许中断ALT3输入输出11011001命令字的内容为0D9H。图8-30 【例8-6】8155命令字设置第77页/共97页【例8-6】8155初始化举例(分析)要求输出连续方波,所以8031与8155的连接如图8-31图8-31 计数长度为奇数时的不对称方波输出(长度为9)8155的RAM地址:7E00H 7EFFH第78页/共97页8031与8155的连接如图8-31图8-31 计数长度为I/O口地址:7F00H 7F05H,其中:PA:7F01H,PB:7F02H,PC:7F03H,命令口:7F00H 定时器低位:7F04H,定时器高位:7F05H初始化程序:MOVDPTR ,#
50、7F00H;命令/状态寄存器地址MOVA ,#0D9H;命令字MOVXDPTR ,A;装入命令字MOVDPTR ,#7F04H;计数器低8位地址MOVA ,#0E8H;低8位计数值MOVXDPTR ,A;写入计数值低8位INCDPTR;计数器高8位地址MOVA ,#43H ;高8位计数值MOVXDPTR ,A;写入计数值高8位第79页/共97页I/O口地址:7F00H 7F05H,其中:MOVDPP2.7P2.0 P0.7 P0.0 RAM单元 0 X X X X X X 0 0 0 0 0 0 0 0 0 0号地址0000H 0 X X X X X X 0 1 1 1 1 1 1 1 1 2
51、55号00FFH8155的扩展应用举例【例8-7】 设计一段程序把8155片内RAM全部填满 FFH。地址分析由于是对8155片内RAM操作,不需要初始化芯片;8155片内RAM地址是:0000H00FFH,其存储单元地址映像如表8-11。表8-11 8155片内RAM地址第80页/共97页P2.7P2.0 P0.7 P0.0【例8-7】程序MOVR7 , #00H;R7作计数器,从0开始共减;256次再到0MOVA ,#0FFH ;准备送FFHMOVDPTR ,#0000H ;DPTR指向第一个单元LOOP: MOVXDPTR ,A ;送数INCDPTR ;调整指针,指向下一个单元DJNZR
52、7 ,LOOP ;循环控制SJMP$程序如下:第81页/共97页【例8-7】程序MOVR7 , #00H;R7作计数器【例8-8】在单片机实验开发装置上实现变速的“8”字循环显示。首先以“8”字显示20ms的速度循环10次,然后变为慢速,以每个“8”字显示0.1秒的速度循环一次,然后再变为快速循环,如此不断重复,试编此有关的程序。单片机实验器和LED显示器通过8155连接,连接图如图8-32所示。已知时钟频率为12MHz,LED为其阳极器件,“8”的显示代码为80H。图8-32 8031通过8155与LED显示器的连接电路 第82页/共97页【例8-8】在单片机实验开发装置上实现变速的“8”字
53、循环显示【例8-8】 LED显示器通过8155连接图图8-32 8031通过8155与LED显示器的连接电路 第83页/共97页【例8-8】 LED显示器通过8155连接图图8-32 8【例8-8】分析端口地址:控制口:0000H,PA:0001H,PB:0002H,PC:0003H ,定时器高位:0004H,定时器低位:0005H; 8155控制字:应规定A口为输出 (D0 = l),C口为输出方式(ALT2),(D3D2 = 01),不要中断。控制字为:00000101B = 05H。单片机时钟为l2MHz,用T1作定时,设置为工作方式l,则其工作方式字为l0H;20ms的定时初值为:21
54、6(2010-2)/10-2 45536 = B1E0H不能直接用定时器产生0.1秒延时,要用软件计数器,用20ms定时5次来获得0.1秒。在中断服务程序中处理“8”字的快或慢速循环显示。利用程序状态寄存器PSW中的用户标志位F0作快慢控制,令F0 = 0为慢速显示,F0 = l为快速显示。第84页/共97页【例8-8】分析端口地址:第84页/共97页【例8-8】编程ORG0000HLJMPMAINORG00lBHLJMPTlORGl000HMAIN:MOVSP ,#52HMOVA ,#05H;8155命令字MOVR0 ,#00H;8155命令口地址MOVXR0 ,A ;装8155控制字MOV
55、TMOD ,#10H;设置T1为定时模式,工作方式1MOVTH1 ,#0B1H;设定时器初值高位MOVTL1 ,#0E0H;设定时器初值低位MOVIE ,#88H;开中断MOVA ,#80H ;“8”字显示代码第85页/共97页【例8-8】编程ORG0000H第85页/共97页【8-8】编程(续);续前INCR0;A口地址MOVXR0 , ;输出字形码MOV A ,#01H;LED最右一位位码MOV R0 ,#03H;C口地址MOVXR0 ,A ;位码输出MOV R1 ,#10;快速循环10次MOV R2 ,#5;慢速定时计数5次SETB F0;先实现快速显示SETB TR1;启动T1SJMP
56、$第86页/共97页【8-8】编程(续);续前第86页/共97页【例8-8】编程(续)ORG1500HT1:MOVTH1 ,#0B1H;赋初值MOVTL1 ,#0E0HJNBF0 ,SLOW;F0为零转慢速JNBACC.5 ,NEXT2;设显示一遍,转出MOVA ,#01H ;显示一遍,重开始DJNZR1 ,NEXT3 ;不是10次,转出CLRF0 ;已l0次,转慢速MOVR1 ,#10;重装R1值SJMPNEXT3SLOW:DJNZR2 ,NEXT4;0.l秒不到,转出JNBACC.5 ,NEXT1;设显示一遍,转出第87页/共97页【例8-8】编程(续)ORG1500H第87页/共97页【例8-8】编程(续);续前MOVA ,#0lH;显示一遍SETBF0 ;转为快速MOV R2 ,#05 ;重装R2值NEXT1: MOVR2 ,#05NEXT2:RLANEXT3:MOVXR0,ANEXT4:RETI第88页/共97页【例8-8】编程(续);续前第88页/共97页【例8-9】 综合功能多芯片扩展的扩展:使用多个芯片来进行综合功能扩展,本例使用:1片8155,扩展I/O口;1片2716,外部扩展ROM(2KB);2片6116,外部扩展RAM(4KB);1片373,地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《JBT 15072-2025内燃机 后处理装置连接卡箍 通 用技术规范》专题研究报告
- 2026年如何坐电梯幼儿园
- 2026年幼儿园独角仙大赛
- 2026年及未来5年市场数据中国酒店茶几行业市场深度分析及发展潜力预测报告
- 地质勘探原始森林区域勘察安全作业手册
- 项目洽谈与落地指导手册
- 人力资源咨询实务与技巧手册
- 2026清远市教师招聘面试题及答案
- 2026年二级建造师之二建市政工程实务模拟题库含答案详解(培优A卷)
- 2026濮阳市教师招聘考试题库及答案
- 2026年科技日报社招聘笔试科技政策与科普写作专项练习
- 公安联控申请书(参考式样版)
- 金山文档课件
- 2026年防爆电气设备事故案例分析
- 高一数学下册解三角形专项卷(人教版考点)
- 儿童康复辅具评估协议2025年服务
- 共病患者控制目标个体化设定
- 宫颈癌康复期的社会支持与资源链接
- 雨课堂学堂云在线《人类与生态文明(云南大学 )》单元测试考核答案
- 子宫内膜容受的治疗方案
- 机械设备出厂质量检验报告模板
评论
0/150
提交评论