基于单片机温度自动控制系统 - 图文

更新时间:2024-04-11 02:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

茂 名 职 业 技 术 学 院

毕 业 设 计(论 文)

题目: 基于单片机温度自动控制系统

姓 名: 学 号: 院 系: 专 业: 电气自动化技术 指导老师:

摘 要

近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及具体应用对象特点的软件结合,以作完善。

本文从硬件和软件两方面来讲述水温自动控制过程,在控制过程中主要应用AT89C51、ADC0809、LED显示器、LM324比较器,而主要是通过 DS18B20数字温度传感器采集环境温度,以单片机为核心控制部件,并通过四位数码管显示实时温度的一种数字温度计。软件方面采用汇编语言来进行程序设计,使指令的执行速度快,节省存储空间。为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,使硬件在软件的控制下协调运作。

而系统的过程则是:首先,通过设置按键,设定恒温运行时的温度值,并且用数码管显示这个温度值.然后,在运行过程中将采样的温度模拟量送入A/D转换器中进行模拟-数字转换,再将转换后的数字量用数码管进行显示,最后用单片机来控制加热器,进行加热或停止加热,直到能在规定的温度下恒温加热。

关键词:单片机系统;传感器;数据采集;模数转换器;温度

2

温度检测系统的国内外状况

温度是一个非常重要的物理量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形、结晶以及空气流动等物理和化学过程。温度控制失误就可能引起生产安全、产品质量、产品产量等一系列问题。因此对温度的检测的意义就越来越大。温度采集控制系统在工业生产、科学研究和人们的生活领域中,得到了广泛应用。在工业生产过程中,很多时候都需要对温度进行严格的监控,以使得生产能够顺利的进行,产品的质量才能够得到充分的保证。使用自动温度控制系统可以对生产环境的温度进行自动控制,保证生产的自动化、智能化能够顺利、安全进行,从而提高企业的生产效率。

温度采集控制系统是在嵌入式系统设计的基础上发展起来的。嵌入式系统虽然起源于微型计算机时代,但是微型计算机的体积、价位、可靠性,都无法满足广大对象对嵌入式系统的要求,因此,嵌入式系统必须走独立发展道路。这条道路就是芯片化道路。将计算机做在一个芯片上,从而开创了嵌入式系统独立发展的单片机时代。单片机诞生于二十世纪七十年代末,经历了SCM、MCU、SOC三大阶段。在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用MCS-51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点。而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产经中,温度过高常会遇到的问题。同时温度也是生活中最常见的一个物理量,也是人们很关心的一个物理量,它与我们的生活息息相关,有着十分重要的意义,在工业生产中,温度过高过低会直接影响到产品的质量、对机械设备和控制中的各种原器件造成一定的损坏,严重的会影响到生产安全。在日常生活中,温度过高或过低同样会造成一些不良影响。

3

目 录

摘 要222222222222222222222222222222222222222 温度检测系统的国内外状况22222222222222222222222223 目 录222222222222222222222222222222224 第1章 绪 论 2222222222222222222222222222222222222222222226

1.1课题的背景及其意义 22222222222222222222222222222222226 1.2课题研究的内容及要求 222222222222222222222222222222226 1.3课题的研究方案 22222222222222222222222222222227

第2章 设计理论基础 222222222222222222222222222222222229

2.1单片机的发展概况 22222222222222222222222222222222222222229 2.2 AT89C51系列单片机介绍 22222222222222222222222222222229 2.2.1 AT89C51系列基本组成及特性 2222222222222222222222222222222222229 2.2.2AT89C51系列引脚功能 2222222222222222222222222222210 2.2.3 AT89C51系列单片机的功能单元222222222222222222222222222222222212 2.3 ADC0809模数转换器 222222222222222222222222222222214 2.4运算放大器LM324 222222222222222222222222222222222222222222222215 2.5移位寄存器74LS164 22222222222222222222222222222222222222215 2.6数码显示管LED 222222222222222222222222222222222222222222216 2.7数字温度计DS18S20 222222222222222222222222222222222222222222216

第3章 硬件电路设计 2222222222222222222222222222222222222222218

3.1单片机控制单元 22222222222222222222222222222222222222218 3.2温度采样部分22222222222222222222222222222222222222222218 3.3模数转换部分2222222222222222222222222222222222222222222222219 3.3.1模数转换技术 222222222222222222222222222222222222222222222219 3.3.2积分型模数转换器 22222222222222222222222222222222222222222220 3.4显示部分 22222222222222222222222222222222222222222220 3.5调节执行单元 222222222222222222222222222222222222222222220

4

第4章 软件设计 22222222222222222222222222222222222222222222222222

4.1主程序流程图 222222222222222222222222222222222222222222222 4.2中断子程序流程图 2222222222222222222222222222222222222222222222 4.3按键流程图 2222222222222222222222222222222222222222222222 4.4显示流程图 2222222222222222222222222222222222222222222

第5章 系统调试及结论分析 22222222222222222222222222222222222224

5.1硬件调试 22222222222222222222222222222222222222224 5.1.1硬件电路故障及解决方法 22222222222222222222222222222222222224 5.1.2硬件调试方法 222222222222222222222222222222222222224 5.2软件调试 2222222222222222222222222222222222222224 5.2.1软件电路故障及解决方法 22222222222222222222222222222222222225 5.2.2软件调试方法 222222222222222222222222222222222222225 5.3结论分析 2222222222222222222222222222222226

第6章 总结 222222222222222222222222222222222222222222222222222227 致 谢 222222222222222222222222222222222222222222222222222222228 附 录 2222222222222222222222222222222222222222222222229 系统总程序清单 2222222222222222222222222222222222222222229 系统原理图 222222222222222222222222222222222222222222222235 参考文献 2222222222222222222222222222222222222222236

5

第1章 绪 论

1.1课题的背景及其意义

二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,伴随着科学技术和生产的不断发展,需要对各种参数进行温度测量。因此温度一词在生产生活之中出现的频率日益增多,与之相对应的,温度控制和测量也成为了生活生产中频繁使用的词语,同时它们在各行各业中也发挥着重要的作用。如在日趋发达的工业之中,利用测量与控制温度来保证生产的正常运行。在农业中,用于保证蔬菜大棚的恒温保产等。

温度是表征物体冷热程度的物理量,温度测量则是工农业生产过程中一个很重要而普遍的参数。温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位。而且随着科学技术和生产的不断发展,温度传感器的种类还是在不断增加丰富来满足生产生活中的需要。

在单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。因此,单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业等重要工业领域中,担负着重要的测量任务。在日常生活中,也可广泛实用于地热、空调器、电加热器等各种家庭室温测量及工业设备温度测量场合。但温度是一个模拟量,如果采用适当的技术和元件,将模拟的温度量转化为数字量虽不困难,但电路较复杂,成本较高。

1.2课题研究的内容及要求

我本次的毕业设计的题目是单片机水温控制系统设计。它是多种技术知识的结合,不仅涉及到软件的设计,而且还将应用电子技术与单片机的应用技术有机结合,使其具有精度高、测量误差小、稳定性好等特点。电路板的设计技术和机械加工工艺的巧妙结合,使其具备了显示直观、体积做工精细等特点,能为它在其它领域的广泛应用打下良好的基础。因为经过我们调查发现许多应用场合原来就有测温控温仪器,只是随着对生产质量与生产需要的要求在不断地提高,以往的那些测温控温的仪器根本不能满足现在的要求。其中,有部分应用场合对精度提高的幅度要求也不是特别高。因此,为了提高性价比,我所设计的系统提出在原有系统的基础上进行一些简单的改良,以此为出发点,主要阐述的是水温自动控制系统的一种实现方法。 1.课题的主要研究的内容

本文所要研究的课题是基于单片机控制的水温控制系统的设计,主要是介绍了对水箱温度的显示、控制及报警,实现了温度的实时显示及控制。水箱水温控制部分,提出了用DS18S20、AT89C51单片机及LED的硬件电路完成对水温的实时检测及显示,利用DS18S20与单片机连接由软件与硬件电路配合来实现对加热电阻丝的实时控制及超出设定的上下限温度的报警系统。而炉内温度控制部分,采用一套PID闭环负反馈控制系统,由DS18S20检测炉内温度,用中值滤波的方法取一个值存入程序存取器内部一个单元作为最后检测信号,并在LED中显示。控制器是用89C51单片机,用PID算法对检测信号和设定值的差值进行调节后输出控制信号给执行机构,去调节电阻炉的加热功率,从而控制炉内温

6

度。它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,特别适合于构成多点的温度测控系统,可直接将温度转化成串行数字信号供微机处理,而且每片DS18S20都有唯一的产品号,可以一并存入其ROM中,以便在构成大型温度测控系统时在单线上挂接任意多个DS18S20芯片。从DS18S20读出或写入DS18S20信息仅需要一根口线,其读写及其温度变换功率来源于数据总线,该总线本身也可以向所挂接的DS18S20供电,而且不需要额外电源。同时DS18S20能提供九位温度读数,它无需任何外围硬件即可方便地构成温度检测系统。而且利用本次的设计主要实现温度测试,温度显示,温度门限设定,超过设定的门限值时自动启动加热装置等功能。而且还要以单片机为主机,使温度传感器通过一根口线与单片机相连接,再加上温度控制部分和人机对话部分来共同实现温度的监测与控制。

2.用单片机实现其具体控制功能如下:

(1)能够连续测量水的温度值,用十进制数码管来显示水的实际温度。 (2)能够设定水的温度值,设定范围是30℃~90℃。

(3)能够实现水温的自动控制,如果设定水温为85℃,则能使水温保持恒定在85℃的温度下运行。

(4)用单片机AT89C51控制,通过按键来控制水温的设定值,数值采用数码管显示。

1.3课题的研究方案

温度控制系统是比较常见和典型的过程控制系统。温度是工业生产过程中重要的被控参数之一,当今计算机控制技术在这方面的应用,已使温度控制系统达到自动化、智能化,比过去单纯采用电子线路进行PID调节的控制效果要好得多,可控性方面也有了很大的提高。

温度是一个非线性的对象,具有大惯性的特点,在低温段惯性较大,在高温段惯性较小。

1. 方案一(下图1-1):是一位式模拟控制方案,选用模拟电路,用电位器设定值,反馈的温度值和设定值比较后,决定加热或不加热。其特点是电路简单,易于实现,但是系统所得结果的精度不高并且调节动作频繁,系统静态差大、不稳定。系统受环境影响大,不能实现复杂的控制算法,不能用数码管显示,不能用键盘设定。

图1-1方案一的图 图1-2方案二的图 2. 方案二(上图1-2):是二位式模拟控制方案,其基本思想与方案一相同,但由于采用上下限比较电路,所以控制精度有所提高。这种方法还是模拟控制方式,因此也不能实现复杂的控制算法使控制精度做得较高,而且不能用数码管显示,对键盘进行设定。

3. 方案三(下图1-3):是采用89C51单片机系统来实现。单片机软件编程灵活、自由度大,可用软件编程实现各种控制算法和逻辑控制。单片机系统可以用数码管来显示水温的实际值,能用键盘输入设定值。本方案选用了AT89C51

7

芯片,不需要外扩展存储器,可使系统整体结构更为简单。

图1-3方案三的图

结论:前两种方案是传统的模拟控制方式,而模拟控制系统难以实现复杂的控制规律,控制方案的修改也较为繁琐。而方案三是采用以单片机为控制核心的控制系统,尤其对温度控制,可达到模拟控制所达不到的效果,并且实现显示和键盘设定功能,大大提高了系统的智能化。也使得系统所测得结果的精度大大提高。所以,经过对三种方案的比较,本次毕业设计采用了方案三。

8

第2章 设计理论基础

本设计系统的基本组成单元包括:主机、温度采样单元、单片机控制单元、调节执行单元四部分,本章将逐一进行介绍。

2.1单片机的发展概况

1970年微型计算机研制成功之后,随之即出现了单片机(即单片微型计算机)— 美国Intel公司1971年生产的4位单片机4004和1972年生产的雏形8位单片机8008,这也算是单片机的第一次公众亮相。

1976年Intel公司首先推出能称为单片机的MCS-48系列单片微型计算机。它以体积小、功能全、价格低等特点,赢得了广泛的应用,同时一些与单片机有关公司都争相推出各自的单片机。

1978年下半年Motorola公司推出M6800系列单片机,Zilog公司相继推出Z8单片机系列。1980年Intel公司在MCS-48系列基础上又推出高性能的MCS-51系列单片机。这类单片机均带有串行I/O口,定时器/计数器为16位,片内存储容量(RAM,ROM)都相应增大,并有优先级中断处理功能,单片机的功能、寻址范围都比早期的扩大了,它们是当时单片机应用的主流产品。

1982年Mostek公司和Intel公司先后又推出了性能更高的16位单片机MK68200和MCS-96系列,NS公司和NEC公司也分别在原有8位单片机的基础上推出了16位单片机HPC16040和μPD78333系列。

1987年Intel公司又宣布了性能比8096高两倍的CMOS型80C196,1988年推出带EPROM的87C196单片机。由于16位单片机推出的时间较迟、价格昂贵、开发设备有限等多种原因,至今还未得到广泛应用。而8位单片机已能满足大部分应用的需要,因此,在推出16位单片机的同时,高性能的新型8位单片机也不断问世。

纵观这短短的20年,经历了4次更新换代,单片机正朝着集成化、多功能、多选择、高速度、低功耗、扩大存储容量和加强I/O功能及结构兼容的方向发展。新一代的80C51系列单片机除了上述的结构特性外,其最主要的技特点是向外部接口电路扩展,以实现微控制器(microcontroller)完善的控制功能为己任。这一系列单片机为外部提供了相当完善的总线结构,为系统的扩展和配置打下了良好的基础。由于80C51系列单片机所具有的一系列优越的特点,获得广泛使用指日可待。

下面我们就来重点介绍一下本毕业论文讨论的系统所用的AT89C51系列单片机。

2.2 AT89C51系列单片机介绍

2.2.1 AT89C51系列基本组成及特性

AT89C51是一种带4k字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。而在众多的51系列单片机中,要算 ATMEL 公司的AT89C51更实用,也是一种高效微控制器,因为它不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器,用户可以用电的方式达到瞬间擦除、改写。而这种单片机对开发设备的要求很低,开发时间也大大缩短。

9

AT89C51基本功能描述如下:AT89C51是一种低损耗、高性能、CMOS八位微处理器,而且在其片种还有4k字节的在线可重复编程快擦快写程序存储器,能重复写入/擦除1000次,数据保存时间为十年。它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。AT89C51可构成真正的单片机最小应用系统,缩小系统体积, 增加系统的可靠性,降低了系统成本。只要程序长度小于4k, 四个I/O口全部提供给用户。可用5V电压编程,而且写入时间仅10毫秒, 仅为8751/87C51 的擦除时间的百分之一,与8751/87C51的12V电压擦写相比, 不易损坏器件, 没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。AT89C51 芯片提供三级程序存储器锁定加密, 提供了方便灵活而可靠的硬加密手段, 能完全保证程序或系统不被仿制。另外,AT89C51 还具有MCS-51系列单片机的所有优点。12838 位内部RAM, 32 位双向输入输出线, 两个十六位定时器/计时器, 5个中断源, 两级中断优先级, 一个全双工异步串行口及时钟发生器等。AT89C51有间歇、掉电两种工作模式。间歇模式是由软件来设置的, 当外围器件仍然处于工作状态时, CPU可根据工作情况适时地进入睡眠状态, 内部RAM和所有特殊的寄存器值将保持不变。这种状态可被任何一个中断所终止或通过硬件复位。掉电模式是VCC电压低于电源下限, 当振荡器停止振动时, CPU 停止执行指令。该芯片内RAM和特殊功能寄存器值保持不变, 一直到掉电模式被终止。只有VCC电压恢复到正常工作范围而且在振荡器稳定振荡后,通过硬件复位、掉电模式可被终止。

2.2.2 AT89C51系列引脚功能

AT89C51有40引脚双列直插(DIP)形式。其与80C51引脚结构基本相同,其逻辑引脚图如下图2-1所示:

图2-1 AT89C51逻辑引脚图

各引脚功能叙述如下: 1.电源和晶振

VCC——运行和程序校验时加+5V GND——接地

10

XTAL1——输入到振荡器的反向放大器

XTAL2——反向放大器的输出,输入到内部时钟发生器

(当使用外部振荡器时,XTAL1接地,XTAL2接收振荡器信号)

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

P0口——8位、漏极开路的双向I/O口。当使用片外存储器(ROM、RAM)时,作地址和数据分时复用。在程序校验期间,输出指令字节(需加外部上拉电路)。P0口(作为总线时)能驱动8个LSTTL负载。

P1口——8位、准双向I/O口。在编程/校验期间,用于输入低位字节地址。P1口可驱动4个LSTTL负载。对于80C51,P1.0——T2,是定时器的计数端且位输入;P1.1——T2EX,是定时器的外部输入端。这时,读两个特殊输入引脚的输出锁存器应由程序置1。

P2口——8位、准双向I/O口。当使用片外存储器(ROM及RAM)时,输出高8位地址。在编程/校验期间,接收高位字节地址。P2口可以驱动4个LSTTL负载。

P3口——8位、准双向I/O口,具有内部上拉电路。P3口提供各种替代功能。在提供这些功能时,其输出锁存器应由程序置1。P3口可以输入/输出4个LSTTL负载。 3.串行口

P3.0——RXD(串行输入口),输入。 P3.1——TXD(串行输出口),输出。 4.中断

P3.2——INT0外部中断0,输入。 P3.3——INT1外部中断1,输入。 5.定时器/计数器

P3.4——T0定时器/计数器0的外部输入,输入。 P3.5——T1定时器/计数器1的外部输入,输入。 6.数据存储器选通

P3.6——WR低电平有效,输出,片外存储器写选通。 P3.7——RD低电平有效,输出,片外存储器读选通。 7.控制线(共4根) 输入:

RST——复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

EA/Vpp——片外程序存储器访问允许信号,低电平有效。在编程时,其上施加21V的编程电压。

注意:在加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

11

输入、输出:

ALE/PROG——地址锁存允许信号,输出。ALE以1/6的振荡频率稳定速率输出,可用作对外输出的时钟或用于定时。在EPROM编程期间,作输入,输入编程脉冲(PROG)。ALE可以驱动8个LSTTL负载。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。

注意:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 输出:

PSEN——片外程序存储器选通信号,低电平有效。在从片外程序存储器取址期间,在每个机器周期中,当PSEN有效时,程序存储器的内容被送上P0口(数据总线)。PSEN可以驱动8个LSTTL负载。 2.2.3 AT89C51系列单片机的功能单元 1.并行I/O接口:

单片机芯片内有一项主要功能就是并行I/O口。51系列共有4个8位的并行I/O口,分别记作P0、P1、P2、P3每个口都包含一个锁存器,一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低八位地址和数据由P0口分时传送,高八位地址由P2口传送。 2.定时器/计数器

定时器/计数器(timer/counter)是单片机中的重要部件,其工作方式灵活、编程简单,使用它对减轻CPU的负担和简化外围电路都大有好处。

C51系列包含有两个16位的可编程定时器/计数器分别称为定时器/计数器T0和定时器/计数器T1;在C51部分产品中,还包含有一个用做看门狗的8位定时器。定时器/计数器的核心是一个加1计数引脚上施加器,其基本功能是加1功能。在单片机的定时器T0或T1中,有一个定时器发生由0到1的跳变时,计数器增1,即为计数功能;在单片机内部对机器周期或其分频进行计数,从而得到定时,这就是定时功能。在单片机中,定时功能和计数功能的设定和控制都是通过软件来进行的。

定时器/计数器内部结构及其原理:由定时器0、定时器1、定时器方式寄存器TMOD和定时器控制寄存器TCON组成。当定时器/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器加1,直至计满溢出。定时器的定时时间与系统的振荡频率紧密相关,因为C51系列单片机的一个机器周期由12个振荡脉冲组成,所以,计数频率fc=fosc/12。如果单片机系统采12MHz晶振,则计数周期为: T=1/12*10*(1/12)=1μS ,这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。

当定时器/计数器设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数。在每个机器周期的S5P2期间采样引脚输入电平,若前一个机器周期采样值为1,后一个机器周期采样值为0,则计数器加1。新的计数值是在检测到输入引脚电平发生1到

12

6

0的负跳变后,于下一个机器周期的S3P1期间装入计数器中的,可见,检测一个由1到0的负跳变需要两个机器周期,所以最高检测频率为振荡频率的1/24。计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。 3.振荡器

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。当输入至内部时钟信号时要通过一个二分频触发器,而对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 4.芯片擦除

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM、定时器、计数器、串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 5.中断系统

中断系统是单片机的重要组成部分。实时控制、故障自动处理、单片机与外围设备间的数据传送往往采用中断系统。中断系统大大提高了系统的效率。

C51系统有关中断的寄存器有4个,分别为中断源寄存器TCON和SCON、中断允许控制寄存器IE和中断优先级控制寄存器IP;中断源有5个,分别为外部中断0请求INT0、外部中断1请求INT1、定时器0溢出中断请求TF0、定时器1溢出中断请求TF1和串行中断请求R1或T1。5个中断源的排列顺序由中断优先级控制寄存器IP和顺序查询逻辑电路共同决定,5个中断源分别对应5个固定的中断入口地址。中断的特点是分时操作,实时处理和故障处理。

简单介绍一下本次设计所需的单片机芯片AT89C51的中断系统中要用到的中断类型。

(1) 外部中断源

AT89C51有INT0和INT1两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或负边沿两种中断触发方式来输入中断请求信号。AT89C51究竟工作于哪种中断触发方式,可由用户对定时器控制寄存器TCON中IT0和IT1位状态的设定来选取。AT89C51在每个机器周期的S5P2时对INT0、线上中断请求信号进行一次检测,检测方式和中断触发方式的选取有关。若AT89C51设定为电平触发方式(IT0=0或IT1=0),则CPU检测到INT0、INT1上低电平时就可认定其上中断请求有效;若设定为边沿触发方式(IT0=1或IT1=1),则CPU需要两次检测INT0、INT1线上电平方能确定其上中断请求是否有效,即前一次检测为高电平和后一次检测为低电平时中断请求才有效。

(2) 定时器溢出中断源

定时器溢出中断由AT89C51内部定时器分的中断源产生,故它们属于内部中断。AT89C51内部有两个16位定时器/计数器,受内部定时脉冲(主脉冲经12分频后)或T0/T1引脚上输入的外部定时脉冲计数。定时器T0/T1在定时脉冲作用下从全“1”变成全“0”时可以自动向CPU提出溢出中断请求,以表明定时器T0或T1的定时时间已到。

13

(3) 串行口中断源

串行口中断由AT89C51内部串行口的中断源产生,也是一种内部中断。串行口中断分为串行口发送中断和串行口接收中断两种。在串行口进行发送/接收数据时,每当串行口发送/接收完一组串行数据时串行口电路自动使串行口控制寄存器SCON中的RI或TI中断标志位置位,并自动向CPU发出串行口中断请求,CPU响应串行口中断后便立即转入串行口中断服务程序执行。因此,只要在串行口中断服务程序中安排一段对SCON中RI和TI中断标志位状态的判断程序,便可区分串行口发生了接收中断请求还是发送中断请求。

(4) 中断标志

AT89C51在S5P2时检测(或接收)外部(内部)中断源发来的中断请求信号后先使相应中断标志位置位,然后便在下个机器周期检测这些中断标志位状态,以决定是否响应该中断。

2.3 ADC0809模数转换器

ADC0809是位A/D转换芯片,它是采用逐次逼近的方法完成A/D转换的。ADC0809由单+5V电源供电;片内带有锁存功能的8路模拟多路开关,可对8路0~5V的输入模拟电压分时进行转换,完成一次转换约需100μS;片内具有多路开关的地址译码器和锁存器、高阻抗斩波器、稳定的比较器,256电阻T型网络和树状电子开关以及逐次逼近寄存器。

ADC0809是引脚双列直插式封装,引脚及其功能如下图2-2所示:

图2-2 ADC0809的管脚图 图2-3运算放大器LM324的引脚图

1.D7~D0:8位数字量输出引脚。 2.IN0~IN7:8路模拟量输入引脚。 3.VCC:+5V工作电压。 4.GND:接地。 5.REF(+):参考电压正端。 6.REF(-):参考电压负端。

14

7.START:A/D转换启动信号输入端。 8.A、B、C:地址输入端。

9.ALE:地址锁存允许信号输入端。

10.EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。

11.OE: 输出允许控制端,用以打开三态数据输出锁存器。

12.CLK:时钟信号输入端,译码后可选通IN0~IN7八个通道中的一个进行转换。

表2-1 A、B、C的输入与被选通道的通道关系 被选中的通道 C B A IN0 0 0 0 IN1 0 0 1 IN2 0 1 0 IN3 0 1 1 IN4 1 0 0 IN5 1 0 1 IN6 1 1 0 IN7 1 1 1 2.4运算放大器LM324

本次设计所用的运算放大器是LM324,而LM324的系列器件为价格便宜的带

有真差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。它的性能特点是短跑保护输出、真差动输入级、底偏置电流为最大100mA、每封装含四个运算放大器、具有内部补偿的功能、共模范围扩展到负电源、行业标准的引脚排列、输入端具有静电保护功能。运算放大器LM324的引脚如上图2-3所示:

由于本次设计中采集电路所采集到的信号值与我们所预期的结果有时会有很大的差距,因此信号值要被真实地反映出来,须采用放大电路进一步处理。按比例将信号放大的电路,称为比例运算放大电路,简称比例电路。

2.5移位寄存器74LS164

移位寄存器74LS164的引脚如下图2-6所示:

15

图2-6移位寄存器74LS164引脚图 图2-7数码显示管LED引脚图 74LS164为串行输入、并行输出移位寄存器,其引脚功能如下:

A、B —— 串行输入端; Q0~Q7 —— 并行输出端; MR—— 清除端,低电平有效;

CLK —— 时钟脉冲输入端,上升沿有效。 多片74LS164串联,能实现多位LED静态显示。每扩展一片164就可增加一位显示。MR接+5V,不清除。

2.6数码显示管LED

数码显示管LED引脚如上图2-7所示:

LED显示器是单片机应用系统中常见的输出器件,而在单片机的应用上也是被广泛运用的。如果需要显示的内容只有数码和某些字母,使用LED数码管是一种较好的选择。LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。

LED数码管作为显示字段的数码型显示器件,它是由若干个发光二极管组成的。当发光二极管导通时,相应的一个点或一个笔画发亮,控制不同组合的二极管导通,就能显示出各种字符,常用的LED数码管有7段和“米”字段之分。这种显示器有共阳极和共阴极两种。共阴极LED显示器的发光二极管的阴极连在一起,通常此共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极接在一起,通常此共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。本次设计所用的LED数码管显示器为共阳极。

LED数码管的使用与发光二极管相同,根据材料不同正向压降一般为1.5~2V,额定电流为10MA,最大电流为40MA。静态显示时取10MA为宜,动态扫描显示可加大脉冲电流,但一般不超过40MA。

2.7数字温度计DS18S20

在传统的模拟信号远距离的温度测量系统中,需要很好的解决引线误差补偿问题、多点切换误差问题和放大电路零点漂移误差问题等技术。另外考虑到一般的测量现场的电磁环境非常的恶劣,各种干扰信号较强,模拟信号很容易受到干扰而产生测量误差,影响测量精度。因此,在温度测量系统中,采用抗干扰能力较强的新型数字温度传感器是解决这些问题的最有效的方案。在实际的温度测量过程中被广泛应用,同时也取得了良好的测量效果。

DS18S20数字温度计的主要特性:

1.DS18S20的适应电压范围更宽,其范围为:3.0-5.5V,而且它能够直接由数据线获取电源(寄生电源),无需外部工作电源。

2.DS18S20提供了9位摄氏温度测量,具有非易失性、上下触发门限用户可编程的报警功能。

3.DS18S20通过1-Wire?总线与中央微处理器通信,仅需要单根数据线(或地线)。同时,在使用过程中,它不需要任何的外围的元件,全部的传感元件和转换电路集成在形状如一只三极管的集成电路内。

4.DS18S20具有-55°C至+125°C的工作温度范围,在-10°C至+85°C温度范围内精度为±0.5°C。

16

5.每片DS18S20具有唯一的64位序列码,这些码允许多片DS18S20在同一条1-Wire总线上工作,因而,可方便地使用单个微处理器控制分布在大范围内的多片DS18S20器件。

6.DS18S20的测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时还可以传送给CRC校验码,它具有极强的抗干扰纠错的能力。

7.DS18S20具有负载特性,当电源极性接反时,芯片不会因发热而烧毁,但是不能正常的工作。

根据以上这些特性而从中受益的应用包括:HVAC环境控制、室内,设备或者机器内部的温度监测系统、过程监控和控制系统。

17

第3章电路设计

本设计采用按键作为输入控制,通过温度多采样单元采集温度信息,经过LM324放大器放大及ADC0809数模转换器将其转换,由主机AT89C51进行处理并将实际温度值和设定温度值分别显示在共阳极数码显示管LED上。

3.1单片机控制单元

单片机控制单元,如下图3-1所示,包括按键控制电路,其中按键控制电路这一模块设置了:“设置”、“加1”、“右移”、“确定”四个按键,来实现人机对话。人为地设定温度门限值,使电路在人为设定的某一温度值相对稳定的工作。

图3-1 按键控制电路

3.2温度采样部分

温度采样单元,如下图3-2所示,用于采集被控对象的温度参数,它由温度电压转换、小信号放大及A/D转换三部分组成。其中,将温度转化为电量的温度电压转换由温度传感器-热敏电阻实现,小信号放大由桥式放大电路实现,A/D转换选择模数转换器ADC0809,将采集到的温度模拟信号转换为AT89C51能够处理的二进制数字信号。

温度传感器:广义来讲,一切随温度变化而物体性质亦发生变化的物质均可作为温度传感器。例如,我们平常使用的各种材料、元件,其性质或多或少地都会随其所处的环境温度变化而变化,因而它们几乎都能作为温度传感器使用。但是,一般真正能作为实际中可使用的温度传感器的物体一般需要具备下述条件:

1.物体的特性随温度的变化有较大的变化,且该变化量易于测量。

2.对温度的变化有较好的一一对应关系,即对除温度外其他物理量的变化不敏感。

3.性能误差及老化小、重复性好,尺寸小。 4.有较强的耐机械、化学及热作用等的特点。 5.与被检测的温度范围和精度相适应。 6.价格适宜,适合于批量生产。

18

符合上述条件的常用温度传感器有热电偶、热电阻、光辐射温度计、玻璃温度计、半导体集成温度传感器等。

图3-2温度采样单元

3.3模数转换部分

模数转换是将模拟输入信号转换为N位二进制数字输出信号的技术。采用数字信号处理能够方便地实现各种先进的自适应算法,完成模拟电路无法实现的功能,因此,越来越多的模拟信号处理正在被数字技术所取代。与之相应的是,作为模拟系统和数字系统之间桥梁的模数转换的应用日趋广泛。为了满足市场的需求,各芯片制造公司不断推出性能更加先进的新产品、新技术,令人目不暇接。 3.3.1模数转换技术

本次设计还涉及到数模转换技术,而模数转换技术包括采样、保持、量化和编码四个过程。

1.采样就是将一个连续变化的模拟信号x(t)转换成时间上离散的采样信号x(n)。根据奈奎斯特采样定理,对于采样信号x(t),如果采样频率fs大于或等于2fmax(fmax为x(t)最高频率成分),则可以无失真地重建恢复原始信号x(t)。实际上,由于模数转换器器件的非线性失真、量化噪声及接收机噪声等因素的影响采样速率一般取fs=2.5fmax。通常采样脉冲的宽度tw是很短的,故采样输出是断续的窄脉冲。

2.要把一个采样输出信号数字化,需要将采样输出所得的瞬时模拟信号保持一段时间,这就是保持过程。

3.量化是将连续幅度的抽样信号转换成离散时间、离散幅度的数字信号,量化的主要问题就是量化误差。假设噪声信号在量化电平中是均匀分布的,则量化噪声均方值与量化间隔和模数转换器的输入阻抗值有关。

4.编码是将量化后的信号编码成二进制代码输出。这些过程有些是合并进行的,例如,采样和保持就利用一个电路连续完成,量化和编码也是在转换过程中同时实现的,且所用时间又是保持时间的一部分。

19

3.3.2积分型模数转换器

积分型模数转换器称双斜率或多斜率数据转换器,是应用最为广泛的转换器类型。双斜率转换器包括两个主要部分:一部分电路采样并量化输人电压,产生一个时域间隔或脉冲序列,再由一个计数器将其转换为数字量输出。双斜率转换器由1个带有输人切换开关的模拟积分器、1个比较器和1个计数单元构成。积分器对输入电压在固定的时间间隔内积分,该时间间隔通常对应于内部计数单元的最大计数。时间到达后将计数器复位并将积分器输入连接到反极性(负)参考电压。在这个反极性信号作用下,积分器被“反向积分”直到输出回到零,并使计数器终止,积分器复位。

积分型模数转换器的采样速度和带宽都非常低,但它们的精度可以做得很高,并且抑制高频噪声和固定的低频干扰(如50 Hz或60 Hz)的能力,使其对于嘈杂的工业环境以及不要求高转换速率的应用非常有效。

3.4显示部分

通过74LS164芯片将主机处理的温度信息显示在LED数码管上。下图3-3为温度控制系统的单片机显示部分。而显示部分在整个的设计过程中的作用也是很大的。

图3-3 温度显示电路

3.5 调节执行单元

调节执行单元,如下图3-4 所示采用实时控制的方法,在主机AT89C51的P1.4口输出温度控制信号,由光电耦合器MOC3041(光电耦合器)和可控硅SCR组成。其中光电耦合器MOC3041的作用是将单片机系统与可控硅SCR电路隔开,避免在高压过程中的干扰信号影响单片机的运行;可控硅SCR的作用是相当于一个固态的触点,使之有能力开启或关断电炉,从而控制电炉通断,以实现对水温的实时控制。

20

图3-4 调节执行单元

21

第4章 软件设计

4.1主程序流程图

系统的软件部分由主程序流程图、中断子程序流程图、按键流程图和显示流程图四部分组成。系统的主程序流程图如下图4-1所示,当有信号输入时,主程序启动,根据内部设定的条件逐步运行,达到设计目的。

4.2中断子程序流程图

下图4-2为中断子程序的流程图,这个主要是为了保障整个软件程序在运行时可以达到中断,从而使系统进一步达到完善。

4.3按键流程图

下图4-3为按键流程图,主要是通过人为的对外部按键的控制来调节系统的温度,从而实现系统对温度的手动和自动控制。

4.4显示流程图

下图4-4为系统的显示流程图。主要是通过对传输过来的信号进行显示后,给操作者提供提示。已达到为本系统提供对温度的显示和监控的目的。

本章节主要讲的是单片机温度系统的软件设计部分的主要的流程图,这也是系统程序设计的基本设计思路,通过依照四部分的流程图进行设计,已达到对系统完整的运行,对温度的显示、监控和控制。

图4-1 主程序流程图 图4-2 中断子程序

22

图4-3 按键流程图

图4-4 显示流程图 23

第5章 系统调试及结论分析

单片机应用系统样机组装好以后,便可进入系统的在线(联仿真器)调试,其主要任务是排除样机硬件故障,并完善其硬件结构,试运行所设计的程序,排除程序错误,优化程序结构,使系统达到期望的功能,进而固化软件,使其产品化。

5.1硬件调试

单片机应用系统的硬件和软件调试是交叉进行的,但通常是先排除样机中明显的硬件故障,尤其是电源故障,才能安全地和仿真器相连,进行综合调试。 5.1.1硬件电路故障及解决方法

1.错线、开路、短路:由于设计错误和加工过程中的工艺性错误所造成的错线、开路、短路等故障。

解决方法:在画原理图时仔细检查、校正即可解决。

2.元器件损坏:由于对元器件使用要求的不熟悉及制作调试过程中操作不当致使器件损坏。

解决方法:在设计过程中要明确各元器件的工作条件,严格按照制作要求进行操作,损坏的元器件要及时更换,以免损坏其他元件或影响电路功能的实现。

3.电源故障:设计中存在电源故障,即上电后将造成元器件损坏、无法正常供电,电路不能正常工作。电源的故障包括:电压值不符和设计要求,电源引出线和插座不对应,各档电源之间的短路,变压器功率不足,内阻大,负载能力差等。

解决方法:电源必须单独调试好以后才能加到系统的各个部件中。本设计中就出现电源故障经过一个稳压电路才使其正常工作。 5.1.2硬件调试方法

本设计调试过程中所用的调试方法有:静态测试、联仿真器在线调试等。 1.静态测试 在样机加电之前,首先用万用表等工具,根据硬件电器原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号、规格和安装是否符合要求。应特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查扩展系统总线(地址总线、数据总线和控制总线)是否存在相互间的短路或与其它信号线的短路。第二步是加电后检查各个插件上引脚的电位,仔细测量各点电位是否正常,尤其应注意单片机插座上的各点电位,若有高压,联机时将会损坏仿真器。第三步是在不加电情况下,除单片机以外,插上所有的元器件,最后用仿真适配器将样机的单片机插座和仿真器的仿真接口相连,为联机调试做准备。

2.联仿真器在线调试

测试RAM存储器:用仿真器写命令将一批数据写入样机中扩展的RAM,然后用读命令读出其内容,若对任意单元读出和写入内容一致,则扩展RAM和单片机的连接没有逻辑错误。若读出写入内存不一致,则可能是地址数据线短路,试写入不同的数据观察读出结果,或缩小对RAM的读写范围,检查对RAM中其它区域的影响,这样可初步对地址数据线短路错误定位,再用万用表、示波器等进一步确诊。

5.2软件调试

24

5.2.1软件电路故障及解决方法

设计软件部分出现这种错误的现象:

1.当以断点或连续方式运行时,目标系统没有按规定的功能进行操作或什么结果也没有,这是由于程序转移到意外之处或在某处死循环所造成的。

解决方法:这类错误的原因是程序中转移地址计算错误、堆栈溢出、工作寄存器冲突等。在采用实时多任务操作系统时,错误可能在操作系统中,没有完成正确的任务调度操作,也可能在高优先级任务程序中,该任务不释放处理器,使CPU在该任务中死循环。通过对错误程序的修改使其实现预期的功能。

2.不响应中断

CPU不响应中断或不响应某一个中断这种错误的现象是连续运行时不执行中断任务程序的规定操作,当断点设在中断入口或中断服务程序中时碰不到断点。

错误的原因有:中断控制寄存器(IE,IP)的初值设置不正确,使CPU没有开放中断或不许某个中断源请求;或者对片内的定时器、串行口等特殊功能寄存器和扩展的I/O口编程有错误,造成中断没有被激活;或者某一中断服务程序不是以RETI指令作为返回主程序的指令,CPU虽已返回到主程序但内部中断状态寄存器没有被清除,从而不响应中断;或由于外部中断源的硬件故障使外部中断请求无效。

解决方法:修改中断控制寄存器(IE,IP)的初值设置。 3.结果不正确

目标系统基本上已能正常操作,但控制有误动作或者输出的结果不正确。这类错误大多是由于计算程序中的错误引起的。错误原因没有查明,没有解决。 5.2.2软件调试方法

软件调试所使用的方法有:计算程序的调试方法、I/O处理程序的调试法、综合调试法等。

1.计算程序的调试方法

计算程序的错误是一种静态的固定的错误,因此主要用单拍或断点运行方式来调试。根据计算程序的功能,事先准备好一组测试数据。调试时,用防真器的写命令,将数据写入计算程序的参数缓冲单元,然后从计算程序开始运行到结束,运行的结果和正确数据比较,如果对有的测试数据进行测试,都没有发生错误,则该计算程序调试成功;如果发现结果不正确,改用单步运行方式,即可检查出错误所在。计算程序的修改视错误性质而定。若是算法错误,那是根本性错误,应重新设计该程序;若是局部的指令有错,修改即可。如果用于测试的数据没有全部覆盖实际计算的原始数据的类型,调试没有发现错误可能在系统运行过程中暴露出来。

2.I/O处理程序的调试

对于A/D转换一类的I/O处理程序是实时处理程序,因此一般用全速断点运行方式或连续运行方式进行调试。

3.综合调试

在完成了各个模块程序(或各个任务程序)的调试工作以后,便可进行系统的综合调试。综合调试一般采用全速断点运行方式,这个阶段的主要工作社排除系统中遗留的错误以提高系统的动态性能和精度。在综合调试的最后阶段,应在目标系统的晶振频率工作,使系统全速运行目标程序,实现了预定功能技术指标后,便可将软件固化,然后在运行固化的目标程序,成功后目标系统便可脱机运

25

行。一般情况下,这样一个应用系统就算研制成功了。

5.3结论分析

通过对系统硬件的调试,进一步理解了水温控制系统的原理,同时也发现了问题,原设计电路缺乏对水温的实时控制,因此后加入调节执行单元,采用实时控制的方法,在主机AT89C51的P1.4口输出温度控制信号,由光电耦合器MOC3041和可控硅SCR组成。其中光电耦合器MOC3041的作用是将单片机系统与可控硅SCR电路隔开,避免在高压过程中的干扰信号影响单片机的运行;可控硅SCR的作用是相当于一个固态的触点,使之有能力开启或关断电炉,从而控制电炉通断,以实现对水温的实时控制。

26

第6章 总 结

近三个月的毕业设计即将结束,这意味着我们的大学生活也要结束了,但我们的学习没有结束,在本次设计中,我们所学过的理论知识接受了实践的检验,增强我的综合运用所学知识的能力及动手能力,为以后的学习和工作打下了良好的基础。本文以AT89C51系列单片机为核心,用AT89C51单片机作为控制器件,温度信号通过热敏电阻和放大器转换成电信号,再由ADC0809转换成为数字信号,测温电路采用桥式电路,温度设定采用按键移位式设定方法,温度控制采用光耦和可控硅控制加热器。软件算法采用设定值和测量值相比较的算法。在单片机应用的基础上,实现了一种用带有E2PROM的AT89C51单片机控制传感器的自动化温度监控系统。

通过三个月的设计,我也有很深的感触:当今社会在飞速发展,科学技术发展的速度更是迅猛无比,尤其是单片机技术在未来社会发展中一定会起着十分重要的作用,而通过本次设计无论是从硬件实现还是到整个程序的完成,无不是对我个人专业能力的一次提高和体现。而本次设计主要是完成两方面工作,软件程序设计和硬件电路板设计。软件设计包括用单片机设计语言设计控制系统并仿真、实现。硬件设计包括绘制电路原理图,生成图后制作电路板、插件焊件、再做硬件测试。通过这些都使我对采用单片机设计方法有了更深的理解和掌握,同时也让我把所学的知识广泛的应用到了实践中,充分的做到了理论与实践相结合。无论从专业知识、动手能力,还是毅志品质,都使我受益非浅。当然,这与老师和同学的热心帮助也是分不开的。大学生活虽然结束了,但我们的学习还没有结束,只有不断学习,用知识充实自己的头脑,才能在未来社会有一席之地,才能为社会的发展做出应有的贡献,一句话:学无止境。

27

致 谢

在大学三年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。本课题的研究和论文的完成是在邹老师的悉心指导和热情关怀下完成的。邹老师严谨的治学态度、丰富的实践经验、兢兢业业的工作精神使我受益匪浅。邹老师豁达的胸怀对我树立正确的人生观和价值观产生了积极的影响。在邹老师的指导和帮助下,我的专业知识水平和学习能力都得到了很大的提高,我在人生道路上的每一个脚印都凝聚着老师的心血。跟随老师学习这两年所获得的知识将是我一生中最宝贵的财富。在此谨向邹老师表示崇高的敬意和衷心的感谢!从论文题目的选定到论文写作的指导,感谢您的悉心点拨。

感谢同学在我遇到困境时向我伸出援助之手,同窗之谊我们社会再续;在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意!

最后感谢生我育我的父母!感谢你们一直以来对我的无私关爱和默默奉献。

28

附 录

系统总程序清单

主程序如下: ORG 0000H AJMP MAIN ORG 0013H LJMP IN1 ORG 0030H

MAIN:MOV SP,#60H MOV P1,#0FH SETB P1.4 SETB EA SETB EX1 MOV 5AH,#0 MOV 5BH,#2 MOV 5CH,#5 MOV 5DH,#0 MOV 28H,#0

MOV TCON,#05H MOV 29H,#01H MOV 35H,#10 MOV 37H,#10

LOOP:MOV A,35H CJNE A,#1,NEXT LJMP N1

NEXT:LCALL AD MOV R2,#0 MOV R3,40H LCALL Q1

MOV 3AH,R2 MOV 3BH,R3 LCALL BJ LCALL DIR LCALL TIM LJMP LOOP NI:LCALL SD N4:MOV A,35H CJNE A,#2,N2 MOV A,R4 ADD A,#1 MOV 52H,A CLR C

29

MOV A,R4 SUBB A,#1 MOV 53H,A MOV A,31H MOV 5AH,A MOV A,32H MOV 5BH,A MOV A,33H MOV 5CH,A MOV A,34H MOV 5DH,A RET

IN1:PUSH PSW PUSH ACC CLR EX1 MOV A,P1 RRC A JC M1

MOV 35H,#1 LJMP TT M1:RRC A JC M2

MOV 35H,#2 MOV A,28H SETB ACC.0 MOV 28H,A LJMP TT M2:RRC A JC M3

MOV 35H,#3 MOV A,28H SETB ACC.0

MOV 28H,A LJMP TT M3:RRC A JC TT

MOV 35H,#4 TT:NOP POP ACC POP PSW SETB EX1 RETI

AD1:MOV A,37H

30

ANL A,#0FH ORL A,#30H MOV R1, A MOV A,@R1 INC A

MOV B,#10 DIV AB MOV A,B MOV @R1,A RET

IDB:MOV 30H,#0 MOV R0 , #30H MOV R2 , #3 MOV R3 , #0 MOV A , @R0 MOV R4 , A LP:MOV A,R4 MOV B , #10 MUL AB MOV R4 , A MOV A , #10 XCH A , B XCH A , R3 MUL AB ADD A , R3 XCH A , R4 INC R0

ADD A , @R0 XCH A , R4 ADDC A , #0 MOV R3 , A DJNZ R2 , LP RET

BJ:MOV 30H , #0 MOV A , 40H CLR C

SUBB A , 52H JC XX SETB P1.4 RET

XX:MOV A , 40H CLR C

SUBB A , 53H

31

JNC WW CLR P1.4 WW:RET

Q1:MOV DPTR , #TABLE MOV A , R3 CLR C RLC A

MOV R3 , A XCH A , R2 RLC A

XCH A , R2 ADD A , DPL MOV DPL , A MOV A , DPH ADDC A , R2 MOV DPH , A CLR A

MOVC A , @A+DPTR MOV R2 , A CLR A INC DPTR

MOVC A , @A+DPTR MOV R3 , A RET

TABLE: DW 000,045,051,056,062,066 DW 070, 074,081,086,092 DW 098, 100,105,110,116 DW 121, 124,130,135,138 DW 142, 146,151,154,160 DW 165, 168,170,175,178 DW 180, 184,190,193,195 DW 208, 214,220,224,229 DW 232, 238,242,250,255 DW 260, 264,271,275,280 DW 284, 292,294,295,300 DW 306, 311,316,321,325 DW 330, 334,338,343,347 DW 350, 355,360,362,364 DW 366, 368,370,375,376 DW 378, 379,380,382,384 DW 385, 387,388,389,390 DW 392, 395,396,399,400 DW 402, 403,405,406,408

32

DW 410, 412,414,416,418 DW 419, 420,422,423,425 DW 427, 428,430,432,436 DW 438, 439,440,442,444 DW 445, 446,449,450,452 DW 438, 440,442,446,448 DW 450, 452,453,455,456 DW 458, 461,463,465,468 DW 468, 470,472,475,478 DW 480, 480,482,485,485 DW 488, 490,491,493,495 DW 498, 500,500,501,504 DW 505, 508,510,512,515 DW 518, 518,522,524,528 DW 532, 536,540,540,545 DW 548, 549,551,554,556 DW 559, 560,562,565,568 DW 570, 572,573,575,578 DW 580, 583,585,588,590 DW 595, 596,598,600,602 DW 608, 610,610,612,615 DW 620, 623,625,628,630 DW 632, 635,640,642,645 DW 648, 650,652,655,658 DW 660, 664,665,668,672 DW 675, 677,680,685,688 DW 690, 695,700,705,710 DW 712, 715,718,720,725 DW 769, 773,775,780,782 DW 810, 815,818,820 NDIV1:MOV A , R3 CLR C

SUBB A , R7 MOV A , R2 SUBB A , R6 JNC NDVE1 MOV B , #16 NDVL1:CLR C MOV A , R5 RLC A

MOV R5 , A MOV A , R4 RLC A

MOV R4 , A

33

MOV A , R3 RLC A

MOV R3 , A XCH A , R2 RLC A

XCH A , R2 MOV F0 , C CLR C

SUBB A , R7 MOV R1 , A MOV A , R2 SUBB A , R6 JB F0 , NDVM1 JC NDVD1

NDVM1:MOV R2 , A MOV A , R1 MOV R3 , A INC R5

NDVD1:DJNZ B , NDVL1 CLR F0 RET

NDVE1:SETB F0 RET

34

系统原理图

35

参考文献

[1] 张毅刚.单片机原理及应用[M].高等教育出版社.2004年1月,第1版: [2] 曹巧媛主编. 单片机原理及应用(第二版). 北京:电子工业出版社; [3] 何力民编. 单片机高级教程. 北京:北京航空大学出版社; [4] 金发庆等编. 传感器技术与应用.北京机械工业出版社; [5] 王锦标,方崇智.过程计算机控制.北京:清华大学出版社; [6] 邵惠鹤.工业过程高级控制.上海:上海交通大学出版社; [7] 胡寿松.自动控制原理.北京:国防工业出版社; [8] 刘伯春.智能PID调节器的设计及应用.电子自动化;

[9] 周润景,张丽娜.基于PROTEUS 的电路及单片机系统设计与仿真[M].北京:航空航天大学出版社;

[10] 王忠飞,胥芳.MCS-51 单片机原理及嵌入式系统应用[M].西安:西安电子科技大学出版社;

[11] 刘国钧,陈绍业,王凤翥.图书馆目录.第1版.北京:高等教育出版社; [12] 傅承义,陈运泰,祁贵中.地球物理学基础.北京:科学出版社,1985,447 [13] 赵娜,赵刚,于珍珠等.基于51 单片机的温度测量系统[J];

36

参考文献

[1] 张毅刚.单片机原理及应用[M].高等教育出版社.2004年1月,第1版: [2] 曹巧媛主编. 单片机原理及应用(第二版). 北京:电子工业出版社; [3] 何力民编. 单片机高级教程. 北京:北京航空大学出版社; [4] 金发庆等编. 传感器技术与应用.北京机械工业出版社; [5] 王锦标,方崇智.过程计算机控制.北京:清华大学出版社; [6] 邵惠鹤.工业过程高级控制.上海:上海交通大学出版社; [7] 胡寿松.自动控制原理.北京:国防工业出版社; [8] 刘伯春.智能PID调节器的设计及应用.电子自动化;

[9] 周润景,张丽娜.基于PROTEUS 的电路及单片机系统设计与仿真[M].北京:航空航天大学出版社;

[10] 王忠飞,胥芳.MCS-51 单片机原理及嵌入式系统应用[M].西安:西安电子科技大学出版社;

[11] 刘国钧,陈绍业,王凤翥.图书馆目录.第1版.北京:高等教育出版社; [12] 傅承义,陈运泰,祁贵中.地球物理学基础.北京:科学出版社,1985,447 [13] 赵娜,赵刚,于珍珠等.基于51 单片机的温度测量系统[J];

36

本文来源:https://www.bwwdw.com/article/okyp.html

Top