欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

關(guān)于C語言switch語句

查看數(shù): 7012 | 評論數(shù): 44 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2020-9-3 09:49

正文摘要:

大家好呀,這個程序那里有問題,如果想讓S2按下時,怎樣能讓LED1滅呢,新手,謝謝大家啦

回復(fù)

ID:382454 發(fā)表于 2020-10-26 14:03
看這序好象是亂套的。還不如先寫一個小函數(shù),先在軟件里,自己調(diào)試一下。這樣才能學(xué)會。
ID:833190 發(fā)表于 2020-10-22 18:26
本帖最后由 i_could_have 于 2020-10-22 18:41 編輯
jianuli 發(fā)表于 2020-9-3 12:54
圖中就是這樣寫的呀,但LED不為1啊

按下會暗是因?yàn)槌绦蛞恢痹讷@取按鍵輸入,開始時燈亮,你按下S2燈滅,之后再次獲取按鍵信息,case1還是先亮,之后檢測到S2按下,又滅。這樣閃爍,但是閃的頻率很快,所以看到的就是變暗。你可以在if里加個延時,那樣就會看到閃爍了
ID:423392 發(fā)表于 2020-9-29 08:40
你的switch語句缺default: breaks;而且編程風(fēng)格不是很好,一行應(yīng)該就一個;語句的;
ID:337139 發(fā)表于 2020-9-26 15:52
貼一個相對完整的上來,要不你就看清楚定義,分析一下是否能執(zhí)行到LED=1;這里。
ID:823507 發(fā)表于 2020-9-26 15:46
學(xué)到了
ID:607312 發(fā)表于 2020-9-26 08:47
條件不對啊,嘗試聲明一個全局變量,用變量來記錄按鍵
ID:106821 發(fā)表于 2020-9-15 14:00
cnt_2是怎么算的,按下去算一次還是按下去彈起算一次,如果按下去彈起算一次,就不可能出現(xiàn)S2=0的情況;前面的條件不滿足,下面的程序是不可能執(zhí)行的
ID:817933 發(fā)表于 2020-9-11 15:44
把if(S2==0){}這段話寫到按鍵函數(shù)里面去處理
ID:775776 發(fā)表于 2020-9-11 11:44
只測led1看能亮滅嗎,因該是硬件問題或者io選擇的問題
ID:817836 發(fā)表于 2020-9-11 10:56
連個防抖設(shè)計(jì)都沒有,直接判斷s2==0??!!
ID:777834 發(fā)表于 2020-9-9 08:45
wlefa 發(fā)表于 2020-9-8 10:27
恐怕cnt_2值都是1吧,所以程序重復(fù)運(yùn)行在在case 1;當(dāng)S2按下時,程序循環(huán)點(diǎn)亮熄滅(S2按下)LED1,單片機(jī)頻 ...

您好,首先謝謝你的回復(fù),我剛才按你的方法加了延時,真的可以了耶,真是像你說的這樣,反復(fù)循環(huán)點(diǎn)亮與關(guān)斷LED1了,還有個最后問題,哈哈,就是case1:在執(zhí)行后面語句的時候,是不是類似有{}加在LED1與LED8之間呢,像這樣case1:{LED1=0;LED2=1;LED3=1;LED4=1;LED=1;LED6=1;LED7=1;LE D8=1;}break;
ID:613800 發(fā)表于 2020-9-8 11:45
不給延時怎么看的出來
ID:380037 發(fā)表于 2020-9-8 10:27
本帖最后由 wlefa 于 2020-9-8 13:11 編輯

恐怕cnt_2值都是1吧,所以程序重復(fù)運(yùn)行在在case 1;當(dāng)S2按下時,程序循環(huán)點(diǎn)亮熄滅(S2按下)LED1,單片機(jī)頻率高,所以看到的是LED1會暗一點(diǎn);松開S2后,程序進(jìn)不了if(s2==0),不能熄滅,所以LED1常亮;在if(S2==)中加個延時,LED1滅的時間長點(diǎn),人眼容易分別。在case 1中開頭點(diǎn)亮LED1,緊接著用按鍵熄滅LED1,松開按鍵后第二次循環(huán)運(yùn)行,進(jìn)入程序就又把LED1點(diǎn)亮了,應(yīng)該把LED1初始化移出循環(huán),再在循環(huán)中改變LED狀態(tài)
ID:311846 發(fā)表于 2020-9-8 09:26
我猜是他邏輯有問題,S2按鍵按下會不會改變cnt_2的值?
ID:378732 發(fā)表于 2020-9-8 03:05
上全代碼別人才好分析
ID:777834 發(fā)表于 2020-9-7 21:35
沒有人說說了嗎,還沒有解開我心里的疑團(tuán)呢呢
ID:777834 發(fā)表于 2020-9-4 10:58
我感覺和case后面的語句矛盾了,因?yàn)閏ase讓LED1=0,而下面我又讓LED1=1,
ID:654028 發(fā)表于 2020-9-4 09:22
while里面清空,就留一個滅燈函數(shù),看看能不能滅
ID:420836 發(fā)表于 2020-9-4 08:34
您可以根據(jù)測試結(jié)果更改代碼。 這是一個簡單的代碼,應(yīng)該很容易調(diào)試。
ID:540927 發(fā)表于 2020-9-4 08:17
jianuli 發(fā)表于 2020-9-3 18:20
您好,按鍵按下彈起時后算一次,也就是松開按鍵后算一次

你的按鍵彈起算一次與按鍵按下去的時候LED1點(diǎn)亮矛盾了,你必須把按鍵彈起算一次改為按鍵按下去算一次才行
ID:777834 發(fā)表于 2020-9-3 23:29
大家?guī)兔Ψ治鱿驴?/td>
ID:777834 發(fā)表于 2020-9-3 23:28
Roy-2010 發(fā)表于 2020-9-3 19:15
無需單片機(jī),你做個非門電路就好了。LED短路了之后通過電阻防止電源短路就好了。

想知道什么原因
ID:84652 發(fā)表于 2020-9-3 22:11
jianuli 發(fā)表于 2020-9-3 12:52
您好,可以運(yùn)行到的,S2按下時,LED1會暗一點(diǎn),松開S2后,LED1恢復(fù)正常亮度,

看樣子是 cnt_2 一直是 1 或者變成 2 的時間不夠, cnt_2 相關(guān)的邏輯問題。
ID:809311 發(fā)表于 2020-9-3 19:15
無需單片機(jī),你做個非門電路就好了。LED短路了之后通過電阻防止電源短路就好了。
ID:777834 發(fā)表于 2020-9-3 18:26
是不是case后面的所有語句只受switch判斷控制?
ID:777834 發(fā)表于 2020-9-3 18:25
心有浮生 發(fā)表于 2020-9-3 16:37
他的掃描函數(shù)叫an_jian()吧

是的,幫忙分析下咯,謝謝
ID:777834 發(fā)表于 2020-9-3 18:23
#include51.h 發(fā)表于 2020-9-3 15:03
你這是邏輯上有問題,case 1:后面應(yīng)用if........else來寫,還有你那cnt_2值是不是不受影響的變化,這都能導(dǎo) ...

您好,cnt_2不受影響的了,按鍵都有消抖處理,我感覺是case后面的語句只受switch判斷控制的了?
ID:777834 發(fā)表于 2020-9-3 18:20
山水間 發(fā)表于 2020-9-3 14:09
cnt_2是怎么算的,按下去算一次還是按下去彈起算一次,如果按下去彈起算一次,就不可能出現(xiàn)S2=0的情況,鍵 ...

您好,按鍵按下彈起時后算一次,也就是松開按鍵后算一次
ID:654028 發(fā)表于 2020-9-3 16:37
梁廷明 發(fā)表于 2020-9-3 16:33
程序里面怎么還掃描按鍵?

他的掃描函數(shù)叫an_jian()吧
ID:235954 發(fā)表于 2020-9-3 16:33
程序里面怎么還掃描按鍵?
ID:416287 發(fā)表于 2020-9-3 15:52
你好  你看看是不是if(S2==0){}與break之間沒有加分號; 如果改良還有問題的話 那就好好看一下硬件
ID:471066 發(fā)表于 2020-9-3 15:03
本帖最后由 #include51.h 于 2020-9-3 15:13 編輯

你這是邏輯上有問題,case 1:后面應(yīng)用if........else來寫,還有你那cnt_2值是不是不受影響的變化,這都能導(dǎo)致你得不到你想要的結(jié)果,可以用單步查一下你值的變化,要養(yǎng)成用調(diào)試查結(jié)果的習(xí)慣,你現(xiàn)在代碼還少,到你代碼多了出現(xiàn)錯誤時,別人也會看得頭大!說不定就不拱理你了
ID:540927 發(fā)表于 2020-9-3 14:09
cnt_2是怎么算的,按下去算一次還是按下去彈起算一次,如果按下去彈起算一次,就不可能出現(xiàn)S2=0的情況,鍵沒有消抖,不知道你的按鍵函數(shù)中執(zhí)行了沒?
ID:412523 發(fā)表于 2020-9-3 13:24
用程序檢測 LED 燈能否正常亮滅,能的話就是你寫的程序有問題,不能就是你電路有問題
ID:654028 發(fā)表于 2020-9-3 13:06
jianuli 發(fā)表于 2020-9-3 12:52
您好,可以運(yùn)行到的,S2按下時,LED1會暗一點(diǎn),松開S2后,LED1恢復(fù)正常亮度,

查下電路吧,會暗估計(jì)有用,但是哪里出問題了 不會太清楚
ID:777834 發(fā)表于 2020-9-3 12:55
大家?guī)兔Ψ治鱿驴?/td>
ID:777834 發(fā)表于 2020-9-3 12:54
烈火 發(fā)表于 2020-9-3 11:16
當(dāng)S2按下時,讓LED1=1,燈滅

圖中就是這樣寫的呀,但LED不為1啊
ID:777834 發(fā)表于 2020-9-3 12:53
wps10025 發(fā)表于 2020-9-3 12:10
子函數(shù)你前面聲明了,主程序之后沒寫吧。

寫啦,再下面呢,就是按鍵的函數(shù)
ID:777834 發(fā)表于 2020-9-3 12:52
心有浮生 發(fā)表于 2020-9-3 11:15
調(diào)試,看看能不能運(yùn)行到LED=1這句話,如果不能,則表明S2 !=0

您好,可以運(yùn)行到的,S2按下時,LED1會暗一點(diǎn),松開S2后,LED1恢復(fù)正常亮度,
ID:777834 發(fā)表于 2020-9-3 12:49
山水間 發(fā)表于 2020-9-3 10:55
程序不完整,cnt_2是什么也不知道,無法判斷呢

cnt_2是表示按鍵按下的次數(shù),按第1次時,LED1亮,按第2次時,LED燈亮

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表