#include<REG51.H>
#include<ABSACC.H>
char EON(unsigned char v);
void w_sendc(unsigned char c);
void delay(unsigned long l);
void set_data(unsigned char d1,unsigned char d2,char v,unsigned char w);
sbit flag1 =P1^3;
sbit flag2 =P2^3;
unsigned char code s_con[10]={0x30, 0x31+0x80, 0x32+0x80, 0x33, 0x34+0x80, 0x35, 0x36, 0x37+0x80, 0x38+0x80, 0x39};
main()
{
TMOD=0x20; //T1方式2
TL1=0x0f3; //2400
TH1=0x0f3;
SCON=0x50; //串口方式1
PCON=0;
TR1=1;
delay(20000);
flag1=1;
flag2=0;
set_data(0x53,0x4c+0x80,81,5);
set_data(0x58+0x80,0x53,1,0);
/*w_sendc(4+0x80);
w_sendc(0x30);
w_sendc(0x30);
w_sendc(0x30);
w_sendc(0x30);
w_sendc(2+0x80);
w_sendc(0x58+0x80);
w_sendc(0x53);
w_sendc(0x30);
w_sendc(0x30);
w_sendc(0x30);
w_sendc(0x31+0x80);
w_sendc(3);
w_sendc(9);*/
while(1)
{
delay(50000);
flag1=!flag1;
flag2=!flag2;
}
}
char EON(unsigned char v)
{
unsigned char i,j;
j=0;
for (i=0x80 ; i!=0 ; i >>= 1)
{
if (i & v) j=0x80-j;
}
return j+v;
}
void w_sendc(unsigned char c)
{
TI=0;
SBUF=c;
while(TI==0);
}
void set_data(unsigned char d1,unsigned char d2,char v,unsigned char w)
{
char t,i;
if(v<0) t=0-v;
else t=v;
w_sendc(4+0x80);
w_sendc(0x30);
w_sendc(0x30);
w_sendc(0x30);
w_sendc(0x30);
w_sendc(0x2+0x80);
i=0;
w_sendc(d1);
i ^= d1;
w_sendc(d2);
i ^= d2;
if (v<0)
{
w_sendc(0x2d);
i ^= 0x2d;
};
w_sendc(s_con[((t/100)%10)]);
i ^= s_con[((t/100)%10)];
w_sendc(s_con[((t/10)%10)]);
i ^= s_con[((t/10)%10)];
w_sendc(s_con[(t%10)]);
i ^= s_con[(t%10)];
w_sendc(0x2e);
i ^=0x2e;
if(w>=10)
{
w_sendc(s_con[(w/10)%10]);
i ^= s_con[(w/10)%10];
};
w_sendc(s_con[(w%10)]);
i ^= s_con[(w%10)];
w_sendc(3);
i ^= 3;
w_sendc(EON(i));
delay(1000);
}
/*char RECEIVE_DATA(void)
{
char d;
RI=0;
d=SBUF;
while(RI==0);
return(d);
}
*/
void delay(unsigned long l)
{
while(l--);
}