编译没有问题,但上位机没有显示,泪目了,,,,
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit rxd=P3^0;
sbit txd=P3^1;
uint rec=0,flag=0;
uchar Fes[]="11111";
void ckinit();
void Fes_display(uint rrec);
void dispString(uchar *fes);
void Fes_search(uint mo,uint dd);
void send_byte(uchar by);
void send_string(uchar *p);
void main()
{
ckinit();
while (1)
{
if(flag==1)
{
Fes_display(rec);
send_string(Fes);
flag=0;
}
}
}
void ckinit()
{
TMOD = 0x20;
TR1 = 1;
SM0 = 0;
SM1 = 1;
REN = 1;
EA = 1;
ES = 1;
}
void ser() interrupt 4
{
uint temp=0;
if(RI)
{
RI = 0;
temp = SBUF;
rec=temp;
flag=1;
}
}
void Fes_display(uint rrec)
{
uint mmo,ddd;
mmo=rrec/100;
ddd=rrec%100;
Fes_search(mmo,ddd);
}
/*void PutString(uchar *TXStr)
{
ES=0;
while(*TXStr!=0)
{
SBUF=*TXStr;
while(TI==0);
TI=0;
TXStr++;
}
ES=1;
}
*/
void dispString(uchar *fes)
{
uint y=0;
while(*fes!=0)
{
Fes[y]=*fes;
fes++;
y++;
}
}
void Fes_search(uint mo,uint dd)
{
if ( mo == 1 && dd == 1 ){dispString("Ôaμ©");}
else if ( mo == 2 && dd == 14 ){dispString("Çéè˽ú");}
else if ( mo == 3 && dd == 8 ){dispString("¸¾Å®½ú");}
else if ( mo == 3 && dd == 12 ){dispString("Ö2ê÷½ú");}
else if ( mo == 4 && dd == 1 ){dispString("óTè˽ú");}//4
else if ( mo == 4 && dd == 8 ){dispString("¸′»î½ú");}
else if ( mo == 5 && dd == 1 ){dispString("àí¶ˉ½ú");}//5
else if ( mo == 5 && dd == 4 ){dispString("ÎåËÄÇàÄê½ú");}
else if ( mo == 6 && dd == 1 ){dispString("¶ùíˉ½ú");}//6
else if ( mo == 8 && dd == 1 ){dispString("½¨¾ü½ú");}//8
else if ( mo == 9 && dd == 10 ){dispString("½ìê|½ú");}//9
else if ( mo == 10 && dd == 1 ){dispString("1úÇì½ú");}//10
else if ( mo == 12 && dd == 24 ){dispString("ƽ°2ò1");}
else if ( mo == 12 && dd == 25 ){dispString("ê¥μ®½ú");}
}
void send_byte(uchar by)
{
SBUF = by;
SBUF = 1;
while(!TI);
TI = 0;
}
void send_string(uchar *p)
{
ES=0;
while(*p!= '\0')
{
send_byte(*p);
p++;
}
ES=1;
}
|