基于单片机的数字温度计课程设计报告 联系客服

发布时间 : 星期五 文章基于单片机的数字温度计课程设计报告更新完毕开始阅读6f8e2738bc23482fb4daa58da0116c175f0e1ee8

} //写一个字节

初始化DS1820 读取温度 判断符号位 转换温度

图14温度读取及转换

计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图14所示:

WriteOneChar(unsigned char dat) {

unsigned char i=0; for (i=8; i>0; i--) { DQ = 0; DQ = dat&0x01; delay(5); DQ = 1; dat>>=1; } delay(4); }

//读取

图 15温度计算

void delayms(uchar t)

{ uint i; while(t--) {

for(i=0;i<100;i++); } }//显示

其流程图如下所示:

其流程图如下:

ReadTemperature(void) {

unsigned char a=0; unsigned char b=0; unsigned char i=0,t; Init_DS18B20(); WriteOneChar(0xCC); WriteOneChar(0x44); Init_DS18B20(); WriteOneChar(0xCC); WriteOneChar(0xBE); a=ReadOneChar(); b=ReadOneChar();

i=b; /*若b为1则为负温 i=(i>>4); if(i==0)

图16 温度显示

*/ { mark=0;

t=((a>>4)|(b<<4)); a=(a&0x0f); xiaoshu=a; if (a>8) { t=(t+1); } } else { mark=1; a=a>>4; b=b<<4; t=(a|b); t=~t; t=(t+1); } EA=1; return(t); }

温度值 N >h_t或,

图17报警

4 proteus软件仿真 系统仿真设计 本设计是在Proteus环境下进行仿真的,仿真所用到的器件有:单片机

ATmega16,DS1820温度传感器,蜂鸣器,液晶显示器,一些电阻,电容等。

仿真结果分析

本设计在仿真的条件下可以正确的显示温度,并在温度超过所设置的最高温度或最低温度时,蜂鸣器将发出滴滴的警告声。且本设计温度显示可以精确到满足设计要求。仿真时温度显示如图18所示

图18

5 系统原理图 通过Proteus进行元器件的查找与连接仿真得到下图

图19

6 心得体会 在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是BCD码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的