找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3815|回复: 2
收起左侧

单片机DS18B20温度传感器+LCD12864程序

[复制链接]
ID:415912 发表于 2019-5-18 23:53 | 显示全部楼层 |阅读模式
温度传感器DS18B20在LCD12864上显示。
程序分为main.c+temp.c+temp.h+lcd12864.c+lcd12864.h
不知道为什么程序中的注释全变成了?,要怎么弄?
IMG_20190518_232803.jpg
单片机源程序如下:
  1. #include<reg52.h>
  2. #include<temp.h>
  3. #include<lcd12864.h>

  4. typedef unsigned char u8;
  5. typedef unsigned int u16;

  6. void TIMER_Configuration();        //初始化定时器
  7. unsigned char DisplayData[8];
  8. unsigned char code CharCode1[]="温度:.℃";

  9. //        void delay(u16 i)
  10. //        {
  11. //        while(i--);
  12. //        }


  13. void delay10us(void)   //误差 0us
  14. {
  15.     unsigned char a,b;
  16.     for(b=13;b>0;b--)
  17.         for(a=3;a>0;a--);
  18. }






  19. void datapros(int temp)
  20. {
  21. float tp;
  22.   if(temp<0)
  23.   {
  24.   DisplayData[0]=0x40;
  25.   temp=temp-1;
  26.   temp=~temp;
  27.   tp=temp;
  28.   temp=tp*0.0625*100+0.5;

  29.   }
  30.   else
  31.   {
  32.   DisplayData[0]=0x00;
  33.   tp=temp;
  34.   temp=tp*0.0625*100+0.5;

  35.   }
  36.                  
  37.                         DisplayData[0] = (temp%10000/1000)+0x30;       
  38.                         DisplayData[1] = (temp%1000/100)+0x30;       
  39.                         DisplayData[2] = (temp%100/10)+0x30;       
  40.                         DisplayData[3] = (temp%10)+0x30;
  41. }

  42. void Digdispaly()
  43. {
  44.              LCD12864_SetWindow(1,0);
  45.                 LCD12864_WriteData(CharCode1[0]);
  46.                 LCD12864_WriteData(CharCode1[1]);
  47.             LCD12864_WriteData(CharCode1[2]);
  48.             LCD12864_WriteData(CharCode1[3]);
  49.             LCD12864_WriteData(CharCode1[4]);
  50.             //LCD12864_WriteData(CharCode1[5]);                       
  51.                 LCD12864_WriteData(DisplayData[0]);
  52.                 LCD12864_WriteData(DisplayData[1]);
  53.                 LCD12864_WriteData('.');
  54.                 LCD12864_WriteData(DisplayData[2]);
  55.                 LCD12864_WriteData(DisplayData[3]);
  56.                 LCD12864_WriteData(CharCode1[6]);
  57.             LCD12864_WriteData(CharCode1[7]);
  58.             //LCD12864_WriteData(CharCode1[8]);               
  59. }



  60. void main()
  61. {
  62.    LCD12864_Init();
  63.   while(1)
  64.   {
  65.   datapros(Ds18b20ReadTemp());
  66.   Digdispaly();
  67.   }

  68. }
复制代码

所有资料51hei提供下载:
温度呀.zip (66.98 KB, 下载次数: 98)
回复

使用道具 举报

ID:415912 发表于 2019-5-19 16:30 | 显示全部楼层
我们用的lcd12864是带字库的。。。
回复

使用道具 举报

ID:569657 发表于 2019-6-26 16:17 | 显示全部楼层
感谢楼主
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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