單片機四位數碼管顯示中間壹行字母
un sig ned char k;//設置全局變量k為鍵盤的鍵值鍵盤延時函數
//延時函數
void key_delay(void) {int t;for(t=0;t<500;t++);}
鍵盤掃描函數******************************/?
//鍵盤掃描函數
void keyscan(void)
{unsigned char a;P2 = 0xf0;if(P2!=0xf0){key_delay();if(P2!=0xf0){P2 = 0xfe; key_delay();a = P2;switch (a)
//鍵盤初始化//有鍵按下?//延時//確認真的有鍵按下?//使行線 P2.4 為低電平,其余行為高電平//a 作為緩存//開始執行行列掃描{case 0xee:k=15;break;case 0xde:k=11;break;case 0xbe:k=7;break;case 0x7e:k=3;break;default:P2 = 0xfd; //使行線 P2.5 為低電平,其余行為高電平a = P2;switch (a)
case 0xed:k=14;break;case 0xdd:k=10;break;case 0xbd:k=6;break;case 0x7d:k=2;break;default:P2 = 0xfb; //使行線 P2.6 為低電平,其余行為高電平a = P2;switch (a){case 0xeb:k=13;break;case 0xdb:k=9;break;case 0xbb:k=5;break;case 0x7b:k=1;break;default:P2 = 0xf7; //使行線P2.7為低電平,其余行為高電平a = P2;switch (a){case 0xe7:k=12;break;case 0xd7:k=8;break;case 0xb7:k=4;break;case 0x77:k=0;break;default:break;
}} break;}}}}
**************************** ***主函數 ***********************************
void main(void){while(1)
//調用鍵盤掃描函數//查找按鍵對應的數碼管顯示代碼
{keyscan(); switch(k){case 0:P0=Dig[0];break;case 1:P0=Dig[1];break;case 2:P0=Dig[2];break;case 3:P0=Dig[3];break;case 4:P0=Dig[4];break;case 5:P0=Dig[5];break;
case 6:P0=Dig[6];break;case 7:P0=Dig[7];break;case 8:P0=Dig[8];break;case 9:P0=Dig[9];break;case 10:P0=Dig[10];break;case 11:P0=Dig[11];break;case 12:P0=Dig[12];break;case 13:P0=Dig[13];break;case 14:P0=Dig[14];break;case 15:P0=Dig[15];break; default:break; // 退出}}}
end
Welcome ToDownload !!!歡迎您的下載,資料僅供參考!
¥
5.9
百度文庫VIP限時優惠現在開通,立享6億+VIP內容
立即獲取
51單片機(四位數碼管的顯示)程序[1]
51單片機(四位數碼管的顯示)程序
基於單片機V1或V2實驗系統,編寫壹個程序,實現以下功能:1)首先在數碼管 上顯示P ”個字符;2)等待按鍵,如按了任何壹個鍵,則將這 4個字符清除, 改為顯示0000”個字符(為數字的0)。
E3最佳答案
下面這個程序是4x4距陣鍵盤丄ED數碼管顯示,壹***可以到0-F顯示,妳可以稍微
改壹下就可以實現妳的功能了,如還有問題請發信息,希望能幫上妳!