51单片机(AT89C52)串口收发程序
21ic 2023-03-14

#include<reg52.h> 
#define uchar unsigned char 
uchar rtemp,sflag; 
void SerialInit()   //11.0592M晶振,波特率9600 

    TMOD=0x20;  //设置定时器1工作方式为方式2 
    TH1=0xfd; 
    TL1=0xfd; 
    TR1=1;      //启动定时器1 
 
    SM0=0;      //串口方式1 
    SM1=1; 
    REN=1;      //允许接收 
    PCON=0x00;  //关倍频 
    ES=1;       //开串口中断 
    EA=1;       //开总中断 

void SerialService() interrupt 4 

    if(RI==1) 
    { 
        RI=0; 
        rtemp=SBUF; //读缓冲区 
        sflag=1; 
    } 

void main() 

    SerialInit(); 
    while(1) 
    { 
        if(sflag==1) 
        { 
            ES=0;   //发送期间关闭串口中断 
            sflag=0; 
            SBUF=rtemp; 
            while(!TI); 
            TI=0; 
            ES=1;   //发送完成开串口中断 
        } 
    }    

1.jpg

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
下载排行榜
更多
评测报告
更多
广告