1、第7章输入/输出端口,PIC16F877A共有:PORTA(6)、PORTB(8)、PORTC(8)、PORTD(8)、PORTE(3)五组端口,共33条I/O口。各组端口的内部结构各不相同,即使同一组端口各引脚的结构也存在差异。,7.1 I/O端口功能的通用结构,各I/O口都有共性,主要包括:3个D触发器(输出、输入、输入输出方向锁存器),2个3态门控制电路;二输入“与”门和“或”门组成数据输出的前向通道;P、N沟道场效应管构成互补推挽的输出级。,设置端口的输入/输出状态 每一组端口都有一个“输入输出方向锁存器” TRIS ,通过对这个锁存器的设置,可以定义I/O口为输入或输出。置“0”时为
2、输出;置“1”时为输入。 查询端口的输入/输出状态 读端口的输入/输出状态,是读TRIS锁存器的。,从端口输入数据 TRIS的对应位置“1”,数据从输入锁存器输入。 从端口输出数据 TRIS的对应位置“0”,数据从输出锁存器输出。 输出驱动能力: IOH=20mA, IOL=25mA。,使用“读-修改-写”指令对I/O口操作的注意事项,BCF和BSF指令为“读修改写”指令,用这二条指令对I/O口操作时,“读”是读I/O口 设RA口原为输入口,且RA0=0,RA1=0BSF RA,0 ;RA口输出寄存器0位置1BCF RA,1 ; RA口输出寄存器1位清0,0位清0BSF RP0 ;设置RA口为输出口MOVLW 00HMOVWF TRISABCF RP0,