#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
#define DIG P0 //数码管显示io
#define KEY P1 //矩阵按键io
char a=0;
u8 x;
u8 y;
char s=x*y-1;
u8 code fuhao[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(u16 i)
{
while(i--);
}
void juzhen()
{
KEY=0x0f; //高4低,低4高
if(KEY!=0x0f) //有按键被按下
{
delay(1000); //防误触?
if(KEY!=0x0f)
{
switch(KEY) //按键所在列 // 设i行和j列 s结果=i*j-1
{
case(0x07):y=1;break;// 1
case(0x0b):y=2;break;// 2
case(0x0d):y=3;break;// 3
case(0x0e):y=4;break;// 4
}
KEY=0xf0; //高4低,低4高
switch(KEY) //按键所在行
{
case(0x70):x=1;break; // 1
case(0xb0):x=2;break;// 2
case(0xd0):x=3;break; // 3
case(0xe0):x=4;break; // 4
}
while((a<50)&&(KEY!=0xf0)) //长按退出
{
delay(1000);
a++;
}
}
}
}
void main()
{
while(1);
{
juzhen();
DIG=fuhao[ s];
}
}
测试时报错c247,有大佬知道犯了什么错吗
|