我本想用12864做一個(gè)串口實(shí)時(shí)控制的公告牌,可是不知道為什么只要我加上顯示函數(shù),串口通信就不行了,我是把單片機(jī)接受的數(shù)據(jù)又返回計(jì)算機(jī)看的,不加顯示部分還可以,加了之后計(jì)算機(jī)接收的數(shù)據(jù)就永遠(yuǎn)只有一個(gè)字節(jié),不管發(fā)多少都一樣,我把顯示部分換成別的語句,也是一樣,我是用串口調(diào)試助手看的。
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); //顯示部分結(jié)束
while(1)
{
if(flag==1)
{
ES=0;
flag=0;
SBUF=a;
while(!TI);
TI=0;
ES=1;
}
lat_disp(0x00,0x00); //這里只要加?xùn)|西就不行了,不管加什么
clrram(); //
chn_disp(tab4); //
delay1 (8000); //
}
}
void ser() interrupt 4
{
RI=0;
led=SBUF; //這句是我用自己板子的燈看,沒什么用的
flag=1;
a=SBUF;
}