收藏 分销(赏)

第8章 51单片机的IO扩展.ppt

上传人:s4****5z 文档编号:14008252 上传时间:2026-05-26 格式:PPT 页数:98 大小:3.60MB 下载积分:10 金币
下载 相关 举报
第8章 51单片机的IO扩展.ppt_第1页
第1页 / 共98页
第8章 51单片机的IO扩展.ppt_第2页
第2页 / 共98页


点击查看更多>>
资源描述
微机原理及接口技术,第二级,第三级,第四级,第五级,微机原理及接口技术,*,微机原理及接口技术,第二级,第三级,第四级,第五级,微机原理及接口技术,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,8,章 单片机的,I/O,扩展,本章内容,系统扩展的含义,I/O,口的扩展,利用,I/O,接口芯片:,82C51,、,81C51,的,I/O,口扩展,8.1,单片机的系统扩展概述,系统扩展的含义,在单片机芯片外加相应的芯片、电路,使得有关功能得以扩充,称为系统扩展。,系统扩展包括:外部存储器扩展,,I/O,接口扩展,总线扩展等,系统扩展分类,单一功能的扩展,综合功能的扩展,8.1,单片机,I/O,扩展概述,扩展,I/O,接口电路的功能:,速度协调,输出数据锁存,输入数据三态缓冲,数据转换,为什么要扩展,I/O,口,单片机本身接口功能有限,单片机控制应用中的复杂接口要求,常用编址方法有:,独立编址,和,统一编址,。,MCS,51,单片机采用与外部,RAM,统一编址方法,即每一个扩展的,I/O,口相当于一个扩展的,RAM,单元;,访问外部,I/O,口的指令同访问外部数据存储器指令。,51,单片机扩展,I/O,接口编址方法,例如:,MOVXDPTR,A,MOVXA,DPTR,MOVXRI,A,MOVXA,RI,;,其中,,DPTR,、,RI,中装,I/O,对应的地址,(,1,)无条件传送方式,无条件传送也称为同步程序传送。,只有那些能一直为数据,I/O,传送作好准备的设备,才能使用无条件传送方式。因为在进行,I/O,操作时,不测试设备的状态,可以根据需要随时进行数据传送操作。,该方式适用于两类设备的数据输入输出:,具有常驻的数据信号,变化缓慢的数据信号的设备。,无条件传送接口逻辑示于图,8-1,单片机,I/O,控制方式,图,8-1,无条件传送的接口逻辑,在,I/O,操作之前,要先检浏设备的状态,以了解设备是否已为数据,I/O,作好了准备;,只有在确认设备已“准备好”的情况下,单片机才能执行数据,I/O,操作。操作流程见图,8-2,为了实现查询方式的数据传送,需要由接口电路提供设备状态,并以软件方法进行状态测试。这是一种软硬件方法结合的数据传送方式。,程序查询方式,电路简单,查询软件也不复杂,而且通用性强。,(,2,)查询方式(有条件传送方式),图,8-2,查询传送流程,中断方式又称程序中断方式、它与查询方式的主要区别在于知何知道设备是否为数据传送作好了准备,查询方式是单片机的主动形式,而中断方式则是单片机等待通知(中断请求)的被动形式。,采用中断方式进行数据传送时,当设备为数据传送作好准备之后,就向单片机发出中断请求;,单片机接收到中断请求之后,即作出响应,暂停正在执行的原程序,而转去为设备的数据输入输出服务,待服务完成之后,程序返回,单片机再继续执行被中断的原程序。中断传送逻辑见图,8-3,。,(,3,)中断方式,图,8-3,中断方式数据传送逻辑,I/O,扩展的分类,利用锁存器、缓冲器进行并行口简单扩展,用可编程并行接口芯片进行扩展,I/O,接口扩展常用芯片,51,单片机常用,I/O,扩展芯片示于表,8-1,。,表,8-1 MCS-51,单片机,I/O,扩展常用芯片,8.2,简单,I/O,口扩展,8.2.1,简单接口常用锁存器、缓冲器芯片,I/O,口的简单扩展,输出口,-,利用锁存器扩展,输入口,-,利用缓冲器扩展,74LS377,、,74LS273,、,74LS244,、,74LS245,8,位数据,/,地址锁存器,74LS273/373,(,1,),74LS273,74LS273,是一种带清除功能的,8D,触发器,其内部结构如图,8-4,所示,引脚分布如图,8-5,所示,真值表见表,8-2,所示,1D,8D,为数据输入端,1Q,8Q,为数据输出端,正脉冲触发,低电平清除,常用作,8,位地址锁存器,。,表,8-2 74LS273,真值表,图,8.4 74LS273,内部结构图,图,8-5 74LS273,封装图,(,2,),74LS373,74LS373,是一种带有三态输出门的,8D,触发器,其内部结构如图,8-6,所示,引脚分布如图,8-7,所示,数据输入由允许端,G,控制,数据输出由数据输出控制端控制,各触发器仅输出单一状态,D1,D8,为数据输入端,Q1,Q8,为数据输出端,触发器的功能如表,8-3,所示,常用作数据,/,地址锁存器,图,8-6 74LS373,内部结构图,表,8-3 74LS373,真值表,图,8-7 74LS373,引脚功能图,(,3,),74LS244,74LS244,是,三态八缓冲器,/,线驱动器,/,线接收器,(3S,,两组控制,),内部结构逻辑图(见图,8-8,),:,图,8-8 74LS244,引脚功能图,(,3,),74LS244,(续),引出端符号,:,1A11A4,,,2A12A4,:输入端,1G#,2G#,:三态允许端,(,低电平有效,),1Y11Y4,,,2Y12Y4,:输出端,真值表,:,(见表,8-4,),表,8-4 74LS244,真值表,(,4,),74LS245,74LS245:8,位双向,3,态缓冲电路,主要用在数据的双向缓冲,内部结构逻辑见图,8-9,图,8-9 74LS245,引脚功能图,(,4,),74LS245,(续),74LS245,的真值表见表,8-5,表,8-5 74LS245,真值表,8.2.2,简单,I/O,口扩展,简单输入口扩展,图,8-10 74LS244,扩展输入接口电路,简单输出口扩展,图,8-11 74LS377,扩展输出接口电路,简单并行口扩展应用举例,图,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,”,,然后再将口线的状态经,74LS273,输出,某位低电平时二极管发光,从而显示出按下的按钮开关的位置。,简单并行口扩展应用举例,该电路的工作原理如下,当,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,发光二极管点亮。,总之,在,图,8-12,中,只要保证,P2.0,为,“,0,”,,其他地址位或,“,0,”,或,“,1,”,即可。如地址用,FEFFH,(无效位全为,“,1,”,),或用,0000H,(无效位全为,“,0,”,)都可。,【,例,8-1】,分析,输入程序段:,MOV DPTR,,,#0FEFFH,;,I/O,地址,DPTR,MOVX A,,,DPTR,;,RD#,为低,,74LS244,数据被读入,A,中,输出程序段:,MOV A,,,#data,;数据,#dataA,MOV DPTR,,,#0FEFFH,;,I/O,地址,#0FEFFHDPTR,MOVXDPTR,,,A,;,WR#,为低,数据经,74LS273,口输出,【,例,8-1】,输入、输出程序,程序如下:,DDIS,:,MOV DPTR,,,#0FEFFH,;输入口地址,DPTR,LP,:,MOVX A,,,DPTR,;按钮开关状态读入,A,中,MOVX,DPTR,,,A,;,A,中数据送显示输出口,SJMP LP,;反复连续执行,由程序可看出,对于扩展接口的输入,/,输出就像从外部,RAM,读,/,写数据一样方便。图,8-12,仅仅扩展了两片,如果仍不够用,还可扩展多片,74LS244,、,74LS273,之类的芯片。但作为输入口时,一定要求有三态功能,否则将影响总线的正常工作。,【,例,8-1】,程序编写程序把按钮开关状态通过图,8-12,的发光二极管显示出来。,8.3,用,51,单片机的串行口扩展并行口,串口的,方式,0,用于,I/O,扩展,。,方式,0,为,同步移位寄存器,工作方式,波特率为,f,osc,/12,。,数据由,RXD,端(,P3.0,)输入,,同步移位时钟由,TXD,端(,P3.1,),输出。,用,74LS165,扩展并行输入口,如图,8-13,,用,51,单片机的串口,扩展两个,8,位并行输入口。,74LS165,是,8,位并行输入串行输出的寄存器。当,74LS165,的,S/L#,端由高到低跳变,并行输入端的数据被置入寄存器;,当,S/L#=1,,且时钟禁止端(,15,脚)为低时,允许,TXD,(,P3.1,),移位时钟输入,在该脉冲作用下,数据由右向左方向移动。,用,74LS165,扩展并行输入口,TXD,与所有,74LS165,的,CP,相连;,RXD,与,74LS165,的串行输出端,QH,相连;,P1.0,与,S/L#,相连,控制,74LS165,的串行移位或并行输入;,15,脚接地,允许时钟输入。,当扩展多个,8,位输入口时,相邻两芯片的首尾(,Q,H,与,SIN,)相连。,图,8-13,利用,74LS165,扩展,16,位并行输入口,【,例,8-2】,从,16,位扩展口读入,5,组数据(每组,2B,),把它们转存到内部,RAM 20H,开始的单元。编程如下:,MOVR7,,,#05H,;设置读入组数,MOVR0,,,#20H,;设置内部,RAM,数据区首址,START,:,CLRP1.0,;并行置入数据,,S/L#=0,SETBP1.0,;允许串行移位,,S/L#=1,MOVR2,,,#02H,;设每组字节数,即,74LS165,的个数,RXDATA,:,MOVSCON,,,#00010000H,;设置串口方式,0,,允许,;接收,启动接收过程,WAIT,:,JNBRI,,,WAIT,;未接收完一帧,循环等待,CLRRI,;,RI,标志清,“,0,”,,准备下次接收,MOVA,,,SBUF,;读入数据,MOVR0,,,A,;送至,RAM,缓冲区,INCR0,;指向下一个地址,DJNZR2,,,RXDATA,;未读完一组数据,继续,DJNZR7,,,START,;,5,组数据未读完重新并行置入,;对数据进行处理,串行接收过程采用查询等待的方式,如必要,可改中断方式。,用,74LS164,扩展并行输出口,图,8-14,为,51,单片机的串口外接两片,74LS164,(,8,位串入并出移位寄存器)扩展两个,8,位并行输出口的接口电路。,图,8-14,利用,74LS164,扩展,16,位并行输出口,当串口工作在方式,0,的发送,串行数据由,P3.0,(,RXD,)送出,移位时钟由,P3.1,(,TXD,)送出。,注意,由于,74LS164,无并行输出控制端,在串行输入中,其输出端的状态会不断变化,故某些场合,在,74LS164,输出端应加接输出三态门控制,以便保证串行输入结束后再输出数据。,用,74LS164,扩展并行输出口,START,:,MOVR7,,,#02H,;设置要发送的字节个数,MOV R0,,,#30H,;设置地址指针,MOV SCON,,,#00H,;设置串行口为方式,0,SEND,:,MOV A,,,R0,MOV SBUF,,,A,;启动串行口发送过程,WAIT,:,JNBTI,,,WAIT,;一帧未发完,等待,CLR TI,INC R0,;取下一个数,DJNZ R7,,,SEND,;未发完,继续,从子程序返回,RET,【,例,8-3】,将内部,RAM,单元,30H,、,31H,的内容经串行口由,74LS164,并行输出的子程序。,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,直接连接,接口逻辑简单。,8255,的结构,图,8-15 8255,的内部结构框图,图,8-16 8255,的扩展逻辑电路图,8255,的扩展逻辑电路,MCS-51,单片机可以和,8255,直接连接,图,8-16,给出了一种扩展电路。,8255,并口扩展举例,【,例,8-4】8255,与,8031,连接如图,8-17,所示,要求:,试确定,8255A,的端口地址,欲使,A,口,:,方式,0,,输出口;,B,口,:,方式,1,,输入口;上,C,口,:,方式,0,,输出。编写初始化程序,欲使,8051,内部,RAM30H,的内容从,PA,口,输出,试编程。,欲使,PC7,向外输出一个正脉冲信号,试编程。,图,8-17 8255,与,8031,连接图,【,例,8-4】,解答,P2 P0,0,,,,,,,0 0,A,口:,7FFCH(0000H),0,,,,,,,0 1,B,口:,7FFDH(0001H),0,,,,,,,1 0,C,口,:,7FFEH(0002H),0,,,,,,,1 1,控制口:,7FFFH(0003H),MOVDPTR,#7FFFH,;控制口地址,MOVA,#86H,;方式字:,10000110B=86H,MOVXDPTR,A,初始化编程,确定地址,程序段,MOVA,30H,MOVDPTR,#7FFCH,MOVXDPTR,A,程序段,MOVDPTR,#7FFFH,MOVA,#86H,;设工作方式,MOVXDPTR,A,MOVA,#0EH,;,C,口置位字,,PC7=0,MOVXDPTR,A,ACALLDELAY1,;延时,MOVA,#0FH,;,C,口置位字,,PC7=1,MOVXDPTR,A,ACALLDELAY1,;延时,DECA,;,C,口置位字,,PC7=0,MOVX DPTR,A,ACALL DELAY2,;延时,【,例,8-4,解答,】,【,例,8-5】,设单片机通过,8255,来控制一顺序控制过程,该系统连接如图,8-18,,,A,口输出,6,路顺序控制信号,以指示灯指示,,6,道工序,每道工序时间为,10,秒。,PC0,输入启动信号,,PC7,输入停止信号,分别与,SA1,和,SA2,相连。试编写此应用程序。,图,8-18 8255A,的应用举例,(,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】,解答,ORG 0100H,MA,:,MOVDPTR,,,#0FCFFH,;控制寄存器地址,MOVA,,,#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,路控制信号有无输出完,()控制程序如下:,MOVDPTR,,,#0FCFEH,;,C,口地址,MOVXA,,,DPTR,;读,C,口,JB ACC.7,,,TZ,;判断有无停止信号,JMPLOOP,;无停止信号则进行下一轮控制,TZ,:,MOVDPTR,,,#0FCFCH,;有停止信号则使,A,口输出清零,CLRA,MOVXDPTR,,,A,SJMP$,ORG1000H,;延时子程序,DELAY,:,MOV22H,,,#50H,L1,:,MOV 21H,,,#100H,L2,:,MOV20H,,,#250H,L3,:,NOP,NOP,DJNZ20H,,,L3,DJNZ21H,,,L2,DJNZ22H,,,L1,RET,()控制程序(续):,8.4.2,可编程并行接口芯片,8155,的扩展,8155,的结构,8155,芯片内部逻辑由三部分组成:,存储单元为,256,字节静态,RAM,三个可编程,I/O,口:,PA,口,,8,位,PB,口,,8,位,PC,口,,6,位,14,位二进制减法计数器,8155,芯片的内部结构(图,8-19,),图,8-19 8155,芯片的内部结构,8155,的引脚功能,8155,芯片,40,引脚,采用双列直插式封装,如,图,8-20,所示。,8155,芯片的引脚功能见表,8-6,图,8-20 8155,芯片的引脚,表,8-6 8155,芯片的引脚功能,PA0,PA7,端口,A,的,I/O,线(,8,位,接外设),PB0,PB7,端口,B,的,I/O,线(,8,位,接外设),PC0,PC5,端口,C,的,I/O,线(,6,位,接外设),AD0,AD7,三态地址,/,数据复用线(,8,位,一般接单片机,P0,口),CPU,与,8155,之间的地址、数据、命令、状态等信号通过它来传送,IO/M#,端口,/,存储器 选择控制:,“,0,”,选择片内,RAM,;,“,1,”,选择片内,I/O,口,TIMER IN,8155,片内定时器,/,计数器的计数脉冲输入引脚,TIMER OUT,8155,片内定时器,/,计数器的计满回零输出引脚,RD#,、,WR#,分别是对,8155,片内的,RAM,或,I/O,口的的读、写控制信号,ALE,地址锁存引脚,CE#,选片,RESET,复位信号。复位后,A,口、,B,口和,C,口均为数据输入方式,8155,各引脚功能如下,地址,/,数据线,AD7,AD0,,,与,AT89S51,单片机的,P0,口相连,用于分时传送地址,/,数据信息。,I/O,总线(,22,条),PA7,PA0,为通用,I/O,线,数据传送方向由写入,81C55,的命令字决定(,图,9-13,);,PB7,PB0,为通用,I/O,线,用于传送,PB,口上的外设数据,数据传送方向也由写入,81C55,的控制字决定。,PC5,PC0,为数据,/,控制线,共有,6,条,在通用,I/O,方式下,用作传送,I/O,数据;在选通,I/O,方式下,用作传送命令,/,状态信息(见表,9-3,)。,8155,的引脚功能,控制引脚,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,为写入数据状态。,8155,的引脚功能,控制引脚,ALE,:,允许地址输入线,高有效。若,ALE=1,,则,81C55,允许,AT89S51,通过,AD7,AD0,线发出地址锁存到,81C55,片内,“,地址锁存器,”,;否则,,81C55,地址锁存器处于封锁状态。,81C55,的,ALE,常和,AT89S51,的,ALE,相连。,TIMERIN,:,计数器脉冲输入线,输入的脉冲上跳沿用于对,81C55,片内的,14,位计数器减,1,。,TIMEROUT,:,计数器输出线,当,14,位计数器减为,0,时就可以在该引线上输出脉冲或方波,输出脉冲或方波与所选的计数器工作方式有关。,电源线,VCC,为,+5V,电源输入线,VSS,接地。,8155,的引脚功能,8155,的,RAM,单元地址,8155,有,256,个,RAM,单元,使用,AD7,AD0,,,共,8,位地址线进行编址;,RAM,地址:,(当,IO/M#,加低电平,)此时,AD0,AD7,上得到的编码值即是,8155,的某一,RAM,单元的地址,地址范围是,00H,FFH,。,8155,共有,6,个可编址的,I/O,端口,这,6,个端口是:,命令状态寄存器;,PA,口;,PB,口;,PC,口;,定时器计数器低,8,位;,定时器计数器高,8,位,当,IO/M#,加高电平,,选中,I/O,端口。,8155,只使用,AD2,AD0,对,I/O,端口编址。,8155,的,I/O,端口地址编码见表,8-7,8155,的,RAM,单元地址及,I/O,口编址,8155,端口地址(,当,IO/M#,加高电平),表,8-7 8155,的端口地址编码,AD,7,AD,6,AD,5,AD,4,AD,3,AD,2,AD,1,AD,0,对应端口,0,0,0,命令,/,状态寄存器,0,0,1,A,口,0,1,0,B,口,0,1,1,C,口,1,0,0,定时器,/,计数器低,8,位,1,0,1,定时器,/,计数器高,8,位,8155,的使用与工作方式,(,1,),8155,内部,RAM,的使用:,当,IO/M#,加低电平,时,对片内,256B RAM,单元进行读,/,写。与一般外部数据存储器的使用基本一样,唯一区别是事先要使,IO/M#,为低电平。,(,2,),8155,的,I/O,口的使用:,当,IO/M#,加高电平,时,对,I/O,口访问。,8155,的,3,个,I/O,口,分别称为,PA,口,、,PB,口,和,PC,口,。,PA,口,和,PB,口,是,8,位通用数据口,主要用于数据传送。,PC,口,为,6,位口,既可作为,数据,I/O,口,,还可作为,控制口,,用于传送控制信号和状态信号,对,PA,和,PB,的,I/O,操作进行控制;,PA,、,PB,、,PC,各端口可工作于不同的工作方式,它们靠设置工作命令字来确定,使用前要进行初始化(写命令字到命令口)。,8155,的,I/O,口可以用基本,I/O,方式和选通(或中断),I/O,方式传送数据。,基本,I/O,(即无条件传送)方式。,在该方式下无须联络信号,,PA,、,PB,、,PC,三口均可独立当数据口,输入,/,输出数据。,选通,I/O,方式(或中断方式),PA,口和,PB,口可工作于选通(或中断)方式传送数据,此时,PC,口为联络口,提供联络信号。,PC,口四种工作方式:,方式,1,(,ALT,1,):,PA,口和,PB,口基本输入,/,输出,,PC,口输入,方式,2,(,ALT2,),:,PA,口和,PB,口基本输入,/,输出,,PC,口输出,方式,3,(,ALT3,),:,PA,口选通输入,/,输出,,PB,口基本输入,/,输出,方式,4,(,ALT4,),:,PA,口和,PB,口选通输入,/,输出,(,3,),I/O,口的工作方式:,联络信号定义:,当以基本,I/O,方式传送数据时,无需联络信号,此时,,PA,、,PB,、,PC,皆可进行数据的输入,/,输出;,当,PA,或,PB,以选通(中断)方式进行数据传送时,所需的联络信号由,PC,提供:,PC,2,PC,0,是为,PA,口提供;,PC,5,PC,3,是为,PB,口提供,联络信号共有三个:,INTR,:中断请求信号(输出),高电平有效,送给,C51,的外中断请求。,BF,:缓冲器满信号(输出),高电平有效。,STB#,:选通信号(输入),低电平有效。数据输入时,,STB#,是外设送来的选通信号;数据输出时,,STB#,是外设送来的应答信号。,以上各信号由,PC,口的引脚承担,其的信号定义见表,8-8,表,8-8 PC,口的工作方式与联络信号定义,基本,I/O,方式,选通,I/O,方式,方式,1,(,ALT,1,),方式,2,(,ALT,2,),方式,3,(,ALT,3,),方式,4,(,ALT,4,),PC0,输入,输出,A,口中断请求,(,AINTR),A,口中断请求,(,AINTR),PC1,输入,输出,A,口缓冲器满,(,ABF,),A,口缓冲器满,(,ABF,),PC2,输入,输出,A,口选通,(,ASTB#,),A,口选通,(,ASTB#,),PC3,输入,输出,输出,B,口中断请求,(,BINTR),PC4,输入,输出,输出,B,口缓冲器满,(,BBF,),PC5,输入,输出,输出,B,口选通,(,BSTB#),8155,的方式,4,(,ALT,4,)时,PC,口各引脚的信号定义,设备数据线,设备数据线,至中断请求输入线,至设备,来自设备,至中断请求输入线,至设备,来自设备,AINTR,BINTR,ABF,BBF,ASTB,BSTB,PA,PB,8155,PC0,PC1,PC2,PC3,PC4,PC5,图,8-21 8155,在方式,4,时,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,数据输出的示意图。,图,8-22,选通,I/O,方式示意图,定时器计数器的计数结构,8155,的定时器计数器是一个,14,位的减法计数器,由两个低,8,位计数器,TL,(,04H,)和高,8,为计数器,TH,(,05H,)构成。,计数器的格式如图,8-23,所示。其中,,T13,T0,为计数器的计数位;,M2,、,M1,用来设置计数器的输出方式。,(,4,),8155,的定时器,/,计数器的使用,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,T,7,T,6,T,5,T,4,T,3,T,2,T,1,T,0,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,M,2,M,1,T,13,T,12,T,11,T,10,T,9,T,8,输出方式,计数器高,6,位,TH,(,05H,),低,8,位计数器,TL,(,04H,),图,8-23 8155,计数器格式,81C55,计数器的,4,种工作方式及对应的引脚输出波形如图,8-24,所示。,8155,的定时器计数器的输出方式,图,8-24 81C55,的定时器,/,计数器的输出方式定义与引脚输出波形,8155,计数器与,51,单片机,计数器不同,8155,的定时器计数器是减法计数;,8155,的定时器计数器则只有一种固定的工作方式,即,14,位计数,通过软件方法进行计数值加载;,8155,的定时器计数器,由外部提供计数脉冲,信号引脚是,TIMER IN,;,8155,的定时器计数器,计数溢出时向芯片外边输出一个信号(,TIMER OUT,)。这一信号有脉冲和方波两种形式,供用户进行选择,具体由,M2,、,M1,两位定义。,8155,内部有一个,8,位地址锁存器,无需外接锁存器;,8155,的许多信号与,MCS-51,单片机兼容,可以直接连接。表,8-5,列出了这些信号的对应关系。,在二者的连接中,,8155,的地址译码即片选端可以采用线选法、全译码等方法;,IO/M#,的连接,可用或非门产生,使用高位地址,8155,与单片机的连接,8155,与,MSC-51,的兼容信号,8155,MCS-51,8155,MCS-51,AD0AD7,P0,口,RD#,RD#,ALE,ALE,WR#,WR#,RESET,RST,表,8-9 8155,与,MSC-51,的兼容信号,IO/M#,的连接,图,8-25(a),或非门产生,IO/M#,信号,IO/M#,的连接,图,8-25(b),高位地址作,IO/M#,信号,8155,与,51,单片机连接电路举例,图,8-26 AT89S51,单片机与,81C55,的接口电路,硬件接口电路地址分析,表,8-10 8155,的各端口及,RAM,单元地址,在图,8-26,中,单片机,P0,口输出的低,8,位地址不需要另外加锁存器(,8155,片内集成有地址锁存器),而直接与,8155,的,AD0,AD7,相连,既可作为低,8,位地址总线,又可作为数据总线,地址锁存控制直接用,AT89S51,发出的,ALE,信号。,81C55,的,CE#,端接,P2.7,,,IO/M#,端与,P2.0,相连。当,P2.7=0,时,若,P2.0=0,,则访问,8155,的,RAM,单元。由此可得到图,8-23,中,8155,的各端口以及,RAM,单元的地址编码,见表,8-10,。,命令字,用于设置端口及定时器计数器的工作方式,;,命令寄存器只能写不能读。,命令字格式如图,8-27,状态字,用于寄存各端口及定时器计数器的工作状态,状态字只能读不能,写,状态字格式如图,8-28,命令字、状态字共用一个端口地址,8155,的控制,8155,通过对命令字的设和读状态字来控制输入,/,输出,8155,命令字格式,TM1,TM2,IEB,IEA,PC2,PC1,PA,PA,PB,A,口方式,B,口,A,口,计数器,方式,00,:空操作,01,:停止计数,10,:计满后停止,11,:启动计数,0,:输入,1,:输出,0,:禁止中断,1,:允许中断,00,01,10,11,方式,1,:,A,、,B,口基本,I/O,;,C,口输入,方式,2,:,A,、,B,口基本,I/O,;,C,口输出,方式,3,:,A,口选通,I/O,,,B,口基本,I/O,方式,4,:,A,、,B,口选通,I/O,B,口方式,C,口,方,式,图,8-27 8155,的命令字格式,8155,状态字格式,A,口中断请求标志:,0:,无;,1:,有,定时器中断标志,:,1,:有定时器溢出中断,0,:读状态字后或硬件复位后,INTE,B,TIMER,BBF,INTR,B,INTE,A,INTR,A,ABF,A,口中断允许:,0:,禁止;,1:,允许,B,口缓冲器:,0:,空;,1:,满,B,口中断请求标志:,0:,无;,1:,有,A,口缓冲器:,0:,空;,1:,满,B,口中断允许:,0:,禁止;,1:,允许,图,8-28 8155,的状态字格式,8155,定时器计数器的工作方式由命令字中的高两位,D,7,D,6,(M,2,M,1,),进行控制。,D,7,D,6,00,:不影响计数器工作。,D,7,D,6,01,:停止计数。如计数器未启动则无操作,如计数器正运行则停止计数。,D,7,D,6,10,:达到计数值(计数器减为,0,)后停止。,D,7,D,6,11,:启动。如计数器没运行,则在装入计数值后开始计数;如计数器已运行,则在当前计数值计满后,再以新的计数值进行计数。,任何时候都可设置计数器长度和工作方式,将控制字写入控制寄存器。如果计数器正在计数,只有在写入启动命令后,计数器才接收新计数长度并按新的工作方式计数,。,定时器计数器的控制,8155,定时器计数器的工作方式由命令字中的高两位,D,7,D,6,(M,2,M,1,),进行控制。,若,写入计数器的初值为奇数,引脚的方波输出是不对称的。例如,初值为,9,时,计数器的输出,在,5,个计数脉冲周期内为高电平,,4,个计数脉冲周期内为低电平,如,图,8-29,所,示。,定时器计数器的控制,图,8-29,计数长度为奇数时的不对称方波输出(长度为,9,),8155,定时器计数器的工作方式由命令字中的高两位,D,7,D,6,(M,2,M,1,),进行控制。,定时器计数器的控制,注意,,81C55,的计数器初值不是从,0,开始,从,2,开始。这是因为,如果选择计数器的输出为方波形式(无论是单方波还是连续方波),则规定是从启动计数开始,前一半计数输出为高电平,后一半计数输出为低电平。显然,如果计数初值是,0,或,1,,就无法产生这种方波。因此,81C55,计数器的写入初值范围是,3FFFH,2H,。,如果硬要将,0,或,1,作为初值写入,其效果将与送入初值,2,的情况一样。,81C55,复位后使计数器停止计数,(,1,)初始化,通常要完成两项任务:,确定命令字,计数初值,81C55,的接口软件编程,【,例,8-6】,初始化举例:,要求使用,8155,定时器,/,计数器对计数脉冲进行千分频,即计数,1000,后,,TIAMEROUT,端电平状态发生变化,并重新置数以产生连续方波。此外假定,A,口为输出方式,允许中断;,B,口为输入方式,禁止中断;,C,口为对,A,口控制方式(,ALT3,)。请编写初始化程序。,【,例,8-6】8155,初始化举例(分析),要求输出连续方波,所以定时器,/,计数器的最高两位:,M,2,M,1,01,;,计数初值:,1000,,其,16,进制数:,03E8H,,则定时器,/,计数器的高,8,位:,43H,,低,8,位:,0E8H,。,命令字的设置如图,8-30,计数器,B,口,A,口,C,口,B,口,A,口,装入后启动,禁止中断,允许中断,ALT3,输入,输出,1,1,0,1,1,0,0,1,命令字的内容为,0D9H,。,图,8-30 【,例,8-6】8155,命令字设置,8031,与,8155,的连接如,图,8-31,图,8-31,计数长度为奇数时的不对称方波输出(长度为,9,),8155,的,RAM,地址:,7E00H,7EFFH,I/O,口地址,:,7F00H,7F05H,,,其中:,P,A,:,7F01H,,,PB,:,7F02H,,,PC,:,7F03H,,,命令口:,7F00H,定时器低位:,7F04H,,定时器高位:,7F05H,初始化程序:,MOVDPTR,,,#7F00H,;命令,/,状态寄存器地址,MOVA,,,#0D9H,;命令字,MOVXDPTR,,,A,;装入命令字,MOVDPTR,,,#7F04H,;计数器低,8,位地址,MOVA,,,#0E8H,;低,8,位计数值,MOVXDPTR,,,A,;写入计数值低,8,位,INCDPTR,;计数器高,8,位地址,MOVA,,,#43H,;高,8,位计数值,MOVXDPTR,,,A,;写入计数值高,8,位,P2.7,P2.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,255,号,00FFH,8155,的扩展应用举例,【,例,8-7】,设计一段程序把,8155,片内,RAM,全部填满,FFH,。,地址分析,由于是对,8155,片内,R
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服