×
单片机 > 单片机程序设计 > 详情

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

发布时间:2020-05-28 发布时间:
|

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

#include

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

unsigned char data txbuf;

unsigned char data rebuf;

 [page]

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;

}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于arm的指纹识别门禁系统是如何设计的