基于51单片机的温度检测与控制系统_第1页
基于51单片机的温度检测与控制系统_第2页
基于51单片机的温度检测与控制系统_第3页
基于51单片机的温度检测与控制系统_第4页
基于51单片机的温度检测与控制系统_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、电气与自动化工程学院微机原理与接口技术技 术 报 告课程名称:基于51单片机的温度检测控制设计 姓 名: 江魏炜 班 级: 电气111班 学 号: 160711113 摘要3第1章绪论41.1温度检测控制系统的意义的本设计特点4第2章系统设计52.1系统总设计结构图52.2系统的总体思路设计52.3主控芯片STC89C51介绍6第3章硬件设计103.1 晶振时钟电路103.2 键盘电路103.3 12864显示电路123.4 电机驱动电路133.5 串口通信电路143.6 温度检测电路153.7 系统电路16第4章软件设计164.1 软件设计思路164.2 系统软件设计流程图。17第5章程序调

2、试175.1 程序调试用到的软件及工具175.2 KEILC51简介18第6章 心得体会18第7章 参考文献19摘要随着科学技术的不断提高,在工厂中对于温度控制的要求也越发严格,在合适的温度中生产俨然成为产品合格的必要条件之一。本设计以STC89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机,与此同时单片机再将检测完成的温度值以串口发送到上位机,在VB中可以实时显示当前温度,方便工作人员的远程监控,用12864来显示温度设定的最高值与最低值以及驱动制暖(冷)电机的时间,以上设定值均可使用键盘对其进行修改。文中介绍了该控

3、制系统的硬件部分,包括:温度检测电路、温度控制电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:12864显示屏显示模块、键盘扫描及按键处理模块、温度信号处理模块、led控制模块、超温报警模块以及串口发送模块。关键词:STC89C51单片机;温度控制;DS18B20;温度检测。第1章1.1温度检测控制系统设计的意义和本设计特点现在工厂对温度的要求越来越严格,检测温度和控制的方法也层出不穷,而本设计使用89C51单片机价格低廉,操作编程简单,能够满足各大中小型企业对于温度控制的要求,因此具有一定的推广价值。本作品有以下功能

4、:1. 12864显示屏显示设定温度的最高值 最低值和电机运作的时间,并且实 时显示当前温度。2. 可利用独立键盘对设定的温度和时间进行加减操作。3. 报警功能,如果温度超过最高或最低值则LED灯闪烁蜂鸣器响。(用不同频率来区分过高还是过低)4. 自动制冷(暖)功能,温度异常后由定时器产生PWM波,由I/O口输出至L298N驱动模块,控制电机正反转。(这里用电机的正反转来模拟制冷 或制暖)5.利用串口将温度送至上位机中,在VB里实时显示,方便远程监控。第2章 系统设计2.1系统总设计结构图图2.1 系统设计图本方案采用一种是用以89C51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的

5、I/O端口,及其控制的准确性,实现基本的自动温度控制功能。2.2系统的总体思路设计以STC89C51单片机为主控制单元,键盘为主要输入单元,结合12864显示器,扬声器和串口通信完成整个系统设计。系统的运行过程大致如下:功能键:K1 数据选择键 K2 数据加一K3 数据减一假设刚开始外界温度处于正常状态,电机不转,led灯和蜂鸣器均不动作,按下K1键可以选择要调整的数值,此时温度传感器停止工作,显示屏上出现光标闪烁,再按下K2或K3键则可以对所选择的数值进行重新调整工作,调整完成后按下K1键,温度传感器开始工作。若此时温度超过或低于设定温度则报警触发,LED灯闪烁蜂鸣器响,同时用定时器0产生P

6、WM波,并由I/O口输出至L298N模块控制电机进行相应的动作,为了防止温度反复变化而导致的电机开停引起的机械损耗,特将电机设定为等时间动作(即只要温度异常,则运转固定的时间,时间由定时器0定时,且在12864显示屏中可调整运转时间,如果运转时间到了温度还没有返回正常则继续运转相应的时间)。整个系统运作过程中利用串口将通信将温度发送至上位机,可用VB编程在电脑中显示温度值,以便于远程监控。2.3主控芯片STC89C51介绍图2.2 AT89C51芯片图本次设计选用的是STC89C51,STC89C51是一种带4K字节FLASH存储器(FPEROMFlashProgrammableandEras

7、ableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中, STC89C51是一种高效微控制器。STC89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。STC89C51主要特性:1.与MCS-51兼容2.4K字节可编程FLASH存储器3.寿命:1000写/擦循环4.数据保留时间:10年5.最高时钟频率:0Hz-80MHz6.5128位内部RAM732

8、可编程I/O线8.两个16位定时器/计数器95个中断源10可编程串行通道11.低功耗的闲置和掉电模式12.片内振荡器和时钟电路STC89C51单片机引脚:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上

9、拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接

10、收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和

11、编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

12、/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器

13、可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。第3章 硬件设计3.1 晶振时钟电路 图3.1 晶振时钟电路单片机XIAL1和XIAL2分别接30PF的电容,中间再并一个12MHZ的晶振,形成的晶振电路。3.2 键盘电路 图3.2 键盘电路键盘是单片机系统中最常见的一种人机联系的一种输入设备,由若干个按键组成,用户通过键盘向CPU输入数据或命令以实现简单的人机通信。对键盘的识别可分为两类:一类由专用的硬件电路来识别(如2376,74

14、C922),它使用起来方便,但需要价格昂贵的专用芯片,在单片机系统中一般不采用,另一类靠软件来识别,称为非编码键盘,它的结构简单,价格便宜,应用灵活。但需要编制相应的键盘管理程序。单片机普遍采用这种方式。按键工作处于两种状态:按下与释放。一般按下为接通,释放为断开,这两种状态要被CPU识别,通常将两种状态转换为与之对应的低电平或高电平。CPU通过按键信号电平的高低来判断按键的状态。理想的按键信号是一个标准脉冲,但键的按下和释放都需要一个过程来实现,在这一过程中是处于高低电平之间一种不稳定状态,称为抖动。抖动时间的长短,频率的高低与按键机械特征有关,一般在5到10ms之间。这就有可能造成CPU对

15、一次按键过程进行多次处理。为了避免这种情况应采取措施消除抖动。消抖常见有两种方法,硬件消抖:如用滤波器,双稳态电路等。另一种用软件来实现,即当发现有键按下时,间隔10ms以上时间,才能进行下一次查询,这样就让过了抖动过程,键的释放进行同样处理。本设计为减少电路复杂程度,减少成本。采用软件消抖的方法。3.3 12864显示电路图3.3 12864显示电路该模块具有以下特点:1.12864A-1汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。2. 多种软件功能:光标显示、画面移位、自定义字

16、符、睡眠模式等。3. 与MCU接口:8位或4位并行/3位串行。128X64 引脚说明引脚号引脚名称方向功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD驱动电压输入端4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/

17、L复位 低电平有效18NC空脚19LED_A-背光源正极(LED+5V)20LED_K-背光源负极(LED-OV) 3.4 电机驱动电路图3.4 L298NL298N 驱动模块,采用ST 公司原装全新的L298N 芯片,采用SMT 工艺稳定性高,采用高质量铝电解电容,使电路稳定工作。可以直接驱动两路3-16V 直流电机,并提供了5V 输出接口(输入最低只要6V),可以给5V 单片机电路系统供电(低纹波系数),支持3.3V MCUARM 控制,可以方便的控制直流电机速度和方向,也可以控制2相步进电机,5线4相步进电机。对于电机调速,我们采用PWM调速的方法,其原理就是开关管在一个周期里的导通时间

18、为t,周期为T,则电机2端的平均电压U=Vcc*(t/T)=aVcc。其中a为占空比,Vcc是电源,电机的转速与加在电机两端的电压成正比,而电机两端的电压与控制波形的占空比成正比因此电机的转速与占空比成比例,占空比越大那么电机的转速越快。 3.5 串口通信电路图3.5 串口通信模块CH340 CH341 SSOP20或SOP28或SOP20封装,将USB转换为异步串口、打印口、EPP并口、类似I2C或SPI串行接口等。CH341不需要单片机就能独立工作,用于直接控制控制外部逻辑,用于USB总线IO扩展,IO控制,USB转并口,简单的AD和DA,升级并口打印机到USB打印机,USB转串口转RS2

19、32转RS485等。串口波特率支持 50bps到2Mbps,CH340还支持USB转IrDA,实现USB红外适配器,CH340提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通串口设备直接升级到USB总线。特点: 1、全速USB设备接口,兼容USB V2.0,外围元器件只需要晶体和电容。 2、仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。 3、计算机端Windows操作系统下的串口应用程序完全兼容,无需修改。 4、硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps2Mbps. 5、支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS

20、. 6、通过外加电平转换器件,提供RS232、RS485、RS422等接口。 7、支持IrDA规范SIR红外线通讯,支持波特率240bps115200bps. 8、由于是通过USB转换的串口,所以只能做到应用层兼容,而无法绝对相同。 9、软件兼容CH341,可以直接使用CH341的驱动程序。 10、支持5V电源电压和3.3V电源电压。3.6 温度检测电路图3.6 温度18B20I/O为数据输入/输出端(即单线总线),它属于漏极开路输出,外接上拉电阻后,常态下呈高电平。UDD是可供选用的外部电源端,不用时接地,GND为地,NC空脚。DS18B20的内部结构主要包括7部分:寄生电源、温度传感器、6

21、4位激光(loser)ROM与单线接口、高速暂存器(即便筏式RAM,用于存放中间数据)、TH触发寄存器和TL触发寄存器,分别用来存储用户设定的温度上下限值、存储和控制逻辑、位循环冗余校验码(CRC)发生器。DS18B20性能特点:(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(2)在使用中不需要任何外围元件。(3)可用数据线供电,电压范围:3.05.5V。(4)测温范围:-55125。固有测温分辨率为0.5。(5)通过编程可实现912位的数字读数方式。(6)用户可自设定非易失性的报警上下限值。(7)支持多点组网功能,多个DS1

22、8B20可以并联在唯一的三线上,实现多点测温。(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。3.7 系统电路图3.7 系统电路图第4章 软件设计4.1 软件设计思路温度检测控制系统工作的主要方式就是不断的检测温度并将温度与设定的最高值和最低值做比较,通过比较的结果来执行不同的动作,温度异常时则驱动电机工作,待电机驱动时间到了以后在判断是停止还是继续驱动。利用定时器1设置波特率为9600,将温度数组一位一位的发出(温度的数值以字符串的形式存放在数组中)。注意此时发送的是ASC码,应将数值转换后存放到数组中。按下K1键后即可选择修改各个设定的数值,修改好后在按下K1键即可

23、使重新设定的数值生效。4.2 系统软件设计流程图。图4.1 系统软件流程图第5章 程序调试把也写好的汇编语言程序的载入软件调试工具,检查软件是否有设法错误,再根据软件提示对本程序进行修改,直到没有错误再生成单片机能运行的机器码,再用51开发板或其它单怎机写入工具把机器码写入单片机进行实际的程序调试,根据实际情况再对程序的不足加以修改,直到满足设计要求。5.1 程序调试用到的软件及工具调试本程序需要用到KEILC51,及51开发板一块及其配套的下载烧录软件5.2 KEILC51简介KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能

24、上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。C51工具包的整体结构:uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。第6章 心得体会首先通过此次课程设计,让我们对所学的单片机技术理论知识更加熟悉了解,对理论学习时没有掌握牢固的一些知识以及一些在学习中存在的漏洞进行学习并加以弥补,也让我们明白

温馨提示

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

评论

0/150

提交评论