美文网首页
单片机小白学习之路(二十五)---串口通信的编程

单片机小白学习之路(二十五)---串口通信的编程

作者: 飞向深空 | 来源:发表于2018-09-11 19:53 被阅读0次

    目标:串口通信的编程

    (2)串口初始化步骤
    ①确定T1的工作方式(TMOD寄存器);
    ②确定串口工作方式(SCON寄存器);
    ③计算T1的初值(设定波特率),装载TH1、TL1;
    ④启动T1(TCON中的TR1位);
    ⑤如果使用中断,需开启串口中断控制位(IE寄存器)。

    #include<reg52.h>
    
    typedef unsigned int u16;
    typedef unsigned char u8;
    
    void UsartInit()
    {
        SCON = 0x50;   //串口通信工作方式1
        TMOD = 0x20;   //计数器工作方式2
        PCON = 0x80;   //波特率加倍
        TH1 = 0xf3;    // 计数器的初值设置,波特率是4800b/s
        TL1 = 0xf3;    
        ES = 1;        //接受中断标志位之一,在scon里
        EA = 1;        // 打开总中断
        TR1 = 1;       //打开计数器
    }
    
    void main()
    {
        UsartInit();
        while(1);
    }
    
    
    void Usart() interrupt 4
    {
        u8 receiveData;  //随便申请个变量
    
        receiveData = SBUF;  //外部数据传入单片机的SBUF
        RI = 0;    //观察串口方式1的的工作方式发现接受完RI置1,这里的步骤是软件清0,位下一次传入数据做准备
        SBUF = receiveData; //这个步骤是输出数据,把数据放进SBUF中
        while(!TI); //当TI=1时跳出此循环,表示数据全部传入SBUF了
        TI = 0;  //软件清0,为下一次做准备 
    }
    

    相关文章

      网友评论

          本文标题:单片机小白学习之路(二十五)---串口通信的编程

          本文链接:https://www.haomeiwen.com/subject/xkcpgftx.html