<返回更多

一个串口通讯的简单项目分析

2022-10-02  今日头条  理思录
加入收藏

项目描述:

串口是一个比较常见的通讯形式,本项目使用一个单片机作为串口数据发送装置的模拟,另外一个单片机作为串口接收的模拟。

单片机使用传统的8051单片机,软件开发工具使用mikro C。

仿真软件使用proteus。

注意:proteus的波特率设置为119200和单片机设置为9600是对应的,可能是软件的一些BUG吧。


 

以上是发送数据的代码:

目的是发送2个字节的数据,分别是0xaa 0x55 和0x55 0xaa

发送中间可以设置不同时间长度的延时,用来测试接收数据对于不同延时的响应情况。

 

void main() { UART1_Init(9600); while(1) { //UART1_Write_Text("aaaa"); UART1_Write(0xaa); delay_ms(5); UART1_Write(0x55); delay_ms(50); UART1_Write(0x55); delay_ms(8); UART1_Write(0xaa); delay_ms(50); /*P2=0xff; delay_ms(50); P2=0;*/ } }

 

接收串口的单片机程序为:


 

 

unsigned char receive[2]; unsigned char i; void main() { UART1_Init(9600); i=0; while(1) { if (UART1_Data_Ready() && i<2) { receive[i] = UART1_Read(); i++; } if(i>1) { i=0; /*P0= receive[0]; P2= receive[1];*/ if(receive[0]==0xaa && receive[1]==0x55) { P2_0_bit=1; } if(receive[1]==0xaa && receive[0]==0x55) { P2_0_bit=0; } receive[0]=0; } } }

 

proteus仿真为:


 


 

代码所在的位置:


 

 

lglgang/res (github.com)

 

所用软件的版本:


 

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>