发一个51单片机的模拟串口代码

本文提供了一个用51单片机模拟串口通信的程序,适用于资源有限的情况。代码中包括了发送和接收的实现,通过定时器进行波特率的控制,并处理了数据的起始和结束位。程序可以用于扩展单片机的串行接口功能。
摘要由CSDN通过智能技术生成
由于8位单片机一般只有一个串行接口,往往不够用,只能自己写一个模拟串口的程序,下面这个程序是自己早先写的,放上来,对别人也许有点用,注意接收端同时接到P3.2(INT0)

#include <at89X52.h>
#define DOUBLE_BAUDRATE

#define DATA_CORRUPT 0x80
#define BUFFER_OVERFLOW  0x81

#define F_OSC    11059200

#define BAUDRATE 9600 //115200//57600//19200//9600

#define BAUDRATE_CONST (256 - F_OSC/12/BAUDRATE)

#define HALF_BAUDRATE (256 - F_OSC/12/BAUDRATE/2)

#define DELAY_TIME 50;//ms
#define DELAY_CONST (DELAY_TIME/1000 * F_OSC)/12


#define DISABLE_RECEIVE() EX0 = 0;
#define ENABLE_RECEIVE() EX0 = 1;

#define RXD P1_2
#define TXD P1_3

char idata buffer[32] ;

unsigned char bdata DataBuf;
sbit DataBuf_0 = DataBuf ^ 0;
sbit DataBuf_1 = DataBuf ^ 1;
sbit DataBuf_2 = DataBuf ^ 2;
sbit DataBu
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值