数字温度计的设计.docx
- 文档编号:4888121
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:38
- 大小:374.24KB
数字温度计的设计.docx
《数字温度计的设计.docx》由会员分享,可在线阅读,更多相关《数字温度计的设计.docx(38页珍藏版)》请在冰豆网上搜索。
数字温度计的设计
扬州大学能源与动力工程学院
课程设计报告
题目:
数字温度计的设计
课程:
单片机原理及应用课程设计
专业:
电气工程及其自动化
班级:
电气1202班
姓名:
学号:
第一部分
任
务
书
《单片机原理及应用》课程设计任务书
一、课题名称
硬件设计题目五:
数字温度计的设计
二、课程设计目的
课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
《单片机原理及应用》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。
单片机原理及应用课程设计的目的是让学生在理论学习的基础上,通过完成一个涉及MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能将课堂上学到的理论知识与实际应用结合起来,而且能进一步加深对电子电路、电子元器件等知识的认识与理解,同时在软件编程、排错调试、相关软件和仪器设备的使用技能等方面得到较全面的锻炼和提高。
为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。
通过单片机硬件和软件设计、调试、整理资料等环节的培训,使学生初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。
三、课程设计内容
设计以89C51单片机和外围元器件构成的单片机应用系统,并完成相应的软硬件调试。
1.系统方案设计:
综合运用单片机课程中所学到的理论知识,学生根据所选课题的任务、要求和条件进行总体方案的设计。
2.硬件电路设计:
对方案中以单片机为核心的电路进行设计计算,包括元器件的选择和电路参数的计算,并画出总体电路图。
3.软件设计:
根据已设计出的软件系统框图,用汇编语言或C51编制出各功能模块的子程序和整机软件系统的主程序。
4.调试:
在单片机周立功实验箱上进行相关设计并调试。
四、课程设计要求
1.学习DS18B20功能与使用方法;
2.每秒采集一次温度并在LED上显示;
3.具有显示最高与最低温度的功能;
4.设计硬件原理图;
5.编写程序。
五、进度安排
序号
内容
天数
1
布置任务,熟悉课题要求
0.5
2
总体方案确定,硬件电路设计
1.5
3
软件编程
1.5
4
在周立功实验箱上调试
2
5
总结,撰写课程设计报告
1.5
七、课程设计报告内容:
总结设计过程,写出设计报告,设计报告具体内容要求如下:
1.课程设计的目和设计的内容。
2.课程设计的要求。
3.控制系统总框图及系统工作原理。
4.控制系统的硬件电路连接图,电路的原理。
5.软件设计流程图及其说明。
6.电路设计,软件编程、调试中遇到的问题及分析解决方法。
7.实验结果及其分析。
8.体会。
第二部分
课
程
设
计
报
告
1课题简介………………………………………………………………1
1.1目的……………………………………………………………………………………………1
1.2任务……………………………………………………………………………………………1
1.3要求……………………………………………………………………………………………1
2方案设计………………………………………………………………1
2.1总体设计………………………………………………………………………………………1
2.2设计思路………………………………………………………………………………………1
2.3工作原理………………………………………………………………………………………2
3硬件电路设计…………………………………………………………2
3.1主控电路设计…………………………………………………………………………………2
3.2显示电路设计…………………………………………………………………………………2
3.3温度采集电路设计……………………………………………………………………………3
4系统软件编辑设计……………………………………………………6
4.1系统软件设计流程图…………………………………………………………………………6
4.2单总线软件设计………………………………………………………………………………6
4.3I2C总线软件设计……………………………………………………………………………6
5实验与结果分析………………………………………………………8
5.1系统结果显示…………………………………………………………………………………8
5.2实验注意事项…………………………………………………………………………………8
6小结与体会……………………………………………………………9
参考文献…………………………………………………………………10
附录………………………………………………………………………10
数字温度计的设计
1课题简介
1.1目的:
熟练掌握单总线方式器件DS18B20的应用,熟悉I2C总线协议,学习I2C器件ZLG7290的使用方法。
并能把它们结合,组成数字式温度计。
1.2任务:
设计一个数字温度计
1.3要求:
1.学习DS18B20功能与使用方法;
2.每秒采集一次温度并在LED上显示;
3.具有显示最高与最低温度的功能;
4.设计硬件原理图;
5.编写程序。
2方案设计
2.1总体设计
图1系统框图
2.2设计思路
系统在温度采集时主要应用了DS18B20芯片,该器件经过初始化后单片机首先进行ROM匹配,当收到测温器件发回的信号时证明该器件正常工作,接着单片机发送温度转换命令进行温度采集,测温的精确度很高。
设计中还应用了ZLG7290芯片进行数码管显示的驱动,一共应用了6位数码管。
图2设计思路
2.3工作原理
如图1所示基于单总线和I2C结合的温度采集与报警控制系统框图。
系统利用单片机做主控制器,驱动基于单总线的温度传感器DS18B20和基于I2C总线的ZLG7290数码管显示控制器,温度传感器DS18B20负责采集实时温度值,ZLG7290作为显示数码管的驱动芯片,当采集到的温度值大于40度或小于10度时,数码管进行频闪显示报警。
单片机完成对温度的检测,实现安全温度内正常显示温度值,超出设定的温度上下限进行频闪报警。
3硬件电路设计
3.1主控电路设计
本系统采用AT89C51单片机作为主控制器。
AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS8位微处理器,是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
设计电路如图:
3.2显示电路设计
显示电路采用两只6位共阴LED数码管和数码管的驱动芯片ZLG7290。
3.2.1四位数码管
图3数码管的外形尺寸
图3数码管的引脚排布
注:
管脚顺序:
从数码管的正面看,以第一引脚为起点,管脚的顺序是逆时针排列的。
A-11B-7C-4D-2E-1F-10G-5DP-3
3.2.2数码管的驱动芯片ZLG7290
ZLG7290的核心是一块ZLG7290B芯片,它采用I2C接口,能直接驱动8位共阴式数码管,同时可扫描管理多达64只按键,实现人机对话的功能资源十分丰富。
除具有自动消除抖动功能外,它还具有段闪烁、段点亮、段熄灭、功能键、连击键计数等强大功能,并可提供10种数字和21种字母的译码显示功能,用户可以直接向显示缓存写入显示数据,而且无需外接元件即可直接驱动数码管,还可扩展驱动电压和电流。
此外,ZLG7290B的电路简单,使用也很方便。
用户按下某个键时,ZLG7290的INT引脚会产生一个低电平的中断请求信号,读取键值后,中断信号就会自动撤销。
正常情况下,微控制器只需要判断INT引脚就可以得到键盘输入的信息。
微控制器可通过两种方式得到用户的键盘输入信息。
其一是中断方式,该方式的优点是抗干扰能力强,缺点是要占用微控制器的一个外部中断源。
其二是查询方式,即通过不断查询INT引脚来判断是否有键按下,该方式可以节省微控制器的一根I/O口线,但是代价是I2C总线处于频繁的活动状态,消耗电流多并且不利于抗干扰。
由于采用了I2C总线接口,因而用ZLG7290与微控制器设计电力仪表的硬件电路连接非常简单。
它只需要两根信号线(一根数据线SDA,一根时钟信号线SCL)。
但应注意进行I2C通信的双方要共地,并应用,INT传递键盘中断信号。
微控制器通过RST可以将ZLG7290复位。
设计电路如图:
3.3温度采集电路设计
DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。
DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。
其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。
表1一部分温度对应值表
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010000
0191H
+10.125
0000000010100001
00A2H
+0.5
0000000000000010
0008H
0
0000000000001000
0000H
-0.5
1111111111110000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作按协议进行。
操作协议为:
初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
3.3.1DS18B20详细引脚功能描述见下表。
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
3.3.2通信过程:
(1)主机拉低单总线至少480us产生复位脉冲;
(2)主机释放单总线,进入接收模式,释放时产生上升沿;
(3)单总线器件检测到上升沿,延时15-60us;
(4)单总线器件通过拉低总线60-240us来产生应答脉冲;
(5)主机接受应答信号,对从机ROM进行命令和功能命令操作;
所有读写时序至少60us,两个独立的时序间至少1us回复时间。
3.3.3DS18B20的基本参数
DS18B20的64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。
温度报警触发器TH和TL,可通过软件写入户报警上下限。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器,结构如图4所示。
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
该字节各位的定义如图3所示。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。
温度LSB
温度MSB
TH用户字节1
TL用户字节2
配置寄存器
保留
保留
保留
CRC
图3 DS18B20字节定义
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表2是一部分温度值对应的二进制温度数据。
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。
若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。
因此,可用多只DS18B20同时测量温度并进行报警搜索。
在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。
主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。
采用寄生电源供电方式时VDD端接地。
由于单线制只有一根线,因此发送接口必须是三态的。
设计电路如图:
4系统软件编程设计
4.1系统软件设计流程图
4.2单总线软件设计
系统上电先初始化DS18B20,然后判断芯片是否存在,对芯片操作命令进行写入,然后出去温度值,读取后返回采集到的温度值。
4.3I2C总线软件设计
I2C总线在传送数据过程中共有三种类型信号,它们分别是:
开始信号、结束信号和应答信号。
开始信号:
SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:
SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:
接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。
CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。
若未收到应答信号,由判断为受控单元出现故障。
这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。
图4DS18B20软件设计框图
图5I2C总线软件设计框图
5实验与结果分析
5.1系统结果显示
硬件环境:
DP-51PRO.NET单片机综合仿真实验台。
软件环境:
PC及Keil等软件。
通过DS18B20采集温度后显示在数码管上(2位整数、4位小数),可在程序中任意设定报警上下限温度,一旦超过上下限温度,数码管频闪发出报警,当温度回落,数码管频闪停止。
5.2实验注意事项:
1、硬件调试或运行的运行的时候打开电源,不要保持电源的常开状态,以免实验箱运行时间过长烧坏。
2、Debug时,需关掉DPflash,否则调试时开发环境报错。
6小结与体会
随着时代的不断发展,科技的不断进步,单片机在我们的生活和以后的工作中是经常用到的,所以学好它对我们来说是非常重要的。
本次的课程设计就是让我们通过单片机来实现生活中的某一种功能,分为程序编辑和硬件实现两个方面。
我此次的课题是实现数字温度计的实现。
首先,在拿到课题后,我们需要上网查询相关资料,对网上资料进行整合和对课设中用到的器件进行了解和学习。
本次课设我用到了温度传感器DS18B20和数码管等器件。
在网上查询了DS18B20的使用程序,并理解其含义。
从网上参考相关课题的程序在Keil软件中进行运行,理解其运行各步骤的含义并且借鉴到自己的程序中。
在程序编写完毕后,再到试验箱中运行看是否能实现数字温度计的功能。
在试验过程中,要对器件的引脚熟悉确定后再接入实验电路中,经过多次实验,最终终于显示了当前的温度值。
在手动改写了程序的温度上下限报警值后也实现了频闪报警的功能。
本次课设既考验了我们对相关软件的学习和应用是否到位,又考验了我们的单片机知识的掌握程度和动手能力。
要实现数字温度计的功能,程序是相当复杂的!
在前期编写程序的过程中,我就遇到了很大的困难。
程序很复杂,要读懂程序需要耗费很长的时间,还要对器件有足够的了解。
比如对于DS18B20,实现不同的功能其需要的准备时间就不同,所以在程序会出现很多的空操作来达到延时的目的。
我在刚开始时就不是很了解,所以对于这样的程序编辑表示很不理解,直到我的组员给我提醒后,我才恍然大悟。
所以此次课设还考验了我的耐心和细心程度。
在一句一句程序的摸索和相关时序表的学习中,经过两天的程序理解和编辑,我终于搞懂了程序部分,然后就开始运用Keil软件进行仿真。
先是在试验箱上对正确的引脚进行连接,然后运行。
刚开始时会有失误,比如引脚连接不对或者有些引脚不知道要连接,经过多次的尝试,最后终于成功了!
我觉得经过这次课设,我的单片机知识更加充实和稳固了。
以前对一些命令因为使用不多,所以不够熟悉,经过这次课设也变得熟悉了,还有Keil软件也能熟练使用了。
其次,我对器件的引脚和使用更加熟悉了。
为了实现相应的功能,我把课设要用到的器件引脚的功能每个都进行了了解,还有相应时序表的学习都让我对器件的使用更加得心应手,而不再是拘泥于书本的学习,正所谓实践出真知,真是一点不假。
还有,这次课设极大的考验了我的细心和耐心,在面对复杂无比的程序要一句一句的弄懂其含义和先后功能的实现,还要在一次次的失败之后不气馁,重新开始一次次的实验!
在最开始确实很折磨人,可当你发现大家都在为各自的任务而奋斗,不抛弃,不放弃,一次次的实践直到成功的到来。
在成功的那一刻,那满腔的满足感是无法言喻的!
最后,我要感谢我的老师夏老师和组员袁同学对我的帮助!
在我遇到困难无法进行下去时,是你们给予了我帮助。
或者是一句程序的不懂,或者是调试不出正确结果,感谢你们耐心的给我讲解,让我在一次次调试中,最终能取得成功。
所以说人是群居动物,无论在生活或者工作中,很多时候都需要和别人的交流和合作来达到相应的目的,就像这次的课程设计,如果我遇到了困难而一味自己瞎琢磨,这样不仅浪费了大量时间和精力,而且还可能得不得正确结果。
所以在遇到自己难以解决的问题时,要敢于寻求他人的帮助,互助互惠才是最好的生活方式!
我相信经过这次课设,我不仅更加牢固的掌握了单片机的知识和和相关软件的应用,也锻炼了自己的实践能力,相信在未来的日子里,无论遭遇失败或成功,我都会继续进步,继续成长,为将来的工作奠定一个好的基础!
参考文献
[1]张毅刚主编,单片机原理及应用,北京:
高等教育出版社,2004
[2]陈涛编著,单片机应用及C51程序设计,北京:
机械工业出版社,2008
[3]周润景主编,PROTEUS入门实用教程,北京:
机械工业出版社,2007
[4]皮大能主编,单片机课程设计指导书,北京:
北京理工大学出版社,2010
附录
;******************************
;设置DS18B20端口参数
;******************************
THI_WARNINGEQU40H
TLI_WARNINGEQU41H
TEMPER_FLAGEQU42H;温度符号位数据保存区
TEMPER_POINTEQU43H;温度小数部分数据保存区
TEMPEREQU44H;温度整数部分数值保存区
TEMPER_HEQU45H;温度整数部分高位数值保存区
TEMPER_LEQU46H;温度整数部分低位数值保存区
TI_SHOWEQU47H;十进制温度整数部分数值保存区
T_SAVEEQU48H
TEMPER_NUMEQU60H
FLAG1BIT00H
DQBITP3.3
;******************************
;设置ZLG7290端口参数
;******************************
SDABITP3.0
SCLBITP3.1
WSLAEQU70H
RSLAEQU71H
DISDAEQU20H
DISCONEQU08H
;*********************************
ORG8000H
LJMP8100H
;*********************************
;初始化部分
;*********************************
ORG8100H
MOVSP,#60H
CLRP3.6
LCALLDELAY
SETBP3.6
;***************************
;设置报警上下限值
;**************************
MOVTHI_WARNING,#40
MOVTLI_WARNING,#10
;******************************************************************************
;主程序部分
;******************************************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 温度计 设计