这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 89C52单片机串行通信编程两则

共1条 1/1 1 跳转至

89C52单片机串行通信编程两则

高工
2013-10-25 15:57:10     打赏

1.89C52串行口按工作方式1进行串行数据通信时,假定波特率为1 200b/s,以中断方式传送数据,请编写全双工通信程序。

#include at89x52.h>

unsigned char data txbuf;

unsigned char data rebuf;

void main()

{

unsigned char temp;

SCON=0x50;

TMOD=0x20;

TH1=0xE8;

TL1=0xE8;

TR1=1;

ES=1;

EA=1;

}

void comre()

{

rebuf=SBUF;

}

void comtx()

{

SBUF=txbuf;

}

void serial_server() interrupt 4

{

if(TI)

TI=0;

else

{

RI=0;

comre();

}

}

2.当89C52串行口按工作方式3进行串行数据通信时,假定波特率为1 200b/s,第9位数据作奇偶校验位,以中断方式传送数据,请编写通信程序。

#include at89x52.h>

unsigned char data txbuf;

unsigned char data rebuf;

void main()

{

unsigned char temp;

SCON=0xd0;

TMOD=0x20;

TH1=0xE8;

TL1=0xE8;

TR1=1;

ES=1;

EA=1;

}

void comre()

{

ACC=SBUF;

if(RB8==P)

rebuf=ACC;

else

error();

}

void comtx()

{

ACC=txbuf;

SBUF=ACC;

TB8=P;

}

void serial_server() interrupt 4

{

if(TI)

TI=0;

else

{

RI=0;

comre();

}

}

void error()

{

F0=1;

}





关键词: 基础知识    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]