![]() |
發布時間: 2021-10-4 11:30
正文摘要:完成一鍵切換多功能系統設計1 個按鍵 K,由 P3.0 控制,8 個 LED發光二極管,由 P1 口控制。(1)系統上電時 8 個 LED 全滅(2)第一次按下開關 K 的時候,8 個LED 全亮;第二次按下開關 K 的時候,高四位 LED亮;第 ... |
整體思路是對的,這程序有點亂,還是要規范下。 |
一giao我里giao 發表于 2021-10-11 16:11 你錯了,是這樣 if(k1==0)//按鍵按下 { while(1) { xianshi();//把正常顯示的程序寫在這里 if(k1==1) { _++;//判斷按鍵的數值加1 break; } } } |
給你一個按鍵按一次加1的程序,然后你自己去想吧。 if(k1==0)//按鍵按下 while(1) { xianshi();//把正常顯示的程序寫在這里 if(k1==1) { _++;//判斷按鍵的數值加1 break; } } 這樣就可以按一次加一次了 |
四種情況分別設置標志位,通過標志位判斷是哪種情況,你的按鍵定義和判斷在哪,沒看到,P3.0為串口接收端,最好不要用來接按鍵 |
用狀態機來寫這種多狀態的程序很適合。 |
1、做兩個計數器X和Y,每按一次X+1。 2、顯示程序:當X<>Y時,對LED進行顯示切換,顯示的原則:根據X/4的余數(0、1、2、3)進行,你想法中的4種顯示。顯示切換后,讓Y=X。 完了,就這么簡單。 |
jerry1203 發表于 2021-10-5 10:51 最后,在補充一下, 你的 if 判斷語句, 判斷是否相等,應該是雙等號,== 而不是單等號。 |
jerry1203 發表于 2021-10-5 10:51 你要么,在 while(1) 里面增加一個 判斷 按鍵 賦值 Key_count 的代碼。 要么,做一個中斷程序,用來根據按鍵修改Key_count |
加個按鍵計數器是對的,但是你程序中沒有相應的計數程序, |
188610329 發表于 2021-10-4 18:10 那應該怎么改呀 |
while(1) { if(key_count=0)lsd1(); if(key_count=1)lsd2(); if(key_count=2)lsd3(); if(key_count=3)0x0f; if(key_count=4)0xf0; } 這是,你這個程序的核心部分, 雖然,你里面很多 if, 看似這個程序會有變化,但是你這個程序沒有任何中斷。所以,key_count 永遠不會發生改變, 在進入while(1) 的時候,就決定了,這個程序會永遠在某一個分支里面無休止的循環。 |