當前位置:編程學習大全網 - 編程語言 - MC68HC908GP32單片機的4*4鍵盤C程序怎樣寫啊?

MC68HC908GP32單片機的4*4鍵盤C程序怎樣寫啊?

* 4x4矩陣鍵盤的掃描程序

測試通過*/

#include<reg51.h>

sbit P1_0=P1^0;

sbit P1_1=P1^1;

sbit P1_2=P1^2;

sbit P1_3=P1^3;

sbit P2_7=P2^7;

sbit P3_7=P3^7;

unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99, //0~4

0x92,0x82,0xF8,0x80,0x90, //5~9

0x88,0x83,0xC6,0xA1,0x86,0x8E}; //A~F

void KeyScan();

void delay10ms(unsigned char time);

void Dispaly(unsigned char k);

void buzzer();

unsigned char key,temp;

void main() //主程序

{

while(1)

{

KeyScan();

}

}

void KeyScan() //按鍵掃描子程序

{

P1=0xFF;

P1_0=0;

temp=P1;

temp&=0xF0;

if(temp !=0xF0)

{buzzer();

delay10ms(10);

temp=P1;

temp&=0xF0;

if(temp !=0xF0)

{

temp=P1;

temp&=0xF0;

switch(temp)

{

case 0xE0:

key=0;break;

case 0xD0:

key=4;break;

case 0xB0:

key=8;break;

case 0x70:

key=12;break;

}

Dispaly(key);

}

}

P1=0xFF;

P1_1=0;

temp=P1;

temp&=0xF0;

if(temp !=0xF0)

{buzzer();

delay10ms(10);

temp=P1;

temp&=0xF0;

if(temp !=0xF0)

{

temp=P1;

temp&=0xF0;

switch(temp)

{

case 0xE0:

key=1;break;

case 0xD0:

key=5;break;

case 0xB0:

key=9;break;

case 0x70:

key=13;break;

}

Dispaly(key);

}

}

P1=0xFF;

P1_2=0;

temp=P1;

temp&=0xF0;

if(temp !=0xF0)

{buzzer();

delay10ms(10);

temp=P1;

temp&=0xF0;

if(temp !=0xF0)

{

temp=P1;

temp&=0xF0;

switch(temp)

{

case 0xE0:

key=2;break;

case 0xD0:

key=6;break;

case 0xB0:

key=10;break;

case 0x70:

key=14;break;

}

Dispaly(key);

}

}

P1=0xFF;

P1_3=0;

temp=P1;

temp&=0xF0;

if(temp !=0xF0)

{buzzer();

delay10ms(10);

temp=P1;

temp&=0xF0;

if(temp !=0xF0)

{

temp=P1;

temp&=0xF0;

switch(temp)

{

case 0xE0:

key=3;break;

case 0xD0:

key=7;break;

case 0xB0:

key=11;break;

case 0x70:

key=15;break;

}

Dispaly(key);

}

}

}

//延時程序

void delay10ms(unsigned char time)

{

unsigned char i;

while(time--)

{

for(i=0;i<120;i++) ;

}

}

void Dispaly(unsigned char k) //顯示程序

{

P0=table[k];

P2_7=0;

}

void buzzer()

{

P3_7=0;

delay10ms(20);

P3_7=1;

}

  • 上一篇:塞爾達傳說中的荒野之難
  • 下一篇:2022年成都周邊哪裏有免費玩水的地方?
  • copyright 2024編程學習大全網