当前聚焦:使用STC15W408AS单片机I/O口点亮LED
来源:小猿猪哥时间:2023-06-15 15:12:07


(资料图片)

STC15W408AS单片机有14个I/O口。其所有I/O口均可由软件配置成4种类型。4种类型分别为:准双向口/弱上拉(标准8051输出模式)、推挽输出/强上拉、高阻输入(电流既不能流入也不能流出)或开漏输出功能。每个口由2个控制寄存器中的相应位控制每个引脚工作类型。STC15系列单片机的I/O口上电复位后为准双向口/弱上拉(传统8051的I/O口)模式。每个I/O口驱动能力均可达到20mA,但40-pin及40-pin以上单片机的整个芯片最大不要超过120mA,20-pin以上及32-pin以下(包括32-pin)单片机的整个芯片最大不要超过90mA。

在上一节3.STC15W408AS单片机GPIO介绍了的GPIO的结构和4种工作模式。这里先介绍输出的两种模式。

接下来开始的实际操作实践。点亮第一个LED,这里的IO口既可以设置为输入也可以设置为输出。

一、GPIO设置为输入

实验电路如下:

I/O准双向模式,既可以是输入,也可以是输出。

#include "stc15.h"#include "delay.h"void main(){    // P1.1口设置为准双向IO口模式,这里可以不写,默认如此  P1M0 = 0x00;  P1M1 = 0x00;  while (1)  {    P11 = 1;        // LED 熄灭    delayms(1000);  // 等待 1s    P11 = 0;        // LED 点亮    delayms(1000);  // 等待 1s  }}

这个程序实际就是LED间隔1s闪烁的程序。

二、GPIO设置为输出

这里设置成为强推挽输出模式。

#include "stc15.h"#include "delay.h"void main(){    // P1.1 设置为强推挽输出 驱动能力可达20mA  P1M0 = 0x02;  P1M1 = 0x00;  while (1)  {    P11 = 1;       // LED 点亮    delayms(1000); // 等待1s    P11 = 0;       // LED 熄灭    delayms(1000); // 等待1s  }}

关键词: