1 / 18
文档名称:

单片机课程设计(温度传感器).doc

格式:doc   页数:18
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机课程设计(温度传感器).doc

上传人:分享精品 2016/2/24 文件大小:0 KB

下载得到文件列表

单片机课程设计(温度传感器).doc

文档介绍

文档介绍:梧州学院单片机课程设计报告题目:温度传感器院(系):信息与电子信息工程专业班级:12物联网工程班学生姓名:谢晋峰学号:201200210026DS18B20温度传感器一、目的通过DS18B20温度传感器及时采集当前周边环境的温度值,并在数码管上显示。二、所需器材一个单片机,一个三八译码器和6个8位数码管,一个Ds18b20温度传感器。三、内容与步骤系统原理框架图开始主函数温度数值转换18B20采集温度数码管显示主函数流程图入口Main()LcdDisplay()T1Ds18b20ReadTemp()Temp<0DisplayData[0]=0x40Tem=~(temp-1)Tp=temDisplayData[0]=0x00Tp=tempTemp=tp**100+=tp**100+()函数流程图Ds18b20ReadTemp()函数流程图XX:DisplayData[1]=DIG_CODE[temp/10000];DisplayData[2]=DIG_CODE[temp%10000/1000];DisplayData[3]=DIG_CODE[temp%1000/100]|0x80;DisplayData[4]=DIG_CODE[temp%100/10];DisplayData[5]=DIG_CODE[temp%10];DigDisplay();DigDisplay()结束(一)本设计内容分为两大部分:。DS18B20感受到当前的温度值并将其转化为数字信号存储在ROM中,然后单片机读取18B20中的温度信号。。单片机将获取的温度信息按符号为、百位、十位、个位、十分位、百分位,分割,并保存在六个不同的变量中,然后让DS138译码器逐位控制数码管显示对应的数值。(二)步骤如下:,温度转化命令,、百位、十位、个位、十分位、,对应显示温度符号、百位、十位、个位、十分位、百分位的数值(三)本设计中18B20温度传感器的时序图如下:四、代码#include<>#defineucharunsignedchar#defineuintunsignedint/*在开头声明全局函数,待会就可以直接调用*/voidDelay1ms(uint);ucharDs18b20Init();voidDs18b20WriteByte();ucharDs18b20ReadByte();voidDs18b20ChangTemp();();intDs18b20ReadTemp();sbitDSPORT=P3^7;//声明18B20使用的引脚voidDelay1ms(uinty)//延时函数{uintx;for(;y>0;y--){for(x=110;x>0;x--);}}ucharDs18b20Init()//18B20的初始化{uchari;DSPORT=0;//拉低总线i=70;while(i--);//延时680微秒以上DSPORT=1;//释放总线i=0;while(DSPORT);//一直等待18B20响应}voidDs18b20WriteByte(uchardat)/*向18B20中写一个字节的数,从低位开始*/{uchari,j;for(j=0;j<8;j++){DSPORT=0;i++;DSPORT=dat&0x01;//与1相与的数等于其本身i=6;while(i--);DSPORT=1;dat>>=1;}}//从18B20中读取一个字节的数ucharDs18b20ReadByte(){ucharbyte,bi;uchari,j;for(j=8;j>0;j--){DSPORT=0;//将总线拉低1微秒以上