《第七章新并行输入输出接口》由会员分享,可在线阅读,更多相关《第七章新并行输入输出接口(43页珍藏版)》请在金锄头文库上搜索。
1、第七章第七章 并行并行I/O接口技接口技术术n主要内容主要内容n1、接口技、接口技术术概述概述n2、MCS-51内部并行内部并行I/O端口端口n3、简单简单并行并行I/O口的口的扩扩展展n4、8155可可编编程外程外围围并行接口芯片的并行接口芯片的扩扩展展n5、LED/键盘键盘接口的接口的扩扩展展.7. 1 系系统扩统扩展、接口概述展、接口概述1、系、系统扩统扩展展 单单片机片机虽虽然各功能部件然各功能部件齐齐全,但容量全,但容量较较小,如:片内小,如:片内ROM、RAM、I/O口,不口,不够够用用时时需要需要扩扩展,展,扩扩展三展三总线总线、ROM、RAM、I/O口口。2 、系、系统统接口接
2、口 微机与外微机与外设连设连接因接因速度不匹配速度不匹配、信号信号类类型不同型不同(脉冲、(脉冲、模模拟拟)、)、传输传输方式不同方式不同(串、并),需要有接口(串、并),需要有接口电电路路实现实现电电路路连连接和接和逻辑联逻辑联接。接。 接口是接口是计计算机与外算机与外设设信息交信息交换换的的桥桥梁。梁。3、接口、接口电电路路应应具具备备的功能的功能 (1) 输输入有入有缓缓冲、冲、输输出有出有锁锁存;存; (2)有)有应应答答联络联络信号;信号; (3)有片)有片选选、控制信号;、控制信号; (4)有)有编编程程选择选择工作方式功能。工作方式功能。.7. 1 系系统扩统扩展、接口概述展、接
3、口概述4、单片机系片机系统的的扩展与接口原理展与接口原理结构构(如下(如下图).7.1 扩扩展三展三总线总线的的产产生生一、三一、三总线 地址、数据、控制地址、数据、控制总线二、三二、三总线的的扩展展 用用74LS373作作为地址地址锁存器,使数据和地址信存器,使数据和地址信号分开。号分开。 74LS373是三是三态8D触触发器。器。.7.1 扩扩展三展三总线总线的的产产生生地址地址总线扩总线扩展展电电路及地址路及地址锁锁存器存器74LS373允允许输出控制出控制.7.2MCS-51内部并行内部并行I/O端口端口MCS-51单单片片机机有有4个个双双向向并并行行的的8位位I/O端端口口,即即P
4、0P3。P0口口为为三三态态双双向向口口,可可驱驱动动8个个TTL电电路路,P1、P2、P3口口为为准准双双向向口口(作作为为输输入入时时,口口线线被被拉拉成成高高电电平平,故故称称为为准准双双向向口口),其其负负载载能能力力为为4个个TTL电电路。路。.1P0口的口的结结构构图2-3 P0口的一位结构图D QCLK QMUXP0.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚下下图为P0口的某位口的某位P0.n(n=07)结构构图,它由一,它由一个个输出出锁存器、两个三存器、两个三态输入入缓冲器和冲器和输出出驱动电路路及控制
5、及控制电路路组成。从成。从图中可以看出,中可以看出,P0口既可以作口既可以作为I/O用,也可以作用,也可以作为地址地址/数据数据线用。用。.1)P0口作为普通I/O口输出出时CPU发出控制电平“0 0”封锁“与”门,将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器与输出D QCLK QMUXP0.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚.驱动场效应管T2栅极接通。故内部总线与P0口同相。由于输出驱动级是漏极开路电路,若驱动NMOS或其它拉流负载时,需要外接上拉电阻。P0的输出级可驱动8个LSTTL负载。D QCL
6、K QMUXP0.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚. 输入入时-分分读引脚引脚或或读锁存器存器读引脚:引脚:由由传送指令送指令(MOVMOV)实现; 下下面一个面一个缓冲器用于冲器用于读端口端口引脚引脚数据,当数据,当执行一条行一条由端口由端口输入的指令入的指令时,读脉冲把脉冲把该三三态缓冲器打开,冲器打开,这样端口引脚上的数据端口引脚上的数据经过缓冲器冲器读入到内部入到内部总线。D QCLK QMUXP0.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引
7、口引脚脚. 输入入时-分分读引脚引脚或或读锁存器存器读锁存器:存器:有些指令有些指令 如:如:ANL P0ANL P0,A A称称为“读- -改改- -写写” 指令,需要指令,需要读锁存器。存器。 上上面面一个一个缓冲器用于冲器用于读端口端口锁存器存器数据。数据。D QCLK QMUXP0.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚.*原因:如果此时该端口的负载恰是一个晶体管基极,且原端口输出值为1,那么导通了的PN结会把端口引脚高电平拉低;若此时直接读端口引脚信号,将会把原输出的“1”电平误读为“0”电平。现采用读输出锁
8、存器代替读引脚,图中,上面的三态缓冲器就为读锁存器Q端信号而设,读输出锁存器可避免上述可能发生的错误。*D QCLK QMUXP0.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚.P0口必口必须须接上拉接上拉电电阻;阻;三三态输态输入入缓缓冲器的作用:冲器的作用:.准双向口: 从图中可以看出,在读入端口数据时,由于输出驱动FET并接在引脚上,如果T2导通,就会将输入的高电平拉成低电平,产生误读。所以在端口进行输入操作前,应先向端口锁存器写“1”,使T2截止,引脚处于悬浮状态,变为高阻抗输入。这就是所谓的准双向口。 D QCLK
9、 QMUXP0.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚在在读信号之前数据之前,先要向相信号之前数据之前,先要向相应的的锁存器做写存器做写1操作的操作的I/O口称口称为准双向口;准双向口;.2)P02)P0作作为为地址地址/ /数据数据总线总线 在系在系统扩展展时,P0P0端口作端口作为地址地址/ /数据数据总线使用使用时,分分为: P0P0引脚引脚输出地址出地址/ /数据数据信息。信息。 D QCLK QMUXP0.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口
10、引口引脚脚. CPU CPU发出控制出控制电平平“1 1”,打开,打开“与与”门,又使多路开,又使多路开关关MUXMUX把把CPUCPU的的地址地址/ /数据数据总线与与T2T2栅极反相接通,极反相接通,输出地出地址或数据。由址或数据。由图上可以看出,上下两个上可以看出,上下两个FETFET处于反相,构于反相,构成了推拉式的成了推拉式的输出出电路,其路,其负载能力大大增能力大大增强。D QCLK QMUXP0.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚2)P02)P0作作为地址地址/ /数据数据总线. P0 P0引脚引脚输
11、出地址出地址/ /输入数据入数据 输入信号是从引脚通入信号是从引脚通过输入入缓冲器冲器进入入内部内部总线。 此此时,CPU自自动使使MUX向下,并向向下,并向P0口写口写“1”,“读引脚引脚”控制信号有效,下面的控制信号有效,下面的缓冲器打开,外部数据冲器打开,外部数据读入内部入内部总线。2)P02)P0作作为地址地址/ /数据数据总线-真正的双向口D QCLK QMUXP0.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚地址地址/ /数据数据控制控制VCCT1T2P0P0口引口引脚脚.2 2、P2P2的内部的内部结结构构1)P21)P2口作口作为普通普通I/OI/O口口D QCLK QM
12、UXP2.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚地址地址控制控制VCCRTP2口引脚CPUCPU发出控制出控制电平平“0 0” ,使多路开关,使多路开关MUXMUX倒向倒向锁存存器器输出出Q Q端,构成一个准双向口。其功能与端,构成一个准双向口。其功能与P1P1相同。相同。. 2.P2 2.P2口作口作为地址地址总线 在系在系统扩展片外展片外程序存程序存储器器扩展数据存展数据存储器且容量超器且容量超过256B 256B ( (用用MOVX DPTRMOVX DPTR指令指令) )时,CPUCPU发出控制出控制电平平“1 1”,使多路,使多路开关开关MUXMUX倒倒内部地址内部地址线
13、。此。此时,P2P2输出高出高8 8位地址。位地址。D QCLK QMUXP2.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚地址地址控制控制VCCRTP2口引脚.3. P13. P1口、口、P3P3口的内部口的内部结构构 P1口的一位的结构 它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成-准双向口。D QD QCLK QCLK QP1.nP1.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚VCCRT TP1口引脚.P3的内部结构D QD QCLK QCLK QP3.nP3.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚VCCRT TP3口引脚第二第二输入功能入功能第二第
14、二输出功能出功能一、作为通用I/O口与P1口类似-准双向口(W=1)W.P3的内部结构二、P3P3P3P3第二功能(Q=1)此时引脚部分输入(Q=1、W=1) ,部分输出(Q=1、W输出) 。D QD QCLK QCLK QP3.nP3.n读锁存器存器内部内部总线写写锁存器存器读引脚引脚VCCRT TP3口引脚第二第二输入功能入功能第二第二输出功能出功能W.P3P3P3P3第二功能各引脚功能定义:P3.0:RXD串行口输入P3.1:TXD串行口输出P3.2:INT0外部中断0输入P3.3:INT1外部中断1输入P3.4:T0定时器0外部输入P3.5:T1定时器1外部输入P3.6:WR外部写控制
15、P3.7:RD外部读控制.综综上所述:当上所述:当P0作作为为I/O口使用口使用时时,特,特别别是作是作为输为输出出时时,输输出出级级属于开漏属于开漏电电路,必路,必须须外接上拉外接上拉电电阻才会有高阻才会有高电电平平输输出;如果作出;如果作为输为输入,必入,必须须先向相先向相应应的的锁锁存器写存器写“1”,才不会影响才不会影响输输入入电电平。平。当当CPU内部控制信号内部控制信号为为“1”时时,P0口作口作为为地址地址/数据数据总线总线使用,使用,这时这时,P0口就无法再作口就无法再作为为I/O口使用了。口使用了。.P1、P2 和和P3 口口为为准双向口准双向口, 在内部差在内部差别别不大不
16、大, 但使但使用功能有所不同。用功能有所不同。 P1口是用口是用户专户专用用 8 位准双向位准双向I/O口口, 具有通用具有通用输输入入/输输出功能出功能, 每一位都能独立地每一位都能独立地设设定定为输为输入或入或输输出。当有出。当有输输出出方式方式变为输变为输入方式入方式时时, 该该位的位的锁锁存器必存器必须须写入写入“1”, 然后才然后才能能进进入入输输入操作。入操作。 P2口是口是 8 位准双向位准双向I/O口。外接口。外接I/O设备时设备时, 可作可作为扩为扩展系展系统统的地址的地址总线总线, 输输出高出高8位地址位地址, 与与P0 口一起口一起组组成成 16 位地址位地址总线总线。
17、对对于于 8031 而言而言, P2 口一般只作口一般只作为为地址地址总线总线使用使用, 而不作而不作为为I/O线线直接与外部直接与外部设备设备相相连连。 I/O口的直接口的直接输输入入输输出:即出:即P0、P1、P2、P3作作为输为输入入输输出出口使用(口使用(见见P244,例,例7.1).4. 简单简单并行并行I/O口的口的扩扩展展 在稍微大的系在稍微大的系统统,单单片机片的并行口便不片机片的并行口便不够够用,用,需要需要扩扩展。展。 所所谓简单扩谓简单扩展,就是使用通用的展,就是使用通用的74系列的系列的TTL或或4000系列的系列的CMOS芯片芯片扩扩展,展,在此再次声明:在此再次声明
18、:扩扩展的展的输输出接口必出接口必须须具具备锁备锁存功能;存功能;输输入接口必入接口必须须具具备缓备缓冲功能。冲功能。 .7.4 简单简单并行并行I/O口的口的扩扩展展简单I/O接口的接口的扩展方法展方法 常用常用74LS244作作输入接口芯片入接口芯片,起起缓冲作用,冲作用,/G有效,有效,244直通,直通,否否则高阻高阻;用用74LS273作作输出接口芯片,起出接口芯片,起锁存作用,存作用,CLK下降沿下降沿锁存。存。.扩扩展的展的输输入入输输出口地址均出口地址均为为:P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P
19、0.3 P0.2 P0.1 P0.0 0 除了除了P2.0以外均取以外均取1,则扩则扩展的展的输输入入输输出口地址写成出口地址写成16进进制数均制数均为为: FEFFH 上面上面电电路的功能是:按下某路的功能是:按下某键键,对应对应的的LED发发光。光。其程序其程序为为: MOV DPTR,#0FEFFHLP:MOVX A,DPTR MOVX DPTR,A SJMP LP.7.4 扩扩展展8155可可编编程外程外围围并行接口芯片并行接口芯片关于关于Intel的的8155/8156:是一多功能的可是一多功能的可编编程外程外围围接口芯片,内部接口芯片,内部资资源源有有256B的的RAM,2个个8位
20、、位、1个个6位的位的I/O口口和和1个个14位的位的“减减1”计计数器数器。40脚双列直插封装。脚双列直插封装。 .n7. 4. 1 8155的的结结构与引脚构与引脚.7. 4. 2 8155的的RAM和和I/O口地址口地址 其地址按片外其地址按片外RAM统一一编址(址(16位)。位)。CE、IO/M接接单片机的高片机的高8位地址。位地址。一、一、I/O口(即片内寄存器)地址口(即片内寄存器)地址 CE=0、IO/M=1,低,低3位位选择寄存器寄存器.二、二、256B RAM的地址的地址 CE=0、IO/M=0,由高,由高8位地址控制;低位地址控制;低8位位选择RAM的的256个存个存储单元
21、。元。7. 4. 3 8155的寄存器(的寄存器(6个)个).一、命令寄存器一、命令寄存器 地址:地址:*000B输入入输出出PC3PC5出出.二、状二、状态寄存器寄存器 1、地址、地址:*000B 2、格式及各位的意、格式及各位的意义.三、三、PA寄存器寄存器 是是PA口引脚口引脚PA0PA7的映射的映射 地址地址:*001B四、四、PB寄存器寄存器 是是PB口引脚口引脚PB0PB7的映射的映射 地址地址:*010B五、五、PC寄存器寄存器 是是PC口引脚口引脚PC0PC7的映射的映射 地址地址:*011B.六、定六、定时时器器/计计数器寄存器数器寄存器 是一是一14位位计计数器,数器,对应
22、对应有两个寄存器,最高两位有两个寄存器,最高两位设设定定输输出波形。出波形。1、地址:、地址:两个寄存器的地址分两个寄存器的地址分别为别为:*100B2、寄存器格式、寄存器格式 *101B.M2M1的意的意义(决定(决定输出波形)出波形):计数器减1回零时自动装入初值,所以能输出连续波形.7. 4. 4 8155芯片的使用芯片的使用一、作片外一、作片外256B RAM用用 低低8位地址范位地址范围为围为:00HFFH二、作二、作扩扩展展I/O口用口用 PA口、口、PB 口、口、PC 口口注意:工作方式、地址注意:工作方式、地址三、作定三、作定时时器器扩扩展用展用 一般先写一般先写计计数常数,再
23、写命令字数常数,再写命令字。.7. 4. 5 8031与与8155的接口及的接口及简单编简单编程程一、一、8031与与8155的的连连接方法接方法.7.4 扩扩展展8155可可编编程外程外围围并行接口芯片并行接口芯片n8155的具体地址的具体地址P2.7=0P2.0=0P2.7=0P2.0=1P2.1P2.6均取均取1.7.4 扩扩展展8155可可编编程外程外围围并行接口芯片并行接口芯片二、二、8155的基本操作程序段的基本操作程序段 1、对对8155中的中的RAM进进行操作行操作例例1 (1)向)向8155RAM中的中的5FH单单元元写入数据写入数据32H; (2)从)从8155RAM中的中
24、的98H单单元元读读取数据取数据。程序段如下:程序段如下:(1)写数据:)写数据: MOV DPTR,#7E5FH MOV A,#32H MOVX DPTR,A(2) 读读数据:数据: MOV DPTR,#7E98H MOVX A ,DPTR.7.4 扩扩展展8155可可编编程外程外围围并行接口芯片并行接口芯片2、对对8155中的中的I/O口和定口和定时时器器进进行操作行操作 例例2 设设置置8155,使用,使用I/O口和定口和定时时器:使器:使A口口为为基本基本输输入方式,入方式,B口口为为基本基本输输出方式;定出方式;定时时器作器作方波方波发发生器,生器,对输对输入的脉冲入的脉冲进进行行2
25、4分分频频。试编试编程程实现实现之。之。 思路:思路:先先对对定定时时器器赋赋初初值值和和设设定定输输出波形,向出波形,向定定时时器器/计计数器寄存器中写;再数器寄存器中写;再设设定定A、B口的工口的工作方式和作方式和传输传输方向,并启方向,并启动动定定时时器工作,向命令器工作,向命令寄存器中写。寄存器中写。 程序段如下:程序段如下:.8.5 扩扩展展8155可可编编程外程外围围并行接口芯片并行接口芯片1)对对定定时时器器赋赋初初值值和和设设定定输输出波形:出波形: 定定时时器器/计计数器寄存器地址:数器寄存器地址:7F04H、7F05HMOV DPTR,#7F04HMOV A,#24MOVX DPTR,A INC DPTRMOV A,#01000000BMOVX DPTR,A(2)设设定定A、B口的工作方式并启口的工作方式并启动动定定时时器工作:器工作: 命令寄存器地址:命令寄存器地址:7F00HMOV DPTR,#7F00HMOV A,#11000010BMOVX DPTR,A .