|
|
接線: R1 --- P1.3 C1 --- P1.7
R2 --- P1.2 C1 --- P1.6
R3 --- P1.1 C1 --- P1.5
R4 --- P1.0 C1 --- P1.4
按鍵分布:
0 4 8 12
1 5 9 13
2 5 10 14
3 7 11 1
單片機(jī)源程序如下:
- /*------------------------------------------------
- 延時函數(shù)
- ------------------------------------------------*/
- void DelayMs(int ms)
- {
- int i;
- while(ms--)for(i=0;i<120;i++);
- }
- /*------------------------------------------------
- 按鍵值掃描函數(shù),返回掃鍵值
- ------------------------------------------------*/
- unsigned char KeyScan()
- {
- unsigned char value=20;
- key=0x0f;
- if(key!=0x0f)
- {
- DelayMs(50);
- if(key!=0x0f)
- {
- key=0x0f; //測試哪列按下
- switch(key)
- {
- case 0x07:value=0;break; //0列按下
- case 0x0b:value=1;break; //1列按下
- case 0x0d:value=2;break; //2列按下
- case 0x0e:value=3;break; //3列按下
- }
- }
- }
- key=0xf0;
- if(key!=0xf0)
- {
- DelayMs(50);
- if(key!=0xf0)
- {
- key=0xf0; //測試哪行按下
- switch(key)
- {
- case 0x70:value=value;break; //0行按下
- case 0xb0:value=value+4;break; //1行按下
- case 0xd0:value=value+8;break; //2行按下
- case 0xe0:value=value+12;break; //3行按下
- }
- }
- }
- return value;//返回按下的按鍵值
- }
復(fù)制代碼 |
評分
-
查看全部評分
|