单片机/MCUwilliam hill官网
直播中

张静

7年用户 1479经验值
私信 关注
[问答]

如何用ds18b20读取来的数据并通过串口发送到pc?

如何用ds18b20读取来的数据并通过串口发送到pc?

回帖(1)

赵勇

2023-11-6 16:02:07

  • #include
    #include
    unsigned char tint;
    unsigned char tflo;
    //简单延时函数
    void delay(unsigned int n)
    {
       unsigned char x;
       while (n--)
        {
            x = 30;
            while (x--);
        }
    }
    //串口初始化函数  //
    //9600,N,8,1   //
    //T1做波特率发生器//
    void InitUart(void)
    {
        TMOD  = 0x0f;
        TMOD |= 0x20;                     
    TH1=0xfd;
    TL1=0xfd;
    SCON=0x50;
    PCON  = 0x7F;                                   //设置SMODE为0
    ES=0;
        TR1 = 1;                     
    }
    void Sendone(unsigned char dat)
    {
        ES=0;
    //TI = 0;              //清零发送中断标志
        SBUF = dat;
    while(!TI);          //等待发送完成
    TI=0;
             
    }
    //发送回车换行符
    void SendLineEnd(void)
    {
    Sendone(0x0D);
    Sendone(0x0A);
    }

    //主函数
    void main(void)
    {
       tint=0;tflo=0;
       InitUart();

    while(1)
        {
    //取温度并发送到串口
    get_ds18b20();    //从DS18B20读取温度,具体读取函数略,可查其他资料
                                //假定温度值整数放在变量tint,小数放在变量tflo里
    //发送
    Sendone('0'+tint);  //发送整数
             Sendone('.');       //发送小数点
             Sendone('0'+tflo);  //发送小数
             SendLineEnd();      //发送回车换行符

             delay(60000);    //适当延时以免发送数据过量

            //连接好电脑和单片机,打开串口调试助手,设置串口参数为“9600,N,8,1”,可以看到发送的数据

        }

    }               
举报

更多回帖

发帖
×
20
完善资料,
赚取积分