输入输出端口PPT课件_第1页
输入输出端口PPT课件_第2页
输入输出端口PPT课件_第3页
输入输出端口PPT课件_第4页
输入输出端口PPT课件_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、7.17.1 I/OI/O端口功能的通用结构端口功能的通用结构PIC16F877单片机有5个I/O端口,它们的设计思想和内部结构都是不同的,即使同一个端口各个引脚的内部结构也存在差异。但就其通用的输入/输出功能,则具有类似的线路结构。第1页/共74页基本端口内部结构如下图,主要包括:3个D触发器组成的输入/输出数据锁存电路和方向选择锁存电路; 2个三态门控电路;二输入“与”门和“或”门组成数据输出的前向通道;由P沟道场效应管和N沟道场效应管构成互补推挽的电流输出级。第2页/共74页Pin读端口VDDVSS写方向控制模拟输入选择输入锁存D3输入缓冲器输入缓冲器第3页/共74页在PIC系列单片机中

2、,每个端口都至少对应着两个特殊功能寄存器,分别是数据寄存器(PORTX)和方向寄存器(TRISX) ,也就是说PIC单片机把I/O端口当作寄存器来访问(即读出或写入)。第4页/共74页I/O端口的方向寄存器是定义其端口引脚的输入/输出状态; 而I/O端口的数据寄存器是用于其端口输入/输出数据的桥梁,或称为数据缓冲器。第5页/共74页7.1.1 7.1.1 设置端口的输入设置端口的输入/ /输出状态输出状态根据I/O端口引脚的输入/输出状态,对 该 端 口 的 数 据 方 向 控 制 寄 存 器(TRISX)进行初始化定义。若把TRIS某位设置为“1”,则相应的PORT端口引脚定义为输入端;若把

3、TRIS某位设置为“0”,则相应的PORT端口引脚定义为输出端。第6页/共74页当把某个端线定义为输入状态时,信号“1”通过单片机的内部数据总线加至方向锁存器D2的输入端,在写方向控制信号的触发下写入D2锁存。此时,D2的Q=1,上部的“或”门封闭,其输出恒定为“1”,这就导致P沟道场效应管截止;第7页/共74页Q=1则Q=0,下部的“与”门封闭,其输出恒定为“0”,这就导致N沟道场效应管截止。正是由于数据输出通道的封闭,数据只能从外部单向输入。第8页/共74页11010Pin读端口VDDVSS写方向控制模拟输入选择输入锁存D3输入缓冲器输入缓冲器P沟道场效应管截止N沟道场效应管截止第9页/共

4、74页当I/O端口引脚用于输入数据时,方向控制寄存器TRISX的对应位必须设置为“1”。根据“或”门和“与”门的接线方式,不论另一个输入端的信号如何,此时这2个门的输出均被封闭,即处于高阻状态。第10页/共74页因此,在这种情况下,上下2个场效应管都处于截止状态, I/O输出数据通道是关闭的。外部I/O引脚数据,经过输入缓冲器调整连接到输入数据锁存器D3的输入端,通过读端口数据触发信号完成数据的输入。第11页/共74页读端口数据触发信号主要有2个作用:锁存输入数据。读端口脉冲信号,经反向器触发锁存外部I/O引脚的输入数据。临时占用内部数据总线。作为门控信号临时打开三态门,以便让输入数据锁存器的

5、输出连通单片机的内部数据总线。第12页/共74页数据输入时应特别注意,外部提供的数据信号并不会自动锁存,必须保持足够长的时间,直到指令读入为止。第13页/共74页当把某个端线定义为输出状态时,信号“0”通过单片机的内部数据总线加至方向锁存器D2的输入端,在写方向控制信号的触发下写入D2锁存。此时,D2的Q=0,上部的“或”门恒定开放,“或”门的输出直接由来自数据锁存器D1的输出决定;第14页/共74页D2的Q=0时Q=1,下部的“与”门也恒定开放,“与”门的输出直接由来自数据锁存器D1的输出决定。数据输出通路被打开,被定义为输出状态。第15页/共74页001Pin读端口VDDVSS写方向控制模

6、拟输入选择输入锁存D3输入缓冲器输入缓冲器第16页/共74页信号“1”通过单片机的内部数据总线加至输出数据锁存器D1的输入端,在写端口控制信号CK的触发下写入D1锁存。从D1的反向器输出端Q输出“0”,此时的“或”门处于直通状态,“或”门的输出也为“0”,因而P沟道场效应管导通;第17页/共74页同样,“与”门的输出为“0”,导致N沟道场效应管截止。正是由于上部的场效应管导通而下部的场效应管截止,此时I/O输出引脚被拉至高电平“1”,同原来内部数据总线信号一致,内部的数据“1”被间接输出。第18页/共74页110P沟道场效应管导通,输出端与电源正极性端接通Pin读端口VDDVSS写方向控制模拟

7、输入选择输入锁存D3输入缓冲器输入缓冲器00100N沟道场效应管截止1第19页/共74页信号“0”通过单片机的内部数据总线加至输出数据锁存器D1的输入端,在写端口控制信号CK的触发下写入D1锁存。从D1的反向器输出端Q输出“1”,此时的“或”门处于直通状态,“或”门的输出也为“1”,因而P沟道场效应管截止;第20页/共74页同样,“与”门的输出为“1”,导致N沟道场效应管导通。正是由于上部的场效应管截止而下部的场效应管导通,此时I/O输出引脚被拉至低电平“0”,同原来内部数据总线信号一致,内部的数据“0”被间接输出。第21页/共74页001P沟道场效应管截止Pin读端口VDDVSS写方向控制模

8、拟输入选择输入锁存D3输入缓冲器输入缓冲器00111N沟道场效应管导通,输出端与电源负极性端接通0第22页/共74页PIC16F877单片机的PORTA是6位宽,带锁存器的I/O口。其对应的数据寄存器和方向控制寄存器分别是PORTA和TRISA。一、一、PORTAPORTA和它的方向寄存器和它的方向寄存器TRISATRISA第23页/共74页地址分别是05H和85H,分别位于存储体0和存储体1的相同位置上,并且都只用到了低6位,每个寄存器中阴影标出的2位没有被利用。PORTA端口作为模拟电压输入或模拟参考电压输入,需设置ADCON1寄存器低4位的相应位。第24页/共74页与A口有关的专用寄存器

9、有3个寄存器寄存器名称名称寄存器寄存器符号符号寄存器内容寄存器内容D7D6 D5D4D3D2D1D0数据数据寄存器寄存器PORTA05HRA5RA4RA3RA2RA1RA0方向控制方向控制寄存器寄存器TRISA85H对应对应A口各位方向控制数据口各位方向控制数据AD控制控制寄存器寄存器1ADCON19FHADFMPCFG3PCFG2PCFG1PCFG0第25页/共74页当TRISA寄存器相应位置为1,其输出驱动器呈高阻状态,PORTA相应的I/O引脚被定义为输入;当TRISA寄存器相应位为0,输出锁存器上的数据就从相应I/O引脚上输出,所以这时PORTA相应的I/O引脚被定义为输出;第26页/

10、共74页当作为模拟电压输入引脚时,必须保持TRISA置1,即将RA的相应引脚设置为输入。读PORTA得到的是端口引脚上的电平状态,而写PORTA则是写入端口的数据锁存器,所有的写操作都是“读一修改一写”操作。第27页/共74页因此,对端口的写意味着先读端口引脚电平,然后根据指令的要求修改这个值,最后再写入端口的数据锁存器。RA4引脚是一个多功能I/O口,可以切换作为定时器TMR0的时钟输入,表示为RA4/T0CKI。第28页/共74页RA4/T0CKI是斯密特触发输入和集电极开路输出。所有其他RA口引脚都是TTL电平输入和CMOS驱动输出。 端口A其他引脚RA0 、RA1 、RA2、 RA3、

11、 RA5的第二功能是作为模拟电压输入或模拟参考电压输入。第29页/共74页引脚的选择是通过置位/复位ADC控制寄存器1(ADCON1)的低4位来决定的。当上电复位时,这些引脚设定为模拟电压输入,读这些引脚时,得到的结果是零。第30页/共74页ADCON1ADFMPCFG3PCFG2PCFG1 PCFG0PCFG3:PCFG0011x时选择A口的5个引脚和E口的3个引脚为数字I/O引脚这4位用以选择RA和RE的哪些引脚为模拟量输入和模拟参考电压输入第31页/共74页RARA口初始化的程序 BCF STATUS,RP0 BCF STATUS,RP1 ;选RAM的BANK0 CLRF PORTA ;

12、清除RA口 BSF STATUS,RP0 ;选RAM的BANK1 MOVLW 0 x07 MOVWF ADCON1 ;RA口为数字I/O MOVLW 0 xCF MOVWF TRISA ;RA5:RA4为输出;RA3:RA0为输入第32页/共74页端口B是一个8位宽,双向可编程I/O端口。其对应的数据寄存器和方向控制寄存器分别是PORTB和TRISB。二二、PORTBPORTB和它的方向寄存器和它的方向寄存器TRISBTRISB第33页/共74页PORTB的地址有2个,分别是06H和106H,说明在存储体0和存储体2的相同位置上都能访问到它;TRISB的地址也有2个,分别是086H和186H,

13、说明在存储体1和存储体3的相同位置上也都能访问到它。第34页/共74页与B口相关的寄存器共有4个数据寄存器PORTB 地址:06H、106HD7D6D5D4D3D2D1D0RB7RB6RB5RB4RB3RB2RB1RB0方向寄存器TRISB 地址:86H、186HD7D6D5D4D3D2D1D0对应对应B口各位方向控制数据口各位方向控制数据第35页/共74页当TRISB寄存器相应位置为1,其输出驱动器呈高阻状态,PORTB相应的I/O引脚被定义为输入;当TRISB寄存器相应位为0,输出锁存器上的数据就从相应I/O引脚上输出,所以这时PORTB相应的I/O引脚被定义为输出。第36页/共74页PO

14、RTB有三个引脚与低电压编程功能复 用 , 它 们 是 : R B 3 / P G M 、RB6/PGC和RB7/PGD。PORTB的RB7:RB4定义为输入,这4根I/O线上的电平有变化时,可以引起中断。第37页/共74页其功能的实现是通过把RB7:RB4引脚上的输入信号与上次读入B口的旧的锁存值进行比较。若有变化,则把两者相异或后输出以产 生 R B I F 中 断 ( 中 断 的 标 志 在INTCON寄存器中的D0)。 这 种 中 断 可 以 把 C P U 从 “ 休 眠(SLEEP)”状态中唤醒。第38页/共74页端口B的每一个引脚具有内部弱上拉功能,这可以通过软件编程设置,即选项

15、寄存器OPTION_REG的D7(RBPU)。RBPU0时,设置弱上拉功能可以启用;RBPU1时,设置弱上拉功能被禁止。 弱上拉:最简单的解释,就是比较弱的上拉。第39页/共74页对于其中某一个具体引脚而言,仅当它 被 定 义 为 输 入 方 式 , 并 且 同 时RBPU0,弱上拉功能才确实被启用;反之,如果该引脚定义为输出,无论RBPU为何值,该脚上的弱上拉功能都自动被取消。第40页/共74页D7D6D5D4D3D2D1D0RBPUINTEDGT0CST0SEPSAPS2PS1PS0选择寄存器OPTION_REG与端口B有关的2个控制位的含义如下:第41页/共74页INTEDG:外部中断I

16、NT触发信号边沿选择位。1:选择RB0/INT上升沿触发有效;0:选择RB0/INT下降沿触发有效。RBPU:端口B内部弱上拉电路使能控制位。 1:端口B弱上拉电路禁止; 0:端口B弱上拉电路使能。第42页/共74页中断控制寄存器INTCON 地址:0BH,8BHD7D6D5D4D3D2D1D0GIEPEIET0IE INTERBIET0IFINTFRBIF是一个可读/写的寄存器,与端口B有关的控制位只有2个,含义如下:第43页/共74页RBIE:端口B的引脚RB7RB4电平变化中断屏蔽位:1:允许端口B产生的中断;0:屏蔽端口B产生的中断。 RBIF:端口B的引脚RB7RB4电平变化中断标志

17、位。1:RB7RB4已经发生了电平变化中断(必须用软件清除);0:RB7RB4未发生电平变化中断。第44页/共74页端口B B初始化程序 BCF STATUS,RP0 BCF STATUS,RP1 ;选BANK0 CLRF PORTB ;清除RB口 BSF STATUS,RP0 ;选BANK1 MOVLW 0 x0F MOVWF TRISB ;RB3:RB0为输入 ;RB7:RB4为输出 BCF OPTION_REG,7;启用内部弱上拉第45页/共74页端口C是一个8位宽,双向可编程I/O端口。其对应的数据寄存器和方向控制寄存器分别是PORTC和TRISC。 PORTC的地址是07H,在存储体

18、0,TRISC的地址是87H,在存储体1。三、三、PORTCPORTC和它的方向寄存器和它的方向寄存器TRISCTRISC第46页/共74页与端口C有关的寄存器有2个:PORTC 地址:07HD7D6D5D4D3D2D1D0RC7RC6RC5RC4RC3RC2RC1RC0TRISC 地址:87HD7D6D5D4D3D2D1D0对应对应C口各位方向控制数据口各位方向控制数据第47页/共74页当TRISC寄存器相应位置1,其输出驱动器呈高阻状态,PORTC相应I/O引脚被定义为输入;当TRISC寄存器相应位置为0,输出锁存器上的数据就从相应I/O引脚上输出,这时PORTC的相应I/O引脚被定义为输

19、出。第48页/共74页端口C C初始化程序BCF STATUS,RP0BCF STATUS,RP1 ;选BANK0CLRF PORTC ;清除RC口BSF STATUS,RP0 ;选BANK1MOVLW 0 xCF ;送11001111到TRISCMOVWF TRISC ;设置RC3:RC0为输入;RC5:RC4为输出;RC7:RC6为输入第49页/共74页在PIC16F87X系列单片机中,只有40脚封装的PIC16F874(A)/877(A)芯片上有端口D。端口D是一个8位双向I/O端口。它在基本输入/输出功能的基础上,复合了并行从动端口的功能。四、四、PORTDPORTD和它的方向寄存器和

20、它的方向寄存器TRISDTRISD第50页/共74页PORTD工作于并行从动端口方式时,将TRISE寄存器D4(PSPMODE)置1,工作于通用I/O端口方式时,该位清0。另外,每条引脚在作为通用I/O脚使用时,是经过施密特触发缓冲器输入的;而工作在并行从动端口方式时,则是经过TTL缓冲器输入的。第51页/共74页与端口D有关的寄存器有3个:PORTD 地址:08HD7D6D5D4D3D2D1D0RD7RD6RD5RD4RD3RD2RD1RD0TRISD 地址:88HD7D6D5D4D3D2D1D0对应对应D口各位方向控制数据口各位方向控制数据第52页/共74页TRISE 地址:89HD7D6

21、D5D4D3 D2D1D0IBF OBF IBOVPSPMODEE口方向控制位口方向控制位第53页/共74页端口D D初始化程序BCF STATUS,RP0BCF STATUS,RP1 ;选BANK0CLRF PORTD ;清除RD口BSF STATUS,RP0 ;选BANK1MOVLW 0 xF0 ;送11110000到TRISDMOVWF TRISD ;RD3:RD0为输出 ; RD7:RD4为输入第54页/共74页在PIC16F87X系列单片机中,只有40脚封装的PIC16F874(A)/877(A)芯片上有端口E,端口E是一个只有3条引脚的双向I/O端口。它在基本输入/输出功能的基础上

22、,复合了两项功能,即用做模拟输入通道和PSP并行从动端口控制线。五、五、PORTEPORTE和它的方向寄存器和它的方向寄存器TRISETRISE第55页/共74页端口E的功能名称名称功能功能RE0/RD/AN5输入输入/输出;在并行从动端口方式下作为输出;在并行从动端口方式下作为读控制输入读控制输入RD,为,为1时无读信号,为时无读信号,为0时进行读操作;模拟输入时进行读操作;模拟输入RE1/WR/AN6输入输入/输出;在并行从动端口方式下作为输出;在并行从动端口方式下作为写控制输入写控制输入WR,为,为1时无写信号,为时无写信号,为0时进行写操作;模拟输入时进行写操作;模拟输入RE2/CS/

23、AN7输入输入/输出;在并行从动端口方式下作为输出;在并行从动端口方式下作为片选控制输入片选控制输入CS,为,为1时芯片未被选中,时芯片未被选中,为为0时芯片被选中;模拟输入时芯片被选中;模拟输入第56页/共74页PORTE 地址:09HD7D6D5D4D3D2D1D0-RE2RE1RE0ADCON1 地址:9FHD7D6 D5 D4D3D2D1D0ADFM-PCFG3 PCFG2 PCFG1 PCFG0第57页/共74页 TRISE各位的含义如下:各位的含义如下:D7D6D5D4D3D2D1D0IBFOBFIBOV PSPMODEE口方向控制位口方向控制位TRISE 地址:89H第58页/共

24、74页IBF(D7):输入缓冲器满标志位 D71时,表示已接收到一个数据,等待CPU读取; D70时,表示没有接收到数据。OBF(D6):输出缓冲器满标志位 D61时,表示输出缓冲器仍保持着上次写入的数据; D60时,表示输出缓冲器已空。第59页/共74页IBOV(D5):输入缓冲器溢出标志位D51时,表示输入缓冲器溢出;D50时,表示无溢出。如果在输入缓冲器中的数据没有取走之前,又写入了数据,就会发生输入缓冲器溢出,IBOV置1。第60页/共74页PSPMODE(D4):D口并行从动模式设置位PSPMODE1时,设置端口D为并行从动端口;PSPMODE0时,设置端口D为一般的I/O口。第61

25、页/共74页D3:未用D2D0:端口E的三个引脚方向选择位,分别控制RE2、RE1、RE0为输入还是输出。置1为输入,0为输出。第62页/共74页当方向寄存器TRISE的D4(PSPMODE)置1,设置端口D为并行从动端口,这时端口E的三个引脚作为RD、WR、CS, TRISE必须置位,将引脚设置为数字输入。另外,每条引脚内部都设置了两种输入缓冲器方式,一种是施密特触发输入;另一个则是TTL缓冲器输入。第63页/共74页 当 方 向 寄 存 器 T R I S E 的 D 4 位(PSPMODE)置位,设置端口D为并行从动端口,这时端口E的三个引脚作为RD、WR、 CS作为三个控制信号。第64页/共74页在这种方式下,方向寄存器TRISE的D2:D0必须置1,将引脚设置为数字输入。同时也必须保证ADCON1寄存器的低四位PCFG3:PCFG0设置使RE2、RE1、RE0为数字I/O口。第65页/共74页ADCON1的PCFG3PCFG0设置为 0010、0011、0100、0101、011x、1100、1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论