基于单片机AT89S51的温度控制(论文+DWG图纸+外文翻译+文献综述+开题报告)
收藏
资源目录
压缩包内文档预览:(预览前20页/共38页)
编号:54871982
类型:共享资源
大小:464.57KB
格式:ZIP
上传时间:2020-03-07
上传人:机械设计Q****6154...
认证信息
个人认证
陈**(实名认证)
上海
IP属地:上海
12
积分
- 关 键 词:
-
基于
单片机
AT89S51
温度
控制
论文
DWG
图纸
外文
翻译
文献
综述
开题
报告
- 资源描述:
-
基于单片机AT89S51的温度控制(论文+DWG图纸+外文翻译+文献综述+开题报告),基于,单片机,AT89S51,温度,控制,论文,DWG,图纸,外文,翻译,文献,综述,开题,报告
- 内容简介:
-
(论文)综合毕业实践题目:于单片机AT89S51的温度控制系 部: 所学专业: 学生姓名: 班级: 学号: 起迄日期: 实践地点: 指导教师: 专业技术职务: 顾问教师: 年 月毕业设计论文摘 要 单片微型计算机是随着超大规模集成电路技术的发展而诞生的,由于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。本文主要介绍单片机在温度控制中的应用。 温度测量在工业,农业,国防等行业有着广泛的应用,而且随着科学技术的发展对温度测量的精度要求愈来愈高。由于AT89C51单片机的设计时间有限其精度不是很高,但它的测温范围很宽(01000),可以直接应用在对温度精度要求不高的各种现场。 AT89C51单片机温度巡回测量控制仪,采用高精度的AD590用以把温度信号转换成电流信号实现对温度的测量,并将微弱的电流信号转换成电压信号,通过放大电路最终交由模/数转换芯片A/DC0832转换成数字信号经单片机处理并经输出驱动电路显示于共阳极数码管。该测量仪可实现多点(2点)不同区域测量,巡回自动。还具有超温报警和自动控制功能,当温度超过某一设定值时,系统控制电路来关闭加温设备。 由以上大致分析,整个系统控制将由AT89C51单片机为核心构成。选用ADC0832作为模/数转换芯片,各个检测信号、控制信号、显示信号可由单片机的I/O口进行,并由程序保证系统抗干扰的能力。关键字:AT89C51单片机、温度 、软件设计目 录摘 要1第一章 温度计的概述41-1温度巡回测量控制仪基本要求41-2 发挥部分41-3 设计的基本思路及系统的组成4第二章 方案的论证52-1 系统设计方案的论证与比较5第三章 硬件基本单元的设计53-1单片机最小系统53-2复位电路53-3时钟电路63-4单片机的结构组成63-4-1内部结构 73-4-2 引脚功能73-5采样系统及温度传感器的选择103-5-1采样系统103-5-2温度传感器的选择103-6集成运放的选择113-6-1放大系统113-6-2集成运放的选择123-7控制系统及光电耦合器的选择123-7-1控制系统123-7-2光电耦合器的选择123-8 A/D转换器的选择及介绍:143-9 显示系统及显示器的选择153-9-1显示系统153-9-2显示器的选择153-10电源电路17第四章 软件设计174-1开发软件及编程语言的简介 174-1-1开发系统174-1-2程序设计语言174-2程序模块化处理184-3内RAM资源配置184-4程序清单184-4-1程序入口地址184-4-2主程序18 4-4-3显示程序194-4-4定时器中断子程序204-4-5温度检测子程序224-4-6A/D转换子程序23 4-4-7BCD码转换子程序254-4-8温度控制子程序254-4-9 报警子程序254-4-10键盘子程序用于调节设定值26第五章 调试及小结295-1测试报告 295-2设计小结:29 结束语 第一章 温度计的概述1-1温度巡回测量控制仪基本要求(1)测定温度分三挡 室温、等 三档。(2)被测温度显示:单位为摄氏度;最大测温范围是,温度误差不大于;(3)控制电路失控后要报警。1-2 发挥部分(1)温度的分档限制了实际温控随时改变的应用。为了实用我们添加了键盘为了随时改变温控的实用性。(2)设定温度的显示:单位为摄氏度,范围是之间的任意整数。1-3 设计的基本思路及系统的组成设计一个实用温度巡回测量控制仪的基本思路是:当由传感器传来模拟信号,经放大电路放大之后,送到ADC0832 A/D转换器,转换为数字信号送到89C51里,由89C51处理后发出的显示输出的信号送到LED数码显示。按照设计的基本要求,电热锅炉温度控制系统由核心处理模块、温度采集模块、键盘显示模块、及控制执行模块等组成。其中核心处理模快用MCS-51单片机来控制;而温度采集模块应包括温度转换、信号放大和AD转换;键盘用来设定温度值。 第二章 方案的论证2-1 系统设计方案的论证与比较方案一 采用AT89C51作为控制核心,以使用最为普遍的器件ADC0809作模数转换,控制上使用对电阻丝加电使其升温和开动风扇使其降温。此方案简易可行,器件的价格便宜,但AT89C51不能在线编程,增加了调试的复杂性,且ADC0809是8个转换通道,对本课题来说通道造成资源浪费。方案二 采用比较流行的AT89S51作为电路的控制核心,使用ADC0832进行数据转换,控制可控硅的通断以实行对温度的连续控制,此方案电路简单并且可以满足题目中的各项要求的精度。说明:但由于条件的限制我们采用方案二但是使用AT89C51综上分析,我们采用方案二。系统设计总体框图如下。信号采集信号放大 AT89C51AD转换电源部分温度显示报警控制键盘控制温度控制第三章 硬件基本单元的设计6.0MAT89S51VCC/EA20P20PXTAL1XTAL2VSS3-1单片机最小系统3-2复位电路MCS-51单片机通常是上电自动复位。如图4.1所示。上电瞬间,RC电路充电,RESET引脚端出现正脉冲达到一定的时间就复位,由于本系统的时钟频率是6MHz每个机器周期2uS,只须RESET端保持4u以上高电平即可。 为了保证微分脉冲宽度足够大的值应大于两个机器周期一般取。3-3时钟电路单片机虽然有内部震荡电路,但要形成时钟,必须外接附加电路。本系统 外接晶体以及电容C1、C2并构成并联谐振电路,接在放大器反馈回路中内部震荡,内部产生自激震荡,一般晶振在2-12MHZ之间任选。对外接电容值虽然设有严格要求,但电容值的大小会影响震荡频率的高低,振荡器的稳定性,起振的快速性和温度的稳定性。外接晶体时,C1和C2通常选20PF;外接陶瓷谐振时,C1和C2的典型值为47PF;3-4单片机的结构组成注:MCS-51的引脚及机构说明:(主要以80C51为例)AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微器处理器,俗称单片机。3-4-1内部结构 从图中看到80C51芯片内部集成了CPU、RAM、ROM、定时/计数器I/O口等功能部件,并由内部总线把这些部件连接在一起。 80C51单片机内部包含以下一些功能部件:1)一个8位CPU;2)一个片内振荡齐和时钟电路;3)4KB ROM (80C51有4KB掩膜ROM,87C51有4KB EPROM,80C31片内无ROM);4)128字节的RAM;5)可寻址64KB的外ROM和外RAM控制电路;6)两个6位定时/计数器;7)21个特殊功寄存器;8)4个8位并行I/O口,共32条可编程I/O端线;9)一个可编程全双工串行口:10) 5个中断源,可设置成2个优先级。3-4-2 引脚功能80C51单片机一般采用双列直插DIP封装,共40个引脚,图1为引脚排列图。右图为逻辑符号图。40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。1.电源1)Vcc-芯片电源,接+5V;2)Vss接地端。列图。右图为逻辑符号图。40个引脚大致可分为4类:电源时钟、控制和I/O引脚。1.电源1)Vcc-芯片电源,接+5V;2)Vss接地端。2.时钟 XTALL、XTAL2晶体振荡电路反相输入端和输出端。使用内部振荡器电路时外接石英晶体。3.控制线控制线共有4根,其中3根是复用线。所谓复用线是指具有两种功能,正常使用时是一种功能,在其中条件下是另一种功能。1) ALE/PROG地址锁存/片内EPROM编程脉冲。ALE功能:用来锁存P0口送出的低8位地址。80C51在并行扩展外存储器()包括并行扩展I/O口时,P0口用于分时传送低8位地址和数据信号,且均为二进制数。那么如何区分是低8位地址还是8位数据信号呢?当ALE信号有效时,P0口传送的是低8位地址信号;ALE信号无效时,P0口传送的是8位数据信号。在ALE信号下降沿,锁定P0口传送的内容,即低8位地址信号。需要指出的是,当CPU不执行访问外RAM指令(MOVX)时,ALE以时钟振荡频率1/6的固定频率输出,因此ALE信号也可作为外部芯片CLK时钟或其他需要。但是,当CPU执行MOVX指令时,ALE将跳过一个ALE脉冲。ALE端可驱动8个LSTTL门电路。PROG功能有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。2) psen外ROM读选电气号。80C51读外ROM时,每个机器周期内PSEN两次有效输出。PSEN可作为ROM芯片输出允许OE的选电气号。在读内ROM或读外RAM时,PSEN无效。PSEN可驱动8个LSTTL门电路。3) RST/Vpd复位/备用电源。正常工作时,RST(Rsest)端为复位信号输入端,只要在该引脚上连续保持两个机器周期以上高电平,80C51芯片即实现复位操作,复位后一切从头开始,CPU从0000H开始执行执行指令。Vpd功能:在Vcc掉电的情况下,该引脚可接上备用电源,由Vpd向片内RAM供电,以保持片内RAM中的数据不丢失。4) EA/Vpp内外ROM选择/片内EPROM编程电源。EA功能:正常工作时,EA为内外ROM选择端。80C51单片机ROM寻址范围为64KB,其中4KB在片内,60KB在片外(80C51芯片无内ROM,全部在外面)。当EA保持高电平时,先访问内ROM,但当PC(程序计数器)值超过4KB(0FFFH)时,将自动转换向执行外ROM中的程序。当EA保持低电平时,则只访问ROM,不管芯片内有否内ROM。对80C31芯片,片内无ROM,因此EA必须接地。Vpp功能:片内有EPROM的芯片,在EPROM编程期间,此引脚用于施加编程电源Vpp。对4个控制引脚,应熟记其第一功能,了解其第二功能。严格来讲,80C51的控制线还应包括P3口的第二功能。1 I/O引脚80C51共有4个8位并行I/O端口,共32个引脚。1) P0口8位双向I/O口。在不并行扩展外存储器(包括并行扩展I/O口)时,P0口用作双向I/O口。在并行扩展外存储器(包括并行扩展I/O口)时,P0口用于分时低8位地址(地址总线)和8位数据信号(数据总线)。P0口能驱动8个LSTTL门。2) P1口8位准双向I/O口(“准双向”是指该口内部有固定的上拉电阻)。P1口能驱动为4个LSTTL门。3) P2口8位准双向I/O口。在不并行扩展外存储器(包括并行扩展I/O口)时,P2口可用作双向I/O口。在并行扩展外存储器(包括并行扩展I/O口)时,P2口用于传送高8位地址(属地址总线)。P2口能驱动4个LSTTL门。4) P3口8位准双向I/O口。可作一般I/O口用,同时P3口每一引脚还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。P3口第二功能如下:P3.0RXD:串行口输入端;P3.1TXD:串行口输出端;P3.2INTO:外部中断0请求输入端;P3.3INT1:外部中断1请求输入端.P3.4T0: 定时/计数器0外部信号输入端;P3.5T1:定时/计数器1外部信号输入端P3.6WR: 外RAM写选电气号输出端;P3.7RD:外RAM读写选电气号输出端;P3口驱动能力为4 个 LSTTL门。上述4个I/O口,各有各的用途。在不并行扩展外存储器(包括并行扩展I/O口)时,4个I/O口都可作为双向I/O口用。在并行扩展外存储器(包括并行扩展I/O口)时,P0口专用于分时传送低8位地址信号和8位数据信号,P2口专用于传送高8位地址信号。P3口根据需要常用于第二功能,真正可提供用户使用的I/O口是P1口和一部分未用作第二功能P3口端线。3-5采样系统及温度传感器的选择3-5-1采样系统电路的设计:考虑计算调试和编程的方便,取00H-0FFH对应0-5V和,即每对应,数字量为02H。模拟量为 由AD590的参数计算得: 得 为了实际应用有15K的电阻和5K的电位器一同组成。3-5-2温度传感器的选择温控传统的模拟温度传感器,如热电偶、热敏电阻和RTDS对温度的监控,在一些温度范围内线性不好,需要进行冷端补偿或引线补偿;热惯性大,响应时间慢。集成模拟温度传感器与之相比,具有灵敏度高、线性度好、响应速度快等优点,而且它还将驱动电路、信号处理电路以及必要的逻辑控制电路集成在单片IC上,有实际尺寸小、使用方便等优点。常见的模拟温度传感器有LM3911、LM335、LM45、AD22103电压输出型、AD590电流输出型。 1)AD590温度传感器 AD590是集成恒流型的测温器件,这类器件主要用于精确地测温。它们具有测温误差小、动态电阻高、响应速度快、微功耗、传输距离远、体积小等优点,适合远距离测温和控温,不需要进行非线型校正。AD590是美国HARRIS公司生产的采用激光修正的精密集成温度传感器。AD590有三种封装形式:TO-52封装、陶瓷封装(测温范围均为-50-+150)、TO-92封装(测温范围为0-+70)。采用TO-52封装的AD590产品的主要技术指标如下表所示。该器件的外形与小功率晶体管相仿,共有三个管脚:1正极,2负极,3接管壳。使用时将管壳接地,可起到屏蔽作用。AD590M的测温范围均为-50-+150,最大非线型误差0.3,响应时间仅20s,重复性误差低至0.05,功耗约2 mW。AD590的主要电器参数为:工作电压范围:+4+30V测温范围: -50+150温度系数: 1A/K 25电流输出(298.20K) 298.2A 输出阻抗: 10M2)LM135/235/335温度传感器LM135/235/335系列是美国国家半导体公司(NS)生产的一种高精度易校正的集成温度传感器,工作特性类似于齐纳稳压管。该系列器件灵敏度为10mV/K,具有小于1的动态阻抗,工作电流范围从400A到5mA,精度为1,LM135的温度范围为-55+150,LM235的温度范围为-40+125,LM335为-40+100。封装形式有TO-46、TO-92、SO-8。该系列器件广泛应用于温度测量、温差测量以及温度补偿系统中。经过分析论证我们决定使用AD590M温度传感器来温度采样。硬件连接图见单元电路。3-6集成运放的选择3-6-1放大系统当温度是时 由 而得因为直接用电阻来配置的电阻是不可能的。所以我们用35K的电阻和10K的电位器配合来达到要求。3-6-2集成运放的选择时下发展最快的OP,是最具有特色的六大类OP 通用OP; 高精度OP; 低噪声OP; 微偏流OP; 高速OP; 低功耗OP根据设计的要求我们选择高精度OP系列误差等级为的品种。高精度OP最重要的参数是失调电压和漂移等DC参数,这个值越小精度越高,其价值也越大。而频率特性就相对不那么重要了,通频带限制在DC10Hz的范围。为了元器件好购置我们选用的是高精度OP的典型产品是OP07。产品内偏置电路采用齐纳二极管补偿平衡的偏置调整技术,这在当时是具有卓越的DC特性的产品。使用中要注意:假设mV放大器设计要求增益大,那么当开环增益太小时就容易产生非线性失真。3-7控制系统及光电耦合器的选择3-7-1控制系统为了防止电网中的干扰信号冲击CPU使用光电耦合器MOC3021。当P1.6为高电平时MOC3021内置的发光二极管处于截止状态使可控硅截止停止加热状态。当P1.6为低电平时MOC3021内置的发光二极管发射红外光使可控硅导通处于加热状态。为了监控的直观可见我们使用了一个发光二极管来于被加热体同步。当加热是发光二极管亮反之灭。 下图为过零触发晶体管电路,MOC3021能在正弦交流过零时自动导通,触发大功率双向晶闸管导通。从而省去了过零检测等复杂电路减低了成本提高了可靠性。100欧电阻为限流电阻,300欧为BCG门极电阻,防止误触发,提高了抗干扰性。 3-7-2光电耦合器的选择光电耦合器,是一种半导体光电器件,由于它具有体积小、寿命长、抗干扰能力强、工作温度宽及无触点输入与输出在电气上完全隔离等特点,被广泛地应用在电子技术领域及工业自动控制领域中,它可以代替继电器、变压器、斩波器等,而用于隔离电路、开关电路、数模转换、逻辑电路、过流保护、长线传输、高压控制及电平匹配等。种类繁多常见的有以下几类:1.三极管输出型光电耦合器三极管输出型光电耦合器电路如图461中(a)所示,它是由两部分组成的。其中,1、2端为输入端,通常由发光器件构成;4、5、6端接一只光敏三极管构成输出端,当接收到发射端发出的红外光后,在三极管集电极中便有电流输出。1)三极管输出型光电耦合器的特点,是具有很高的输入输出绝缘性能,频率响应可达300kHz,开关时间数微秒。2)可控硅输出型光耦合器可控硅输出型光耦合器的电路如图46?中(b)所示。该器件为六脚双列式封装。当1、2端加入输入信号后,发射管发出的红外光被接在4、5、6脚的光敏可控硅接收,使其导通。它可应用在低电压电子电路控制高压交流回路的开启。3)光耦合的可控硅开关驱动器图46-1图462中(a)为光敏双向开关器件;图46?中(b)为过零控制电路及光敏双向开关器件组合体。它们的工作原理是:利用输入端红外光控制输出端的光敏双向开关导通,进而触发外接双向可控硅导通,达到控制负载接入交流220V回路的目的。图中(a)为非过零控制,图中(b)为过零控制。本驱动器有非常好的输入与输出绝缘性,可构成固态继电器的控制电路,其输出的控制功率由可控允许功率决定。图46-24)达林顿管输出的光检测器达林顿管输出的光检测器如图46中(a)所示。它是由两只管子组成复合管,具有很高的电流放大能力,形成下一级或负载的驱动电流,有较强的光检测灵敏度。5)数字电路光耦合器数字电路光耦合器电路如图46中(b)所示。光耦合器输出为施密特触发电路形式,其特点是响应速度快、数字逻辑可靠,应用于计算机接口、数控电源及电动机控制中。6)双向开关触发器输出的光检测器图463中的(c)为双向开关触发器输出的光检测器电路。该图为三端器件,内部是光敏双向开关器件,收到红外光线后,双向开关器件导通,触发外接可控硅导通,使负载接入220V回路中。图46-3由于设计要求是控制220V的交流电综合考虑后选用光耦合的可控硅开关驱动器。MOC3021的参数及引脚说明:引脚:1-阳极,2-阴极,3-N.C,4-主连接端,5-基片(不连接)6-主连接端器件型号MOC3021阻断电压峰值400V mimLED触发电流IFT(VTM=3V)15mA/max零交叉禁止电压(标定IFT值下)-V/max工作电压(交流峰值)125/220Vacpk10V/us3-8 A/D转换器的选择及介绍:AD转换器的选择在确定方案时以说明在此不在累赘。1 ADC0832模数转换芯片简单介绍ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性强,性价比高。其目前已经有很高的普及率。ADC0832 具有以下特点: 8位分辨率; 双通道A/D转换; 输入输出电平与TTL/CMOS相兼容; 5V电源供电时输入电压在05V之间; 工作频率为250KHZ,转换时间为32S; 一般功耗仅为15mW; 8P、14PDIP(双列直插)、PICC 多种封装; 商用级芯片温宽为0C to +70C,工业级芯片温宽为.40C to +85C;芯片接口说明: CS_ 片选使能,低电平芯片使能。 ADC0832的引脚图 CH0 模拟输入通道0,或作为IN+/-使用。 CH1 模拟输入通道1,或作为IN+/-使用。 GND 芯片参考0 电位(地)。 DI 数据信号输入,选择通道控制。 DO 数据信号输出,转换数据输出。 CLK 芯片时钟输入。 Vcc/REF 电源输入及参考电压输入(复用)。ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。芯片转换时间仅为32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。3-9 显示系统及显示器的选择3-9-1显示系统我们使用的LED为共阳极管。其显示的功能主要由软件的设计实现,为了节省系统的资源,本系统采用动态显示。动态显示原理如下:当向LED的段码数据口发送第一个8位数据,这时只有一个数码管显示该数码,延时一段时间后可以发送第二8位数据,显示器分时轮流工作,虽然每次只有一个显示器显示,但由于人的视觉暂留现象,我们仍能感觉到所有显示器都在同时显示。 显示电路的原理图 见 总原理图在此就不在画出。AT89C51驱动能力有限, 我们采用三极管(9012)驱动数码管,并控制位码的选通,只有当AT89C51的相应的口为”0”是低电平时数码管才被选中。3-9-2显示器的选择显示部分一般由LED和LCD两种显示。本次设计在满足要求的情况下为了节约成本决定用LED数码管显示。1.显示方式的选择1).静态显示 将单片机的并行口与数码管的笔画端相连,LED的公共端接固定电平。 优点:(1)亮度高 (2)程序简单 缺点:占用口线多2).动态显示 将若干个数码管的同名笔画端连到一起,接到一个8位的并行口,各公共端接到另一个并行口。 优点:占用I/O断线少;电路较简单,硬件成本低;当要求显示位数较多时,通常采用动态扫描显示方式。 缺点:编程较复杂,CPU要定时扫描刷新显示。2.LED数码管编制方式 当LED数码管与单片机相连时,一般将LED数码管的各笔画端引脚a、b、g、Dp按某一顺序接到89S51单片机某一个并行I/O口D0、D1、D7,当该I/O口输出为某一特定数据时,就能使LED数码管显示出某个字符。例如要使共阳极LED数码管显示“0”,则a、b、c、d、e、f、各笔端引脚为低电平,如表所示。LED数码管D7D6D5D4D3D2D1D0字段码显示数字Dpgfedcba11000000C0H0 C0H称为共阳LED数码管显示“0”的字段码。 LED数码管的编制方式有多种,按小数点计否可分为七段码和八段码;按公共端连接方式可分为共阴字段码和共阳字段码,计小数点的共阴字段码与共阳字段码互为反码:按a、b、g、Dp编码顺序是高位在前,还是低位在前,又可分为顺序字段码和逆序字段码。甚至在某些特殊情况下可将a、b、g、Dp顺序打乱编码。下表为共阴和共阳LED数码管几种八段编制码。共阴和共阳LED数码管几种八段编制码显示数字共阴顺序小数点暗共阴逆序小数点暗共阳顺序小数点亮共阳顺序小数点暗Dp g f e d c b a 16进制a b c d e f g Dp 16进制00 0 1 1 1 1 1 13FH1 1 1 1 1 1 0 0FCH40HC0H10 0 0 0 0 1 1 006H0 1 1 0 0 0 0 0 60H79HF9H20 1 0 1 1 0 1 15BH1 1 0 1 1 0 1 0 DAH24HA4H30 1 0 0 1 1 1 14FH1 1 1 1 0 0 1 0F2H30HB0H40 1 1 0 0 1 1 066H0 1 1 0 0 1 1 066H19H99H50 1 1 0 1 1 0 16DH1 0 1 1 0 1 1 0B6H12H92H60 1 1 1 1 1 0 17DH1 0 1 1 1 1 1 0BEH02H82H70 0 0 0 0 1 1 107H1 1 1 0 0 0 0 0B0H78HF8H80 1 1 1 1 1 1 17FH1 1 1 1 1 1 1 0FEH00H80H90 1 1 0 1 1 1 16FH1 1 1 1 0 1 1 0F6H10H90H 那么,如何将显示数转换为显示字段码呢?转换过程需分两步进行。第一步是从显示数中分离出显示的每一位数字,通常的方法是将显示数除以十进制的权。例显示数123,除以100,分离出百位显示数字1:再除以10,分离出十位显示数字2;余数3为个位显示数字。第二步是将分离出的显示数字转换为显示字段码,通常是用查表的方法。3-10电源电路本模块将交流 220V输入电压变为2组直流电压,其中5V电压为CPU等数字电路提供电源;12V电压为运放模拟芯片提供电源;电压为温度变送器提供电源。 220v市电经变压器输出两组独立的12v交流,电桥整流,大电容滤波得到 + 12v直流,再加一个0.03uF小电容滤出电源中的高频分量。 第四章 软件设计4-1开发软件及编程语言的简介 4-1-1开发系统由于条件的限制我们使用的是单片机模拟开发系统。它是一种完全依靠软件手段进行开发的系统。其工作原理是利用模拟开发软件在计算机上实现对单片的硬件模拟、指令模拟、运行状态模拟,基本上包括了在线仿真器的单步、跟踪、检查和修改功能,并且还能模拟产生各种中断和I/O口应答过程,从而完成应用软件开发过程,期间不需要任何在线仿真器和目标机。其优点是效率高成本低,缺点是不能进行硬件系统的诊断和实时仿真。4-1-2程序设计语言高性能的单片机开发系统能支持高级语言编写源程序。目前适用89C51单片机的高级语言有PL/M51、C-51、C、MBASIC-51等。高级语言对不熟悉MCS-51汇编语言的用户比较适用,但用高级语言编写源程序的缺点是不宜编写实用性很强、紧凑精练的高质量的程序。最重要的是在我们学习单片机时是以汇编语言为主来学习的而高级语言编程不如汇编语言编程。我们决定使用汇编语言来完成程序的编写。4-2程序模块化处理软件设计是本设计的关键之一。由于AT89C51可灵活编程实现各种控制功能,可满足不同的实际需要。本设计编写的程序可实现具有设定温控值的功能。程序主要由五大模块组成:主函数、定时器中断函数部分、键盘设定中断部分与处理键盘函数、显示刷新函数。因为温度计对精度要求高,对速度要求低,检测温度每1s执行一次定时器中断。其函数中有温度检测程序、转换BCD码程序、控制程序、报警程序。 主函数初始化系统,然后刷新显示、; 键盘设定中断部分与处理键盘函数和为一个子程序。4-3内RAM资源配置主资源配置:30H,31H,32H中分别放的是设定温度的百位,十位和个位40H,41H,42H,43H中存放的是检测温度的百位,十位,个位和十分位50H单元中存放的是检测的温度值,51H单元中存放的是设定的温度值显示子程序用的寄存器区是区,定时中断子程序用的寄存器区是区,键盘中断子程序用的寄存器区是区P0口为字型口,P2口为字位口,P1.5为报警口,P1.6为温度控制端口, 00H为键盘选择标志位,02H为显示选择标志位,03H为报警标志位,4-4程序清单4-4-1程序入口地址 ORG 0000H ;主程序;入口地址的配置 LJMP MAIN ORG 000BH ;T0的中断入口 LJMP T0INT ORG 0013H ;INT1中断入口 LJMP KEY4-4-2主程序系统主程序流程图如下图所示。主程序中主要有2个中断,一个为设定温度中断服务程序;第二个是温度传感器采样温度信号中断,程序开始设定定时器采样周期,程序开始运行后,到采样周期设定值时定时器溢出, 程序转向执行采样中断程序、运算程序和执行机构驱动程序。完成后回到主程序把采样来的数据送去显示。 ;主程序ORG 0030HMAIN: MOV SP ,#60H主程序并行口初始化串行口初始化堆栈指针初始化定时器初始化标志位的初始化调用显示程序显示数值初始化工作寄存器的选择 MOV P1 ,#0FFH MOV TMOD ,#01H ;T0定时方式1 MOV TH0 ,#3CH ;T0初值 MOV TL0 ,#0B0H MOV R7 ,#10 MOV 40H ,#00H ;检测温度显示内容初始化 MOV 41H ,#00H MOV 42H ,#00H MOV 43H ,#00H MOV 30H ,#01H ;设置温度显示单元的初始化 MOV 31H ,#02H MOV 32H ,#08H MOV 51H,#0FFH CLR RS0 ; 工作寄存器0的选择 CLR RS1 SETB EA ; CPU中断允许控制位 SETB ET0 ;T0中断允许 SETB EX1 ;INT1中断允许 SETB IT1 ;边缘触发 SETB PX1 SETB TR0 SETB P1.6 ;关电炉 SETB P1.5 CLR 03H SETB 02H CLR00H LM0: LCALL DISP SJMP LM0 4-4-3显示程序;显示子程序, 40H中放百位 , 41H中放十位 , 42H中放个位 ;43H中放十分位, 用到的寄存器有 R0,R2, R3,R4 DISP:JB 02H,ZY ;(02H)=1转 MOV R0 ,#30H显示子程序02H=1?NY40H,41H单元显示30H,31H单元显示NNYY32单元显示43单元显示02H=1?返回42单元显示02H=1? AJMP ZY1 ZY:MOV R0 ,#40H ZY1:MOV R2 ,#11110111B MOV DPTR ,#TAB LOOP:MOV A ,R0 ; MOVC A,A+DPTR MOV P0,A MOV P2,R2 ACALL DELAY MOV A,R2 RR A MOV R2 ,A INC R0 JB 02H,ZY2 CJNE R0,#32H,LOOP AJMP ZY3 ZY2:CJNE R0,#42H,LOOP ZY3:MOV DPTR ,#TAB1 MOV A,R0 MOVC A,A+DPTR MOV P0,A MOV P2,R2 ACALL DELAY JB 02H,ZY4 AJMP DISP ZY4:MOV DPTR,#TAB MOV A,R2 RR A MOV R2,A INC R0 MOV A,R0 MOVC A,A+DPTR MOV P0,A MOV P2,R2 ACALL DELAY AJMP DISP RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H TAB1:DB 40H,79H,24H,30H,19H DB 12H,02H,78H,00H,10H DELAY:MOV R3,#2 W1:MOV R4,#250 W2:DJNZ R4,W2 DJNZ R3,W1 RET4-4-4定时器中断子程序N调用温度控制子程序调用BCD码检测子程序调用温度检测子程序调用报警子程序恢复现场返回保护现场定时器初值重新设定1S定时到否?选择寄存器2区停止寄存器计时定时中断子程序Y给定时器T0设定一个采样周期,考虑到电阻炉为纯滞后延迟系统,为了提高系统的稳定精度,根据经验设1s采样一次,当定时时间到,T0发出一个中断请求信号,单片机转向执行采样中断服务程序等。其流程图如上图所示:T0定时 器中断服务子程序 T0INT:PUSH PSW ; PUSH ACC PUSH BN温度检测子程序 0=50H,B=0,R6=0调用AD转换子程序转换结束否?A+(50H)送到50H单元 有进位否?(B)+1送到B中R6-1等于0?B,50H除以4送到50H返回NN MOV TH0,#3CH ; MOV TL0,#0B0H DJNZ R7,TOR;判断一秒时间到否 CLR TR0 MOV R7,#10 SETB RS0 ; CLR RS1 LCALL TADC ; LCALL BCD ; LCALL CONT ; LCALL ALARM SETB TR0 TOR: POP B POP ACC POP PSW RETI4-4-5温度检测子程序 ;温度检测子程序 检测值的存储地址是50H单元 ;用到的寄存器有A,B,R6, TADC:MOV 50H,#00H MOV B,#00H MOV R6,#04H TT0:LCALL AD0832 ; ADD A,50H ; MOV 50H,A ; JNC TT1 ; INC B ; TT1:DJNZ R6,TT0 ; CLR C XCH A,B RRC A XCH A,B RRC A CLR C XCH A,B RRC A XCH A,B RRC A MOV 50H,ARET清接收中断标志同时启动接收第二个字节YNREN置1接收第一个字节完成否?读第一个字节的数据清发送中断标志启动AD 转换N置选择通道片选置状态字设置数据存储区首地址AD转换子程序等待转换完成Y返回新数送入50H单元暂存数据组合后的八位高低四位互换屏蔽后的一二字节组合屏蔽第二字节高四位,第一字节第四位读第二个字节清中断标志接受第二个字节YN4-4-6A/D转换子程序;A/D转换子程序AD0832 SCON ,#00H CLR ES MOV R0,#50H CLR P1.7 ;片选 MOV A,#06H ; ADC0:MOV SBUF ,A ; ADC1:JNB TI,ADC1 ; CLR TI ; SETB REN ADC2:JNB RI ,ADC2 ; CLR RI MOV A,SBUF MOV B,A ADC3:JNB RI ,ADC3 CLR RI MOV A,SBUF ANL A,#0FH ANL B,#0F0H ORL A,B SWAP A MOV R0,A CLR REN SETB P1.7 RET1).89C51串行口发送和接收数据的次序为先低后高位,启动和通道配置号为06H,89C51发送时先发低位,次序为:01100000,AD0832接收的第一个“1”为启动信号,紧跟着的“10”为通道配置信号CH0,再后面的一个“0”为稳定位。最后3为“000”是ADC0832输出串行AD数据D7D6D5,由于89C51尚未允许串行接收(REN=0),因此丢失,直至89C51允许串行接收(REN=1),89C51TXD端再次发出时钟脉冲,至SUBF满,D3D2D1D0D1D2D3D4(A)D3D2D1D0D7D6D5D4(C) (B)/D7D6D5D4D7D6D5D4D3D2D1D0(D)接收第一个字节的八位数为A图(注意先接收低位D4);清串行接收标志后,启动串行接收第二字节,其数据图如B;组合后的八位数据为C图;高低四位互换后的八位数为D图。 ;BCD码转换子程序 4-4-7BCD码转换子程序;把50H单元的内容送到40H,41H,42H,43H存放 BCD:MOV A,50H MOV B,#2 DIV AB DJNZ B,SF MOV 43H,#05H AJMP SF1 SF:MOV 43H,#00H SF1:MOV B,#100 DIV AB MOV 40H,A ;百位 MOV A,B温度控制子程序50H51H?YN50H-51H2?51H-50H2?YYNN03H位置1.P1.6置1P1.6置0返回 MOV B,#10 DIV AB MOV 41H,A MOV 42H,BRET4-4-8温度控制子程序;温度控制子程序 CONT:MOV A,50H CLR C SUBB A,51H JC LLT0 CLR C SUBB A,#02H JC ED1 SETB 03H SETB P1.6 AJMP ED1 LLT0:MOV A,51H CLR C SUBB A,50H SUBB A,#02H JC ED1 CLR P1.6 ED1:RET4-4-9 报警子程序;报警子程序ALARM: MOV A,50H CLR C SUBB A,51H JC SA JNB 03H,ED2 CLR C SUBB A,#04H JC ED2 CLR P1.5 AJMP ED2 SA:JNB 03H,ED2 MOV A,51H CLR C报警子程序50H51H?YN50H-51H4?51H-50H4?YYNN.P1.5置0P1.5置0返回03位为1?YN SUBB A,50H SUBB A,#04H JC ED2 CLR P1.5 ED2:RET4-4-10键盘子程序用于调节设定值;键盘子程序用于调节设定值 KEY:PUSH ACC PUSH PSW PUSH B SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 CLR RS0 SETB RS1 MOV A,P1 JB P1.0,COMD1 CPL TR0 CPL 00H CPL 02H MOV R1,#30H AJMP ED COMD1:JNB 00H,ED; JB P1.1, COMD2; MOV A,R1 SUBB A,#31H JNZ S21; MOV R1,#32H AJMP ED S21:JNC S22; MOV R1,#31H AJMP ED S22:MOV R1,#30H AJMP ED COMD2:JB P1.2,COMD3 INC R1; CJNE R1,#30H,S31 CJNE R1,#02H,S311 MOV R1,#00H AJMP ED S311:MOV R1,#01H AJMP ED S31:CJNE R1,#0AH,ED MOV R1,#00H AJMP ED COMD3:JB P1.3,ED; DEC R1 CJNE R1,#30H ,S32 CJNE R1,#0FFH,S321 MOV R1,#01H AJMP ED S321:MOV R1,#00H AJMP ED S32:CJNE R1,#0FFH ,ED MOV R1,#09H AJMP ED ED:MOV 51H,#00H MOV R0,#30H MOV R2,#100 ACALL X MOV R0,#31H MOV R2,#10 ACALL X MOV R0,#32H MOV R2
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。