一直有错误,在那个key=keyscanf();
加上return val;也有错误,不知道为什么
#include"reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
#define DIG P0
#define KEY P1
sbit LSA = P2^2;
sbit LSB = P2^3;
sbit LSC = P2^4;
u8 code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void keyscanf();
void delay(u16 i)
{
while (i--);
}
void dig(u8 val)
{
LSA = 1;LSB = 1;LSC = 1;
DIG = table[val/10];
delay(1000); //ÑÓʱ
DIG = 0x00; //ÏûÒþ
LSA = 0;LSB = 1;LSC = 1;
DIG = table[val%10];
delay(1000);
DIG = 0x00;
}
void keyscanf()
{
u8 val;
KEY=0x0f;
if (KEY!=0x0f)
{
delay(1000);
if (KEY!=0x0f)
{
switch (KEY)
{
case 0x07 : val=1; break;
case 0x0d : val=2; break;
case 0x0b : val=3; break;
case 0x0e : val=4; break;
default : break;
}
KEY=0xf0;
switch(KEY)
{
case 0x70 : val=val+0; break;
case 0xd0 : val=val+4; break;
case 0xb0 : val=val+8; break;
case 0xe0 : val=val+12; break;
default : break;
}
}
}
}
void main()
{
u8 key=0;
u8 key1=0;
while (1);
{
key=keyscanf();
if(key!=0)
{
key1=key;
}
dig(key1);
}
}
加上return val;也有错误,不知道为什么
#include"reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
#define DIG P0
#define KEY P1
sbit LSA = P2^2;
sbit LSB = P2^3;
sbit LSC = P2^4;
u8 code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void keyscanf();
void delay(u16 i)
{
while (i--);
}
void dig(u8 val)
{
LSA = 1;LSB = 1;LSC = 1;
DIG = table[val/10];
delay(1000); //ÑÓʱ
DIG = 0x00; //ÏûÒþ
LSA = 0;LSB = 1;LSC = 1;
DIG = table[val%10];
delay(1000);
DIG = 0x00;
}
void keyscanf()
{
u8 val;
KEY=0x0f;
if (KEY!=0x0f)
{
delay(1000);
if (KEY!=0x0f)
{
switch (KEY)
{
case 0x07 : val=1; break;
case 0x0d : val=2; break;
case 0x0b : val=3; break;
case 0x0e : val=4; break;
default : break;
}
KEY=0xf0;
switch(KEY)
{
case 0x70 : val=val+0; break;
case 0xd0 : val=val+4; break;
case 0xb0 : val=val+8; break;
case 0xe0 : val=val+12; break;
default : break;
}
}
}
}
void main()
{
u8 key=0;
u8 key1=0;
while (1);
{
key=keyscanf();
if(key!=0)
{
key1=key;
}
dig(key1);
}
}