找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于STM32F103的DS18B20温度传感器实验程序

  [复制链接]
ID:499266 发表于 2019-7-16 09:50 | 显示全部楼层 |阅读模式
新人一枚,开始在这里开拓一片自己的小天地啦最近开始学习传感器,花了还几天研究出来的DA18B20温度传感器的实验
现在还是新手小白一个。。。。
开始记录自己的学习历程啦
20190716094330.png
单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"         
  7. #include "ds18b20.h"

  8. #define Baud_rate 115200//波特率为115200
  9. #define Read_time 10//1/Read_time ms读取一次数据

  10. /************************************************
  11. ALIENTEK精英STM32开发板实验28DS18B20数字温度传感器 实验   
  12. ************************************************/


  13. int main(void)
  14. {         
  15.         u8 t=0;                           
  16.         short temperature;               

  17.         delay_init();                     //延时函数初始化         
  18.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
  19.         uart_init(Baud_rate);                 //串口初始化为 115200
  20.         LED_Init();                                  //初始化与LED连接的硬件接口
  21.         LCD_Init();                                   //初始化LCD  
  22.          POINT_COLOR=RED;                //设置字体为红色
  23.          
  24.          while(DS18B20_Init())        //DS18B20初始化        
  25.         {
  26.                 LCD_ShowString(30,130,200,16,16,"DS18B20 Error");
  27.                 delay_ms(200);
  28.                 LCD_Fill(30,130,239,130+16,WHITE);
  29.                  delay_ms(200);
  30.         }                                                                  
  31.         LCD_ShowString(30,130,200,16,16,"DS18B20 OK");
  32.         POINT_COLOR=BLUE;//设置字体为蓝色
  33.          LCD_ShowString(30,150,200,16,16,"Temp:   . C");         
  34.         while(1)
  35.         {                        
  36.                  if(t%Read_time==0)                        //每100ms读取一次
  37.                 {                                                                          
  38.                         temperature=DS18B20_Get_Temp();        
  39.                         if(temperature<0)
  40.                         {
  41.                                 LCD_ShowChar(30+40,150,'-',16,0);                        //显示负号
  42.                                 temperature=-temperature;                                        //转为正数
  43.                         }else LCD_ShowChar(30+40,150,' ',16,0);                        //去掉负号
  44.                         LCD_ShowNum(30+40+8,150,temperature/10,2,16);        //显示正数部分            
  45.                            LCD_ShowNum(30+40+32,150,temperature%10,1,16);        //显示小数部分                    
  46.                 }                                   
  47.                  delay_ms(10);
  48.                 t++;
  49.                 if(t==40)
  50.                 {
  51.                         t=0;
  52.                         LED0=!LED0;
  53.                 }
  54.         }
  55. }
复制代码

所有资料51hei提供下载:
18B20数字温度传感器.7z (496.45 KB, 下载次数: 302)

评分

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

查看全部评分

回复

使用道具 举报

ID:715323 发表于 2020-5-4 08:02 | 显示全部楼层
文件打不开啊
回复

使用道具 举报

ID:773427 发表于 2020-6-10 13:19 | 显示全部楼层
感谢楼主
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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