单片机串行双机通信接收时采用中断方式程序代码如何写

单片机串行双机通信接收时采用中断方式程序代码如何写,第1张

试试一个叫单片机小精灵v1.2的工具吧,可以帮你生成指定波特率的代码。

这段代码是用软件生成的,51代码,12T,9600波特率。

主程序部分在大循环之前别忘了初始化串口和定时器(InitUART()已经初始化好了),当你的串口每接收到一个字节,就会产生一个串行中断,就会执行UARTInterrupt(void) interrupt 4里面的代码,做好数据接收处理就行。

#include <reg51.h>

void InitUART(void)

{

TMOD = 0x20

SCON = 0x50

TH1 = 0xFD

TL1 = TH1

PCON = 0x00

EA = 1

ES = 1

TR1 = 1

}

void main(void)

{

InitUART()

while(1)

}

void UARTInterrupt(void) interrupt 4

{

if(RI)

{

RI = 0

//add your code here!

}

else

TI = 0

}

void SendOneByte(unsigned char c)

{

SBUF = c

while(!TI)

TI = 0

}

你的中断服务函数作用是:

串口设备每接收一个字节数据(8位)便产生一次中断,并检测是否收到的是字符【,不是则放弃数据,是则保存到数组 jsbuf 里去,然后把随后接收到的字节数据也一一保存到这个数组去,直到接收到字符 】为止,同样保存,并设置标记 rflag;

一句话,就是要从接收的数据中,提取 【xxxx】数据;


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

原文地址: http://outofmemory.cn/yw/12190209.html

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

发表评论

登录后才能评论

评论列表(0条)

保存