找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1295|回复: 0
收起左侧

51为基础,LCD1602显示,串口接收温度

[复制链接]
ID:915425 发表于 2021-5-7 22:57 | 显示全部楼层 |阅读模式
#include<reg51.h>
#include"lcd.h"
#include"temp.h"

uchar CNCHAR[6] = "摄氏度";
void LcdDisplay(int);
void UsartConfiguration();

void main()
{
        UsartConfiguration();
        LcdInit();               
        LcdWriteCom(0x88);·
        LcdWriteData('C');
        while(1)
        {
                LcdDisplay(Ds18b20ReadTemp());
//                Delay1ms(1000);
        }
}

void LcdDisplay(int temp)
{

          unsigned char i, datas[] = {0, 0, 0, 0, 0}
        float tp;  
        if(temp< 0)                        
          {
                  LcdWriteCom(0x80);        
                SBUF='-'
                while(!TI);                           
                TI=0;                                       
            LcdWriteData('-');         

                temp=temp-1;
                temp=~temp;
                tp=temp;
                temp=tp*0.0625*100+0.5;        
                          }
         else
          {                        
                  LcdWriteCom(0x80);        
            LcdWriteData('+');
                SBUF='+'
                while(!TI);                          
                tp=temp;
                temp=tp*0.0625*100+0.5;        
                        }
        datas[0] = temp / 10000;
        datas[1] = temp % 10000 / 1000;
        datas[2] = temp % 1000 / 100;
        datas[3] = temp % 100 / 10;
        datas[4] = temp % 10;

        LcdWriteCom(0x82);        
        LcdWriteData('0'+datas[0])
        SBUF = '0'+datas[0];
        while (!TI);                              
        TI = 0;
        
        LcdWriteCom(0x83);        
        LcdWriteData('0'+datas[1]);
        SBUF = '0'+datas[1]
        while (!TI);                              
        TI = 0;

        LcdWriteCom(0x84);        
        LcdWriteData('0'+datas[2]);
        SBUF = '0'+datas[2]
        while (!TI);                             
        LcdWriteCom(0x85);        
        LcdWriteData('.');         
        SBUF = '.'
        while (!TI);               
        TI = 0;

LCD显示温度+串口接收温度.zip

19.22 KB, 下载次数: 21, 下载积分: 黑币 -5

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表