(資料圖片)
STC15W408AS單片機(jī)有14個(gè)I/O口。其所有I/O口均可由軟件配置成4種類型。4種類型分別為:準(zhǔn)雙向口/弱上拉(標(biāo)準(zhǔn)8051輸出模式)、推挽輸出/強(qiáng)上拉、高阻輸入(電流既不能流入也不能流出)或開漏輸出功能。每個(gè)口由2個(gè)控制寄存器中的相應(yīng)位控制每個(gè)引腳工作類型。STC15系列單片機(jī)的I/O口上電復(fù)位后為準(zhǔn)雙向口/弱上拉(傳統(tǒng)8051的I/O口)模式。每個(gè)I/O口驅(qū)動(dòng)能力均可達(dá)到20mA,但40-pin及40-pin以上單片機(jī)的整個(gè)芯片最大不要超過120mA,20-pin以上及32-pin以下(包括32-pin)單片機(jī)的整個(gè)芯片最大不要超過90mA。
在上一節(jié)3.STC15W408AS單片機(jī)GPIO介紹了的GPIO的結(jié)構(gòu)和4種工作模式。這里先介紹輸出的兩種模式。
接下來開始的實(shí)際操作實(shí)踐。點(diǎn)亮第一個(gè)LED,這里的IO口既可以設(shè)置為輸入也可以設(shè)置為輸出。
實(shí)驗(yàn)電路如下:
I/O準(zhǔn)雙向模式,既可以是輸入,也可以是輸出。
#include "stc15.h"#include "delay.h"void main(){ // P1.1口設(shè)置為準(zhǔn)雙向IO口模式,這里可以不寫,默認(rèn)如此 P1M0 = 0x00; P1M1 = 0x00; while (1) { P11 = 1; // LED 熄滅 delayms(1000); // 等待 1s P11 = 0; // LED 點(diǎn)亮 delayms(1000); // 等待 1s }}
這個(gè)程序?qū)嶋H就是LED間隔1s閃爍的程序。
這里設(shè)置成為強(qiáng)推挽輸出模式。
#include "stc15.h"#include "delay.h"void main(){ // P1.1 設(shè)置為強(qiáng)推挽輸出 驅(qū)動(dòng)能力可達(dá)20mA P1M0 = 0x02; P1M1 = 0x00; while (1) { P11 = 1; // LED 點(diǎn)亮 delayms(1000); // 等待1s P11 = 0; // LED 熄滅 delayms(1000); // 等待1s }}
標(biāo)簽: