#include<reg51.h>
unsigned char num='0';
void initlcd()
{
writecmd(0x38);
writecmd(0x0c);
writecmd(0x06);
writecmd(0x01);
}
void key_scan()
{
unsigned char temp0,temp1,temp;
P1=0xf0;
if(P1!=0xf0)//有键按下
{
delay(20);
temp0=P1;
P1=0x0f;
if(P1!=0x0f)
{
temp1=P1;
}
}
temp=temp0+temp1;
switch(temp)
{
case 0xee:num='A';break;
case 0xed:num='B';break;
case 0xeb:num='C';break;
case 0xe7:num='D';break;
case 0xde:num='E';break;
case 0xdd:num='F';break;
case 0xdb:num='G';break;
case 0xd7:num='H';break;
case 0xbe:num='I';break;
case 0xbd:num='J';break;
case 0xbb:num='K';break;
case 0xb7:num='L';break;
case 0x7e:num='M';break;
case 0x7d:num='N';break;
case 0x7b:num='O';break;
case 0x77:num='P';break;
}
}
void LCD()
{
initlcd();
writecmd(0x82);
writedat(num);
}
void main ()
{
while(1)
{
void key_scan();
void LCD();
}
}
没仔细看函数实现,主程序的函数调用就有问题
while(1)
{
void key_scan();
void LCD();
}
调用函数要把那个void去掉,你加上void的话,这里只是个函数的声明而已,没有任何函数的调用,当然就没效果。