关于51的串口处理程序之方案二

发布 2019-08-06 12:08:57 阅读 2188

//本**使用一个队列缓冲区接收。

/本**经过严格测试,可以适用用长时间高强度的数据通信。

/对于接收部分还有一些关于一帧数据的处理部分函数需要自己写。

i nclude<>

#define uchar unsigned char#define uint unsigned int#define poollen 255

#define start_frame 0x7e#define end_frame 0x0dtypedef struct str_rxd_pooluchar pool[poollen]; 接收缓冲区。

uchar front; /头指针。

uchar rear; /尾指针。

uchar rd_byte; /暂存读数据。

uchar frm_num; /缓冲区中的帧数量。

uchar start_7e; /收到起始标志位。

uchar end_0d; /收到结束标志位。

uchar add_buf[16]; 用于存放接收缓冲的地址,可以存放16个帧地址,奇数位是首地址,偶数位是尾地址。

rxdpool;

rxdpool rxd_pool;

uchar xdata txd_buf[poollen];

uchar xdata txd_len;

void sys_ini(void);

void txd_com(void);

void txd_test(void);

main()

sys_ini();

while(1)

void sys_ini(void)

uchar idata i;

pmr |=1; /开启内部xram

tmod = 0x21; /t1 mode 2 t0,mode 1 //gate c/t m1 m0 gate c/t m1 m0

tl1 = 0xfd; /0xfa=4800 bps 0xfd=9600 bps

th1 = 0xfd;

pcon = 0; /波特率不变等设置。

scon = 0x50; /串口1方式1,允许接收。

it0 = 1; /外部中断0下降沿有效。

it1 = 1; /外部中断1下降沿有效。

tr0 = 0; /启动定时器0

tr1 = 1; /启动定时器1

et0 = 1; /开放定时器0中断。

es = 1; /串行中断。

ex0 = 1; /外部中断0

ex1 = 1; /外部中断1

ea = 1; /开总中断。

for( i = 0; i < poollen;i++rxd_ =0;

rxd_ =0;

rxd_ =0;

rxd_ =0;

rxd_ =0;

rxd_ =0;

txd_len = 0;

void txd_com(void)

uchar idata i;

es =0;

for( i = 0;i < txd_len;i++es =1;

void txd_test(void)

txd_buf[0] =0x7e;

txd_buf[1] =0x7e;

txd_buf[2] =0x7e;

txd_buf[3] =0x7e;

txd_buf[4] =0x7e;

txd_buf[5] =0x7e;

txd_buf[6] =0x7e;

txd_buf[7] =0x7e;

txd_buf[8] =0x7e;

txd_buf[9] =0x7e;

txd_buf[10] =0x7e;

txd_buf[11] =0x7e;

txd_buf[12] =0x0d;

txd_len = 13;

txd_com();

void serial() interrupt 4uchar idata temp;

uchar idata num;

if(ri)

elseelse

rxd_ =1; /接收正确的起始位。

rxd_ =1;

num = rxd_ /起始地址。

rxd_ =rxd_ /保存起始地址下标。

rxd_ =temp; /保存数据。

rxd_ =rxd_ %poollen;

elseelse

rxd_ /增加一帧//成功才加一位。

rxd_ =rxd_ %16;

处理突发事件的应急工作程序

根据重庆市建委关于加强稳定工作的有关文件精神及业主下发。的 维护稳定处理突发事件工作预案 文件要求,为了有条不紊的 及时地处置在于谕北区木耳公租房平场工程建设中发生的突发。事件,特制定本项目部处理突发事件应急工作程序。一 项目部对有可能发生的突发事件,要坚持 预防为先 防治结。合 的方针,有针对性的...

医务人员职业暴露后的处理程序

为了有效地应对医务人员职业暴露后的应急处理工作,特制定本流程。1 建立健全医务人员职业暴露后的报告制度,一旦发生职业暴露,必须以最快的方式向医院感染管理科报告 2 医院感染管理科接到报告后应立即赶赴现场进行调查,同时指导发生职业暴露的工作人员进行暴露部位的处理 3 暴露部位的处理原则 1 用肥皂液和...

关于专利申请的费用和程序

关于 公司专利申请的程序和费用。一 发明专利。审查期限 5天左右受理 自申请之日起1 2个月后发出 发明专利申请初步审查合格通知书 即公开 4 6个月左右提出实审后,进入实审阶段,实审阶段为1 2年左右,可能会收到国家知识产权局发出的 审查意见通知书 若通过实审则发 授权通知书 并通知缴费。前后约1...