通過按鍵控制IO口操作
下面把今天學的一個簡單的通過按鍵控制IO口LED燈工作的程序?qū)懸幌?,呵呵,可以加深我對按鍵操作(ELSE語句)的理解。
本文引用地址:http://butianyuan.cn/article/201611/323750.htm#include
#define uint unsigned int
#define uchar unsigned char
sbit DIPswitch1=P3^0;
sbit DIPswitch2=P3^1;
sbit redLED1=P1^0;
sbit blueLED1=P1^1;
sbit greenLED1=P1^2;
sbit yellowLED1=P1^3;
sbit redLED2=P1^4;
sbit blueLED2=P1^5;
sbit greenLED2=P1^6;
sbit yellowLED2=P1^7;
void delay(void)
{uint i;
for(i=0;i<35530;i++);
}
void main(void)
{
P1=0XFF;
P3=0XFF;//置位
while(1)
{
if(DIPswitch1==0)
{
redLED1=~redLED1;
yellowLED2=~yellowLED2;//判斷按鈕1是否為低電平,如果是的話,實現(xiàn)P0口的1腳和7腳按位取反
delay();}//延時操作
else if(DIPswitch2==0)
{
P1=~P1;//按鍵2取低時,P0口所有位按位取反閃爍
}
else
{
P1=0X00;//如果按鍵1VS2都為高,則所有燈亮
}
}
}
工作原理是當按鍵1為低adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=17&is_app=0&jk=90ec16ab04311395&k=%B5%E7%C6%BD&k0=%B5%E7%C6%BD&kdi0=0&luki=5&n=10&p=baidu&q=98059059_cpr&rb=0&rs=1&seller_id=1&sid=95133104ab16ec90&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1831118&u=http%3A%2F%2Fwww%2E51hei%2Ecom%2Fmcu%2F1994%2Ehtml&urlid=0" id="3_nwl" mpid="3" target="_blank">電平時,P1口的1腳和7腳按位取反,實現(xiàn)LED燈的閃爍。當按鍵2為低電平的時候,P1口所有的燈實現(xiàn)按位取反功能,所有燈閃爍。當按鍵1和2都為高電平時,P1口為低電平,所有燈亮。
這個硬件電路是P3^0和P3^1控制按鍵1和2;P1口控制八個LED燈。
呵呵,數(shù)碼管的動態(tài)和靜態(tài)還在學習當中,現(xiàn)在基本的靜態(tài)控制應該是會了,動態(tài)的爭取這兩天把它學完。加油。
由于時間關系,在這就不寫上單片機的工作系統(tǒng)了。
有了這個程序和原理圖,我們也可以根據(jù)需要適當?shù)酶膶懗绦颍_到我們想要的目的。
評論