|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
單片機鍵盤設計問題 |
| 作者:lxfyang 欄目:單片機 |
在下新手,剛寫個了鍵盤程序 一共5個鍵 前兩個鍵還可以,能夠正常工作,為什么加上第3個鍵后,按第二個鍵會影響第3個鍵的顯示,加上第4個鍵后按第2和第3個都對第4個鍵有影響,望高手指點。∫韵率遣糠执a: //鍵盤主監(jiān)控程序。 unsigned CHAR scankey( void) { // KeyValue = NoKey; // P2=0xff; //將P2口全部置為高。 SWITCH (ReadKey()) { //復位/運行鍵. case 0xef: //是否為RunStop鍵. if ((KeyState==0)&&(DelayTime==0)) //上一次的狀態(tài)為無按鍵且延時已到。 { //延時1s后在判斷是否為連續(xù)按鍵. KeyValue=0xef; KeyState=1; DelayTime=100; } if ((KeyState==1)&&(DelayTime==0)) { KeyValue=0xef; DelayTime=30; //延時300ms后開始判斷為連續(xù)按鍵. } break; //電壓選擇鍵 case 0xf7: //u選擇。 if ((KeyState==0)&&(DelayTime==0)) //上一次的狀態(tài)為無按鍵且延時已到。 { //延時1s后在判斷是否為連續(xù)按鍵. KeyValue=0xf7; KeyState=1; DelayTime=100; } if ((KeyState==1)&&(DelayTime==0)){ KeyValue=0xf7; DelayTime=30; //延時300ms后開始判斷為連續(xù)按鍵. } break; //hz選擇鍵 case 0xfb: //hz選擇。 if ((KeyState==0)&&(DelayTime==0)) //上一次的狀態(tài)為無按鍵且延時已到。 { //延時1s后在判斷是否為連續(xù)按鍵. KeyValue=0xfb; KeyState=1; DelayTime=100; } if ((KeyState==1)&&(DelayTime==0)){ KeyValue=0xfb; DelayTime=30; //延時300ms后開始判斷為連續(xù)按鍵. } break; //sj選擇鍵 case 0xfd: //sj選擇。 if ((KeyState==0)&&(DelayTime==0)) //上一次的狀態(tài)為無按鍵且延時已到。 { //延時1s后在判斷是否為連續(xù)按鍵. KeyValue=0xfd; KeyState=1; DelayTime=100; } if ((KeyState==1)&&(DelayTime==0)){ KeyValue=0xfd; DelayTime=30; //延時300ms后開始判斷為連續(xù)按鍵. } break; default: KeyState=0; DelayTime=0x03; KeyValue=NoKey; break; } return KeyValue; } //鍵盤處理主過程 void TaskKeyProc(unsigned CHAR KEY) { //如果沒有按鍵,立即返回。 if(KEY == 0xff) return; DelayTime|=0; SWITCH(KEY) { case KEY1: RunStop=~RunStop; //狀態(tài)反轉(zhuǎn)。 if (RunStop==1){ //一開始為待機,按一下鍵后開始工作。如為1,跳出繼續(xù)下面的發(fā)號程序 Clear_Lcd();   |
| 2樓: | >>參與討論 |
| 作者: eleven11 于 2006/10/18 11:45:00 發(fā)布:
難怪,程序?qū)懙奶珌y了 |
|
| 3樓: | >>參與討論 |
| 作者: lxfyang 于 2006/10/18 11:52:00 發(fā)布:
不好意思 呵呵 我第一次寫程序 見諒啊 |
|
| 4樓: | >>參與討論 |
| 作者: 未來是夢 于 2006/10/18 14:01:00 發(fā)布:
RE case KEY2:和case KEY3:語句段結(jié)束時少了break; * - 本貼最后修改時間:2006-10-18 14:08:22 修改者:未來是夢 |
|
| 5樓: | >>參與討論 |
| 作者: lxfyang 于 2006/10/18 14:16:00 發(fā)布:
謝謝拉! 搞了大半天頭都大了,怎么也找找不出來 呵呵 謝謝高人指點 |
|
| 6樓: | >>參與討論 |
| 作者: lxfyang 于 2006/10/18 17:09:00 發(fā)布:
在問一下! 哪位大蝦有雙機通訊的例程。孔詈煤唵吸c的,對于新手來說比較容易理解的.能否給小弟發(fā)一份,小弟感激不盡,謝謝了。!yangchan5945@163.com我郵箱 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |