十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
開關(guān)控制的話就不用編程語言了好嗎,因?yàn)殚_關(guān)是直接的物理連接,通過電路實(shí)現(xiàn)就好,那我就理解成你是想用單片機(jī)來實(shí)現(xiàn)吧,首先單片機(jī)與外設(shè)怎樣連接我不考慮,因?yàn)槟銢]說。那么我就當(dāng)是我可以隨意的使用單片機(jī)的輸出吧,然后開關(guān)閉合理解成按鍵是高電平,再按一次取反。
目前創(chuàng)新互聯(lián)已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、社旗網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
#include89c51.h????????????//是不是這個(gè)頭文件記不清了。。
#defineuint?unsigned?int?
#defineuchar?unsigned?char
#define?LED1?P1_0
#define?LED2?P1_1
#define?KEY1?P0_1
/*?函數(shù)聲明,延遲函數(shù),LED燈初始化函數(shù),按鍵KEY初始化,按鍵KEY查詢函數(shù)*/
voidDelayMs(uint?n);
voidLEDInit(void);
voidKEYInit(void);
ucharKEYScan(void);
/*主函數(shù)*/
void?main()
{
LED1?=?0;
LED2?=?1;??????//不同的接法可能導(dǎo)致結(jié)果不一樣,有的高電平亮有的低電平
while(1)?????????//具體看你自己的板子怎么接的
{
if(KEYScan())
LED1?=?~LED1;
LED2?=?~LED2;
}
}
/*檢測按鍵狀態(tài)*/
ucharKEYScan(void)
{
if(KEY1==0)
DelayMs(100);?//?延時(shí)一段時(shí)間,以免抖動(dòng)
if(KEY1==0)
{
DelayMs(100);
while(KEY1==0);
return?1;
}
else
return?0;
}
/*延遲函數(shù)*/
voidDelayMs(uint?n)
{
int?i;
while(n--)
{
for(i=587;i0;i--)?;
}
}
以上代碼是做CC2530實(shí)驗(yàn)的時(shí)候做的,修改了一下。
"break"是C語言中的關(guān)鍵字。
"break"詞語解釋是:跳出當(dāng)前循環(huán)。
1、break在一些計(jì)算機(jī)編程語言中是保留字,其作用大多情況下是終止所在層的循環(huán)。
2、break語句對(duì)if-else的條件語句不起作用。
3、在多層循環(huán)中,一個(gè)break語句只向外跳一層。
4、在C語言的switch(開關(guān)語句)中,break語句還可用來在執(zhí)行完一個(gè)case(分支)后立即跳出當(dāng)前switch結(jié)構(gòu)。
5、break和continue對(duì)if都是沒影響的。
C語言中break的用法有兩種:
出現(xiàn)在循環(huán)內(nèi)時(shí),循環(huán)終止,且程序流將繼續(xù)執(zhí)行緊接著循環(huán)后的語句。
終止switch語句中的一個(gè)case。
注意:
如果出現(xiàn)在嵌套循環(huán)(即一個(gè)循環(huán)內(nèi)嵌套另一個(gè)循環(huán)),break語句會(huì)終止最內(nèi)層的循環(huán),跳到上層循環(huán)。
如果循環(huán)中有if函數(shù),則直接跳出 if語句重新回到循環(huán)中。如果 if 語句嵌套,則返回上一級(jí)語句。
幫助C語言入門學(xué)習(xí)者理解函數(shù)調(diào)用方式
#include "stdio.h"
#include "windows.h"
//左右開窗簾
void left_right_open()
{
char img='X';
int i,j,k,counter,count,total;
//模擬開窗簾,窗簾每一部分用大寫M表示,一共有格30個(gè)窗簾格,左右各15個(gè)
j=16,k=16;
printf("請(qǐng)選擇全開 (輸入數(shù)字 15 ) 或者半開 (輸入數(shù)字10 ) 或者開1/3 (輸入數(shù)字 7 ) : ");
scanf("%d",total);
for(counter=1;counter
break在switch(開關(guān)語句)中在執(zhí)行一條case后跳出語句的作用。
break語句通常用在循環(huán)語句和開關(guān)語句中。當(dāng)break用于開關(guān)語句switch中時(shí),可使程序跳出switch而執(zhí)行switch以后的語句;如果沒有break語句,則將成為一個(gè)死循環(huán)而無法退出。break在switch中的用法已在前面介紹開關(guān)語句時(shí)的例子中碰到,這里不再舉例。
當(dāng)break語句用于do-while、for、while循環(huán)語句中時(shí),可使程序終止循環(huán)
而執(zhí)行循環(huán)后面的語句。通常break語句總是與if語句聯(lián)在一起,即滿足條件時(shí),便跳出循環(huán)。
擴(kuò)展資料:
在C語言中,switch語句是開關(guān)語句,一般與case、break、default配合使用,對(duì)流程進(jìn)行控制。
switch語句的語法規(guī)則:
switch ( 變量表達(dá)式 )
{
case 常量1 :語句;break;
case 常量2 :語句;break;
case 常量3 :語句;break;
...
case 常量n:語句;break;
default :語句;break;
}
其中switch、case、break、default都是關(guān)鍵詞。switch作為一個(gè)開關(guān),當(dāng)變量表達(dá)式的值對(duì)應(yīng)case中的值時(shí),執(zhí)行case后面的語句后跳出switch語句,如果都不符合則執(zhí)行default后面的語句后跳出switch語句。
參考資料來源:百度百科-break函數(shù)
C語言中的SWITCH是計(jì)算表達(dá)式的值。
并逐個(gè)與其后的常量表達(dá)式值相比較,當(dāng)表達(dá)式的值與某個(gè)常量表達(dá)式的值相等時(shí),
即執(zhí)行其后的語句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后的語句。
其一般形式為:
switch(表達(dá)式)。case
常量表達(dá)式1:
語句1 case
常量;表達(dá)式2:
語句2
case
常量;
表達(dá)式n:
語句n, default:
語句n+1。switch
是分支語句,就是比較強(qiáng)大的if集;
default為不滿足所有的switch條件則后面的句子被執(zhí)行。一般將default寫在switch中的最后。
C語言雖然沒有限制
if
else
能夠處理的分支數(shù)量,但當(dāng)分支過多時(shí);
用
if
else
處理會(huì)不太方便,而且容易出現(xiàn)
if
else
配對(duì)出錯(cuò)的情況。
擴(kuò)展資料:
switch語法
1、Switch用在編程中,如C語言中它經(jīng)常跟Case一起使用,是一個(gè)判斷選擇代碼。其功能就是控制業(yè)務(wù)流程流轉(zhuǎn)的。
2、直線翻譯:switch語句,即“切換”語句;case即“情況”。
3、switch語句非常有用,但在使用時(shí)必須謹(jǐn)慎。所寫的任何switch語句都必須遵循以下規(guī)則:
4、只能針對(duì)基本數(shù)據(jù)類型中的整型類型使用switch,這些類型包括int、char等。
5、對(duì)于其他類型,則必須使用if語句。switch()的參數(shù)類型不能為實(shí)型
。
6、case標(biāo)簽必須是常量表達(dá)式(constantExpression),如42或者"42"。
7、case標(biāo)簽必須是惟一性的表達(dá)式;也就是說,不允許兩個(gè)case具有相同的值。
參考資料來源:百度百科:switch