《2022年单片机温度采集程序 .pdf》由会员分享,可在线阅读,更多相关《2022年单片机温度采集程序 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机温度采集程序用一片DS18B20 构成测温系统,测量的温度精度达到0.1 度,测量的温度的范围在20 度到 100 度之间,用8 位数码管显示出来。由于 DS18B20 是在一根I/O 线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20 的读
2、时序对于 DS18B20 的读时序分为读0 时序和读1 时序两个过程。对于 DS18B20 的读时隙是从主机把单总线拉低之后,在15 秒之内就得释放单总线,以让DS18B20 把数据传输到单总线上。DS18B20 在完成一个读时序过程 ,至少需要60us 才能完成。对于 DS18B20 的写时序仍然分为写0 时序和写1 时序两个过程。对于 DS18B20 写 0 时序和写1 时序的要求不同, 当要写0 时序时,单总线 要被拉低至少60us , 保证 DS18B20 能够在15us 到45us 之间能够正确地采样IO 总线上的 “ 0 ” 电平,当要写1 时名师资料总结 - - -精品资料欢迎下
3、载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 序时,单总线被拉低之后,在15us 之内就得释放单总线。本程序实现温度的采集并且实时在数码管上显示出来。具体程序如下:/*- 名称: 18B20 温度传感器日期: 2009.5 修改:无内容: 18B20 单线温度检测的应用样例程序,请将 18b20 插紧,然后在数码管可以显示XX.XC ,C 表示摄氏度,如显示25.3C 表示当前温度25.3度-*/ #include /包含头文件,一般情况不需要改动,头文件包含特殊
4、功能寄存器的定义#include #include #define uchar unsigned char #define uint unsigned int; /*/ /* 定义端口*/ /*/ sbit seg1=P20; sbit seg2=P21; sbit seg3=P22; sbit DQ=P13;/ds18b20 端口sfr dataled=0 x80;/ 显示数据端口/*/ /* 全局变量*/ /*/ uint temp; uchar flag_get,count,num,minute,second; uchar code tab=0 x3f,0 x06,0 x5b,0 x4f
5、,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; /7 段数码管段码表共阳uchar str6; /*/ /* 函数声明*/ /*/ void delay1(uchar MS); unsigned int ReadTemperature(void); void Init_DS18B20(void); unsigned char ReadOneChar(void); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - -
6、 - - void WriteOneChar(unsigned char dat); void delay(unsigned int i); /*/ /* 主函数*/ /*/ main() unsigned char TempH,TempL; TMOD|=0 x01;/ 定时器设置TH0=0 xef; TL0=0 xf0; IE=0 x82; TR0=1; P2=0 x00; count=0; while(1) str5=0 x39; /显示 C 符号str1=tabTempH/100; / 十位温度str2=tab(TempH%100)/10; /十位温度str3=tab(TempH%100
7、)%10|0 x80; /个位温度 ,带小数点str4=tabTempL; if(flag_get=1) /定时读取当前温度 temp=ReadTemperature(); if(temp&0 x8000) str0=0 x40;/ 负号标志temp=temp; / 取反加 1 temp +=1; else str0=0; TempH=temp4; TempL=temp&0 x0F; TempL=TempL*6/10;/ 小数近似处理flag_get=0; /*/ /* 定时器中断*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
8、 - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - /*/ void tim(void) interrupt 1 using 1/中断,用于数码管扫描和温度检测间隔 TH0=0 xef;/ 定时器重装值TL0=0 xf0; num+; if (num=50) num=0; flag_get=1;/ 标志位有效second+; if(second=60) second=0; minute+; count+; if(count=1) P2=0; dataled=str0;/ 数码管扫描if(count=2) P2=1; dataled=str
9、1; if(count=3) P2=2; dataled=str2; if(count=4) P2=3; dataled=str3; if(count=5) P2=4; dataled=str4; if(count=6) P2=5; dataled=str5; count=0; /*/ /* 延时函数*/ /*/ void delay(unsigned int i)/ 延时函数 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - w
10、hile(i-); /*/ /* 初始化*/ /*/ void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ 复位delay(8); /稍做延时DQ = 0; /单片机将 DQ 拉低delay(80); /精确延时大于480us DQ = 1; /拉高总线delay(10); x=DQ; /稍做延时后如果 x=0 则初始化成功x=1 则初始化失败delay(5); /*/ /* 读一个字节*/ /*/ unsigned char ReadOneChar(void) unsigned char i=0; unsigned char dat =
11、 0; for (i=8;i0;i-) DQ = 0; / 给脉冲信号dat=1; DQ = 1; / 给脉冲信号if(DQ) dat|=0 x80; delay(5); return(dat); /*/ /* 写一个字节*/ /*/ void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - -
12、DQ = 0; DQ = dat&0 x01; delay(5); DQ = 1; dat=1; delay(5); /*/ /* 读取温度*/ /*/ unsigned int ReadTemperature(void) unsigned char a=0; unsigned int b=0; unsigned int t=0; Init_DS18B20(); WriteOneChar(0 xCC); / 跳过读序号列号的操作WriteOneChar(0 x44); / 启动温度转换delay(200); Init_DS18B20(); WriteOneChar(0 xCC); / 跳过读序
13、号列号的操作WriteOneChar(0 xBE); / 读取温度寄存器等(共可读9 个寄存器)前两个就是温度a=ReadOneChar(); /低位b=ReadOneChar(); /高位b=8; t=a+b; return(t); 电路板设计部分如下名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - 图一单片机原理电路图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
14、- 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - 图二温度传感器DS18B20 原理图图三液晶显示原理图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 图四pcd 版图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -