上位机串口发送至单片机1602液晶
if(buf!=0x0D)
{
if(buf!=0x0A)
{
temp =buf;
if(count<16)
{
RXDdata[count]=temp;
count++;
if(count==16)
playflag=1;
}
}
}
ES = 1; //允许串口中断
}
/*********************************************************
数据显示函数
*********************************************************/
void play()
{
if(playflag)
{
lcd_pos(0x40); //设置位置为第二行
for(m=0;m<16;m++)
{
lcd_wdat(cdis2[m]); //清LCD1602第二行
delay1(5);
}
lcd_pos(0x40); //设置位置为第二行
for(m=0;m<16;m++)
{
// lcd_pos(0x40+m); //设置显示位置为第二行
lcd_wdat(RXDdata[m]); //显示字符
delay1(5);
}
playflag=0;
count=0x00;
for(m=0;m<16;m++)
{
RXDdata[m]=0x20; //清显存单元
delay1(5);
}
}
}
/*********************************************************
主函数
*********************************************************/
void main(void)
{
P0 = 0xff;
P2 = 0xff;
SCON=0x50; //设定串口工作方式
PCON=0x00; //波特率不倍增
TMOD=0x20; //定时器1工作于8位自动重载模式, 用于产生波特率
EA=1;
ES = 1; //允许串口中断
TL1=0xfd;
TH1=0xfd; //波特率9600
TR1=1;
lcd_init();
lcd_pos(0x00); //设置显示位置为第一行
for(m=0;m<16;m++)
{
lcd_wdat(cdis1[m]); //显示字符
delay1(5);
}
lcd_pos(0x40); //设置显示位置为第二行
for(m=0;m<16;m++)
{
lcd_wdat(cdis2[m]); //显示字符
delay1(5);
}
while(1)
{
play();
}
}
/*********************************************************/
上位机串口发送单片机1602液 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)