51单片机与PC串口通信用12864无法显示的问题

2024-12-20 09:23:56
推荐回答(3个)
回答1:

如果硬件没有问题的话,你的软件程序可以拆分为以下考虑
1、串口通信有问题吗?你先保证PC串口调试软件发一个数据,单片机能准确收到。
调试办法,单片机接收到后,体现在io管脚上或指示灯指示。如pc发送0x55,看看单片机是不是收到了;

2、单片机的lcd液晶显示
你用的是12864不知道控制器是什么信号的,KS0107,T6963C还是ST7920,对照液晶说明书,关键字设置,点亮液晶,比如在固定位置显示一个字符

如果上面两条都实现了,

把两段程序柔和到一起就ok了

回答2:

主函数的while循环
while(1)
{
if(flag==1)//接受到数据后发送
{
displaylistchar(1,1,a);
ES=0; //单片机发送数据
for(i=0;i<90;i++)
{
SBUF=a;
while(!TI);
TI=0;
}
flag=0;
ES=1;
}
}

中断函数
void serial() interrupt 4 //中断函数内为单片机接受数据
{
if(RI)
{
RI = 0;
a[index++]=SBUF; //index为全局变量
if(index == 90)
{
index = 0;
flag = 1;
}
}
}

回答3:

你这个程序错一堆, 不说别的调用函数放在后面又没申明