1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,.,*,单片机系统,I/O,扩展,1,.,并行,I/O,口扩展,4.1.1 89C51,内部并行,I/O,口及其作用,51,系列单片机内部有,4,个双向的并行,I/O,端口:,P0,P3,,共占,32,根引脚。,P0,口的每一位可以驱动,8,个,TTL,负载,,P1,P3,口的负载能力为三个,TTL,负载。有关,4,个端口的结构及详细说明,在前面的有关章节中已作过介绍,这里不再赘述。,在无片外存储器扩展的系统中,
2、这,4,个端口都可以作为准双向通用,I/O,口使用。通过,7.1,和,7.2,节的介绍,我们知道,在具有片外扩展存储器的系统中,,P0,口分时地作为低,8,位地址线和数据线,,P2,口作为高,8,位地址线。这时,,P0,口和部分或全部的,P2,口无法再作通用,I/O,口。,2,.,P3,口具有第二功能,在应用系统中也常被使用。因此在大多数的应用系统中,真正能够提供给用户使用的只有,P1,和部分,P2,、,P3,口。,综上所述,,89C51,单片机的,I/O,端口通常需要扩充,以便和更多的外设(例如显示器、键盘)进行联系。,在,51,单片机中扩展的,I/O,口采用与片外数据存储器相同的寻址方法,
3、所有扩展的,I/O,口,以及通过扩展,I/O,口连接的外设都与片外,RAM,统一编址,因此,对片外,I/O,口的输入,/,输出指令就是访问片外,RAM,的指令,即:,3,.,4.1.2,简单的,I/O,口扩展,简单的,I/O,口扩展通常是采用,TTL,或,CMOS,电路锁存器、三态门等作为扩展芯片,通过,P0,口来实现扩展的一种方案。它具有电路简单、成本低、配置灵活的特点。,1.,扩展实例,采用,74LS244,作为扩展输入、,74LS273,作为扩展输出的简单,I/O,口扩展。,4,.,74HC373,芯片的功能,输出接口扩展通常用,74HC373,芯片来实现。该芯片是一个带允许端的,8D,
4、锁存器,其芯片的引脚如图,4,所示,各相关引脚的功能如下:,D0,D7,为,8,位数据输入端;,Q0,Q7,为,8,位数据输出端;,G,为使能控制端;,CLK,为时钟信号,上升沿锁存数据。,5,.,6,.,4.1.3,采用,8155,扩展,I/O,口,在实训电路中采用的是另一种可编程的接口芯片,8155,,,Intel,公司研制的,8155,不仅具有两个,8,位的,I/O,端口,(A,口、,B,口,),和一个,6,位的,I/O,端口,(C,口,),,而且还可以提供,256B,的静态,RAM,存储器和一个,14,位的定时,/,计数器。,8155,和单片机的接口非常简单,目前被广泛应用。,1.81
5、55,的结构和引脚,8155,有,40,个引脚,采用双列直插封装,其引脚图和组成框图如图,8.20,所示。,7,.,图,8155,的引脚图和结构框图,C,B,A,AD0,12,PA0,21,AD1,13,PA1,22,AD2,14,PA2,23,AD3,15,PA3,24,AD4,16,PA4,25,AD5,17,PA5,26,AD6,18,PA6,27,AD7,19,PA7,28,PB0,29,CE,8,PB1,30,RD,9,PB2,31,WR,10,PB3,32,IO/M,7,PB4,33,ALE,11,PB5,34,PB6,35,PB7,36,TIMEROUT,6,PC0,37,PC1
6、38,TIMERIN,3,PC2,39,PC3,1,PC4,2,RESET,4,PC5,5,8155,256,字节,静态,RAM,14,位,定时,计数器,TIMER IN,TIMER OUT,VCC(5 V),VSS(GND),PA0PA7,IO/M,CE,ALE,RD,WR,RESET,AD0AD7,PB0PB7,PC0PC7,8,.,我们对,8155,的引脚分类说明如下:,(1),地址,/,数据线,AD0,AD7,(,8,条):是低,8,位地址线和数据线的共用输入总线,常和,51,单片机的,P0,口相连,用于分时传送地址数据信息,当,ALE=1,时,传送的是地址。,(2)I/O,口总线(
7、22,条):,PA0,PA7,、,PB0,PB7,分别为,A,、,B,口线,用于和外设之间传递数据;,PC0,PC5,为,C,端口线,既可与外设传送数据,也可以作为,A,、,B,口的控制联络线。,9,.,(3),控制总线(,8,条):,RESET,:复位线,通常与单片机的复位端相连,复位后,,8155,的,3,个端口都为输入方式。,:读,/,写线,控制,8155,的读、写操作。,ALE,:地址锁存线,高电平有效。它常和单片机的,ALE,端相连,在,ALE,的下降沿将单片机,P0,口输出的低,8,位地址信息锁存到,8155,内部的地址锁存器中。因此,单片机的,P0,口和,8155,连接时,无需
8、外接锁存器。,:片选线,低电平有效。,:,RAM,或,I/O,口的选择线。当,=0,时,选中,8155,的,256 B RAM,;当,=1,时,选中,8155,片内,3,个,I/O,端口以及命令,/,状态寄存器和定时,/,计数器。,10,.,TIM ERIN,、:定时,/,计数器的脉冲输入、输出线。,TIMERIN,输入脉冲对,8155,内部的,14,位定时,/,计数器减,1,;为输出线,当计数器计满回,0,时,,8155,从该线输出脉冲或方波,波形形状由计数器的工作方式决定。,2.,作片外,RAM,使用,当,=0,,,=0,时,,8155,只能做片外,RAM,使用,共,256 B,。其寻址范
9、围由以及,AD0,AD7,的接法决定,这和前面讲到的片外,RAM,扩展时讨论的完全相同。当系统同时扩展片外,RAM,芯片时,要注意二者的统一编址。对这,256 B RAM,的操作使用片外,RAM,的读,/,写指令“,MOVX”,。,11,.,3.,作扩展,I/O,口使用,当,=0,,,=1,时,此时可以对,8155,片内,3,个,I/O,端口以及命令,/,状态寄存器和定时,/,计数器进行操作。与,I/O,端口和计数器使用有关的内部寄存器共有,6,个,需要三位地址来区分,为地址分配情况。,表,8.4 6,个内部寄存器的地址分配表,AD7,AD0,选中寄存器,A7 A6 A5 A4 A3 A2 A
10、1 A0,0 0 0,0 0 1,0 1 0,0 1 1,1 0 0,1 0 1,内部命令,/,状态寄存器,PA,口,PB,口,PC,口,定时,/,计数器低,8,位寄存器,定时,/,计数器高,8,位寄存器,12,.,1),命令,/,状态寄存器,和接口芯片,8255,一样,芯片,8155 I/O,口的工作方式的确定也是通过对,8155,的命令寄存器写入控制字来实现的。,8155,控制字的格式如图所示。,命令寄存器只能写入不能读出,也就是说,控制字只能通过指令,MOVX DPTR,A,或,MOVX Ri,A,写入命令寄存器。,在本书的实训电路板中,扩展了,8155,,用于连接,8,个,LED,显示
11、和键盘,,A,、,B,口为基本输出方式,,C,口为基本输入方式,因此编写如下程序:,13,.,8155,的控制字,14,.,MOV DPTR,,,#CWR,;设,CWR,为命令寄存器的地址,MOV A,,,#03H,;,A,、,B,口为基本输出方式,,C,口为基本输入方式,MOVX DPTR,A,状态寄存器中存放有状态字,状态字反映了,8155,的工作情况,状态字的各位定义如图所示,15,.,图,8.22 8155,的状态字,16,.,状态寄存器和命令寄存器是同一地址,状态寄存器只能读出不能写入,也就是说,状态字只能通过指令,MOVX A,,,DPTR,或,MOVX A,,,Ri,来读出,以此
12、来了解,8155,的工作状态。,2),计数器高、低,8,位寄存器,关于计数器高、低,8,位寄存器的使用,我们将在后面讲到定时器使用时再作介绍。,4.I/O,口的工作方式,当使用,8155,的三个,I/O,端口时,它们可以工作于不同的方式,工作方式的选择取决于写入的控制字,如图,8.21,所示。其中,,A,、,B,口可以工作于基本,I/O,方式或选通,I/O,方式,,C,口可工作于基本,I/O,方式,也可以作为,A,、,B,选通方式时的控制联络线。,17,.,方式,1,、,2,时,,A,、,B,、,C,口都工作于基本,I/O,方式,可以直接和外设相连,采用“,MOVX”,类的指令进行输入,/,输
13、出操作。,方式,3,时,,A,口为选通,I/O,方式,由,C,口的低三位作联络线,其余位作,I/O,线;,B,口为基本,I/O,方式。,方式,4,时,,A,、,B,口均为选通,I/O,方式,,C,口作为,A,、,B,口的联络线。其逻辑组态如图所示。,18,.,图,8155,方式,4,时的逻辑结构,19,.,C,口的工作方式和各位的关系见表,。,表,8.5 C,口的工作方式,方式,1,方式,2,方式,3,方式,4,PC0,PC1,PC2,PC3,PC4,PC5,全部为,输入,全部为,输出,A,口中断请求,A,口缓冲器满,A,口选通,输出,输出,输出,A,口中断请求,A,口缓冲器满,A,口选通,B
14、口中断请求,B,口缓冲器满,B,口选通,20,.,5.,定时,/,计数器使用,8155,的可编程定时,/,计数器是一个,14,位的减法计数器,在,TIMERIN,端输入计数脉冲,计满时由 输出脉冲或方波,输出方式由定时器高,8,位寄存器中的,M2,、,M1,两位来决定。当,TIMERIN,接外脉冲时为计数方式,接系统时钟时为定时方式,实际使用时一定要注意芯片允许的最高计数频率!,定时,/,计数器的初始值和输出方式由高、低,8,位寄存器的内容决定,初始值,14,位,其余两位定义输出方式。其中,低,8,位寄存器存放计数初始值的低,8,位,高,8,位寄存器的格式如下:,21,.,1),定时,/,计
15、数器的输出方式,定时器的输出方式见表,8.6,。,输出方式 计数初始值高,6,位,M2 M1,22,.,表,8.6,定时器的输出方式,M2 M1,方 式,波 形,0 0,0 1,1 0,1 1,在一个计数周期输出单次方波,连续方波,在计满回,0,后输出的单个脉冲,连续脉冲,2),定时,/,计数器的工作,8155,对内部定时器的控制是由,8155,控制字的,D7,、,D6,位决定的(见图,8.22,),现总结如表,8.7,所示。,23,.,表,8.7,定时,/,计数器的工作情况,8155,的控制字,定时,/,计数器工作情况,D7 D6,0 0,无操作,即不影响定时器的工作,0 1,1 0,立即停
16、止定时器的计数,定时器计满回,0,后停止计数,1 1,若定时器不工作,则开始计数;若定时器正在计数,则计满回,0,后按新输入的长度值开始计数,24,.,6.89C51,单片机和,8155,的接口,89C51,和,8155,的接口非常简单,因为,8155,内部有一个,8,位地址锁存器,故无需外接锁存器。在二者的连接中,,8155,的地址译码即片选端可以采用线选法、全译码等方法,这和,8255,类似。在整个单片机应用系统中要考虑与片外,RAM,及其它接口芯片的统一编址,读者可参考本书的实训电路图中的方法,确定,8155,的相关地址。图为一个连接实例。,25,.,图,8155,和,8051,的接口电路,26,.,根据上述、的连接关系,可以确定地址如下:,A15 A14 A13 A12 A11 A10 A9 A8,P2.7 P2.6 P2.5 P2.4 2.3 P2.2 P2.1 P2.0,RAM:,0 0,8155,I/O,口:,1 0,27,.,此时,,8155,内部,RAM,的地址范围为:,0000H,00FFH,,,8155,各端口的地址(设无关位为,0,,这些地址都不是惟一的)为:,命令,/,状态口,0400H,A,口,0401H,B,口,0402H,C,口,0403H,定时器低字节,0404H,定时器高字节,0405H,28,.,






