2021-06-08

本文详细介绍了STC单片机的I/O口工作原理,涉及端口寄存器如Px、PxMx、PxPU等的配置,包括模式选择、上拉电阻、施密特触发等功能。通过实例演示,帮助理解如何根据需求调整I/O口特性,适合初学者和开发人员参考。
摘要由CSDN通过智能技术生成

STC单片机-I/O简介



前言

本文为STC单片机I/O口的简介与配置方式,若有不足之处,还望各位同行不吝赐教。

一、简介

STC单片机所有的I/O口均有4种工作模式:准双向口/弱上拉(标准8051输出口模式)、推挽输出/强上拉高阻输入(电流既不能流入也不能流出)、开漏输出。可使用软件对I/O口的工作模式进行配置。


二、相关寄存器

1.端口数据寄存器(Px)

在这里插入图片描述
读写端口状态
写0:输出低电平到端口缓冲区
写1:输出高电平到端口缓冲区 读:直接读端口管脚上的电平

2.端口模式配置寄存器(PxMx)

在这里插入图片描述
端口模式:
在这里插入图片描述
注意:当有I/O口被选择为ADC输入通道时,必须设置PxM0/PxM1寄存器将I/O口模式设置为输入模式。另外如果MCU进入掉电模式/时钟停振模式后,仍需要使能ADC通道,则需要设置PxIE寄存器关闭数字输入,才能保证不会有额外的耗电

3.端口上拉电阻配置寄存器(PxPU)

在这里插入图片描述
端口内部4.1K上拉电阻控制位(注:P3.0和P3.1口上的上拉电阻可能会略小一些)
0:禁止端口内部的4.1K上拉电阻
1:使能端口内部的4.1K上拉电阻

4.端口施密特触发控制寄存器(PxNCS)

在这里插入图片描述

端口施密特触发控制位
0:使能端口的施密特触发功能。(上电复位后默认使能施密特触发)
1:禁止端口的施密特触发功能。

5.端口电平转换速度控制寄存器(PxSR)

在这里插入图片描述
控制端口电平转换的速度
0:电平转换速度快,相应的上下冲会比较大
1:电平转换速度慢,相应的上下冲比较小

6.端口驱动电流控制寄存器(PxDR)

在这里插入图片描述
控制端口的驱动能力
0:增强驱动能力
1:一般驱动能力

7.端口数字信号输入使能控制寄存器(PxIE)

在这里插入图片描述
数字信号输入使能控制
0:禁止数字信号输入。若I/O被当作比较器输入口、ADC输入口或者触摸按键输入口等模拟口时,进入时钟停振模式前,必须设置为0,否则会有额外的耗电。
1:使能数字信号输入。若I/O被当作数字口时,必须设置为1,否MCU无法读取外部端口的电平。


三、I/O口配置

1.模式配置

STC单片机的I/O口模式通过寄存器(PxM0,PxM1)进行配置。

在这里插入图片描述
以P0为例,P0M0的第x位与P0M1的第x位组合起来配置P0.x口的模式。

PnM0与PnM1的组合方式如下表所示:

在这里插入图片描述

2.其他配置

在STC8系列单片机中,新增了上拉电阻配置寄存器、施密特触发控制寄存器等一系列寄存器,具体功能请查阅手册。


四、举个例子

void IO_Init(void)
{
	P0M0 = 0x05;
	P0M1 = 0x06;
}

以下表格中为P0M0与P1M1中各位对应的值:

寄存器第7位第6位第5位第4位第3位第2位第1位第0位
P0M000000101
P0M100000110

通过查表可知:
P00的工作模式:推挽输出
P01的工作模式:高阻输入
P02的工作模式:开漏输出
P03-P07的工作模式:准双向口


总结

以上便是STC单片机I/O口的简单介绍啦!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值