温度测量系统设计.docx
《温度测量系统设计.docx》由会员分享,可在线阅读,更多相关《温度测量系统设计.docx(19页珍藏版)》请在冰豆网上搜索。
温度测量系统设计
成绩评定表
学生姓名
班级学号
专业
课程设计题目
温度测量系统
评
语
组长签字:
成绩
日期
2015年1月9日
课程设计任务书
学院
专业
学生姓名
班级学号
课程设计题目
温度测量系统
实践教学要求与任务:
1、熟悉所确定的题目,从问题需求、程序结构、难点及关键技术等方面进行分析,形成系统的设计方案;
2、根据方案设计硬件电路;
3、软件编程并调试;
4、完成课程设计报告,打印程序,给出运行结果。
工作计划与进度安排:
第20周(1月6日-1月12日):
布置设计任务,查资料,完成总体设计框架,完善设计内容,系统调试,验收答辩。
指导教师:
20年月日
专业负责人:
20年月日
学院教学副院长:
20年月日
1绪论
1.1选题的背景与意义
单片机开发学习板自发展以来已走过了近20多个年头的发展改进之路。
单片机开发学习板的改良和发展是基于超大规模集成电路技术及微处理器(MPU)技术之上的,其被应用在各式各样的领域,跟微处理器相比较它更具有个性化发展的潜力。
小到遥控电子玩具,大到航空航天技术等各行各业的电子应用中都有单片机开发学习板的身影。
针对51单片机开发板在电子行业自动化领域的重要应用,为满足广大学生、爱好者、产品研究者能较快地学会掌握单片机这门技术,于是产生51单片机开发板。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
1.2研究的基本内容与拟解决的主要问题
本次课程设计的课题是:
便携式单片机学习板硬件系统结构设计。
要求:
在Keil和Proteus环境下进行以AT89C52为核心器件的单片机的研究与开发,并完成实际电路的开发;可以在该板上完成LED灯定时亮灭、数码管的动态扫描显示、矩阵键盘的扫描检测、与PC机的串口通信、EEROM芯片的读写、DS1302芯片读写、字符型LCD读写接口、流水灯、AD芯片接口。
等实验。
旨在通过本次设计,实现便携式单片机学习板硬件系统结构设计课题由系统和模块两大部分组成:
以AT89C52单片机为中心控制系统和温度传感器DS18B20模块、电源电路、液晶显示器、键盘、LED显示指示灯等模块。
对于单片机学习板首先要研究它的基本原理和关键技术,只有弄清楚原理才好设计制作。
故对单片机学习板有以下要求:
(1)合理布局,提高电路工作的可靠性。
(2)考虑系统内外部因素来保证单片机系统可靠安全运行。
(3)研究设计单片机各个外围功能模块的驱动软件。
(4)对开发板的功能进行仿真验证。
(5)研究设计单片的最小系统及外围电路,在ALTIUMDESIGNER。
中进行电路的设计。
针对以上问题采用了以下解决方法:
(1)对于那些易产生噪声的器件,应尽量使其远离单片机的逻辑控制电路和存储电路(ROM、RAM),如果可能的话,可以将这些电路另外制成电路板,这样有利于抗干扰。
另外应把相互有关的器件尽量放得靠近些,能获得较好的抗噪声效果。
(2)尽量在关键元件如ROM、RAM等芯片旁安装去耦电容。
尽可能选择典型电路,布线时尽量减少回路的面积。
对于单片机闲置的I/O不要悬空,要接地和电源。
(3)学会使用Keil进行编辑、编译及仿真调试,实现对单片机进行C语言开发。
(4)以Proteus为平台,对单片机外围各个功能模块进行软件仿真验证功能。
1.351系列单片机的结构和功能
51系列单片机是英特尔公司生产的具有一定结构和功能的单片机产品。
它们的基本组成,基本性能和指令系统都是一样的。
一般情况习惯用8051来代表51系列单片机。
一个单片机的系统是由以下几部分组成:
(1)一个8位CPU微处理器。
(2)静态随机存取存储器,能够储存程序运行过程中产生的数据。
(3)程序存储器ROM/EPROM中(4KB/8KB),用来保存程序和一些初始数据。
但是在一些单片机中不使用ROM/EPROM中,如8031,8032,80c系列等。
(4)4个8排的I/O并行接口P0~P3,每个口可以用作输入,也可以用作输出。
(5)2个定时器/计数器,每个定时器/计数器可设置计数用来计数外部事件,可以设置成常用的定时方式,并可以根据计算或结果控制单片机的运行。
(6)五个中断源控制系统。
(7)1个双向串行I/O口的UART(通用异步接收器/发送器UART),用于实现单片机的串行通信。
(8)振荡器和时钟产生电路,需要外部电源的石英晶体微调电路,允许接在12v的振荡频率上。
2系统整体设计
2.1总体设计方案
本开发板共分为十一个模块主要是:
串口通信模块C52单片机主控制器模块、DS18B20模块、4*4矩阵键盘、数码管显示模块、流水灯模块、蜂鸣器模块、USB及下载器模块;其次是:
键盘模块、DS1302时钟模块、AT24C02模块。
其中以C52单片机作为核心控制器;4*4矩阵键盘模块用来显示数码管数字;数码管模块用来显示简单的数字、字母;LCD1602模块用来显示字母、数字、符号;流水灯模块用来显示单片机I/O口电平的变化;蜂鸣器模块用来发出声音;下载器模块用来实现C52单片机的ISP在线编程;USB模块用来提供电源键盘模块用来向单片机输入特定编码的信息;DS1302时钟模块用来实现实时时钟;测温模块用来测量环境温度;AT24C02模块通过IIC总线接口进行数据的存取。
2.2设计原则
开发板系统的扩展和配置应遵循以下设计原则:
(1)尽可能选择典型电路,并符合单片机常规用法。
为硬件系统的标准化、模块化打下良好的基础。
(2)系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便进行二次开发。
(3)硬件结构应结合应用软件方案一并考虑。
硬件结构布局和软件设计方案两者之间会互相产生影响,所要顾虑的原则性问题是:
软件能够实现的功能可由它自身来完成,从而来简化硬件的结构布局。
但有需要注意的事项:
硬件功能通过软件来实现的,其一般的回应时间比硬件自身实现更长,与此同时会占用CPU运行的时间。
(4)当单片机开发板上有许多外围电路时,必须要考虑其驱动能力。
如果驱动能力不足,系统工作会具有不可靠性,可通过多放置线驱动器来增强单片机的驱动能力或减少芯片所需功耗来降低总线负载量。
(5)尽可能地向“单片”方向来设计硬件系统。
系统中的器件越多,各器件之间相互干扰也会越强,功耗也会相应地增大,也不可避免地降低了系统的稳定性
第3章硬件部分
3.1硬件结构框图
总体硬件结构主要包括:
串口通信模块C52单片机主控制器模块、测温模块、4*4矩阵键盘、数码显示模块、流水灯模块、蜂鸣器模块、USB及下载器模块键盘模块、DS1302时钟模块、测温模块、AT24C02模块。
硬件结构框图如1所示:
图1总体硬件结构框图
3.2硬件开发工具
3.2.1Protues简介
Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,您不需要别的,Proteus为您建立了完备的电子设计开发环境!
尤其重要的是ProteusLite可以完全免费,也可以花微不足道的费用注册达到更好的效果;功能最强的Proteus专业版也非常便宜,人人用得起,对高校还有更多优惠。
3.3硬件开发工具
3.3.1AltiumDesigner简介
电子产品开发不再是独立的流程。
AltiumDesigner统一了整个设计流程,可在单一、集成的设计流环境中管理开发的所有方面。
AltiumDesigner提供了唯一一款统一的应用方案,其综合电子产品一体化开发所需的所有必须技术和功能。
AltiumDesigner在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的嵌入式软件开发以及PCB版图设计、编辑和制造。
并集成了现代设计数据管理功能,使得AltiumDesigner成为电子产品开发的完整解决方案,一个既满足当前,也满足未来开发需求的解决方案[8]。
3.4软件开发工具
3.4.1KeilC51概述
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
4硬件电路设计
4.1CPU选型
4.1.1ST89C52单片机简介
本课题是基于C51单片机。
所以选用Philips公司推出的STC89C52完成。
STC89C52是高性能、低功耗的8位微处理器。
有先进的RISC结构,由于其先进的指令集以及单时钟周期指令执行时间,可以缓减系统在功耗和处理速度之间的矛盾。
4.1.2ST89C52单片机特性
字节程序存储空间、12字节数据存储空间、带2K字节EEPROM存储空间、直接使用串口下载、T89C52单片机:
8K字节程序存储空间、56字节数据存储空间、带2KB的EEPROM存储空间
4.1.3ST89C52单片机介绍
ST89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
单片机总控制电路图如下图2所示
图2单片机总控制电路图
4.2硬件电路设计
4.2.1C52单片机控制器模块
C52单片机最小系统包括:
时钟电路、复位电路、晶振电路。
原理图如图3所示:
图3C52单片机主控制模块原理图
采用按键复位方式,选取晶振为12MHZ,系统机器周期为1us。
4.2.2DS18B20测温模块
(1)DS18B20简介:
DS18B20是DALLAS半导体公司生产的,是一种单总线温度传感器,属于新一代适配微处理器的智能温度传感器,有两种封装形式分别为3脚PR-35封装和16脚SSOP封装。
本文采用的是3脚PR-35封装,其具有以下特点:
采用了单总线技术,传感器直接以二进制输出被测温度,可通过串行口线,也可与单机通过I/O口连接;所能测量的温度范围为:
-55℃~+115℃,测量的精度可高达+0.6℃;内包括寄生电源,寄生电源可在两线方式下通过数据线提供,而无需再独自给它供电;转换时间在分辨率为12位(即0.0625℃)时最大为750ms;使用者能分别对每个器件设定温度的上下限;DS18B20在使用时不需要任何外围元件,一只形如三极管的集成电路内包含了全部的传感元件及转换集成电路;当电源极性接反时,芯片不会因发热而烧毁,但不能进行正常工作;每个DSl8B20器件对应一个唯一的64位长的序号,该序号值存放在ROM中,可通过序号匹配实现多点测温。
引脚排列如图4所示:
VDD:
接电源引脚,电源供电3.0~5.5V;
DQ:
数据的输入和输出引脚;
GND:
接地
图4DS18B20引脚图
(2)硬件实现:
DS18B20温度传感器模块的原理图如图5所示:
图5DS18B20温度传感器模块原理图
单片机与DS18B20通过P3.5相连,作为数据/控制信号线。
4.2.3数码管显示模块
数码管显示模块由三部分构成:
(1)4位一体显示数码管。
(2)4个8550三极管。
(3)电阻。
1)四位显示数码管是一种半导体发光器件,它的基本单元由发光二极管组成。
能显示4个数码管叫四位数码管。
数码管可以按段数进行分类:
七段数码管和八段数码管,七段数码管比八段数码管少一个发光二极管单元(少一个小数点显示);发光二极管单元连接方式可以分为共阳极式连接和共阴极式连接。
共阳数码管的连接方式是将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
使用共阳数码管时应将公共极COM接到+5V电源上,当某一个发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
2)由于三极管的结构和外形特征,它有三个接出来的端点,所以便被形象的命名为三极管。
三个接出来的端点依序称为发射极(emitter,E)、基极(base,B)和集电极(collector,C),名称来源和它们在三极管操作时的功能有关。
本设计中选用8550三极管,它是一种低电压,大电流,小信号的PNP型硅三极管。
采用TO-92封装。
由于单片机I/O的驱动能力一般不是很强,所以要加三极管来进行扩流。
这里的电阻以限流为目的,从而起到一个保护电路的作用。
数码管显示模块硬件实现的原理图如图6所示:
图6数码管显示模块原理图
4.2.4蜂鸣器模块
单片机的P3.4与Q1的基极通过2K欧姆电阻连接,当P3.4为高电平时,Q1导通,Q1的发射极与集电极导通,将发射极下拉为低电平,蜂鸣器两端出现电位差,蜂鸣器发声;当P3.4为低电平时,Q1不导通,蜂鸣器两端没有电流流过,蜂鸣器不发声。
如图7所示:
图7蜂鸣器模块原理图
4.2.54*4矩阵键盘
该实验使用4×4矩阵键盘电路。
4*4矩阵键盘的工作原理如下所述
矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键。
这样键盘中按键的个数是4×4个。
这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。
图8矩阵键盘电路图,行线接P1.4-P1.7,列线接P1.0-P1.3。
图8矩阵键盘电路
4.2.6其他模块
(1)AT24C02简介:
AT24C02有一个写16字节页的缓冲器。
该器件通过IIC总线接口进行操作,有一个专门的写保护功能。
SCL串行时钟:
AT24C02串行时钟输入的管脚用于产生时钟器件接收或发送的所有数据,这是一个输入引脚。
SDA串行数据/地址:
AT24C02双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。
A0、A1、A2作为器件地址的输入端:
当多个器件级联时可用这些输入脚来设置器件地址,当这些脚悬空时默认值为0。
当使用AT24C02时最多能级联8个器件。
如果只有一个AT24C02被总线寻址,那么这三个地址输入脚(A0、A1、A2)能够悬空或直接连接到Vss,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0、A1、A2)必须连接到Vss。
WP写保护:
如果WP管脚连接到Vcc,所有的内容都被写保护只能读。
当WP管脚连接到Vss或悬空允许器件进行正常的读/写操作。
(2)硬件实现:
AT24C02存储器模块的原理图如图9所示:
图9AT24C02存储器原理图
4.3总体电路的设计
由上述电源的设计,复位电路的设计,时钟电路的设计,下载端口设计电路整体设计、串口通信模块C52单片机主控制器模块、测温模块、4*4矩阵键盘、数码显示模块、流水灯模块、蜂鸣器模块、USB及下载器模块键盘模块、DS1302时钟模块、测温模块、AT24C02模块各模块组成的电路设计。
如图10所示:
图10电路的完整设计
5软件设计
5.1单片机C语言程序设计技术
5.2各模块程序的设计
5.2.118B20定时显示测温模块
使用的晶振为12MHZ,名称:
温度传感器,数码管,矩阵键盘,蜂鸣器,发光管,串口通信综合运用现象:
开机后按'1'键,测温开始,在数码管上显示温度数据,当温度大等于28时蜂鸣器报警,4个发光二极管闪烁。
按'2'键,则停止测温。
图11DS18B20的流程图
根据初始化时序对DS18B20进行初始化,根据读写时序对DS18B20进行读写编程,另外,在循环读取温度数据后,要将读取的温度数据转换为可以在液晶上显示的液晶字符。
5.2.2数码管显示模块程序设计
4位一体数码管的显示方式分为静态式和动态式。
静态式的也称为锁存方式,单片机送出数据后控制外围锁存器件锁存数据,这样数码管笔段里的电流不变,数码管稳定显示,这样单片机可以干别的活不用管数码管了。
动态式的也称为扫描方式,是利用发光二极管的余辉效应和人眼的视觉暂留效应来实现的,只要在在一定时间内数码管的笔段亮的频率够快,人眼就看不出闪烁,一般外围硬件较少,但是对单片机资源耗用巨大。
相比两种方式,前一种对单片机的P口资源和时间耗用更少。
其程序流程图如下图12图所示
图12数码管显示程序流程图
5.2.2流水灯模块
流水灯模块程序设计:
程序中先定义五个一维数组,每个一维数组里面含有八个元素,元素为十六进制数,对应P0口的八个引脚,十六进制数为1则对应相应引脚为高电平,为0则相应引脚为低电平。
LED连接引脚若为低电平,则LED发光,若为高电平,则LED不发光。
将一维数组里的八个元素依次送到P0口,则LED亮灭依次发生变化,轮流将五个一维数组送交P0口,则可以显示五组不同的花型。
流水灯程序流程图如图13所示:
图13流水灯程序流程图
5.2.3蜂鸣器模块
蜂鸣器模块程序设计:
在程序中首先定义P3.4为蜂鸣器控制引脚,在主函数中配置T0为16位定时/计数器,并装载一定的初值,启动定时器T0,定时器T0开中断,CPU开中断,然后每隔约1ms对frq进行累加。
在定时器T0中断函数中,对定时器T0的TH0装载0xfe,对TL0装载累加的frq值,并翻转P3.4口的状态,这样,由于定时器T0每次装载的初值不同,相应的中断到达时间不同,P3.4翻转的时间也就不同,frq为无符号字符型数据,累加到255后归零,因此蜂鸣器会产生一定频率的声音。
蜂鸣器程序流程图如图14所示:
图14蜂鸣器程序流程图
5.2.5USB及下载器模块
该系统设计的接口程序包括单片机通讯设置。
USB设备驱动,以及PC应用等3部分程序,这三者互相配合实现可靠、快速的数据传输。
(1)单片机通讯设置程序单片机程序实际上是完成单片机对串口的初始化,即对波特率,数据位,校验位,有无奇偶校验等通信协议的设计及单片机串行通信功能控制器的设置。
该设计以串口参数波特率ll5200,数据位8,停止位l,校验位0。
(2)USB设备驱动程序在PC机上安装Prolific公司免费提供的USB设备驱动程序。
驱动安装完后,PC系统出现1个“ProlificUSB-to-SerialCommPort”自动增加一个COM口,如COM3,COM4等。
(3)PC应用程序用户按照传统的串行接口控制方式来使用该模拟的“COM口”。
串口通讯参数应与单片机所设置参数一致。
当设备插入不同的USB接口时,计算机认为一个新设备,需重新安装设备驱动程序。
当插入计算机不同USB接口时,虚拟的“COM口”不同,因此,需要计算机程序自动识别是在哪一个串口插入的设备
当单片机学习板与PC机通信时,相应的指示灯会亮,说明程序正在从PC里向单片机芯片中烧录,内部的一个过程大概是这样的:
首先进入中断入口,中断初始化,判断PC机与单片机学习板是否相连成功,此时会在烧录软件里给出一个信号:
握手是否成功。
如果握手成功,PC机通过烧录软件把数据程序传输到单片机的芯片中,然后中断返回。
如果握手失败,直接中断返回,会在烧录软件里给出烧录失败的相关原因。
6系统的实现
系统硬件PCB版图如下图所示
图15PCB版图
6.1系统的调试
利用Keil软件编好程序之后,看编译能否通过,编译成功把程序下载到单片机,有时候下载程序时会出现问题,主要是程序下载不进去,这时候就是硬件出现问题,检查所设计的硬件电路板所有的器件和引脚是否正确,尤其是电源的连接是否正确;检查各总线是否有短路的故障。
检查开关/按键是否正常,是否连接正确。
程序下载之后看数码管的显示是否正常,按键是否具有调整时间的功能及能否报警。
如果不行基本上说明程序有问题,这时就要修改程序直至调试成功。
6.2调试结果
主要实现LED灯定时亮灭,数码管的动态扫描显示,显示数字0123,数码管的静态扫描,能够从左到右一次显示数字。
矩阵键盘的扫描检测,按下一个数字在开发板上显示对应的数字,同时蜂鸣器响一下。
与PC机的串口通信。
18B20的温度显示。
6.3系统的运行结果
通过PCB版图的设计,进而可以直接做出实物电路板,运行结果如下:
图16矩阵键盘扫描检测
图17矩阵键盘扫描检测
总结
经过对整个温度显示控制系统的研究与理解,深刻的体会到了传感器对于我们生活的巨大影响与无与伦比的魅力!
并且,每一个课程设计都是对自己所学知识的感悟与思考,学习最大的收获不是说看过多少书,学过多少课程,而是通过自己所学的制作出自己喜欢的、骄傲的作品才是最重要的!
这个温度传感器的应用同样能让我们举一反三的应用其他各种各样的传感器来改变和丰富我们的生活!
当然在收获的同时,感谢刘军老师的指导与帮助!
参考文献
[1]李景照.基于计算机仿真的单片机学习平台的设计与应用[J].科技信息,2011(10):
230-231.
[2]张宏伟,王新环,王新.基于Proteus和Keil的单片机实验教学改革[J][J].电气电子教学学报,2008,12(6):
64-65.
[3]贡雪梅,许刚.基于单片机综合实训平台的开发[J].西安航空技术高等专科学校学报,2012(5).
[4]张敏菊.MSC-51单片机学习板的设计与研究[J].中国新通信,2012,14(21):
70-71.
[5]夏莉英,陈雁.AT89C51单片机与PC机的通信接口及编程[J].电子工程师,2006,9.
[6]黄智强.51单片机学习板模块接线方法及演示程序(上)[J].电子制作,2007(10):
28-30.
[7]黄智强.51单片机学习板模块接线方法及演示程序(下)[J].电子制作,2007(11):
20-21.
[8]庄建清,徐玮.51单片机控制的超声波学习板[J].电子制作,2009
(1):
16-18.
[9]孙振华,许刚.基于串行接口7289的单片机学习板设计[J].西安航空技术高等专科学校学报,2010,28(003):
27-29.
[10]高歌.《AltiumDesigner电子设计应用教程》.高等教育出版社.2011
[11]徐向名.《AltiumDesigner快速入门》.北京.北京航空航天大学出版社.2008
[12]及力.Protel99SE原理图与PCB设计教程.北京:
电子工业出版社,2007.8
[13]朱定华,戴汝平.单片微机原理与应用[M]北京:
清华大学出版社,2003