单片机课程设计报告.docx
《单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告.docx(17页珍藏版)》请在冰豆网上搜索。
单片机课程设计报告
河南理工大学
《单片机应用与仿真训练》设计报告
数字温度计设计
姓名:
学号:
专业班级:
指导老师:
所在学院:
摘要
温度作为一个常用的物理量在我们的气场生活中起着十分重要的作用,所以对温度计的设计也十分必要。
在此介绍一种智能数字温度计,这种温度计有许多优点,并且它的应用范围非常广泛。
它的主要元件是:
控制器—AT89C2051、温度传感器—DS18B20、数码管—LED,所以这种温度计不仅设计起来简单并且轻便、便宜,总体来说这种温度计的性价比是很高的。
它的主要原理是利用DS18B20可以很好的转换温度值,并且直接显示温度值,它的性能优于传统的感温元件并且省去了A\D、和模拟开关的设计。
此外AT89C2051体积小并且还可以直接驱动LED,这样大大化简了设计的难度并且降低了成本。
关键词:
智能 数字 温度计 温度
目录
1概述.............................................................31.1传感器.....................................................3
1.2设计任务及指标.............................................3
2系统总体方案及硬件设计...........................................42.1总体设计方案...............................................4
2.2方案的总体设计框图.........................................4
2.2.1主控制器...............................................4
2.2.2显示电路...............................................5
2.2.3温度传感器.............................................5
2.2.4DS18B20温度传感器与单片机的接口电路...................7
2.3系统硬件主要构成............................................7
3软件设计.........................................................8
3.1主程序方案..................................................8
3.2读出温度子程序..............................................8
3.3温度转换命令子程序..........................................9
3.4计算温度子程序..............................................9
3.5显示数据刷新子程序.........................................10
4Proteus软件仿真................................................11
5课程设计体会....................................................12
参考文献
附1:
源程序代码
附2:
系统原理图
1、概述
1.1传感器
传感器(英文名称:
transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。
1.2设计任务及指标
1.2.1设计任务
利用单片机和数字温度传感器,实现一个能精确测量并显示温度的实际应用系统,为低成本的数字温度测量系统设计提出一种新的解决方案。
并需说明设计方案的构思依据、设计思路、系统原理、设计过程及系统工作流程图。
1.2.2技术指标:
①系统稳定性高;
②使用四位数码管显示温度值;
③测量精度达0.1℃;
④要求系统具备复位功能;
2系统总体方案及硬件设计
2.1总体设计方案
在单片机电路设计中,使用传感器,是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
2.2方案的总体设计框图
温度计电路设计总体设计方框图如2-1所示,控制器采用单片机AT89C2051,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。
图2-1 总体设计方框图
2.2.1主控制器
系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等,如图2-1所示。
图2-4中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。
图2-2单片机主板电路
2.2.2显示电路
显示电路采用3位共阳LED数码管,从P3口RXD,TXD串口输出段码。
2.2.3温度传感器
DS18B20的测温原理如图2-3所示.图中低温度系数晶振的振荡频率受温度的影响很小,用于产生的信号作为减法计数器1;高温度系数晶振随温度变化其振荡频率明显变,所以产生的信号作为减法计数器2的脉冲输入。
图中还隐含着计数门,当计数门打开时,DS18B20对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器决定,每次测量前,首先将—55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,减法计数器1和温度寄存器被预置在—55℃所对应的一个基数值。
图2-3DS18B20测温原理图
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。
斜率累加器用于温度补偿和修正测温过程中的非线形性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被测温度值。
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
2.2.4DS18B20温度传感器与单片机的接口电路
图2-4DS18B20的测温电路与单片机的连接电路
2.3系统硬件主要构成
整个系统硬件可以分为主控制器模块,测温电路模块和显示电路模块。
每个模块执行其相应的功能,共同组成了一个有序,协调的系统。
主要元件有控制器—AT89C2051,温度传感器DS18B20、数码管—LED。
3、软件设计
3.1主程序方案
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。
这样可以在一秒之内测量一次被测温度,其程序流程见图3-1所示。
图3-1主程序流程图图3-2读温度流程图
3.2读出温度子程序
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
其程序流程图如图3-2示
3.3温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
温度转换命令子程序流程图如上图,图3-3所示
图3-3温度转换流程图
3.4计算温度子程序
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图3-4所示。
图3-4 计算温度流程图
3.5显示数据刷新子程序
显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。
程序流程图如图3-5。
图3-5 显示数据刷新流程图
4、Proteus软件仿真
5、课程设计体会
在这次设计中,经过自身的努力,不但加深了对单片机与传感器的进一步的认识和理解,并将所学的知识充分应用于实践中。
通过毕业设计,使我认识到理论联系实际的重要性,在实践中扩展了知识面,不但掌握了本专业的相关知识,而且对其他专业的知识也有所了解,从各方面提高了自身的综合素质。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。
最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。
在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在实验课上,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
这对于我们的将来也有很大的帮助。
以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
参考文献
[1] 李朝青.单片机原理及接口技术(简明修订版).杭州:
北京航空航天大学出版社,1998
[2] 李广弟.单片机基础[M].北京:
北京航空航天大学出版社,1994
[3] 阎石.数字电子技术基础(第三版).北京:
高等教育出版社,1989
[4] 廖常初.现场总线概述[J].电工技术,1999
[5]李道华,李玲,朱艳编著.传感器电路分析与设计[M].武汉:
武汉大学出版社,2003
[6]沙占友编著.智能化集成温度传感器原理与应用[M].北京:
机械工业出版社,2002
[7]方佩敏编著.新编传感器原理·应用·电路详解[M].北京:
电子工业出版社,1993
附1:
源程序代码
ORG0000H;0-125度的温度计
TEMPER_LEQU41H;用于保存读出温度的低8位
TEMPER_HEQU40H;用于保存读出温度的高8位
FLAG1EQU38H;是否检测到DS18B20标志位
A_BIT1EQU30H;数码管小数点位数存放内存位置
B_BIT1EQU31H;数码管个位数存放内存位置
C_BIT1EQU32H;数码管十位数存放内存位置
D_BIT1EQU33H;数码管百位数存放内存位置
DQEQUP3.7;30H,31H,32H,33H:
小数点位个位十位百位
MOD7:
MOVSP,#60H
LCALLGET_TEMPER;调用读温度子程序
LCALLTEMPCOV
LCALLDISPLAY;调用数码管显示子程序