|
#include<REG52.H>
#define uchar unsigned char
#define uint unsigned int
uchar code a1[]={"ok#"};
uchar code a2[]={"..>>OK#"};
uchar code a3[]={"..well#"};
int data b1[10];
int data b2[8]={0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7};
int q=0;
uchar code *p;
void delay(uint k)
{
uint data i,j;
for(i=0;i<k;i++)
{
for(j=0;j<121;j++){;}
}
}
void send(uchar code *a)
{
int m=0;
while(a[m]!=0x23)
{
SBUF=a[m];
m++;
while(TI==0);
TI=0;
delay(100);
}
m=0;
}
void send1(int data *c)
{
int q=0;
while(c[q]!=0)
{
SBUF=c[q];
q++;
while(TI==0);
TI=0;
delay(100);
}
q=0;
}
void read(int data *b)
{
int n=0;
while(n<1)
{
if(P1==0xFE) //1
{
b[n]=0x31;
n++;
}
if(P1==0xFD) //2
{
b[n]=0x32;
n++;
}
if(P1==0xFB) //3
{
b[n]=0x33;
n++;
}
if(P1==0xF7) //4
{
b[n]=0x34;
n++;
}
if(P1==0xEF) //5
{
b[n]=0x35;
n++;
}
if(P1==0xDF) //6
{
b[n]=0x36;
n++;
}
if(P1==0xBF) //7
{
b[n]=0x37;
n++;
}
if(P1==0x7F) //8
{
b[n]=0x38;
n++;
}
if(P1==0xFC) //9
{
b[n]=0x39;
n++;
}
if(P1==0xF9) //0
{
b[n]=0x30;
n++;
}
}
b[n]=0;
}
int read1(int data *d,int data f)
{ uchar t;
t=SBUF;
if(t==0x31)
{ d[f]=0xF9;
send(a2);
}
if(t==0x32)
{ d[f]=0xA4;
send(a3);
}
if(t==0x33)
{d[f]=0xB0;
}
if(t==0x34)
{d[f]=0x99;
}
if(t==0x35)
{d[f]=0x92;
}
if(t==0x36)
{d[f]=0x82;
}
if(t==0x37)
{d[f]=0xF8;
}
if(t==0x38)
{d[f]=0x80;
}
if(t==0x39)
{d[f]=0x90;
}
if(t==0x30)
{d[f]=0xC0;
}
return(d[f]);
}
void send2(int e)
{
P0=e;
P2=q;
delay(100);
}
void main(void)
{
int h=-1;
TMOD=0x20;
TL1=0xFD;
TH1=0xFD;
TR1=1;
SCON=0x50;
p=a1;
send(p);
while(1)
{for(q=0;q<8;q++)
{send2(b2[q]);
if(P1!=0xFF)
{delay(10);
if(P1!=0xFF) //按鍵
{
read(b1);
send1(b1);
}
}
if(RI==1) //數(shù)碼管修改
{ RI=0;
b2[h]=read1(b2,h);
h++;
if(h==8)
{h=-1;}
}
}
}
}
|
|