数码管显示实时温度

数码管显示实时温度

ID:30151934

大小:310.54 KB

页数:8页

时间:2018-12-27

数码管显示实时温度_第1页
数码管显示实时温度_第2页
数码管显示实时温度_第3页
数码管显示实时温度_第4页
数码管显示实时温度_第5页
资源描述:

《数码管显示实时温度》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、模块化数码管显示实时温度DS18B20单片机AT89C51温度芯片DS18B20数码管共阳7407驱动采用模块化编程/*delay.h*/#ifndef_DELAY_H#define_DELAY_H_#defineuintunsignedint#defineucharunsignedcharvoiddelay(uintxms);//秒级延时voiddelayms(uintxms);//毫秒级延时,不可以更改,若更改,DS18B20将显示异常#endif/*delay.c*/#include"delay.h"voiddelay(uintxms){uinti;ucharj

2、;for(i=xms;i>0;i--)for(j=110;j>0;j--);}voiddelayms(uintxms){while(xms--);}/*ds18b20.h*/#ifndef_DS18B20_H#define_DS18B20_H#include#include"delay.h"#include#defineNOP(){_nop_(),_nop_(),_nop_(),_nop_()}sbitDQ=P3^2;//DS18B20控制线,单线模式。externbitng;//正负数标志位,ng=0,为正数,反之为负数,正数

3、负数的处理方法不同,externbitDS18B20_IS_OK;//为1时表示当前读取温度正常,否则读取失败。externucharDisplay_Digit[4];//读取的温度值转换后存在这个数组中externvoidRead_Temperature();//读取当前温度值externvoidProcess_Temperature();//处理当前获得的温度值,正数,负数等。#endif/*ds18b20.c*/#include"ds18b20.h"//温度字符ucharcodeTemperature_Char[8]={0x0c,0x12,0x12,0x0c,0

4、x00,0x00,0x00,0x00};//温度小数对照表ucharcodedf_Table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};ucharCurrentT=0;//当前读取的温度整数部分ucharTemp_Value[]={0x00,0x00};//从DS18B20读取的温度值bitng=0;bitDS18B20_IS_OK=1;ucharDisplay_Digit[4]={0,0,0,0};//-------------------------------------------------------//初始化DS18B20/

5、/-------------------------------------------------------ucharInit_DS18B20(){ucharstatus;DQ=1;delayms(8);DQ=0;delayms(90);DQ=1;delayms(8);status=DQ;delayms(100);DQ=1;returnstatus;}//-------------------------------------------------------//读一字节//-------------------------------------------

6、------------ucharReadOneByte(){uchari,dat=0;DQ=1;_nop_();for(i=0;i<8;i++){DQ=0;dat>>=1;DQ=1;_nop_();_nop_();if(DQ)dat

7、=0x80;delayms(30);DQ=1;}returndat;}//-------------------------------------------------------//写一字节//-------------------------------------------------------voidWriteOneBy

8、te(uchardat){uchari;for(i=0;i<8;i++){DQ=0;DQ=dat&0x01;delayms(5);DQ=1;dat>>=1;}}//----------------------------------------------------------------//读取温度值//----------------------------------------------------------------voidRead_Temperature(){if(Init_DS18B20()==1)//DS18B20故障DS18

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。