串口通讯c语言程序详解

作者:彼岸花开 | 创建时间: 2023-03-25
串口通讯c语言程序详解,使用串口和单片机通讯的方法详解...
串口通讯c语言程序详解

操作方法

利用串口调试助手,往单片机发送数据,单片机接收到数据再发回电脑,进行串口调试

#include "reg52.h"//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#define uint unsigned int #define uchar unsigned char uchar a,flag;

/******************************************************************/ /*                    延时函数声明                                */ /******************************************************************/ /*void mdelay(uint t) { uchar n; for(;t>0;t--) for(n=0;n<125;n++) {;} }*/ void mdelay(uint t) { uchar n; while(t--) { for(n=0;n<123;n++) {;} } }

/******************************************************************/ /*                   主函数                                       */ /******************************************************************/ void main() { TMOD=0x20;//设置定时器0为工作方式1 TH1=0xfd;//设置初值 TL1=0xfd; TR1=1;//启动定时器 SM0=0; SM1=1;//设置串口为方式1 REN=1;//接收使能 EA=1;//开总中断开关 ES=1;//打开串口中断开关

while(1)//单片机发送数据 { if(flag==1) { ES=0;//关闭串口中断 flag=0;//数据清零 SBUF=a;//写数据 while(!TI);//数据没有发完TI一直是1,等待数据发送结束 TI=0;//数据发送完毕要软件清零 ES=1;//打开串口中断 } } }

/******************************************************************/ /*                   定时器0                                       */ /******************************************************************/ void serial() interrupt 4//单片机接收数据 { a=SBUF;//往单片机写入一个数据 P0=a; RI=0;//数据接收完毕软件清零 flag=1;//标志位 收到数据为1 }

本经验只供参考,如有不足,还请见谅,如果有什么疑问请在下边留言,及时给你解答。。。

点击展开全文

更多推荐