找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2319|回復: 16
收起左側

這個單片機按鍵程序是哪里錯了

  [復制鏈接]
ID:302865 發(fā)表于 2018-4-28 15:53 | 顯示全部樓層 |閱讀模式
1.PNG 2.PNG

請問想實現(xiàn)獨立鍵盤k4(sbit k4=P1^3)按下,會從“歡迎使用”畫面進入“IC”數據畫面,但是在燒寫程序時,單片機不會等待按鍵按下或者按鍵按下TFT屏幕出錯。請問是哪里錯了。
回復

使用道具 舉報

ID:277550 發(fā)表于 2018-4-28 16:26 | 顯示全部樓層
子函數是一直等待的,主函數中,怎么能判斷得到start==1呢

~~~~~~~~~~
回復

使用道具 舉報

ID:318910 發(fā)表于 2018-4-29 14:36 | 顯示全部樓層
等待按鍵按下前不就調用了welcom()嗎
回復

使用道具 舉報

ID:318910 發(fā)表于 2018-4-29 14:37 | 顯示全部樓層
等待按鍵按下之前就調用welcom ()了
回復

使用道具 舉報

ID:319019 發(fā)表于 2018-4-29 17:32 | 顯示全部樓層
welcome放到按鍵函數里去
回復

使用道具 舉報

ID:302865 發(fā)表于 2018-5-1 09:49 | 顯示全部樓層
devcang 發(fā)表于 2018-4-28 16:26
子函數是一直等待的,主函數中,怎么能判斷得到start==1呢

~~~~~~~~~~

那請問應該怎么改
回復

使用道具 舉報

ID:302865 發(fā)表于 2018-5-1 09:51 | 顯示全部樓層
cj52 發(fā)表于 2018-4-29 14:37
等待按鍵按下之前就調用welcom ()了

先調用welcome,然后等待子函數,按鍵按下會讓start=1,再判斷start==1,調用IC函數
回復

使用道具 舉報

ID:319344 發(fā)表于 2018-5-1 11:59 | 顯示全部樓層
我來說一下為什么單片機不會等待按鍵按下,你在鍵值按下前有個延時1000,就會對按鍵判斷產生影響,而且軟件延時消抖根本用不了那么長時間,10~20us就可以了,如果你是按下就松開,不建議你設置成這樣,除非你是按下后直到執(zhí)行了相應功能再松開
回復

使用道具 舉報

ID:319538 發(fā)表于 2018-5-1 12:14 來自觸屏版 | 顯示全部樓層
你發(fā)出來的都沒問題啊,歡迎界面如果能顯示的話,按鍵按下去再出錯說明錯誤有沖突,你把歡迎放在清屏語句后面,不放在循環(huán)里面試試看
回復

使用道具 舉報

ID:319538 發(fā)表于 2018-5-1 12:15 來自觸屏版 | 顯示全部樓層
因為你延時之后馬上又繼續(xù)循環(huán),那就會在沒有清屏的時候直接出現(xiàn)歡迎這個語句,導致屏幕出錯
回復

使用道具 舉報

ID:301728 發(fā)表于 2018-5-1 14:50 | 顯示全部樓層
while(1)
{
   welcome();
   Delay(1000);
   judge1();
  if(start==1)
   break;
}
clear();
Ic();
Delay(1000);
如果把welcome放在while(1)里面,就算是start=1也會顯示welcome
回復

使用道具 舉報

ID:302865 發(fā)表于 2018-5-3 09:39 | 顯示全部樓層
wenzedong 發(fā)表于 2018-5-1 11:59
我來說一下為什么單片機不會等待按鍵按下,你在鍵值按下前有個延時1000,就會對按鍵判斷產生影響,而且軟件 ...

網上說消抖時間一般是10-20ms,那如果是按下松開應該怎么寫程序
回復

使用道具 舉報

ID:302865 發(fā)表于 2018-5-3 10:39 | 顯示全部樓層
許三少天 發(fā)表于 2018-5-1 12:14
你發(fā)出來的都沒問題啊,歡迎界面如果能顯示的話,按鍵按下去再出錯說明錯誤有沖突,你把歡迎放在清屏語句后 ...

請問,歡迎界面放在了循環(huán)外邊,但是按鍵按下,沒有反應,一直是歡迎界面。是什么問題
回復

使用道具 舉報

ID:321043 發(fā)表于 2018-5-3 10:40 | 顯示全部樓層
進不了判斷程序
回復

使用道具 舉報

ID:319538 發(fā)表于 2018-5-6 09:30 | 顯示全部樓層
sacredyy 發(fā)表于 2018-5-3 10:39
請問,歡迎界面放在了循環(huán)外邊,但是按鍵按下,沒有反應,一直是歡迎界面。是什么問題

那就要分析了,按鍵檢測模塊沒有問題,但是按鍵沒有反應,說明你這個延時模塊有問題。Delay(1000)這句有問題
回復

使用道具 舉報

ID:319538 發(fā)表于 2018-5-6 09:33 | 顯示全部樓層
無法進入while(1)這個循環(huán),說明問題出在前面的語句,你需要把你的顯示語句welcome()檢查一下。不過正常來說,編譯通過的話應該不是一些死循環(huán)這種邏輯錯誤
回復

使用道具 舉報

ID:323345 發(fā)表于 2018-5-6 11:41 | 顯示全部樓層
可能是語法錯誤吧
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表