當前位置:編程學習大全網 - 編程語言 - 向上編程

向上編程

給妳壹個參考程序,動態掃描數碼管顯示,鍵盤是壹個4*4的矩陣鍵盤,采用行列掃描方式,可以按下鍵盤上的數字,顯示在數碼管上。

PS:雖然這個程序不加修改不壹定能在妳的開發板上運行,但是妳可以把這個程序作為模板,自己修改就能達到精通的目的。剛開始學編程的時候,妳是在不斷的模仿別人寫的程序。

//行列掃描器,可以自己定義端口和掃描方式。下面簡單介紹壹下。

# include & ltreg52.h & gt//包含頭文件

#定義uchar無符號字符

#定義uint無符號整數

無符號char const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

0x77,0x7c,0x39,0x5e,0x79,0x 71 };//0-F

uchar鍵掃描(void);

無效延遲(uint I);

void main()

{

uchar鍵;

P2 = 0x 00;//1數碼管會在您按下相應的鍵時顯示鍵上的字符。

while(1)

{

key = key scan();//調用鍵盤掃描,

開關(鑰匙)

{

情況0x7e:P0 = do fly[0];打破;//0按相應的鍵顯示相應的代碼值。

案例0x7d:P0 = do fly[1];打破;//1

情況0x7b:P0 = do fly[2];打破;//2

情況0x 77:P0 = do fly[3];打破;//3

案例0x be:P0 = do fly[4];打破;//4

案例0x BD:P0 = do fly[5];打破;//5

案例0x bb:P0 = do fly[6];打破;//6

案例0xb 7:P0 = do fly[7];打破;//7

案例0x de:P0 = do fly[8];打破;//8

案例0x DD:P0 = do fly[9];打破;//9

案例0x db:P0 = do fly[10];打破;//a

案例0xd 7:P0 = do fly[11];打破;//b

案例0x ee:P0 = do fly[12];打破;//c

案例0x ed:P0 = do fly[13];打破;//d

case 0xeb:P0 = do fly[14];打破;//e

案例0xe 7:P0 = do fly[15];打破;//f

}

}

}

Uchar keyscan(void)//鍵盤掃描功能,采用行列反轉掃描方式。

{

uchar cord_h,cord _ l;//行和列值

P3 = 0x0f;//行線輸出都是0。

P3 & amp;0x0f//讀入列行值

if(cord_h!=0x0f) //先檢查按鍵是否按下。

{

延時(100);//去搖動

if(cord_h!=0x0f)

{

P3 & amp;0x0f//讀入列行值

P3 = cord _ h | 0xf 0;//輸出當前列線值。

P3 & amp;0xf0//讀入行線值

return(cord _ h+cord _ l);//鍵盤最後壹個組合代碼值

}

} return(0x ff);//返回值。

}

Void delay(uint i)//延遲函數

{

while(I-);

}

  • 上一篇:加工中心編程對電腦配置要求高嗎
  • 下一篇:從編程角度看QQ空間代碼的原理
  • copyright 2024編程學習大全網