看你也是新手,也没有分,花5分钟给你写一个参考程序,自己慢慢研究,这个程序你可以直接拿去用。
#include "REG52H"
unsigned char MAIN_FLG;
unsigned char MAIN_BUF;
unsigned char Cverrput[5]; //温度显示数组
/
配置USART串口波特率初始化
/
void SysemInit(void)
{
TMOD = 0x20;
TH1 = 0xFD; //定时器装入初值9600波特率
TL1 = 0xFD;
TR1 = 1; //启动定时器
REN = 1; //REN = 1允许串口接收数据否则停止接收
SM0 = 0; //模式选择
SM1 = 1; //模式选择 SM0 = 0; SM1 = 1; 10位异步收发8位数据
ES = 1; //开启串口中断
EA = 1; //开启总中断
}
/
程序主函数
/
int main(void)
{
SysemInit();
while(1)
{
switch (MAIN_BUF)
{
case 0xAA: //接收数据符合点亮LED1
P1 = 0xFE;
break;
case 0xBB:
P1 = 0xFD; //接收数据符合点亮LED2
break;
case 0xDD:
P1 = 0xFB; //接收数据符合点亮LED1
break;
case 0xCC:
P1 = 0xFB; //接收数据符合点亮LED1
break;
default:P1 = 0xFF; //接收数据不符合关闭所有LED
break;
}
}
}
/
串口中断服务程序,单片机开启串口中断
/
void USART_TI(void) interrupt 4
{
while(RI == 1) //判断接收标志,如果有数据接收RI被置位
{
MAIN_BUF = SBUF; //下位机把接收到上位机数据赋值给MAIN_BUF变量
RI = 0; //RI被硬件置位必须软件清除标志
}
}
这要看你的上位机和下位机都是什么了,下位机应该是单片机吧,那肯定要单独写程序啦。
上拉机是电脑吧,当然也得单独写程序啦,两者的程序不可能公用的。
如果两者都是电脑,那程序是可以公用了。
以上就是关于单片机串口通信,上位机发送一串字符,单片机判断字符串 是否相符如果相符就点亮一个LED灯。最好能有实例全部的内容,包括:单片机串口通信,上位机发送一串字符,单片机判断字符串 是否相符如果相符就点亮一个LED灯。最好能有实例、实现上位机和下位机串口通信,两者都要单独编程吗、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)