日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]按鍵實驗電路如下,10K電阻與按鍵串聯(lián)在VCC與GND之間,當(dāng)按鍵沒有按下時,PB2處的電壓為5V,即高電平;當(dāng)按鍵按下時,PB2處的電壓為0V,即低電平。一、庫函數(shù)1、打開DAHUME MINI.stw文件;2、在STVD左側(cè)Workspace窗口

按鍵實驗電路如下,10K電阻與按鍵串聯(lián)在VCC與GND之間,當(dāng)按鍵沒有按下時,PB2處的電壓為5V,即高電平;當(dāng)按鍵按下時,PB2處的電壓為0V,即低電平。

一、庫函數(shù)

1、打開DAHUME MINI.stw文件;

2、在STVD左側(cè)Workspace窗口Source Files目錄下找到main.c,雙擊打開;

3、setup();函數(shù)代碼如下,pinMode(PB2, INPUT);即將PB2引腳設(shè)置為輸入模式;

void setup(void)

{

delay(10);

CLOCK(_16MHz);

pinMode(PC1, OUTPUT);

pinMode(PB2, INPUT);

}

4、主函數(shù)代碼如下

main()

{

setup();

while (1)

{

if (digitalRead(PB2) == HIGH)

{

digitalWrite(PC1, LOW);

}

else if(digitalRead(PB2) == LOW)

{

digitalWrite(PC1, HIGH);

}

}

}

_Bool digitalRead(char pin);是布爾型函數(shù),調(diào)用此函數(shù)返回引腳的高低電平值。

if語句,小括號里的表達(dá)式運算結(jié)果為真時,執(zhí)行一次后面大括號里的代碼;為假時,跳過大括號里的代碼。if語句有如下兩種結(jié)構(gòu)

1)1個if+n個else if,n=0,1,2……。

if (表達(dá)式)

{

代碼;

}

else if(表達(dá)式)

{

代碼;

}

2)1個if+n個else if+1個else,n=0,1,2……。if和else if表達(dá)式運算結(jié)果都為假時,則執(zhí)行else大括號里的代碼。

if (表達(dá)式)

{

代碼;

}

else if(表達(dá)式)

{

代碼;

}

else

{

代碼;

}

==用于左右運算結(jié)果等值判斷,是等于運算符,!=是不等于運算符,都屬于相等運算符。常用于條件判斷還有<、<=、>、>=,此四項為關(guān)系運算符。

if (表達(dá)式1 &&表達(dá)式2)

&&是邏輯與運算符,即并且。表達(dá)式1和表達(dá)式2同時為真則為真,一者為假則為假。

if (表達(dá)式1 ||表達(dá)式2)

||是邏輯或運算符,即或者。表達(dá)式1和表達(dá)式2一者為真則為真,同時為假則為假。

更多C語言運算關(guān)鍵字、C語言運算符知識,請看百度百科。

開發(fā)板上KEY1按鍵一端與GND相連,另一端與PB2引腳的排針相連。本例程所實現(xiàn)效果是當(dāng)KEY1松開時,LED1熄滅;當(dāng)KEY1按住時,LED1點亮。

二、寄存器

pinMode(PB2, INPUT);

用寄存器寫即

PB_DDR_2 = 0;

PB_CR1_2 = 1;

或者

PB_DDR = PC_DDR & 0b11111011;

PB_CR1 = PC_CR1 | 0b00000010;

或者

PB_DDR &= 0b11111011;

PB_CR1 |= 0b00000010;

IO引腳作為輸入模式,配置模式如下。PB2引腳作為上拉輸入模式。

IO口配置表

配置模式

DDR位

CR1位

CR2位

配置模式

上拉電阻

輸入

0

0

0

懸浮輸入

OFF

0

1

0

上拉輸入

ON

0

0

1

中斷懸浮輸入

OFF

0

1

1

中斷上拉輸入

ON

懸浮輸入模式的引腳在不接任何元器件時,讀取的電平值不穩(wěn)定,即不確定的信號。當(dāng)串聯(lián)一個電阻連到VCC時,可將信號鉗位在高電平,電阻同時起限流作用。此為外接上拉電阻。CR1寄存器某位置1,對應(yīng)引腳可使用芯片內(nèi)置上拉電阻,即上拉輸入模式。

if (digitalRead(PB2) == HIGH)

else if (digitalRead(PB2) == LOW)

用寄存器寫即

if (PB_IDR_2 == 1)

else if (PB_IDR_2 == 0)

或者

if (PB_IDR_2)

else if (!PB_IDR_2)

三、練習(xí)

1、在while (1)循環(huán)中用if+else if+else if+else結(jié)構(gòu):

1)僅KEY1按住時,LED1亮;

2)僅KEY2按住時,LED2亮;

3)KEY1、KEY2同時按住時,LED3亮;

4)以上都不滿足時,3個燈全滅。

2、在while (1)循環(huán)中用if語句:

1)KEY1短按一下,LED1亮2秒;

2)KEY2短按一下,LED2亮2秒。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉