当前位置:首页 > 单片机 > 单片机
[导读]1.当89C52串行口按工作方式1进行串行数据通信时,假定波特率为1 200b/s,以中断方式传送数据,请编写全双工通信程序。#include <at89x52.h>unsigned char data txbuf;unsigned char data rebuf; void main(){unsigne

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;

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭