2022年单片机温度采集程序 .pdf





《2022年单片机温度采集程序 .pdf》由会员分享,可在线阅读,更多相关《2022年单片机温度采集程序 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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; /*/ /* 定时器中断*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年单片机温度采集程序 2022 单片机 温度 采集 程序

限制150内