嵌入式——串口通訊

 

#include <reg51.h>

void Init();
void Send(unsigned char* pstr,unsigned int len);

void main(){
    Init();
    while(1){
        
    }
}

void Init(){
    SCON=0x50;            //設置爲工做方式1
    TMOD=0x20;            //設置計數器工做方式2
    PCON=0x80;            //波特率加倍
    TH1=0xf3;            //計數器初始值設置,注意波特率是4800的
    TL1=0xf3;
    ES=1;                        //打開接收中斷
    EA=1;                        //打開總中斷
    TR1=1;                        //打開計數器
}

void Send(unsigned char* pstr,unsigned int len){
    for(;len>0;len--){
        SBUF = *(pstr++);      //將要發送的數據放入到發送寄存器
        while(!TI);          //等待發送數據完成,發送前、中 TI = 0,發送完畢後 TI = 1
        TI = 0;              //清除發送完成標誌位
    }
}

void Receive() interrupt 4 {
    if(RI){
        unsigned char data = SBUF;
        RI = 0;              //清除接收中斷標誌位,接收完畢 RI = 1
    }
}
相關文章
相關標籤/搜索