单片机串口通信,上位机发送一串字符,单片机判断字符串 是否相符如果相符就点亮一个LED灯。最好能有实例

单片机串口通信,上位机发送一串字符,单片机判断字符串 是否相符如果相符就点亮一个LED灯。最好能有实例,第1张

看你也是新手,也没有分,花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灯。最好能有实例、实现上位机和下位机串口通信,两者都要单独编程吗、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9808693.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存