#include<reg51.h>
#include<stdio.h>
#include <intrins.h>
#include "lcd1602.h"
void delayms(unsigned int i);
unsigned char b[16];
unsigned char i;
unsigned char x;
void rs_dmx() interrupt 4 using 2
{
if( SBUF != '#')//遇到#终止写
{
b[i] = SBUF;
GotoXY(x,0);
Printc(b[i]);
x++;
SBUF = b[i];
while(TI==0);TI=0; //等待发送完毕
i++;
}
RI=0;
}
main()
{
LCD_Initial();
LCD_clear();
GotoXY(0,0);
GotoXY(0,1);
Print("Start OK!");
x=0;
EA=1;
TMOD=0x21;
TH1=0xfd;//波速率设置为9600
TR1=1;
EA=1;
SCON=0XD0;
ES=1;//串口中断允许
while(1)
{
}
}
为什么在lcd1602上输出接收到的数据时总是在第一格显示呢?按说应该可以自动向后加的啊。 |