/
#include “string.h”
#include”stdio.h”
#include
sfr16 DPTR = 0x82;
typedef unsigned char INT8U;
typedef unsigned int INT16U;
typedef unsigned char uint8_t;
typedef unsigned int uint16_t;
typedef unsigned int uchar;
typedef unsigned char byte;
typedef unsigned int word;
#define YES 1
#define NO 0
//界说运用哪个定时器, 只可界说一个
#define TIMER_0
//#define TIMER_1
//界说串口收、发送管脚。
sbit rs_TXD = P2^1;
sbit rs_RXD = P2^0;
//依据定时器确认参数
#ifdef TIMER_0
#endif
#ifdef TIMER_1
#endif
INT8U bdata rs_BUF; //串行收、发时用的移位暂存器。
sbit rs_BUF_bit7 = rs_BUF^7; //移位暂存器的最高位。
INT8U rs_shift_count; //移位计数器。
INT8U bdata rsFlags;
sbit rs_f_TI = rsFlags^0; //0:正在发送; 1: 一个字符结束
sbit rs_f_RI_enable = rsFlags^1; //0:制止接纳; 1:答应接纳
sbit rs_f_TI_enable = rsFlags^2; //0:制止发送; 1:答应发送
//挑选以下一个晶体频率
//#define Fosc 6000000 //6MHz
#define Fosc 11059200 //11.059MHz
//#define Fosc 12000000
//#define Fosc 18432000
//#define Fosc 20000000
//#define Fosc 24000000
//#define Fosc 30000000
//#define Fosc 40000000
//挑选以下一个波特率:
//#efine Baud 300 //11.059MHz时,baud 最低为 300
//#define Baud 1200
//#define Baud 2400
//#define Baud 4800
#define Baud 9600
//#define Baud 14400
//#define Baud 19200
//#define Baud 28800
//#define Baud 38400
//#define Baud 57600
//收、发一位所需定时器计数
#define rs_FULL_BIT0 ((Fosc/12) / Baud)
#define rs_FULL_BIT (65536 – rs_FULL_BIT0)
#define rs_FULL_BIT_H rs_FULL_BIT >> 8 //收、发一位所需定时器计数高位
#define rs_FULL_BIT_L (rs_FULL_BIT & 0x00FF) //收、发一位所需定时器计数低位
//检测开始位的时刻距离所需定时器计数
#define rs_TEST0 rs_FULL_BIT0 / 4 //波特率较低时能够除以 3 或除以 2
#define rs_TEST ((~rs_TEST0))
#define rs_TEST_H rs_TEST >> 8 //高位
#define rs_TEST_L rs_TEST & 0x00FF //低位
//发送开始位所需定时器总计数
#define rs_START_BIT 0xFFFF – (Fosc/12/Baud) + 0x28
#define rs_START_BIT_H rs_START_BIT >> 8 //发送开始位所需定时器计数高位
#define rs_START_BIT_L rs_START_BIT & 0x00FF //发送开始位所需定时器计数低位
#define rs_RECEIVE_MAX 32 //最大接纳长度
INT8U idata rs232buffer[rs_RECEIVE_MAX]; //收、发缓冲区
INT16U ReceivePoint; //接纳数据存储指针
void soft_rs232_interrupt( void );
#ifdef TIMER_0
#endif
#ifdef TIMER_1
#endif
void soft_rs232_init (void) //串口初始化
{
}
void soft_receive_init() //监测开始位
{
}
void soft_receive_enable() //答应接纳
{
}
void soft_send_enable (void) //答应发送
{
}