51单片机(二)—— GPIO&Uart

一、GPIO

1.1 内部上拉电路

51单片机的I/O口都可以同时作为输入和输出之用。除了P0口以外,其他的I/O口都有内部上拉电阻。

3个内部上拉电阻都有不同的功用,要理解这个电路需要一定的模拟电路的知识。

内部上拉电阻示意图

由于相关的硬件配置,在编程时有以下需要注意的地方:

  • 当I/O口被用作输入用途时,读取输入前要保证锁存器状态为1。
  • 当将I/O口由低拉高时,指令执行后需要1~2个机器周期才能使实际的输出变成高电平。

在外围电路上需要注意的地方:

  • P0口做普通I/O使用时,要加上拉电路,因为其没有内部上拉。
  • 为防止电流过大,必要时外加限流电阻。

1.2 编程示例

51单片机的I/O口在使用时,并不需要对其进行初始化。

可以直接位寻址读/写单个GPIO状态,也可以直接访问sfr来读/写一组GPIO的状态。

/* byte */
unsigned char temp; 
P0 = 0xff;
temp = P0;

/* bit */
P0_1 = 1;
}

假设需要读取一个I/O口的输入状态,而该I/O口目前被锁存为0,则需要先将锁存器置1,再延时2个时钟周期。

#define INPUT P2_6
#define NOP __asm nop __endasm

INPUT = 1;
NOP;
if (INPUT == 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值