基于STC89C52单片机的LED温度计设计_第1页
基于STC89C52单片机的LED温度计设计_第2页
基于STC89C52单片机的LED温度计设计_第3页
基于STC89C52单片机的LED温度计设计_第4页
基于STC89C52单片机的LED温度计设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1.设计任务和要求21.1系统设计背景21.2理论基础22.总体设计和系统框图22.1温度采集模块32.2温度显示模块33.设计方案43.1硬件系统设计43.1.1电源电路设计43.1.4温度采集模块4的设计3.1.5显示电路53.2软件系统设计63.2.1 DS18B20读写时序63.2.2流程图74.硬件原理图85.系统模拟和调试96.程序源代码97.设计结果分析148.设计总结和经验159.参考文献16附录1:硬件原理图17摘要介绍了用51系列单片机和DS18B20温度传感器实现数字温度测量。温度由数码管实时显示,温度以两位整数和一位小数的形式显示。该系统主要包括电源模块、微控制器最小系统模块、DS18B20温度采集模块和LED数码管显示模块。关键词:51单片机DS18B20发光二极管1.设计任务和要求1.1系统设计背景温度测量广泛应用于工农业生产和社会生活中。随着工农业的发展,对温度测量的准确性和实时性提出了更高的要求。传统的水银温度计和热电偶存在测量不方便、精度低、采集和传输复杂等缺点。本设计采用美国达拉斯公司的DS18B20和stc89c52单片机构成温度测量系统。LED数码管用于实时显示温度,具有较高的智能性和直观性。1.2理论基础为了设计好温度计,我们需要对DS18B20温度传感器的结构、接线和信息通信有一个透彻的了解。我们需要掌握51系列单片机的使用和硬件结构,LED数码管的显示原理以及与单片机的连接。有必要找到一种更好的温度采集方案,使温度更加精确。2.总体设计和系统框图包括方案比较、方案论证和方案选择(各方案以框图形式给出并简要说明)为了以数字形式显示采集的温度,我们需要用单片机来处理数据。由于单片机的性能要求不是很高,我们使用51系列单片机来处理数据。该系统的整体框图如图1所示。图12.1温度采集模块使用DS18B20温度传感器,DS18B20的输出是一个数字量,温度数据可以通过按照特定的时间顺序读取数值来获得。电路相对简单,成本相对较低。DS18B20如图3所示,因此选择了选项2。图3 DS18B202.2温度显示模块采用发光二极管数码管显示,虽然占用单片机更多的时间,但数码管显示更清晰、更便宜,而且连接电路简单。3.设计方案3.1硬件系统设计51系列单片机性能稳定、价格低廉、功耗低,适用于较低应用领域的智能系统设计。3.1.1电源电路设计单片机的正常工作电压为5V,可以从外部直接输入5V。单片机采用通用串行总线供电。图4电源电路3.1.4温度采集模块的设计该系统采用DS18B20作为温度采集芯片。DS18B20通过单线接口发送或接收信息,因此中央微处理器和DS18B20之间只需要一条连接线。每个DS18B20都有一个唯一的芯片序列号,因此多个DS18B20可以同时连接到一条单线总线。DS1820依靠单线端口进行通信。在单线端口条件下,必须先建立只读存储器操作协议,然后才能进行存储和控制操作。因此,控制器必须首先提供以下5个只读存储器操作命令之一:1)读取只读存储器,2)匹配只读存储器,3)搜索只读存储器,4)跳过只读存储器,5)报警搜索。这些命令适用于每个设备的激光只读存储器部分在操作中,当多个设备悬挂在单线总线上时,可以区分单个设备,同时,可以向总线控制器指示有多少个设备或有什么类型的设备。在成功执行一个只读存储器操作序列之后,可以执行存储器和控制操作,并且控制器可以提供6个存储器和控制操作指令中的任何一个。控制操作命令指示DS1820完成温度测量。测量结果放在DS1820的寄存器中,寄存器中的数据可以通过读取寄存器内容的存储器操作命令读出。硬件电路设计如图7所示。图7 DS18B20硬件连接3.1.5显示电路最常用的是七段和八段发光二极管数码管。八段比七段多一个小数点。所谓的八段指的是数码管中的八个小发光二极管,它们通过控制不同发光二极管的开关来显示不同的符号。数码管分为两种类型:公共阴极和公共阳极。常见的阴极是将八个发光二极管的阴极连接在一起,并使它们接地,这样,如果任何一个发光二极管的另一端被赋予高电平,它就可以被点亮。普通阳极是将八个发光二极管的阳极连接在一起。示意图如图9所示。图9 led示意图3.2软件系统设计3 . 2 . 1 DS18B 20的读写时序图10初始化过程复位和脉冲的出现图11控制器写入时序图12控制器读取时序3.2.2程序流程图图13系统流程图4.硬件原理图5.系统仿真与调试在模拟过程中,温度由高变负,再由负变零。据观察,数码管显示的温度可以很好地跟踪温度变化。它具有更好的灵活性和准确性。模拟过程中的两个截图如下。图14模拟屏幕截图1图15模拟屏幕截图26.程序源代码在仿真过程中,观察到数码管显示的温度能够很好地跟踪温度变化。它具有更好的灵活性和准确性。程序源代码如下。#包括#包括sbit p1_1=p10;sbit ds=p33;无符号整数a,I;无符号字符duma=0x28,0xF9,0x4C,0x58,0x99,0x1A,0x0B,0xF8,0x08,0x98,0x88,0x08,0x2E,0x28,0x0E,0x8E,0xF 7 ;无符号代码wema=0x7F,0xBF,0xDF,0xEF ;未签名的白薇、石薇、葛薇、殿后;# definecuhar无符号字符/将无符号字符定义为uchar,简化了输入和写入。提高编程速度# define unt unsigned int/将无符号字符定义为uint,简化了输入和写入。提高编程速度/*延迟子程序10ms*/void delay5ms()uchar a,b;对于(a=20A0;a -)对于(b=30B0;b-);/*延迟子程序*/void delayb(uint计数)uint I;同时(计数)i=200而(i0)我。计数-;/*DS18B20初始化*/void dsreset(void)uint I;DS=0;i=103而(i0)I-;DS=1;I=4;而(i0)I-;/*读取数据值*/位tmpreadbit(void)uint I;位datDS=0;我;/我,有点耽搁了DS=1;我;我;dat=DSi=8。而(i0)I-;返回(dat);/*读取一字节数据*/uchar t pread(void)uchar i,j,datdat=0;对于(I=1;i=8。(I)j=tmpreadbit();dat=(j7)|(dat 1);/读取数据的最低位在前面,在DAT中只有/一个字节返回(dat);/返回一个字节的数据/*将一个字节写入DS18B20 */void tmpwritebyte(uchar dat)uint I;uchar j;位testb对于(j=1;j=8;j)testb=dat0x01dat=dat1If(testb) /写1部分DS=0;我;我;DS=1;i=8。而(i0)I-;其他DS=0;/写入第0部分i=8。而(i0)I-;DS=1;我;我;/*获取温度和转换命令*/void tmpchange(void)ds reset();/初始化DS18B20delay b(1);/延迟tmpwritebyte(0x cc);/跳过序列号命令tmpwritebyte(0x 44);/发送温度转换命令/*读取DS18B20 *中的温度寄存器数据void get_temp(void)浮动ftempuchar a,b;int tempds reset();delay b(1);tmpwritebyte(0x cc);tmpwritebyte(0x be);/发送读取数据的命令a=tmpread();/连续读取两个字节的数据,并读取低8位。b=tmpread();/读取8位高温度=b。温度=8;/temp交换高8位和低8位,并将交换的值重新分配给temp。温度=温度| a;/一个字两个字节ftemp=temp * 0.0625/获取真正的十进制温度值,因为DS18B20可以精确到0.062度/所以读回数据的最低位代表0.0625度temp=ftemp * 10 0.5/放大10倍,将小数点后的第一个数字转换成可显示的数字,同时四舍五入。白薇=temp/1000;/显示100位温度,这里用1000,因为我们以前用10位delay b(1);shiwei=temp00/100;/显示10位温度delay b(1);gewei=temp000/10;/显示位温度。delay b(1);dianhou=temp;/小数点后显示温度无效显示(uchar num,uchar dat)P0=杜马数据】;/段代码P2=韦马纳姆;/位代码无效延迟1(uint x)uint a,b;对于(a=x;A0;a -)对于(b=50B0;b-);void dis_temp()展示(2、实景);延迟1(1);显示器(1、gewei);延迟1(1);显示器(1,16);/显示小数点延迟1(1);显示(0,点厚);延迟1(1);void main()而(1)tmp change();/温度转换get _ temp();对于(i=25i0;I-)/使数码管显示更清晰 dis _ temp();7.设计结果分析在模拟过程中,数码管显示的温度可以很好的变化,小数点后显示一位数字,达到预定目标。设备列表如表1所示。设备名称量Stc89c52单片机1晶体振荡器11.0592兆赫110uf具有极性电容1转换1电阻放电18段杨公数码管4.DS18B20温度传感器18.设计总结和经验通过这个系统的设计,我们对以前学过的东西和以前基础学习的重要性有了更深的理解。在这个设计过程中,我们查阅了大量数据,并系统地回顾和总结了我们以前所学的内容。将来,我们会更加注重基础知识的学习。在设计过程中,我们团队的三名成员进行了密切合作,并明确了分工。xxx完成了硬件电路的分析设计和proteus7.0仿真环境的研究,并对本次设计做了很好的仿真工作。xxx绘制了protell99电路原理图,并参与了本次设计的部分仿真设计工作。xxx研究并编写了K

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论