基于单片机数字温度计设计毕业设计论文Word下载.docx
- 文档编号:20622684
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:32
- 大小:541.82KB
基于单片机数字温度计设计毕业设计论文Word下载.docx
《基于单片机数字温度计设计毕业设计论文Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机数字温度计设计毕业设计论文Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
产品的工艺不同,控制温度的精度也不相同。
因此对数据采集的精度和采用的控制方法也不相同。
传统的控制方式以不能满足高精度,高速度的控制要求,如温度控制表温度接触器,其主要缺点是温度波动范围大。
由于他主要通过控制接触器的通断时间比例来达到改变加热功率的目的,受仪表本身误差和交流接触器的寿命限制,通断频率很低。
近几年来快速发展了多种先进的温度控制方式,如:
PID控制,模糊控制,神经网络及遗传算法控制等。
这些控制技术大大的提高了控制精度,不但使控制变得简便,而且使产品的质量更好,降低了产品的成本,提高了生产效率。
本设计使用单片机作为核心进行控制。
单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。
本课题的研究方法是利用单片机和数字温度传感器DS18B20设计一台数字温度计。
单片机作为主控制器,数字温度传感器DS18B20作为测温元件,传感器DS18B20可以读取被测量温度值,进行转换,从而用4位共阴极LED数码管来显示转换后的温度值。
本课题的主要研究内容如下:
1.温度测试基本范围0℃—100℃。
2.精度为0.5℃。
3.LED数码管显示。
4.可以设定温度的上下限报警功能。
5.实现报警提示。
第一章硬件设计
1.1AT89C51芯片功能简介
1.1.1AT89C51芯片简介
AT89C51是一种带4K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电、高性能CMOS8位微处理器。
1.1.2引脚功能
AT89C51芯片的引脚图如图1-1所示:
图1-1AT89C51引脚图
AT89C51的引脚功能如下:
1、主电源引脚(2根)
VCC:
电源输入,接+5V电源
GND:
接地线
2、外接晶振引脚(2根)
XTAL1:
片内振荡电路的输入端
XTAL2:
片内振荡电路的输出端
3、控制引脚(4根)
RST/VPP:
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG:
地址锁存允许信号
PSEN:
外部存储器读选通信号
EA/VPP:
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
4、可编程输入/输出引脚(32根)
AT89C51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
PO口:
8位双向I/O口线,名称为P0.0~P0.7
P1口:
8位准双向I/O口线,名称为P1.0~P1.7
P2口:
8位准双向I/O口线,名称为P2.0~P2.7
P3口:
8位准双向I/O口线,名称为P3.0~P3.7
1.2数字温度传感器模块
1.2.1DS18B20性能
1、独特的单线接口仅需一个端口引脚进行通信
2、简单的多点分布应用
3、无需外部器件
4、可通过数据线供电
5、零待机功耗
6、测温范围-55~+125℃,以0.5℃递增
7、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃
8、温度数字量转换时间200ms,12位分辨率时最多在750ms内把温度转换为数字
9、应用包括温度控制、工业系统、消费品、温度计和任何热感测系统
10、负压特性:
电源极性接反时,传感器不会因发热而烧毁,但不能正常工作
1.2.2DS18B20引脚说明
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚有三个,DQ为数据输入/输出引脚,当被用在寄生电源下,也可以向器件提供电源;
GND为地信号;
VDD为可选择的电源引脚,当工作于寄生电源时,此引脚必须接地;
当VDD端口接电源时是使用外部电源。
1.2.3DS18B20测温原理
DS18B20的测温原理如图1-2所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
T2
图1-2DS18B20测温原理图
1.2.4DS18B20的工作时序
DS18B20的工作协议流程是:
初始化→ROM操作指令→存储器操作指令→数据传输。
其工作时序包括初始化时序、写时序和读时序,如图1-3(a)(b)(c)所示。
主机控制DS18B20完成任何操作之前必须先初始化,即主机发一复位脉冲(最短为480us的低电平),接着主机释放总线进入接收状态,DS18B20在检测到I/O引脚上的上升沿之后,等待15-60us然后发出存在脉冲(60-240us的低电平)。
写时间片:
将数据从高电平拉至低电平,产生写起始信号。
在15us之内将所需写的位送到数据线上,在15us到60us之间对数据线进行采样,如果采样为高电平,就写1,如果为低电平,就写0。
在开始另一个写周期前必须有1us以上的高电平恢复期。
DS18B20等待DS18B20Tx产生
15us—16us脉冲60--240
主机复位脉冲
VCC480us<
TX<
960us主机Rxmin480us
1-WireBus
GND
图1-3(a)初始化时序
主机写“0”时隙主机写“1”时隙
VCC60us<
120us1us<
txcc<
∞
1-WireBus
GNDDS18B20采样>
1usDS18B20采样
15usMINTYPMAXMINTYPMAX
15us30us15us15us30us
图1-3(b)写时序
VCC主机读“0”时隙主机读“1”时隙
1-WireBus
GND主机采样1us
15us15us30us主机采样
15us
图1-3(c)读时序
读时间片:
主机将数据线从高电平拉至低电平1us以上,再使数据线升为高电平,从而产生读起始信号。
主机在读时间片下降沿之后15us内完成读位。
每个读周期最短的持续期为60us,各个读周期之间也必须有1us以上的高电平恢复期。
1.3测温电路设计
数字温度传感器DS18B20的测温电路如图1-4所示:
图1-4测温电路
1.4按键模块设计
利用单片机的IO口实现按键的中断输入。
另外需要一个与门实现与中断端口的连接。
按键电路如图1-5所示,期中按键K1为进入/退出设置键;
K2为增加键;
K3为减少键。
图1-5按键模块
1.5报警电路设计
三极管驱动蜂鸣器:
报警电路如图1-6所示,三极管Q5来驱动喇叭LS1。
图1-6报警电路
1.6显示电路设计
采用四位共阴极LED数码管来显示温度,可以直接读取,温度精确到0.1℃。
四位数码管的显示电路如图1-7所示,从左到右依次是百位,十位,个位,十分位。
图1-7显示电路
1.7串口电路设计
单片机与上位机(PC机)的接口电路如图1-8所示:
图1-8接口电路
第二章系统软件设计
2.1各模块的程序设计
系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序和按键扫描处理子程序等。
2.1.1主程序流程图
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20测量的当前温度值,温度测量每1s进行一次。
这样可以在一秒之内测量一次被测温度,其程序流程见图2-1所示。
Y
图2-1主程序流程图
2.1.2读出温度子程序
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
其程序流程图如图2-2所示:
图2-2读出温度子程序流程图
2.1.3温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
温度转换命令子程序流程图如图2-3所示:
结束
图2-3温度转换命令子程序流程图
2.1.4计算温度子程序
计算温度子程序流程图如图2-4所示。
图2-4计算温度子程序流程图
2.1.5显示数据刷新子程序
显示数据刷新子程序主要是对分离后的温度显示数据进行刷新操作,当标志位位为1时将符号显示位移入第一位。
程序流程图如图3-5所示。
图2-5显示数据刷新子程序流程图
2.1.6报警子程序
设置报警标志位beep,报警流程图如图2-6所示:
读取测量温度值
温度值
>
120或
<
20?
Beep=0
Beep=1,报警
Y
图2-6报警流程图
2.1.7按键扫描处理子程序
按键采用扫描查询方式,设置标志位,当标志位为1时,显示设置温度,否则显示当前温度。
如图2-7所示
K1键按下
K3键按下?
K2键按下?
NN
显示标志位为0?
报警温度减1
报警温度加1
YYN
调用显示子程序
图2-7按键扫描子程序流程图
2.2KeilC51编程软件
2.2.1KeilC51简介
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
KeilC51软件是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为μVision(通常称为μV2)。
Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:
μVisionIDE集成开发环境C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及实时操作系统。
2.2.2KeilC51软件应用
应用Keil进行软件仿真开发的主要步骤为:
编写源程序并保存→建立工程并添加源文件→设置工程→编译/汇编、连接→程序调试。
Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。
工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。
首先选择菜单File→New…,在源程序编辑器中输入汇编语言或C语言源程序(或选择File→Open…,直接打开已用其它编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;
然后选择菜单Project→NewProject,建立新工程并保存(保存时无需加扩展名,也可加上扩展名.uv2);
工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。
这时工程管理窗口的文件页(Files)会出现“Target1”,将其前面+号展开,接着选择SourceGroup1,右击鼠标弹出快捷菜单,选择“AddFiletoGroup‘SourceGroup1’”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其它文件)。
加入文件后点close返回主界面,展开“SourceGroup1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。
紧接着对工程进行设置,选择工程管理窗口的Target1,再选择Project→OptionforTarget‘Target1’(或点右键弹出快捷菜单再选择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如要写片,还必须在Output选项卡中选中“CreatHexFi”;
其它选项卡内容一般可取默认值。
工程设置后按F7键(或点击编译工具栏上相应图标)进行编译/汇编、连接以及产生目标文件。
成功编译/汇编、连接后,选择菜单Debug-Start/StopDebugSession(或按Ctrl+F5键)进入程序调试状态,Keil提供对程序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。
Keil能以单步执行(按F11或选择Debug-Step)、过程单步执行(按F10或选择Debug-StepOver)、全速执行等多种运行方式进行程序调试。
如果发现程序有错,可采用在线汇编功能对程序进行在线修改(Debug-InlineAssambly),不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。
对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理。
第三章系统的仿真与总结
3.1Protues仿真
3.1.1Protues简介
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
该软件的特点是:
1.实现了单片机仿真和SPICE电路仿真相结合,具有模拟电路仿真、数字电路仿真、各种单片机(51系列、AVR、PIG等常用的MCU)及其外围电路(如LCD、RAM、ROM、键盘、LED、A/D、D/A等)组成的系统仿真。
2.提供了多种虚拟仪器。
如示波器、逻辑分析仪、信号发生器等,调试非常方便。
3.提供软件调试功能,同时支持第三方的软件编译和调试环境,如Keil等软件。
4.具有强大的原理图绘制功能。
Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。
因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。
对于这样的仿真实验.从某种意义上讲,是弥补了实验和工程应用有脱节的矛盾和现象。
同时,当硬件调试成功后,利用ProteusARES软件,很容易获得其PCB图,为今后的制造提供了方便。
3.1.2proteus的工作过程
运行proteus的ISIS程序后,进入该仿真软件的主界面。
在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。
通过工具栏中的p命令,在pickdevices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;
在source菜单的Definecodegenerationtools菜单命令下,选择程序编译的工具、路径、扩展名等项目;
在source菜单的Add/removesourcefiles命令下,加入单片机硬件电路的对应程序;
通过debug菜单的相应命令仿真程序和电路的运行情况。
Proteus软件提供了30多个元件库,数千种元件。
元件涉及数字和模拟、交流和直流等。
3.1.3Protues测温仿真
通过仿真软件验证该原理图的可行性。
采用protues软件对电路仿真,可以得到预期效果。
仿真图如图3-1所示。
温度传感器的仿真效果图如图3-2所示,此图验证了传感器的温度与数码管显示的数字一致。
图3-1Protues仿真图
图3-2DS18B20仿真图
当按下K1键一次时,进入温度报警上线调节,此时显示软件设置的温度报警上线,按K2或K3分别对报警温度进行加一或减一。
当再次按下K1键时,进入温度报警下线调节,此时显示软件设置的温度报警下线,按K2或K3分别对报警温度进行加一或减一。
当第三次按下K1键时,退出温度报警线设置。
显示当前温度。
如图3-3是第一次按下K1键显示的上限温度报警值,此时按K2或K3键分别对上限温度报警值进行加一或减一;
图3-4是第二次按下K1键显示的下限温度报警值,此时按K2或K3键分别对下限温度报警值进行加一或减一。
图3-3上限温度报警值
图3-4下限温度报警值
3.1.4性能分析
性能测试可用制作的温度计和已有的成品温度计同时进行测量比较。
由于DS18B20的精度很高,所以误差指标可以限制在±
0.1℃以内。
另外,0~100℃的测量范围使得该温度计完全适合一般的应用场合,其低压供电特性可以做成电池供电的手持电子温度计。
3.2总结
本次设计主要是通过AT89C51单片机为核心设计的一款数字温度计,该温度计不仅能够实时测量温度值并显示出来,还能够设定温度上下限进行监控,若温度高于设定上限值或低于下限值,则报警电路将进行报警。
此次课程设计中,难点在于DS18B20的使用,即对它的时序控制、初始化以及字节读写方法,任何一个环节出错或是时序控制不到位的话就不能得到正确的数据。
一旦学会了正确的使用方法,就能感觉到它带来的便利是热电偶不能比拟的,以后再次使用的话就能很快上手了。
3.2.1硬件方面
本设计采用的是AT89C51单片机为核心的数字温度计,包含了利用温度传感器DS18B20的测温电路、外接键盘、显示电路、继报警电路、复位电路和晶振电路。
以DS18B20为主要测温元件进行实时监控温度值。
以4位数码管为显示器件,利用单片机的P0口和上拉电阻来驱动4位数码管的显示;
利用单片机的P1.7来驱动温度传感器DS18B20测温;
报警电路利用三极管放大作用驱动报警器报警;
按键是利用单片机的P1口和上拉电阻来驱动工作的。
3.2.2软件方面
本次设计利用Protues软件对系统进行仿真,利用KeilC51软件对系统进行编程。
C语言设计了温度的读、写程序,并利用程序实时对显示电路进行更新操作。
本次设计编写了外接键盘的动作程序,能够感应外接键盘的动作情况对系统做出一系列相应的调整和动作。
系统包含了通过外接键盘设定一个基准值的程序,能够比较基准值并通过比较之后的结果对外围电路产生相应的控制。
软件设计中,把程序按功能分模块的话能提高编程效率,把问题一一解决,同时画流程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字 温度计 设计 毕业设计 论文