串口通信(C源码)测试版

本源码是用来进行简单测试C51利用串口收发数据的小程序。在protues7.5 下通过测试。

-------------------------------------------------------------------------------------------

#include<reg51.h>

unsigned char read_data; //数据存储变量

unsigned char flag=0; //收发数据标志

 

void init()  //串口初始化

{

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

SCON=0x50; //串口工作在方式1,并允许接收数据

TH1=0xfd; //定时器装初值

TL1=0xfd;

TR1=1; //启动定时器

EA=1; //中断允许打开

ES=1; //允许串口中断

 

void main()

{

init();

while(1)

{

if(flag==1) //flag=1表示收到数据

{

ES=0; //防止造成串口中断进入死循环

SBUF=read_data;  //发送数据

while(!TI);  //判断是否发送完毕

TI=0;  //软件清发送中断标志

flag=0;

ES=1;

}

}

}

 

void s_int() interrupt 4  //串口中断处理

{

RI=0;

read_data=SBUF; //转存接收到的数据

flag=1;

}

--------------------------------------------------------------------------------------------

 

说明:测试使用了,虚拟串口软件,和串口助手。虚拟串口软件虚拟了两串口:COM3,COM4。串口助手使用的是COM4,protues里的串口使用的是COM3,波特率全为9600bps.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值