第一范文网 - 专业文章范例文档资料分享平台

51单片机串口通信程序整理

来源:用户分享 时间:2025/6/11 3:59:50 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

单片机串口通信程序:

串口调试程序:(已通过编译) //串口调试程序 51单片机

/******************************************************************/ #include//头文件调用,写程序时都要加上

#define uint unsigned int//宏定义,为了后面定义变量书写简便 #define uchar unsigned char

/******************************************************************//*名称:主函数*/

/*内容:打开串口调试程序,将波特率设置为9600,无奇偶校验*/ /*晶振11.0592MHz,发送和接收使用的格式相同,如都使用*/ /*字符型格式,在发送框输入hello,ILoveMCU,在接*/ /*收框中同样可以看到相同字符,说明设置和通信正确*/

/******************************************************************/

//******波特率设置及串口初始化 #define baudrate 9600UL

#define fosc 11059200UL//其中,UL是不能省略的,代表长整型。 unsigned char a,flag; void serial_init(void)

{ unsigned char S_MOD=1;

TMOD=0x20;//T1工作在方式2

SCON=0x50;//SM0=0 SM1=1->串口通信在模式1, //SM2=0->多级通信中使用的位,REN=1; PCON=0;

if((PCON&0x80)==0x80) S_MOD=2;

TH1=256-(fosc*S_MOD)/(baudrate*12*32);//其中SMOD=0, TL1=256-(fosc*S_MOD)/(baudrate*12*32); TR1=1; ES=1; EA=1; }

//************* void main(void) {

serial_init(); //初始化 while(1)

//主循环不做任何动作 {} }

/******************************************************************//*串口中断程序*/

/******************************************************************/

void UART_SER() interrupt 4 { uchar Temp;//定义临时变量 if(RI) { RI=0;

//标志位清零

Temp=SBUF;

//读入缓冲区的值

P1=Temp;//把值输出到P1口,用于观察 SBUF=Temp;//把+接收到的值再发回电脑端 } if(TI)

//如果是发送标志位,清零 TI=0; }

单片机通信,PC向单片机发送一个数据存在SBUF中。将SBUF中的数据转存到在data区定义的一个数组中:

static unsigned char UART_Receive_Buf[50]; static unsigned char Address_Buf=0; if(RI) { RI=0;

UART_Receive_Buf[Address_Buf]=SBUF; Address_Buf++; if(Address_Buf>=50) { Address_Buf=0; } }

51单片机串口初始化:(12M或11.0592M晶振都适用) #include #define baudrate 9600UL

#define fosc 11059200UL//其中,UL是不能省略的,代表长整型。 unsigned char a,flag; void serial_init(void) { unsigned char S_MOD=1; TMOD=0x20;//T1工作在方式2

SCON=0x50;//SM0=0 SM1=1->串口通信在模式1, //SM2=0->多级通信中使用的位,REN=1; PCON=0;

if((PCON&0x80)==0x80) S_MOD=2;

TH1=256-(fosc*S_MOD)/(baudrate*12*32);//其中SMOD=0, TL1=256-(fosc*S_MOD)/(baudrate*12*32); TR1=1;ES=1;EA=1; }

51单片机串口中断: http://wenku.http://www.diyifanwen.net//link?url=qWEYxQ_v98tNEDMTOxxSJWraAgqoyg2CXoE3Qb7VarBW3u5j9jXmI2fZpJYh6EYca12EpFFLNucBXTNg4B7WxJwGuSxn6WRXYJUAZXjUyuy

搜索更多关于: 51单片机串口通信程序整理 的文档
51单片机串口通信程序整理.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6zsg53uyv17u3cm9al6h_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top