PIC单片机IO控制
PIC单片机IO口操作
设置IO为输出步骤
-
IO口设置为输出的步骤:
- 设置
TRISn确保I/O口的方向为输出 - 通过
PORTn控制I/O的数值
- 设置
-
代码示例
#include <pic.h> __CONFIG(0xFF32); // 4M void main() { TRISD = 0; // 设置D区方向寄存器为输出 PORTD = 0b00000001; // 第一个LED灯点亮 while(1); // 防止程序跑到不可控区域 }
I/O口注意事项
-
端口驱动能力
-
每个I/O口允许最大25mA的灌电流和20mA的拉电流, 可以直接驱动LED和继电器。
-
因各端口结构不同,
RB口提供的总灌电流和总拉电流可达150mA和100mA, 其他端口为80mA和50mA -
五个端口驱动电流之和不大于
200mA -
TRISn始终控制着PORTn的输入输出方向
IO寄存器
-
TRISA 方向寄存器
- 每一位是单片机输入输出时,每一位数值是0.
- 输出数值有PORTC寄存器来确定,POrtC数值全部为0
-
输入输出区
- PIC16F877 除了基本电路所占用的 7 根引脚外, 其余的
33 支引脚都可当成输出、 输入引脚, 输入输出端口, 可以与周边电路进行电路控制和信号传输与检测。 - PIC 是 8位的单片机, 以引脚特性分组, 每组尽量凑满 8 支引脚, 并将 I/O 命名为
PORTA(RA0~RA5)、PORTB(RB0~RB7)、PORTC(RC0~RC7)、PORTD(RD0~RD7)和PORTE(RE0~RE2)等
- PIC16F877 除了基本电路所占用的 7 根引脚外, 其余的
各路IO说明
PORTA
-
PORTA:PIC16F877的PORTA 总共有6位(RA0~RA5)- PORTA 的引脚可作为数据输出输入端口
系统重置后, PORTA 自动成为模拟输入状态, 可读取模拟输入信号。
PORTB
-
PORTB: PORTB 总共有8位(RB0~RB7)- 可以编写程序规划输入输出方向、 状态.
- 需要进行烧录时,使用到三个引脚, 分别是
36脚(RB3/PGM)、39脚(RB6/PGC) 与40脚(RB7/PGD).
PORTC
-
PORTC:PORTC 总共有8位(RC0~RC7)- 可作为数据 I/O
- 有特殊功能的外围电路共享引脚
CCP: 直流马达控制I2C: 同步串行通信电路SPI: 串行外设接口UART: 异步串行传输电路- 等
PORTD
PORTD: PORTD 总共有8位(RD0~RD7)- 可作一般数据 I/O
- 并与
PSP(Parallel Slave Port)并行传输区共享 , 当整体系统需要多机时, 彼此可以经由并行传输区来快速传输资料
PORTE
-
PORTE:PORTE 总共有3位(RE0~RE2)- 基本 I/O 功能
- 模拟输入功能: 上述的
PORTD的并行传输区设定所需的控制引脚, 如/RD、/WR、/CS等, 也是属于PORTE 引脚。
设置端口IO状态
- I/O端口的寄存器: 复位后, 默认为输入( 输出高阻态)
| 方向控制寄存器 | TRISA~E |
|---|---|
| 数据寄存器 | PORTA~E |
状态设置
-
方向控制寄存器与数据寄存器都是
8位的, 方向控制寄存器中的每一位与数据寄
存器中的每一位相对应, 如下:

TRISn方向控制寄存器:- 相应位设置为1表示输入
- 相应位设置为0表示输出
PORTn端口控制寄存器:- 相应位设置为1表示输出
- 相应位设置为0表示输入
单片机复位之后I/O口的初始状态
- 单片机启动后,默认IO输入模式
PIC单片机最小系统
-
PIC单片机运行必要条件

- 电源
- 晶振: 采用
4M方便计算 - 复位: 采用低电平复位

浙公网安备 33010602011771号