找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2649|回复: 2
打印 上一主题 下一主题
收起左侧

ds18b20温度传感器12864液晶显示

[复制链接]
跳转到指定楼层
楼主
ID:138783 发表于 2016-9-17 08:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ds18b20温度传感器12864液晶显示
  1. /*-----------------------------------------------
  2.   名称:DS18b20 温度检测液晶显示
  3.   编写:shifang
  4.   日期:2019.5
  5.   修改:无
  6.   内容:
  7. ------------------------------------------------*/
  8. #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
  9. #include<stdio.h>
  10. #include "18b20.h"
  11. #include "1602.h"
  12. #include "delay.h"

  13. bit ReadTempFlag;//定义读时间标志

  14. void Init_Timer0(void);//定时器初始化
  15. /*------------------------------------------------
  16.               串口通讯初始化
  17. ------------------------------------------------*/
  18. void UART_Init(void)
  19. {
  20.     SCON  = 0x50;                        // SCON: 模式 1, 8-bit UART, 使能接收  
  21.     TMOD |= 0x20;               // TMOD: timer 1, mode 2, 8-bit 重装
  22.     TH1   = 0xFD;               // TH1:  重装值 9600 波特率 晶振 11.0592MHz  
  23.     TR1   = 1;                  // TR1:  timer 1 打开                        
  24.     //EA    = 1;                  //打开总中断
  25.     //ES    = 1;                  //打开串口中断
  26.         TI=1;
  27. }
  28. /*------------------------------------------------
  29.                     主函数
  30. ------------------------------------------------*/
  31. void main (void)
  32. {                  
  33. int temp;
  34. float temperature;
  35. char displaytemp[16];//定义显示区域临时存储数组

  36. LCD_Init();           //初始化液晶
  37. DelayMs(20);          //延时有助于稳定
  38. LCD_Clear();          //清屏
  39. Init_Timer0();
  40. UART_Init();
  41. Lcd_User_Chr();       //写入自定义字符
  42. LCD_Write_String(0,0," 111111 ");
  43. LCD_Write_Char(13,1,0x01);//写入温度右上角点
  44. LCD_Write_Char(14,1,'C'); //写入字符C

  45. while (1)         //主循环
  46.   {

  47. if(ReadTempFlag==1)
  48. {
  49.   ReadTempFlag=0;
  50.   temp=ReadTemperature();

  51.   temperature=(float)temp*0.0625;
  52.   sprintf(displaytemp,"Temp  % 7.3f",temperature);//打印温度值
  53.   LCD_Write_String(0,1,displaytemp);//显示第二行
  54.   }        
  55. }
  56. }

  57. /*------------------------------------------------
  58.                     定时器初始化子程序
  59. ------------------------------------------------*/
  60. void Init_Timer0(void)
  61. {
  62. TMOD |= 0x01;          //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响                     
  63. //TH0=0x00;              //给定初值
  64. //TL0=0x00;
  65. EA=1;            //总中断打开
  66. ET0=1;           //定时器中断打开
  67. TR0=1;           //定时器开关打开
  68. }
  69. /*------------------------------------------------
  70.                  定时器中断子程序
  71. ------------------------------------------------*/
  72. void Timer0_isr(void) interrupt 1
  73. {
  74. static unsigned int num;
  75. TH0=(65536-2000)/256;                  //重新赋值 2ms
  76. TL0=(65536-2000)%256;

  77. num++;
  78. if(num==300)        //
  79.    {
  80.     num=0;
  81.     ReadTempFlag=1; //读标志位置1
  82.         }
  83. }


复制代码


123-1个18b20温度传感器1602液晶显示.7z

25.29 KB, 下载次数: 39, 下载积分: 黑币 -5

18b20温度传感器1602液晶显示

评分

参与人数 1黑币 +70 收起 理由
admin + 70 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:194638 发表于 2017-4-28 21:37 | 只看该作者
是12864显示吗?
回复

使用道具 举报

板凳
ID:418296 发表于 2020-6-25 13:55 | 只看该作者
接口定义在哪
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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