使用STC15W408AS单片机I/O口点亮LED

发布时间:
来源: 电子工程世界

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设置为输入

实验电路如下:


d13d54020896f18dab795e57b35a1d4e_wKgaomSKs_CANU_4AAB1N7ZMPZA815.jpg

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设置为输出

d5cbe5cb658b3694ebabf9fd2e93991e_wKgZomSKtC-ABujQAABSJLbLQ-A169.png

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


#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

  }

}


文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。