基于单片机的温度传感器课设.doc_第1页
基于单片机的温度传感器课设.doc_第2页
基于单片机的温度传感器课设.doc_第3页
基于单片机的温度传感器课设.doc_第4页
基于单片机的温度传感器课设.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品目录1 绪 论11.1 选题的背景与意义11.2 研究的基本内容与拟解决的主要问题21.3 51系列单片机的结构和功能32 系统整体设计62.1 总体设计方案62.2 设计原则6第3章 硬件部分73.1 硬件结构框图73.2 硬件开发工具83.2.1 Protues简介83.3 硬件开发工具103.3.1 Altium Designer简介103.4 软件开发工具143.4.1 KeilC51概述144 硬件电路设计224.1 CPU选型224.1.1 ST89C52单片机简介224.1.2 ST89C52单片机特性224.1.3 ST89C52单片机介绍224.2 硬件电路设计274.2.1 C52单片机控制器模块274.2.2 DS18B20测温模块284.2.3 数码管显示模块294.2.4 蜂鸣器模块304.2.5 USB及下载器模块314.2.6 4*4矩阵键盘334.3 总体电路的设计355 软件设计365.1 单片机C语言程序设计技术365.1.1 单片机C语言的主要特点365.2 各模块程序的设计375.2.1 18B20定时显示测温模块375.2.2 数码管显示模块程序设计395.2.2 流水灯模块405.2.3 蜂鸣器模块416 系统的实现446.1 系统的调试446.2 调试结果446.3 系统运行结果45结 论481 绪 论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)研究设计单片的最小系统及外围电路,在ALTIUM DESIGNER。中进行电路的设计。针对以上问题采用了以下解决方法:(1)对于那些易产生噪声的器件,应尽量使其远离单片机的逻辑控制电路和存储电路(ROM、RAM),如果可能的话,可以将这些电路另外制成电路板,这样有利于抗干扰。另外应把相互有关的器件尽量放得靠近些,能获得较好的抗噪声效果。(2)尽量在关键元件如ROM、RAM等芯片旁安装去耦电容。尽可能选择典型电路,布线时尽量减少回路的面积。对于单片机闲置的I/O不要悬空,要接地和电源。(3)学会使用Keil进行编辑、编译及仿真调试,实现对单片机进行C语言开发。(4)以Proteus为平台,对单片机外围各个功能模块进行软件仿真验证功能。1.3 51系列单片机的结构和功能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所示:C52单片机主控制模块流水灯模块蜂鸣器模块4*4矩阵键盘数码管显示模块AT24C02模块串口通信模块USB及下载器模块测温模块键盘模块DS1302时钟模块图1 总体硬件结构框图3.2 硬件开发工具3.2.1 Protues简介Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,您不需要别的,Proteus为您建立了完备的电子设计开发环境!尤其重要的是Proteus Lite可以完全免费,也可以花微不足道的费用注册达到更好的效果;功能最强的Proteus专业版也非常便宜,人人用得起,对高校还有更多优惠。 3.3 硬件开发工具3.3.1 Altium Designer简介电子产品开发不再是独立的流程。Altium Designer 统一了整个设计流程,可在单一、集成的设计流环境中管理开发的所有方面。Altium Designer 提供了唯一一款统一的应用方案,其综合电子产品一体化开发所需的所有必须技术和功能。Altium Designer 在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的嵌入式软件开发以及PCB版图设计、编辑和制造。并集成了现代设计数据管理功能,使得Altium Designer成为电子产品开发的完整解决方案,一个既满足当前,也满足未来开发需求的解决方案8。3.4 软件开发工具3.4.1 KeilC51概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。4 硬件电路设计4.1 CPU选型4.1.1 ST89C52单片机简介 本课题是基于C51单片机。所以选用Philips公司推出的STC89C52完成。STC89C52是高性能、低功耗的 8 位微处理器。有先进的RISC结构,由于其先进的指令集以及单时钟周期指令执行时间,可以缓减系统在功耗和处理速度之间的矛盾。4.1.2 ST89C52单片机特性字节程序存储空间、12字节数据存储空间、带2K字节EEPROM存储空间、直接使用串口下载、T89C52单片机:8K字节程序存储空间、56字节数据存储空间、带2KB的EEPROM存储空间4.1.3 ST89C52单片机介绍ST89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。单片机总控制电路图如下图2所示图 2 单片机总控制电路图4.2 硬件电路设计4.2.1 C52单片机控制器模块C52单片机最小系统包括:时钟电路、复位电路、晶振电路。原理图如图3所示:图3 C52单片机主控制模块原理图采用按键复位方式,选取晶振为12MHZ,系统机器周期为1us。4.2.2 DS18B20测温模块(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.05.5V; DQ:数据的输入和输出引脚; GND:接地图4 DS18B20引脚图(2)硬件实现:DS18B20温度传感器模块的原理图如图5所示: 图5 DS18B20温度传感器模块原理图单片机与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.5 4*4矩阵键盘该实验使用44矩阵键盘电路。4*4矩阵键盘的工作原理如下所述矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是44个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。图8矩阵键盘电路图,行线接P1.4P1.7,列线接P1.0P1.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所示:图9 AT24C02存储器原理图4.3 总体电路的设计由上述电源的设计,复位电路的设计,时钟电路的设计,下载端口设计电路整体设计、串口通信模块C52单片机主控制器模块、测温模块、4*4矩阵键盘、数码显示模块、流水灯模块、蜂鸣器模块、USB及下载器模块键盘模块、DS1302时钟模块、测温模块、AT24C02模块各模块组成的电路设计。如图10所示:图10 电路的完整设计 5 软件设计5.1 单片机C语言程序设计技术5.2 各模块程序的设计5.2.1 18B20定时显示测温模块使用的晶振为12MHZ,名称: 温度传感器,数码管,矩阵键盘,蜂鸣器,发光管,串口通信综合运用现象:开机后按1键,测温开始,在数码管上显示温度数据,当温度大等于28时蜂鸣器报警,4个发光二极管闪烁。按2键,则停止测温。开始DS18B20初始化跳过读序列号操作启动温度转换延时DS18B20初始化跳过读序列号操作读取温度寄存器值延时读取温度值低位读取温度值高位相加的温度值温度值转化为液晶字符图11 DS18B20的流程图根据初始化时序对DS18B20进行初始化,根据读写时序对DS18B20进行读写编程,另外,在循环读取温度数据后,要将读取的温度数据转换为可以在液晶上显示的液晶字符。5.2.2 数码管显示模块程序设计4位一体数码管的显示方式分为静态式和动态式。静态式的也称为锁存方式,单片机送出数据后控制外围锁存器件锁存数据,这样数码管笔段里的电流不变,数码管稳定显示,这样单片机可以干别的活不用管数码管了。动态式的也称为扫描方式,是利用发光二极管的余辉效应和人眼的视觉暂留效应来实现的,只要在在一定时间内数码管的笔段亮的频率够快,人眼就看不出闪烁,一般外围硬件较少,但是对单片机资源耗用巨大。相比两种方式,前一种对单片机的P口资源和时间耗用更少。其程序流程图如下图12图所示开始送7FH至P0口,送位选数据初值0FEH至R2选取位选数据并送至P0口,点亮某位数码管R2内容左移一位,准备点亮下一位数码管显示延时YN4位数码管显示完毕?图12 数码管显示程序流程图5.2.2 流水灯模块流水灯模块程序设计:程序中先定义五个一维数组,每个一维数组里面含有八个元素,元素为十六进制数,对应P0口的八个引脚,十六进制数为1则对应相应引脚为高电平,为0则相应引脚为低电平。LED连接引脚若为低电平,则LED发光,若为高电平,则LED不发光。将一维数组里的八个元素依次送到P0口,则LED亮灭依次发生变化,轮流将五个一维数组送交P0口,则可以显示五组不同的花型。流水灯程序流程图如图13所示:开始数组LED1内容送P0口显示数组LED2内容送P0口显示数组LED3内容送P0口显示数组LED4内容送P0口显示数组LED5内容送P0口显示数组LED6内容送P0口显示数组LED7内容送P0口显示数组LED8内容送P0口显示图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所示:开始定时器T0初始化frq加一定时器T0中断重装定时器T0初值翻转蜂鸣器引脚电平YN图14 蜂鸣器程序流程图5.2.5 USB及下载器模块该系统设计的接口程序包括单片机通讯设置。USB设备驱动,以及PC应用等3部分程序,这三者互相配合实现可靠、快速的数据传输。(1)单片机通讯设置程序单片机程序实际上是完成单片机对串口的初始化,即对波特率,数据位,校验位,有无奇偶校验等通信协议的设计及单片机串行通信功能控制器的设置。该设计以串口参数波特率ll5200,数据位8,停止位l,校验位0。(2)USB设备驱动程序在PC机上安装Prolific公司免费提供的USB设备驱动程序。驱动安装完后,PC系统出现1个“Prolific USB-to-Serial Comm Port”自动增加一个COM口,如COM3,COM4等。 (3)PC应用程序用户按照传统的串行接口控制方式来使用该模拟的“COM口”。串口通讯参数应与单片机所设置参数一致。当设备插入不同的USB接口时,计算机认为一个新设备,需重新安装设备驱动程序。当插入计算机不同USB接口时,虚拟的“COM口”不同,因此,需要计算机程序自动识别是在哪一个串口插入的设备当单片机学习板与PC机通信时,相应的指示灯会亮,说明程序正在从PC里向单片机芯片中烧录,内部的一个过程大概是这样的:首先进入中断入口,中断初始化,判断PC机与单片机学习板是否相连成功,此时会在烧录软件里给出一个信号:握手是否成功。如果握手成功,PC机通过烧录软件把数据程序传输到单片机的芯片中,然后中断返回。如果握手失败,直接中断返回,会在烧录软件里给出烧录失败的相关原因。6 系统的实现系统硬件PCB版图如下图所示 图156.1 系统的调试利用Keil软件编好程序之后,看编译能否通过,编译成功把程序下载到单片机,有时候下载程序时会出现问题,主要是程序下载不进去,这时候就是硬件出现问题,检查所设计的硬件电路板所有的器件和引脚是否正确,尤其是电源的连接是否正确;检查各总线是否有短路的故障。检查开关/按键是否正常,是否连接正确。程序下载之后看数码管的显示是否正常,按键是否具有调整时间的功能及能否报警。如果不行基本上说明程序有问题,这时就要修改程序直至调试成功。 6.2 调试结果主要实现LED灯定时亮灭,数码管的动态扫描显示,显示数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论