(资料图片)
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 }}
关键词: