我本想用12864做一个串口实时控制的公告牌,可是不知道为什么只要我加上显示函数,串口通信就不行了,我是把单片机接受的数据又返回计算机看的,不加显示部分还可以,加了之后计算机接收的数据就永远只有一个字节,不管发多少都一样,我把显示部分换成别的语句,也是一样,我是用串口调试助手看的。
void main()
{
PS=1;
SP=0x5f;
init_lcd();
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
lat_disp(0x00,0x00); //1284显示部分
chn_disp1(tab31);
img_disp1(tab32);
delay1 (8000); //显示部分结束
while(1)
{
if(flag==1)
{
ES=0;
flag=0;
SBUF=a;
while(!TI);
TI=0;
ES=1;
}
lat_disp(0x00,0x00); //这里只要加东西就不行了,不管加什么
clrram(); //
chn_disp(tab4); //
delay1 (8000); //
}
}
void ser() interrupt 4
{
RI=0;
led=SBUF; //这句是我用自己板子的灯看,没什么用的
flag=1;
a=SBUF;
}