输入输出端口.pptx
《输入输出端口.pptx》由会员分享,可在线阅读,更多相关《输入输出端口.pptx(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、7.17.1 I/OI/O端口功能的通用结构端口功能的通用结构PIC16F877单片机有5个I/O端口,它们的设计思想和内部结构都是不同的,即使同一个端口各个引脚的内部结构也存在差异。但就其通用的输入/输出功能,则具有类似的线路结构。第1页/共74页基本端口内部结构如下图,主要包括:3个D触发器组成的输入/输出数据锁存电路和方向选择锁存电路;2个三态门控电路;二输入“与”门和“或”门组成数据输出的前向通道;由P沟道场效应管和N沟道场效应管构成互补推挽的电流输出级。第2页/共74页I/O I/O Pin读端口内部数据总线内部数据总线读读TRISTRISD DQQD DQQVDDVSSP PN N
2、D DQQ写方向控制写端口控制写端口控制1111 1 11 1到到A/DA/D转换器转换器模拟输入选择ENENQQQQ输出锁存输出锁存D D1 1方向锁存方向锁存D D2 2输入锁存D3输入缓冲器输入缓冲器第3页/共74页在PIC系列单片机中,每个端口都至少对应着两个特殊功能寄存器,分别是数据寄存器(PORTX)和方向寄存器(TRISX),也就是说PIC单片机把I/O端口当作寄存器来访问(即读出或写入)。第4页/共74页I/O端口的方向寄存器是定义其端口引脚的输入/输出状态;而I/O端口的数据寄存器是用于其端口输入/输出数据的桥梁,或称为数据缓冲器。第5页/共74页7.1.1 7.1.1 设置
3、端口的输入设置端口的输入/输出状态输出状态根据I/O端口引脚的输入/输出状态,对 该 端 口 的 数 据 方 向 控 制 寄 存 器(TRISX)进行初始化定义。若把TRIS某位设置为“1”,则相应的PORT端口引脚定义为输入端;若把TRIS某位设置为“0”,则相应的PORT端口引脚定义为输出端。第6页/共74页1、定义输入线当把某个端线定义为输入状态时,信号“1”通过单片机的内部数据总线加至方向锁存器D2的输入端,在写方向控制信号的触发下写入D2锁存。此时,D2的Q=1,上部的“或”门封闭,其输出恒定为“1”,这就导致P沟道场效应管截止;第7页/共74页Q=1则Q=0,下部的“与”门封闭,其
4、输出恒定为“0”,这就导致N沟道场效应管截止。正是由于数据输出通道的封闭,数据只能从外部单向输入。第8页/共74页11010I/O I/O Pin读端口内部数据总线内部数据总线读读TRISTRISD DQQD DQQVDDVSSP PN ND DQQ写方向控制写端口控制写端口控制1111 1 11 1到到A/DA/D转换器转换器模拟输入选择ENENQQQQ输出锁存输出锁存D D1 1方向锁存方向锁存D D2 2输入锁存D3输入缓冲器输入缓冲器P沟道场效应管截止N沟道场效应管截止第9页/共74页当I/O端口引脚用于输入数据时,方向控制寄存器TRISX的对应位必须设置为“1”。根据“或”门和“与”
5、门的接线方式,不论另一个输入端的信号如何,此时这2个门的输出均被封闭,即处于高阻状态。第10页/共74页因此,在这种情况下,上下2个场效应管都处于截止状态,I/O输出数据通道是关闭的。外部I/O引脚数据,经过输入缓冲器调整连接到输入数据锁存器D3的输入端,通过读端口数据触发信号完成数据的输入。第11页/共74页读端口数据触发信号主要有2个作用:锁存输入数据。读端口脉冲信号,经反向器触发锁存外部I/O引脚的输入数据。临时占用内部数据总线。作为门控信号临时打开三态门,以便让输入数据锁存器的输出连通单片机的内部数据总线。第12页/共74页数据输入时应特别注意,外部提供的数据信号并不会自动锁存,必须保
6、持足够长的时间,直到指令读入为止。第13页/共74页2、定义输出线当把某个端线定义为输出状态时,信号“0”通过单片机的内部数据总线加至方向锁存器D2的输入端,在写方向控制信号的触发下写入D2锁存。此时,D2的Q=0,上部的“或”门恒定开放,“或”门的输出直接由来自数据锁存器D1的输出决定;第14页/共74页D2的Q=0时Q=1,下部的“与”门也恒定开放,“与”门的输出直接由来自数据锁存器D1的输出决定。数据输出通路被打开,被定义为输出状态。第15页/共74页001I/O I/O Pin读端口内部数据总线内部数据总线读读TRISTRISD DQQD DQQVDDVSSP PN ND DQQ写方向
7、控制写端口控制写端口控制1111 1 11 1到到A/DA/D转换器转换器模拟输入选择ENENQQQQ输出锁存输出锁存D D1 1方向锁存方向锁存D D2 2输入锁存D3输入缓冲器输入缓冲器第16页/共74页 输出数据“1”信号“1”通过单片机的内部数据总线加至输出数据锁存器D1的输入端,在写端口控制信号CK的触发下写入D1锁存。从D1的反向器输出端Q输出“0”,此时的“或”门处于直通状态,“或”门的输出也为“0”,因而P沟道场效应管导通;第17页/共74页同样,“与”门的输出为“0”,导致N沟道场效应管截止。正是由于上部的场效应管导通而下部的场效应管截止,此时I/O输出引脚被拉至高电平“1”
8、,同原来内部数据总线信号一致,内部的数据“1”被间接输出。第18页/共74页110P沟道场效应管导通,输出端与电源正极性端接通I/O I/O Pin读端口内部数据总线内部数据总线读读TRISTRISD DQQD DQQVDDVSSP PN ND DQQ写方向控制写端口控制写端口控制1111 1 11 1到到A/DA/D转换器转换器模拟输入选择ENENQQQQ输出锁存输出锁存D D1 1方向锁存方向锁存D D2 2输入锁存D3输入缓冲器输入缓冲器00100N沟道场效应管截止1第19页/共74页输出数据“0”信号“0”通过单片机的内部数据总线加至输出数据锁存器D1的输入端,在写端口控制信号CK的触
9、发下写入D1锁存。从D1的反向器输出端Q输出“1”,此时的“或”门处于直通状态,“或”门的输出也为“1”,因而P沟道场效应管截止;第20页/共74页同样,“与”门的输出为“1”,导致N沟道场效应管导通。正是由于上部的场效应管截止而下部的场效应管导通,此时I/O输出引脚被拉至低电平“0”,同原来内部数据总线信号一致,内部的数据“0”被间接输出。第21页/共74页001P沟道场效应管截止I/O I/O Pin读端口内部数据总线内部数据总线读读TRISTRISD DQQD DQQVDDVSSP PN ND DQQ写方向控制写端口控制写端口控制1111 1 11 1到到A/DA/D转换器转换器模拟输入
10、选择ENENQQQQ输出锁存输出锁存D D1 1方向锁存方向锁存D D2 2输入锁存D3输入缓冲器输入缓冲器00111N沟道场效应管导通,输出端与电源负极性端接通0第22页/共74页PIC16F877单片机的PORTA是6位宽,带锁存器的I/O口。其对应的数据寄存器和方向控制寄存器分别是PORTA和TRISA。一、一、PORTAPORTA和它的方向寄存器和它的方向寄存器TRISATRISA第23页/共74页地址分别是05H和85H,分别位于存储体0和存储体1的相同位置上,并且都只用到了低6位,每个寄存器中阴影标出的2位没有被利用。PORTA端口作为模拟电压输入或模拟参考电压输入,需设置ADCO
11、N1寄存器低4位的相应位。第24页/共74页与A口有关的专用寄存器有3个寄存器寄存器名称名称寄存器寄存器符号符号寄存器内容寄存器内容D7D6D5D4D3D2D1D0数据数据寄存器寄存器PORTA05HRA5RA4RA3RA2RA1RA0方向控制方向控制寄存器寄存器TRISA85H对应对应A口各位方向控制数据口各位方向控制数据AD控制控制寄存器寄存器1ADCON19FHADFMPCFG3PCFG2PCFG1PCFG0第25页/共74页当TRISA寄存器相应位置为1,其输出驱动器呈高阻状态,PORTA相应的I/O引脚被定义为输入;当TRISA寄存器相应位为0,输出锁存器上的数据就从相应I/O引脚上
12、输出,所以这时PORTA相应的I/O引脚被定义为输出;第26页/共74页当作为模拟电压输入引脚时,必须保持TRISA置1,即将RA的相应引脚设置为输入。读PORTA得到的是端口引脚上的电平状态,而写PORTA则是写入端口的数据锁存器,所有的写操作都是“读一修改一写”操作。第27页/共74页因此,对端口的写意味着先读端口引脚电平,然后根据指令的要求修改这个值,最后再写入端口的数据锁存器。RA4引脚是一个多功能I/O口,可以切换作为定时器TMR0的时钟输入,表示为RA4/T0CKI。第28页/共74页RA4/T0CKI是斯密特触发输入和集电极开路输出。所有其他RA口引脚都是TTL电平输入和CMOS
13、驱动输出。端口A其他引脚RA0、RA1、RA2、RA3、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,RP0BCF STATUS,RP1
14、 ;选RAM的BANK0CLRF PORTA ;清除RA口BSF STATUS,RP0 ;选RAM的BANK1MOVLW 0 x07MOVWF ADCON1 ;RA口为数字I/OMOVLW 0 xCFMOVWF TRISA ;RA5:RA4为输出;RA3:RA0为输入第32页/共74页端口B是一个8位宽,双向可编程I/O端口。其对应的数据寄存器和方向控制寄存器分别是PORTB和TRISB。二二、PORTBPORTB和它的方向寄存器和它的方向寄存器TRISBTRISB第33页/共74页PORTB的地址有2个,分别是06H和106H,说明在存储体0和存储体2的相同位置上都能访问到它;TRISB的地
15、址也有2个,分别是086H和186H,说明在存储体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引
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 输入输出 端口
限制150内