STC2C5201AD系列单片机所有I/O口均可由软件配置成4种工作类型之一,如下表所示。4种类型分别为:准双向口/弱上拉(标准8051输出模式)、强推挽输出/强上拉、仅为输入(高阻)或开漏输出功能。每个口由2个控制寄存器中的相应位控制每个引脚工作类型。STC- 2C5201AD系列单片机上电复位后为准双向口/弱上拉(传统805的I/O口)模式。2V以上时为高电平,0.8V以下时为低电平。每个I/O口驱动能力均可达到20mA,但整个芯片最大不得超过90mA。
P3口设定
P3M1 [7:0] | P3M0 [7 : 0] | I/O口模式 |
0 | 0 | 准双向口(传统805I/O口模式), 灌电流可达20mA ,拉电流为230μA , 由于制造误差,实际为250uA~50uA |
0 | 1 | 强推挽输出(强上拉输出,可达20mA,要加限流电阻) |
1 | 0 | 仅为输入(高阻) |
1 | 1 | 开漏(Open Drain),内部上拉电阻断开,要外上拉 |
MOV P3M1,#10100000B
MOV P3M0 #10010000B
P3.7为开漏P3.5为高阻P3.4为强推挽输出,其他为准双向
PWM输出时I/O口的状态
当某个I/O口作为PWM输出用时,该口的状态:
PWM之前口的状态 | PWM时口的状态 |
弱上拉/准双向口 | 强推挽输出/强上拉输出,要加输出限流电阻10K ~1K |
强推挽输出 | 强推挽输出/强上拉输出,要加输出限流电阻10K ~1K |
仅为输入/高阻 | PWM无 |
开漏 | 开漏 |
普通I/O口---〉限流电阻用(10K到1K)-----〉接负载
4.6.如何让I/O口上电复位时为低电平
普通8051单片机上电复位时普通I/O口为弱上拉高电平输出,而很多实际应用要求上电时某
些I/O口为低电平输出,否则所控制的系统(如马达)就会误动作,现STC12系列单片机由于既有弱上拉输出又有强推挽输出,就可以很轻松的解决此问题。现可在STC12系列单片机I/O口上加一个下拉电阻(1K/2K/3K),这样上电复位时,虽然单片机内部I/O口是弱上拉/高电平输出,但由于内部上拉能力有限,而外部下拉电阻又比较小,无法将其拉高,所以该I/O口上电复位时外部为低电平。如果要将此I/O口驱动为高电平,可将此I/O口设置为强推挽输出,而强推挽输出时,I/O口驱动电流可达20mA,故肯定可以将该口驱动为高电平输出。
10.3.4脉宽调节模式(PWM)
脉宽调制(PWM,Pulse Width Modulation)是一种使用程序来控制波形占空比、周期、相位波形的技术,在三相电机驱动、D/A转换等场合有广泛的应用。STC 2C520 AD系列单片机的PCA模块可以通过程序设定,使其工作于8位PWM模式。PWM模式的结构如下图所示。