1硬件系统总体方案设计
采用数字温度芯片DS18B20测量温度,输出信号全数字化。便于单片机处理和控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性质稳定,它温用作工业测温元件,此元件线性较好。在0-100摄氏度时最大线性偏差小于1摄氏度。DS18B20的最大特点之一是采用了单总数的数据传输,由数字温度计DS18B20和微控制器STC12C5A60S2单片机构成温度测量装置,它直接输出温度的数字信号,可直接和计算机连接。这样温度系统的结构就比较简单,体积也不大。采用51单片机控制软件编程的自由度大,而且体积小,硬件实现简单,安装方便。
该系统利用STC12C5A60S2芯片控制温度传感器DS18B20进行温度的实时检测并显示,能够实现快速测量环境温度。硬件以微控制器为核心外接时钟电路复位电路温度测量电路LED显示电路组成。
本温度计大体分三个工作过程。首先,由DS18B20温度传感器芯片测量当前的温度,并将结果送入单片机然后通过STC12C5A60S2单片机芯片对送来的测量温度读数进行计算和转换,井将此结果送入显示模块。
2各部分功能设计
2.1传感器电路
2.1.1DS18B20的简单介绍
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO92小体积封装形式;温度测量范围为-55摄氏度到+125摄氏度可编程为9位-12位AD转换精度,测温分辨率可达0.0625摄氏度,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。
2.1.2DS18B20的性能特点
1.独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
2.DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
3.DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
4.适应电压范围更宽,电压范围3.0-5.5V在寄生电源方式下可由数据线供电。
温范围-55摄氏度-125摄氏度在-10摄氏度到+85摄氏度时精度为正负0.5。
零待机功耗。
5.可编程的分辨率为9-12位。对应的可分辨温度分别为0.5、0.25、0.125和0.0625可实现高精度测温。
6.用户可定义报警设置。
7.报警搜索命令识别并标志超过程序限定温度温度报警条件的器件。
8.测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码具有极强的抗干扰纠错能力。
9.负电压特性,电源极性接反时,温度计不会因发热而烧毁但不能正常工作。
2.1.3DS18B20引脚定义
(1)引脚定义
- DQ为数字信号输入输出端;
- GND为电源地;
- VDD为外接供电电源输入端(在寄生电源接线方式时接地);
图2-1DS18B20引脚图
DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
图2-2单片机内部结构图
2.1.4DS18B20功能实现原理
DS18B20的测温原理如图2所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55摄氏度所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在55所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图2中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
2.2单片机最小系统
2.2.1 STC12C5A60S2单片机
STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。
图2-3单片机实物图
2.2 .2 STC12C5A60S2的功能1.增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;
2.工作电压:STC12C5A60S2系列工作电压:5.5V-3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V-2.2V(3V单片机);
3.工作频率范围:0 - 35MHz,相当于普通8051的 0~420MHz;
4.用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字节;
5.片上集成1280字节RAM;
6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120ma;
7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片;
8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM);
9.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地);
10.外部掉电检测电路:在P4.6口有一个低压门槛比较器,5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%;
11.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟,常温下内部R/C振荡器频率为:5.0V单片机为:11MHz~15.5MHz,3.3V单片机为:8MHz~12MHz,精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准;
12.共4个16位定时器 两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器 做串行通讯的波特率发生器 再加上2路PCA模块可再实现2个16位定时器;
13. 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在 P3.5/T1输出时钟.
图2-4单片机最小系统图
2.2.3 STC12C5A60S2的优点
STC12C5A60S2是8051系列单片机,与普通51单片机相比有以下特点
1.同样晶振的情况下,速度是普通51的8~12倍
2.有8路10位AD
3.多了两个定时器,带PWM功能
4.有SPI接口
5.有EEPROM
6.有1K内部扩展RAM
7.有WATCH_DOG
8.多一个串口
9. IO口可以定义,有四种状态
10.中断优先级有四种状态可定义。
2.3 TFT彩屏显示功能
2.3.1 TFT彩屏简介
屏幕尺寸:2.4寸TFT彩屏
分辨率:320x240 262K色
接口类型:8位数据接口,接口兼容12864液晶接口,①脚对齐
电源类型:5V电源接口,板上有3.3V稳压芯片,不需要电平转换
SD卡模式:SPI模式
触摸IC:XPT2046
2.3.2彩屏结构组成及原理
TFT屏(Thin Film Transistor)是薄膜晶体管型液晶显示屏,它的每一个象素点都是由集成在其后的薄膜晶体管来驱动的,这样不仅提高了显示屏的响应速度,同时可以精确控制显示色阶,所以TFT液晶的色彩更逼真。
TFT屏主要的构成包括:背光源、导光板、偏光板、滤光板、玻璃基板、配向膜、液晶材料、薄膜晶体管等。
2.3.3彩屏的颜色表示一个彩色像素的信息可以用1个多位二进制数来表示和储存。用来表示彩色像素的二进制数的位数我们称为颜色深度或颜色质量。本彩屏模块采用16位二进制数5-6-5格式。
2.3.4 TFT彩屏显示模块原理
图2-5TFT彩屏显示模块原理图
3系统软件设计
3.1主程序
图3-1程序框图(程序见附录1)
3.2温度检测模块DS18B20
图3-2温度检测程序框图
(程序见附录2)
4编程及取模
4.1 编程软件及语言的选择51编程软件可以使用Keil uVision3或Keil uVision4进行程序编程及仿真。Keil C 51软件是众多单片机应用开发的优秀软件之一。它集编辑,编译,仿真于一体。支持汇编,PLM语言和C语言的程序设计,界面友好,易学易用,具体用法在实训过程中已详细讲述及学习。
编程语言一般都是用C语言编程。C语言是编译型程序设计语言,兼顾高级语言的特点,并具备汇编语言的功能。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。此外,C语言程序具有完善的模块程序结构。C语言执行效率没有汇编语言高,但语言简洁,使用方便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计自由度大,有很好的可重用性,可移植性等特点。基于C语言的众多优点本设计选择此语言来编程。此外,还可以使用汇编语言,C++等语言来进行编程。
4.2 Keil uVision4软件的使用2009年2月发布Keil μVision4,Keil μVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。
2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil μVision4,其编译器、调试工具实现与ARM器件的最完美匹配。
1、建议先新建一个文件夹用来存放,不然待会儿找不着。输入工程名后点保存,出现单片机型号选择框,目前一般用STC89C51的51单片机入门,选好后点击OK。
图4-1
- 在完成选择MCU型号后,软件会提示我们是否要复制一个源文件到这个工程中,这里我们选择“否”,因为我要自己添加一个C语言或者汇编语言源文件,如图所示。
图4-2
在执行上一步后,就能在工程窗口的文件页中,出现了“Target 1” ,前面有“+”号,点击“+”号展开,可以看到下一层的“Source Group1”,这时的工程还是一个空的工程,里面什么文件也没有,到这里我们就完整的把一个工程建立好了。
3、工程创建完毕,接下来开始建立一个源程序文本
图4-3
4、输入源程序文件名名称,在这里输入“test test””。注意:如果您想用汇编语言,要带后缀名一定是“test.asm asm””,如果是C语言,则是“test test..c”,然后保存。
图4-4
- 接下来需要把刚创建的源程序文件加入到工程项目文件中
图4-5
6、工程项目创建和设置全部完成!点击保持并编译。产生了一个名为“test.hex”文件,这个是最终写入单片机的可执行文件。
图4-6
4.3 Lcm取模软件的使用专门用于对c语言文件自动提取显示所需要的汉字,进行点阵码数据转换的,在您的C语言程序中,有一点需要特别留意:您的注解中请不要使用双引号,否则会引起提取错误。
1.选择完成后点击“参数确认”,红色圈中
2.最下侧的输入框可以输入汉字了,红色圈中
3.如下图就已经生成好了
4.我们将汉字后的编码复制到单片机程序中去就可以用了
5系统调试
首先检测串口能否通,先串口线或者USB转串口线插到计算机上,再打开串口调试助手,接着选择串口,串口线和USB转串口的端口号查看路径:计算机—右键—设备管理器—端口(COM和LPT),点开查看,接着设置串口调试助手,选择端口号,说明串口和串口线正常。调好后打开烧录软件,烧录已经编写好的程序,下载成功。然后在TFT显示屏上可以观察到当前温度和温度变化波形。
总结
通过这次实训设计加强了自己动手思考和解决问题的能力,在设计过程中经常会遇到这样那样的情况,就是心里想老着这样的接法可以行得通但实际接上电路总是实现不了,因此耗费在这上面的时间用去很多,我知道做实训设计同时也是对课本知识的巩固,并且对于传感器与单片机在电路中的使用有了更多的认识,平时看课本时有时问题老是弄不懂做完课程设计那些问题就迎刃而解了,而且还可以记住很多东西,比如单片机各个引脚的功能平时看课本这次看了下次就忘了,通过动手实践让我们对各个元件映象深刻,认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这课程设计对我们的作用是非常大的,通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务从而提高自己的实际动手能力和独立思考的能力,在设计的过程中遇到问题可以说得是困难重重,这毕竟第一次做的难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处对以前所学过的知识掌握的不够牢理解的不够深刻。
这次的实训终于完成了,在老师的身上我们学习到了很多知识,在此表示我的感谢。在实训中我也学习到了课内学不到的东西如独立思考解决问题、团结互助、随机应变等,这些都让我受益匪浅。
致 谢
这次实训圆满的结束有赖于老师和同学们的帮助,老师耐心的向我们讲解知识,并帮助我们解决各种各样的问题,可以说没有老师的帮助,这次实训可能也不会顺利结束,老师教我的知识我将一生受用。当然也离不开小组同学的热心帮助,是小组同学的相互讨论让我们有了很多启发。通过本次毕业设计,我在专业知识专业技能和解决问题方法方面得到很大的提高,更深入了解并掌握了传感器的基本理论知识,并在单片机实际电路开发和常用编程设计思路掌握方面有了一定程度的掌握,尽管本次设计还不是很完善,但这为我以后的设计之路积累了宝贵的经验。