基于单片机的温度控制系统毕业设计

更新时间:2024-01-28 21:31:01 阅读量: 教育文库 文档下载

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

XXXXXXXX

毕业设计

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

姓 名 X X X 学 院 电气工程与自动化 专 业 计算机控制技术 指导教师 X X 职 称 助理实验师

2009 年 5 月25日

摘 要

随着国民经济的发展,人们需要对各种加热炉,热处理炉,反应炉和锅炉中 温度进行监测和控制。采用单片机来对他们控制不仅具有控制方便,简单和灵活 性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。

为了适应工业控制发展的需要,本文在分析单片机对电加热炉温度控制的基础上,将整个系统分为温度测量、A/D转换、单片机系统、键盘操作系统、温度显示电路、报警电路、D/A转换等若干个功能模块。同时分别阐述其结构体系、工作原理、设计、集成方法以及它们之间的共性和特点。由于温控技术与自动化技术的发展非常迅速,本文一方面结合实际应用经验,力求做到较为系统和全面的介绍系统设计与实施技术;另一方面尽可能反应出温控系统的发展趋势,以及其先进性和实用性。

本设计的控制对象为电加热炉,通过控制加在电阻丝两端电压的工作时间,来对电阻丝输出的平均功率加以控制。以单片机为核心,采用固态继电器控温电路,实现对电炉的自动控制。本文将采用PID控制,阐述了PID控制器的设计,硬件结构和软件设计,实现了一套温度采集和控制的方案。该系统具有硬件成本低,控温精度较高,可靠性好,抗干扰能力强等特点。 关键词:电加热炉;单片机;温度控制;固态继续电器

1

目 录

前 言 ···································································································································· 1 第一章 单片机温度控制系统方案简介 ····························································· 2 第二章 单片机的选型 ································································································ 4

2.1 MCS—51单片机内部结构与功能 ······························································· 4

2.2 MCS—51输入/输出端口的结构与功能 ····················································· 5 2.3 MCS—51单片机的引脚及其功能 ······························································· 5 2.4 MCS—51的存储器结构 ················································································ 6 2.4.1 程序存储器 ··································································································· 7 2.4.2 数据存储器 ··································································································· 7 2.5 8031系统扩展计划 ························································································· 8 2.5.1 单片机外总线结构 ······················································································ 8 2.5.2 MCS—51系列单片机的扩展 ·································································· 10 2.5.3 芯片的扩展设计 ························································································ 11

第三章 带有I/O接口和计时器的静态RAM8155 ····································· 13

3.1 8155的结构 ···································································································· 13 3.2 8155的引脚功能 ···························································································· 13 3.3 8155的命令格式与状态字 ·········································································· 15 3.4 8155 I/O端口的应用 ····················································································· 16 3.5 MCS—51和8155的接口方法 ··································································· 16

第四章 ADC0809转换芯片 ·················································································· 17

4.1 ADC0809的引脚 ··························································································· 17 4.2 ADC0809的内部组成 ··················································································· 18 4.3 ADC0809与系统总线的连接 ······································································ 20 4.4 ADC0809与8031的接口 ············································································ 20

第五章 温度的检测和控制 ···················································································· 22

5.1 温度检测元件的选择 ··················································································· 22 5.2 变送器 ············································································································· 23 5.3 温度的控制 ···································································································· 24

第六章 温度控制程序和算法 ················································································· 26

6.1 温度控制的算法 ···························································································· 26 6.2 温度控制程序 ································································································ 26 6.3 T0中断的服务程序CT0 ·············································································· 28 6.4子程序 ·············································································································· 31 6.5 PID算法程序 ·································································································· 34 6.5.1 PID算法程序 ······························································································ 34

6.5.2双字节带符号乘法子程序MUL1 ··························································· 37

结论 ········································································································································ 40 参考文献 ····························································································································· 41 致谢 ······································································································································· 42

XXXXXX毕业设计

前 言

在现代化的工业生产中,温度是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。虽然温度控制系统的制作方案有很多,但是经过对比各个方案的优劣,还是采用单片机更好,因为采用单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。

单片机体积小、功能齐全、价格低廉、可靠性高等方面具有独特的优点,在各个领域获得了广泛的应用。在我国,近几年单片机的应用研究发展进展很快,特别是在工业控制、智能化仪表、产品自动化、分布式控制系统中都已取得了一些可喜的成果。现在,一个学习和应用单片机的热潮正在一些工厂、企业、科研单位、高等院校中兴起。

本设计使用单片机8031作为核心进行控制。加热器件是电炉丝,功率为三千瓦,要求温度在400~1000℃。静态控制精度为2.43℃。算法采用目前工业生产过程控制系统中应用最广泛的PID算法,并利用测量误差改变调节器步长的方法实现PID参数的自动整定,在温度曲线控制中取得了非常满意的效果。

本设计说明书共有六章。第一章温度控制系统方面简介。第二章单片机的选型介绍主芯片的选择。第三章介绍主芯片端口的扩张芯片8155。第四章主要对模数转换芯片ADC0809的介绍。第五章是对温度检测和变送器的设计。第六章 是对温度控制电路的设计。第七章是软件设计,包括主程序,子程序,滤波程序,等程序的设计。

希望本设计说明书能给大家带来帮助。

1

xxxxxxxx毕业设计

第一章 单片机温度控制系统方案简介

单片机温度控制系统是数控系统的一个简单应用。在冶金、化工、建材、机械、食品、石油等各类工业中,广泛使用着加热炉、热处理炉、反应炉等,因此, 温度是工业对象中一个主要的被控参数。由于炉子的种类不同,因而所使用的燃料和加热方法也不同,例如煤气、天然气、油、电等;由于工业不同,所需要的温度高低不同,因而所采用的测温原件和测温方法也不同;产品工业不同,控制温度的精度也不同,因而对数据采集的精度和所采用的控制算法也不同。本系统所使用的加热炉为电加热路,炉丝功率为2kw,系统要求炉膛恒温,误差为±VC,超调量可能小,温度上升较快且有良好的稳定性。

单片机温度控制系统是以MS—51单片机为控制核心,辅以采样反馈电路,驱动电路,晶闸管主电路对电炉炉温进行控制的微机控制系统。其系统结构框图可表示为:系统采用单闭环形式,其基本控制原理为:将温度设定值(即输入控制量)和温度反馈值同时送入控制电路部分,然后经过调节器运算得到输出控制量,输出控制量控制驱动电路得到控制电压施加到被控制对象上,电炉因此达到一定的温度。其控制电路如图1.1所示。

给定值 8031控制电路 驱动电路 晶闸管主电路 输出温度 被控对象 采样电路 图1.1 控制电路的设计

系统控制主电路是由8031及其外围芯片,及一些辅助的部分构成的。其系统设计原理图如1.2所示。

2

XXXXXX毕业设计

8031 2764 过零信号发生器 74Ls373 温控电路 8155 AD0809 传感检测电路 键盘与显示 电炉

1.2 系统设计原理图

3

xxxxxxxx毕业设计

第二章 单片机的选型

单片微机是单片微型计算机SCMC(single chip micro computer)的译名简称,在国内也常简称为“单片机”。它包括中央处理器CPU、随机存储器RAM、只读存储器ROM、中断系统、定时器/计数器、串行口和I/O等等。

单片机主要应用于工业控制领域,用来实现对信号的检测、数据的采集以及对应用对象的控制。由于单片机扩展了各种控制功能,如A/D、PWM、计数器的捕获/比较逻辑、高速I/O口、WDT等,以突破了微型计算机传统的内容,所以,更准确的反映其本质的叫法应是微控制器。

它具有体积小、重量轻、价格低、可靠性高、耗电少和灵活机动等许多优点,因此如果能利用微型计算机进行温度的测量和控制,将会大大提高温度测控的可靠性和灵活性。单片微型计算机(简称单片机)是微型计算机的一个重要分支,也是一种非常活跃和颇具生命力的机种,特别适合用于智能控制系统。与PC机用于控制系统相比,其具有明显的性能价格比。

2.1 单片机

在本设计中,从经济上以及性能上考虑,我选用8031作为CPU。8031是MCS—51系列单片机的一种型号,MCS—51单片机的类型有:8051、8031、8751等。8051内部有4K ROM,8751内部有4K EPROM,8031片内无ROM;除此之外三者内部结构引脚完全相同。

2.1 MCS—51单片机内部结构与功能

8051单片机内部结构见图2.1。含CPU、震荡器和时序电路、4KB的ROM、256B的RAM、两个16定时/计数器T0和T1、4个8位I/O端口(P0、P1、P2、P3)、串行口等组成。其中震荡时序与时钟组成定时控制部件。

图2.1 单片机功能方框图

4

XXXXXX毕业设计

2.2 MCS—51输入/输出端口的结构与功能

MSC—51单片机有4个I/O端口,共32根I/O线,4个端口都是准双向口。每个口都包含一个锁存器,即专用寄存器P0~P3,一个输出驱动器和输入缓冲器。为方便起见,我们把4个端口和其中的锁存器都统称P0~P3。

在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,者4个口的每一位均可作为双向的I/O口使用。

P0口:可作为一般的I/O口使用,但应用系统采用外部总线结构时,它分时作低8位地址和8位双向数据总线用。

P1口:每一位均可独立作为I/O口。

P2口:作为一般I/O口用,但应用系统采用外部系统采用总线结构时,它分时作为高8位地址线。

P3口:双功能口。作为第一功能使用时同P1口,每一位均可独立作为I/O口。另外,每一位均具有第二功能,每一位的两个功能不能同时使用。

2.3 MCS—51单片机的引脚及其功能

MCS—51单片机采用40引脚的双例直插封装形式,如图2.2所示。

2.2 CS-51引脚图

5

xxxxxxxx毕业设计

1)主电源引脚VCC和VSS

VCC(40脚):主电源+5V,正常操作的对EPROM编程及验证时均接+5V电源。 VSS(20脚):接地。

2)XTAL1(19脚)和XTAL2(18脚):接外部晶振的两个引脚 3)RST/VPD、ALE/PROG、PSEN 控制信号引脚。

RST/VPD (9脚):单片机复位/备用电源引脚。刚接上电源时,其内部寄存器处于随机状态,在引脚上输入持续两个机器周期的高电平见使单片机复位。VCC掉电期间,此引脚可接上备用电源,一旦芯片在使用中VCC电压突然下降或断电,能保护片内RAM中信息不丢失,使恢复电后能继续正常进行。

ALE/PROG(30脚):当访问片外存储器时,ALE的输出用于锁存字节地址

信号。即使不访问片外存储器,ALE端仍以不变的频率周期性地出现脉冲信号。其频率为振荡器频率1/6。因此,它可用作对外输出的时钟,或用于定时的目的。应注意的是:当访问片外数据存储器时,将跳过一个ALE脉冲;ALE端可以驱动8个LSET负载。

对含有EPROM的单片机,片内EPROM编程期间,此引脚用于输入编程脉冲(PROG)。

PROG(29脚):输出访问片外程序存储器的读选通信号。CPU在从片外程

序存储器取指令(或常数)期间,每个机器周期两次有效。每当访问片外存储器时,这两次有效的PROG ̄信号将不会出现。该端同样可驱动8个LSTTL负载。

EA/VPP(31脚):当EA ̄输入端输入高电平时,CPU可访问片内程序存储器

4KB的地址范围。若PC值超出4KB地址时,将自动转向片外程序存储器。当EA ̄输入低电平时,不论片内是否有程序存储器,则CPU只是访问片外程序存储器。

对含有EPROM的单片机,在对EPROM编程期间,此引脚用于施加+21V的编程4)输入/输出引脚

P0.0~P0.7对应39~32脚;P1.0~P1.7对应1~8脚;P2.0~P2.7对应21~电压VPP。

28脚;P3.0~P3.7对应10~17脚。

2.4 MCS—51的存储器结构

MCS—51存储器空间分布与一般的微机的存储器配置方法大不相同。一般微

机通常只有一个逻辑空间,可以随意安排ROM或RAM,访问存储器时同一地址对应唯一的存储单元,可以是ROM也可以是RAM,并用同类指令访问。而MCS—51

6

XXXXXX毕业设计

单片机的存储器配置在物理结构上有四个存储空间,即片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。从用户使用的角度,即逻辑上,MCS—51有三个存储器地址空间,即片内统一地址的64K字节的编程存储地址空间、片内256B字节的数据存储器和64K字节的数据存储器地址空间。访问三个不同的逻辑空间,应采用不同形式的指令。

2.4.1 程序存储器

MCS—51的程序存储器(Program Memory)用于存放编好的应用程序和表格

常数。由于采用16位的地址总线,因而其可扩展的地址空间是64KB,这64KB的地址是连续统一的。

MSC—51的片外最多能扩展64字节。片内的ROM是同一编值的,如果EAfei端保持高电平,8051的程序计数器PC在0000H~0FFFH地址范围内是执行片内ROM中的程序;当PC在1000H~FFFFH地址范围时,自动执行片外程序存储器中的程序。当EAfei保持低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址。

对片内无ROM的单片机,如8031,80C31和80C32等,应用时应将EAfei引脚固定接低电平且使系统全部执行片外程序存储器中的程序。

2.4.2 数据存储器

数据存储器用于存放运算中间结果、数据暂存和缓冲、标志位、待调试的程

序。数据存储器在物理上和逻辑上都分为两个地址空间:一个是片内256字节的RAM,另一个是片外最大可扩充64K字节的RAM。访问片内RAM使用MOVX指令。

片内数据存储器在物理上又可分为两个不同的区:00H~7FH单元组成低128字节的片内RAM区和80H~FFH单元组成的高128字节的专用寄存器(SFR)区。

1)低128字节的片内RAM区在低128字节RAM中,00H~1FH共32个单元通常作为工作寄存器区,共分为四组每组8个单元组成通用寄存器R0~R7。20H~2FH共16个字节,可用位寻址方式访问,共有128个位的位地址。30H~7FH共80个单元为用户RAM区,作堆栈或数据缓冲。

A 工作寄存器的地址表与工作区设置

工作寄存器的地址表,每组寄存器均可选作为CPU的当前工作寄存器,通过PSW程序状态字寄存器中RS1、RS0的设置来改变CPU当前使用的工作寄存器。这样的设置为程序中保护现场提供了方便。

B 位寻址区与位地址

低128字节中的20H~2FH共16个字节,可用为寻址方式访问这16个字节的每

7

xxxxxxxx毕业设计

个位,共128个位的地址,每个位均匀对应地址,这128个位的地址范围为00H~7FH。这些位单元可以构成布尔处理器的存储器空间,这种位寻址能力是MCS—51的一个重要特点。

2)高128字节的专用寄存器(SFH)区高128字节的专用寄存器区的地址范围为80H~FFH。有23个专用寄存器。

2.5 8031系统扩展计划

通常情况下,采用MCS—51系列单片机的最小系统只能用于一些很简单应用

场合,在此情况下直接使用单片机内部存储器、数据存储器、定时功能、中断功能、I/O端口等,组成的应用系统的成本较低。但在许多应用场合构成一个工业测控系统时,考虑到传感器接口、伺服控制接口以及人机对话等需要,仅靠单片机内部资源是不能满足要求的。因此系统扩展是单片机应用系统硬件设计中最常遇到的问题。

系统扩展是指当单片机内部的功能不能满足应用系统要求时,在片外连接相应的外围芯片以满足应用系统的要求。MCS—51系列单片机有很强的外部扩展功能,大部分常规芯片都可以都可以作为单片机外围扩充电路芯片。扩展的内容主要有总线扩展、程序存储器和数据存储器以及I/O口的扩展等。

单片机系统扩展的方法有并行扩展法和串行扩展法两种。并行扩展法是利用单片机的三种线(AB、DB、CB)进行的系统扩展:串行扩展法是利用SPI三线总线或I2C双总线的串行系统扩展。

但是,一般串行接口器件速度慢,在需要高速应用的场合,还是并行扩展法占主导地位。在本设计中,由于存储数据比较少,单片机内部的数据存储器能满足需要,故不需要扩展片外存储器。同时由于本设计中所用单片机是8031,其内部不含程序存储器故需要扩展片外程序存储器,而且,还由于运行速度的要求只能采用并行扩展法进行片外扩展,所以下面主要介绍并行扩展法。

2.5.1 单片机外总线结构

微型计数机大多数CPU外部都有单独的地址总线、数据总线和控制总线,而

MCS—51单片机由于受到芯片管脚的限制,数据线和地址线(低8位)是复用的,而且是I/O口兼用。为了将它们分离开来,以便同单片机之外的芯片正确地相连,常常在单片机外部加地址锁存器来构成与一般CPU相类似的三总线,如图2.3所示。

8

XXXXXX毕业设计

图2.3 片机外总线结构

(1) 地址总线(AB)

地址总线由P0口提供低8位A0~A7,P2口提供高A8~A15。

由于P0口还要作地址总线口,只能分时工作。在ALE的下降沿将P0口输出

的地址数据锁存。锁存器的锁存控制信号由引脚ALE提供。在ALE的下降沿将P0口输出的地址数据锁存。

P2口具有输出锁存功能,故不需要外加锁存器。P0、P2口在系统扩展中用作地址线后便不能在作为一般的I/O口使用。地址总线宽度为16位,故可寻址范围为216=64KB。

(2) 数据总线(DB)

数据总线由P0口提供,其宽度为18位。P0口为三态双向口,是应用系统中

使用最为频繁的通道。所有单片机与外围交换的数据、指令、信息,除少数可直接通过P1口传送外,全部通过P0口传送。

数据总线通常要连接到多个外围芯片上,而在同一时间里只能够一个有效的数据传送通道。哪个芯片的通道有效,则地址总线控制各个芯片的片选线来选择。

9

xxxxxxxx毕业设计

(3) 控制总线(CB)

系统扩展用控制线有ALE、PSEN、EA、WR、RD。

ALE/PROG(30)引脚:地址锁存允许信号。用于锁存P0口输出的低字节地

址数据。通常,ALE在P0口输出地址期间出现低电平,用这个低电平控制锁存器锁存地址数据。另外即使单片机不访问外部芯片,ALE端仍以不变的频率周期性地出现正脉冲信号,次频率为震荡频率的1/6。因此它可用作外输出的时钟,或用于定时目的。

PSEN(29):输出。用于访问片外程序存储器的读选通信号。读片外程序存

储器中的数据(指令代码)时,不用RD信号而不用PSEN。

EA/Vpp(31):输入。当EA接高电平时,CPU可访问片内程序存储器4KB

的地址范围。若PC值超出4KB的地址时将自动转去执行片外程序存储器。当EA接低电平时,则只能访问片外程序存储器,不论片内是否有程序存储器。

WR(P3.6)、RD(P3.7):输出。用于片外数据存储器(RAM)的读/写控制。

当执行片外程序存储器操作指令MOVX时这两个控制信号自动生成。

2.5.2 MCS—51系列单片机的扩展

当片外要扩展多个芯片时就需要用到译码电路,对于译码的规则与方法如1)译码规则:

(1)程序存储器和数据存储器地址可以重叠使用

(2)外围芯片I/O接口芯片与数据存储器要同一编址。外围I/O不仅占用(3)地址总线宽度为16位外部程序存储器和数据存储器的寻址范围个为64K2)译码方法:

(1)线选法:是将各个扩展芯片上的地址线均接到单片机总线上,且外围芯片上的片选线也作为地址线接到地址总线剩余的任意一条线上。

线选法的特点是:各扩展芯片均有独立的片选控制线,地址有可能冲突且不联系。因此,这种方法不试用于扩展芯片较多且容量小的存储器,试用于扩展容量大的存储器。

(2)全地址译码法:是将各个扩展芯片上的地址线均接到单片机地址总线

10

下。

数据存储器地址单元,而且也使用了数据存储器的读/写控制信号与读/写指令。 字节

XXXXXX毕业设计

上,各片芯片的选择利用译码器电路实现。

全地址译码法特点是:各扩展芯片均有独立片选信控制线,且地址连续。可扩展较多外围芯片。

2.5.3 芯片的扩展设计

1)程序存储器扩展设计 (A) 程序存储器简介

常见的EPROM有:2716(容量2K×8位)、2732(容量4K×8位)、2764(容量8K×8位)、27128(容量16K×8位)、27256(容量32K×8位)、27521(容量64K×8位)。

EPROM外引脚功能如下: A0~A15:地址输入线;

O0~O7:三态数据总线,读或编程校验时为数据输出线,编程时为数据输入线。维持或编程禁止时O0~O7呈高阻态;

CE:片选信号输入线,“0”(即TTL低电平)有效;

PGM:编程脉冲输入线;其值因芯片型号和制造厂商不同而异; Vpp:编程电源输入线,其值因芯片型号和制造厂商不同而异;

OE:读选通信号输入线,“0”有效;

Vcc:主电源输入线,一般为+5V; (B)扩展方法

扩展程序存储器时,一般扩展容量大于256字节,因此,除了由P0口提供低8位地址线外,还由于P2口提供若干地址线,最大的扩展范围为64K字节,即需16位地址线。具体方法是CPU应向EPROM提供三种信号线。即

A:数据总线:P0口接EPROM地址O0~O7(D7~D0);

B:地址总线:P0口经锁存器向EPROM提供地址低8位,P2口提供高8位地址以及片选线。控制的程序存储器究竟需要多少位地址线,应根据cxccq容量和选用的EPROM芯片容量而定。

C:控制总线:PSEN—片外程序存储器取指令控制信号,接EPROM的“OE”。ALE—接锁存器的G,EA―接地。

控制单片EPROM时,EPROM的地址线分别接单片机上对应的地址线上,而片选信号CE接地。

11

xxxxxxxx毕业设计

(C) 设计所用EPROM芯片扩展设计

本设计采用8031进行故障信号的采集和判别,由于8031内没有程序存储器,外部需要扩展程序存储器,根据需要,又考虑到经济性问题。我选用的EPROM芯片为2764。连接如图2.4所示。

图2.5 EPROM芯片扩展

CPU访问外部程序存储器时,P2口提供地址高8位,P0口分时输出地址的低

8位和接收外部程序存储器送到数据总线上的指令代码信息。其工作过程为:当锁存控制信号ALE上升为高电平后,P0口输出为低8位地址(PCL),P2口输出高8位地址(PCH)。随后,在ALE的下降沿,P0口输出的稳定的程序存储器低8位地址被锁存器锁存并输出。接着P0口由原输出状态变为输入状态(为浮空状态),等待从程序存储器读取指令代码。而P2口输出的高8位地址信息保持不变。这时,送往程序存储器的地址线上的地址信息为:高8位由P2口提供,低8位由锁存器提供。

当程序存储器“读”选通信号PSEN为低电平时,片内程序存储器将P2口和

锁存器提供的地址所对应的单元中的内容(指令代码)输出到数据总线上,然后在PSEN的上升沿,CPU通过P0口将指令代码送入指令寄存器中。

由于P2口本身具有锁存功能,因此,在整个指令周期中,P2口输出的程序

存储器的高8位地址将一直保持稳定不变。在电路设计时,P2口无需再加锁存器。程序存储器地址为:

P2.7 P2.6 P2.5 P2.4 P2.3 P2.2???..P0.4 P0.3 P0.2 P0.1 P0.0 起至 1 1 1 0 0 0 0 0 0 0 0 终止 1 1 1 1 1 1 1 1 1 1 1

2) 数据存储器设计

由于算法的需要,在存储器中需要存储24个从A/D片出来的数据,即需要

24单元的存储单元。在8031的内部数据存储区低128字节RAM中30H~7FH共80个存储单元使用户RAM区,完全可以容纳下24个数据以及其运算过程中的临时数据,故不需要在;另外扩展片外数据存储器。

12

XXXXXX毕业设计

第三章 带有I/O接口和计时器的静态RAM8155

8155芯片内具有256个字节的RAM,两个8位,一个16位的可编程I/O口和一个14位计数器它与51型单片机接口简单,是单片机应用系统中广泛使用的芯片。

3.1 8155的结构

8155按照器件的功能,8155由下列三部分组成: 随机存储部分:

容量为256*8位的静态RAM I/O接口部分:

端口A:可编程程序I/O端口PA0—PA7 端口B:可编程程序I/O端口PB0—PB7 端口C:可编程程序6位I/O端口PC0—PC5 命令寄存器:8位寄存器,只允许写入 状态寄存器:8位寄存器,只允许读出

计数器/时算器是一个14位的二进制减法计数器。

3.2 8155的引脚功能

8255具有40个引脚,如图3.1列直插式PID封装其功能定义如下:

图3.1 8155引脚图

1)AD0—AD7(三态)

13

xxxxxxxx毕业设计

AD0—AD7是地址/数据总线,可以直接与80C51的P0口相连接。在允许地址锁存信号ALE的后沿(即下降沿),将8位地址锁存在内部地址寄存器中,该地址可作为存储器部分的低8位地址,也可是I/O接口的通道地址,这将由输入的IO/M信号的状态来决定。

在AD0—AD7引脚上出现的数据信号是读出还是写入8155,由系统控制信号

WR或RD来决定。 2)RESET

这是复位信号,高电平有效,作为总清零器件使用。RESET信号的脉冲宽度

一般为600ns。当器件被总清零后,各接口(A、B、C)被置成输入工作方式。

3)ALE

地址允许锁存信号。在该信号的后沿将AD0—AD7上的低8位地址,片选信号CE及IO/M信号锁存在片内的存储器内。

4)CE

片选信号,低电平有效。当该引脚位“0”时,器件才允许被启动,否则位禁止使用。

5)IO/M

I/O口或存储器的选择信号。当该引脚为“1”时,选择8155片内3个I/O口以及命令/状态寄存器和定时器;该引脚为“0”时,选择存储器。

6)WR、ED

读、写信号,控制8155的读或写操作,可以直接与单片机的读、写线相连。由于系统控制的作用,WR和ED信号同时有效。

7)PA0—PA7、PB0—PB7、PC0—PC5

分别为A、B、C的8位I/O口线,A、B口的I/O线用于8155与外设之间的数据传送,C口的I/O线既可以用于8155与外设之间数据传送,也可以作为A口、B口的专题联络信号线。

8)TIMNR IN 、TIMEOUT

定时/计数器的脉冲输入/输出线。 9)VCC:为+5V电源引脚。

14

XXXXXX毕业设计

3.3 8155的命令格式与状态字

使用8155的A、B、C三个转接口、随机存储器以及计数器/定时器时,应线向命令寄存器写入一个控制字以确定他们的工作方式。他们的工作方式均由可编程序的命令寄存器的内容所规定,而其状态可由读出状态寄存器的内容获得。上面已经叙述,8155的器件内部,从逻辑上来说,是只允许写入命令寄存器和读出状态寄存器内容的。因此,命令寄存器和状态寄存器的地址为一个通道地址:这两个寄存器简称为命令/状态寄存器,有时以C/S寄存器来表示。

1)8155的命令字格式

命令寄存器由8位组成,每一位都能锁存。其中低4位(D0—D3位)用来定义PA、PB和PC接口的工作方式:当PC用于控制PA或PB的端口工作时,第4、5两位分别用来允许或禁止PA和PB的中断;而最高两位(D6、D7两位)则用来定义计数器/定时器的工作方式。利用输出指令,可以将对命令寄存器的各位编码打入其中。

D0位(PB):定义PB0—PB7数据信息传送的方向。“0”—输入方式;“1”—输出方式。

D3、D2位(PCⅡ、PCⅠ):定义PC0—PC5的工作方式。“00”—方式Ⅰ;“11”—方式Ⅱ;“01”—方式Ⅲ;“10”—方式Ⅳ。

当8155的A、B、C三个端口被定义为基本I/O口使用时,可以直接利用MOVX类指令完成对这三个口的读/写(输入/输出)操作。

D4位(IEA):在端口C对PA0—PA7起控制作用时,IEA位用来定义允许端口A的中断。“0”—禁止;“1”—允许。

D5位(IEB):当端口C在工作在对PB0—PB7起控制作用时,IEB位用来定义允许端口A的中断。“0”—禁止;“1”—允许。

D7、D6位(TM2、TM1):用来定义定时器/计数器工作的命令。有四种情况。 2)8155的状态字格式

状态寄存器末8位,各位均可锁存,其中最高位为任意位,低6位用于存放I/O接口的状态,另一位作指示定时器/计数器的状态。通过读寄存器的操作(及用指令系统的输入指令),可读出状态寄存器的内容。

表3-1表

TM2 TM1 功能

00 不影响计时器工作

01 若计数器未启动,则无操作;若计数器已运

15

xxxxxxxx毕业设计

行,则停止计数。

10 达到当前计数TC后,立即停止。若未启动 定时器,则无操作。

11 装入方式和计数值后,立即启动定时器。若 计数器已在运行,则当达到当前计数值后, 再按新的方式和计数长度予以启动。

3.4 8155 I/O端口的应用

当IO/M为高电平时,8155选通片内的I/O端口。A、B、C三个口可以作为扩展的I/O口使用,MCS—51单片机的P0口与8155的AD0—AD7相连。此时P0输出的低8位地址只有3位有效,用于片内选址,其他位无用。使用A、B、C三个口时,首先相命令寄存器写入一个控制字以确定三个口的工作方式。如果写入的控制字规定他们工作于方式Ⅰ或方式Ⅱ下,则这三个口都是独立的基本I/O口。可以直接利用MOVX A,@DPTR或MOVX @DPTR,A 指令完成这三个口的读/写(输入/输出)操作。

工作在方式Ⅲ或方式Ⅳ时,C口用作控制口或部分用于控制。

3.5 MCS—51和8155的接口方法

MCS—51单片机可以和8155直接连接,不需要任何外加电路,给系统增加了256个自己的RAM、22位I/O线及一个计数器。当P2.0=0且P2.1=0时,选中8155的RAM工作;在P2.0=1和P2.0=0时,8155选中片内三个I/O端口。相应地址分配为:

0000H—00FFH 8155内部RAM 0100H 命令/状态口 0101H A口 0102H

B口

0103H C口

0104H 定时器低八位口 0105H 定时器高八位口 8155用作键盘/LED显示器接口电路略。

16

XXXXXX毕业设计

第四章 ADC0809转换芯片

ADC0809是采用COMS工艺制成的28引脚双列直插式八位A/D转换芯片。它采用逐次比较数模转换芯片,其分辨率为8位,每次转换时间为100μS,转换精度高(?12LSB),输入电压范围为0—5V,可分时对8路模拟量进行采样。

4.1 ADC0809的引脚

ADC0809的引脚如图4.1

图4.1

IN0—IN7:8路模拟量输入

A、B、C:3位地址输入,经译码后选择模拟量中的一路进行A/D转换,2个地址输入端的不同组合选择八路模拟量输入。

ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器,并启动译码电路,选中模拟量输入。

D0—D7:八位数据输出线,A/D转换结果由这8根线传送给单片机。 OE:允许输出信号,当OE=1时,即当位高电平的时候,允许输出锁存器输出数据。

START:启动信号输入端,START为正脉冲,该信号上升沿复位内部逐次逼近寄存器SAR,其下降沿启动控制逻辑,开始A/D转换。

EOC:转换完成信号,当EOC上升为高电平时,在START信号上升沿之后的

17

xxxxxxxx毕业设计

0—8个时钟周期内,EOC信号变低,以指示转换工作在进行中,当转换完成,EOC再变为高电平。

OE:输出允许,高电平有效。当该信号有效时,打开芯片的三态门使准会结果送至数据总线。

D0—D7:8位数字量输出线。

CLOCK:外部时钟输入线。要求时钟频率不能高于640KHz,当频率为640KHz时,转换时间约100μs。

VREF(+),VREF(—):基准电压输入线,提供模拟信号的基准电压。一般单极性输入时,VREF(+)接+5V,VREF(—)接地。

VCC:工作电源,接+5V。 GND:信号地。

CLK:时钟输入信号,0809的时钟频率范围在10—1200KHz,典型值为640KHz。

4.2 ADC0809的内部组成

ADC0809内由8路模拟量输入选择与地址锁存电路,典型8位逐次逼近ADC,8位三态输出锁存缓冲器。8位逐次逼近ADC由比较器、256R电阻网络、树型开关、逐次逼近寄存器SAR和控制与时序电路组成(如图4.2)。该部分完成对某一路模拟量的8次比较,在SAR中获得与被转换的模拟量相对应的8位二进制数。256R电阻网络和树型开关组成片呃逆D/A转换器。8路模拟量输入选择与地址锁存电路实现地址信号ADDA—ADDC的输入,锁存及译码,选中一路模拟量信号送逐次逼近ADC。ADDA—ADDC与IN0—IN7的对应关系(如图4.3):

18

XXXXXX毕业设计

START CLK EOC IN7 IN6 IN5 IN4 IN3 IN2 IN1 IN0 8 位 模 拟 开 关 8 位 A/D转 换 电 路 三 态 输 出 数 据 锁 存 器 D7 D6 D5 D4 D3 D2 D1 D0

ADDA ADDBADDC ALE VCC 地址锁存与译码器 GND VREF(+) VREF(-) 图4.2

OE

ADDA—ADDC与IN0—IN7的对应关系

ADDA ADDB ADDC 选中输入线 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7

图4.3

19

xxxxxxxx毕业设计

4.3 ADC0809与系统总线的连接

ADC0809是带有多路模拟开关的8位A/D转换芯片,所以它可由8个模拟量的输入端,由芯片的A、B、C三个引脚来选择模拟量通道中的一个。A、B、C三端分别与8031的P0.0—P0.2相接。地址锁存信号(ALE)和启动转换信号(START),由P2.2和/WR或非得到。输出允许,由P2.2和/RD或非得到。时钟信号,可有8031的ALE输出得到,不过当采用6M晶振时,应该先进行二分频,以满足ADC0809的时钟信号必须小于640K的要求。

由于ADC0809芯片具有三态输出换成锁存器,因此它可以直接与系统总线连接。连接方法是:将微机的系统时钟经分频后连接ADC0809芯片的CLOCK输入端;将系统数据总线连至ADC0809的数据输入端,数据总线的低位D2D100依次接ADC0809的ADDC,ADDB,ADDA;将系统地址译码输出信号CS与M/IO,WR信号组合接至ADC809的启动信号START和地址锁存信号ALE;将系统地址译码输出信号CS与M/IO,RD信号组合接至ADC0809的数据输出允许信号OE。

ADC0809的转换过程大致如下:首先输入地址选择信号,在ALE信号作用下,地址信号被锁存,产生译码信号,选中一路模拟量输入,然后输入启动转换控制信号START启动转换。转换结束,数据送三态缓冲锁存器,同时发出EOC信号。在允许输入信号OE的控制下,再将转换结果输入到外部数据总线。

通常CPU采用三种方式读取ADC0809的转换结果。

(1)程序查询方式:采用该方式需要将EOC通过三态门接至系统的一根数据总线上。CPU查询该总线的位是否位低电平,若位低电平,则再查询它是否位高电平,若是,则表明转换结束,CPU再执行读ADC0809端口的指令即可。

(2)中断方式:采用该方式,需要将EOC接至8259A,即将EOC作为CPU的中断请求信号,上升沿触发,以中断方式请求CPU读取转换结果。

(3)定时方式:已知完成一次A/D转换所需的时间,可用定时器时大于或等于该转换时间,等待定时时间一到即读取转换结果,或定时申请中断读取转换结果。也可在启动ADC0809后,用软件延时一个固定送时间,然后读取转换结果,这种方式不用考虑转换结束信号EOC。

4.4 ADC0809与8031的接口

ADC0809的IN0和变送器输出端相连,故IN0上输入的0V—+5V范围的模拟电压经A/D转换后可由8031通过程序从P0口输入到它的内部RAM单元。其连接图如图4.4所示:

20

XXXXXX毕业设计

图4.4

在P20=0和WR=0时8031可以使ALE和START变为高电平而启动ADC0809工作;在P22=0和ED=0时,8031可以从ADC0809接收A/D转换后的数字量。这就是说:ADC0809可以视为8031的一个外部RAM单元,地址为03F8H。因此,8031执行如下程序可以启动ADC0809工作。

MOV

DPTR, #03F8H

MOVX MOV

@DPTR, A

DPTR, #03F8H

若8031改为执行:

MOVX

A, @DPTR

则可以从ADC0809输入A/D准会后的数字量。

ADC0809的CLK由8031的ALC提供,EOC经反相器作用8031的P33口,作为中断请求输入线。

21

xxxxxxxx毕业设计

第五章 温度的检测和控制

5.1 温度检测元件的选择

温度检测元件和变送器的选择和被控温度及精度等级有关。电炉常用热电偶作为测温元件,其材料要求为:

1.耐高温--热电偶的测温范围主要取决于热电极的高温性能,在高温介质中,热电极的物理化学性能越稳定,则由它组成的热电偶的测温范围就越宽。

2.再显性好--用相同的两种热电极材料的热电偶,要求它们的电热性能相而而稳定,这样能使热电偶成批生产,并有很好的互换性。

3.灵敏度高,线性好--要求电偶所产生的温差热电势足够大,并与温度呈线性关系。

4.要求热电有为材料除能满足上述几点要求外,并希望它的电阻系数和电阻温度系数尽可能地小,且其价格便宜。

目前常用的热电偶有以下几种:

[1]铂铑/铂热电偶——其分度号为S,正极是90%铂和10%铑的合金,负极为纯铂丝。

其优点是测温精度高,可作为国际实用温标中630.74—1064.43℃范围内的基准热电偶。其物理化学稳定性高,宜在氧化性和中性气氛中使用;它的熔点较高,故测温上限亦高。在工业测量中一般用它测量1000℃以上的温度,在1300℃以下可长期连续使用,短期测温可达1600℃。但价格昂贵,热电势小。

[2]镍铬/镍硅(镍铝)热电偶——其分度号为K,正极成分是9—10%铬、0.4%硅,其余为镍,负极成分为2.5—3%硅,<0.6%铬,其余为镍。

其优点是有较强的抗氧化性和抗腐蚀性,其他学稳定性好,热电势较大,热电势与温度问的线性关系好,其热电极材料的价格便宜,可在1000℃以下长期连续使用,短期测温可达1300℃。但在500℃以上的温度中和在还原性介质中,以及在硫及化物气氛中使用时很容易被腐蚀,所以,在这些气氛中工作时必须加保护套管,另化它的测温精度也低于铂铑/铂热电偶。

[3]镍铬/考铜热电偶——文分度号为E,正极镍铬成分为9—10%铬,0.4%硅,其余为镍;负极考铜万分为56%铜和44%镍。

其优点是热电势大,价格便宜。但不能用来测高温,其测温上限为800℃,长期使用时,只限600℃以下,另外,由于考铜合金易受氧化而变质,使用时必须加装保护套管。

[4]铂铑30/铂铑6热电偶——简称为双铂铑热电偶,分度号为B。该热电偶的正负极都是铂铑合金,仅仅是合金含量比例不同而巳,正极含铑30%,负极

22

XXXXXX毕业设计

含铑为6%,双铂铑 热电偶的抗沾污能力强,在测温1800℃温度时仍有很好的稳定性。其测温精度较高,适用于氧化性、中性介质,可以长期连续测量1400—1600℃的高温,短期测量可达1800℃。但价格昂贵,灵敏度较低。

[5]铜 /康铜热电偶--其分度号为T,正极为铜,负极为60%铜/40%镍的合金。 其优点是测温灵敏度较高,热电极容易复制,价格便宜,低温性能好,可测量—200℃低温。但其成分铜易氧化,因此一般测温上限不超过300℃。

基于测量范围,精度以及价格的考虑,本设计采用镍铬/镍硅热电偶,相应的输出电压为0mV—41.32mV。

5.2 变送器

变送器由毫伏变送器和电流/电压变送器组成。毫伏变送器用于把热电偶输出的0—41.32mV转换成0—10mA范围内的电流。电流/电压变送器用于把毫伏变送器输出的0—10mA电流转换成0—5V范围的电压。通过转换可以使信号达到单片机所规定的电流与电压要求。

为了提高精度,变送器可以进行零点漂移。例如:若温度测量范围为400℃—1000℃,则热电偶输出为16.4mV—41.32mV,毫伏变送器零点漂移后输出0—10mV范围电流。这样,采用8位A/D转换器就可以使量化误差达到正负2.34度以内。

本设计采用BS系列JD384-TD185I-7B0电流/电压变送器,其技术参数如表5.2所示。

表5.2

23

xxxxxxxx毕业设计

5.3 温度的控制

8031对温度的控制是通过可控硅调控器实现的。双向可控硅管和加热丝串联接在交流220V,50Hz交流同步回路。在给定的周期T内,8031只要改变可控硅管的接通时间便可改变加热丝功率,以达到条件温度的目的。

可控硅接通时间可以通过时间可以通过可控硅控制板上控制脉冲控制。该触发脉冲由8031用软件在P1.3引脚上产生,受过零同步脉冲后经光耦管和驱动器送到可控硅的控制极上。

图6.1过零触发电路

过零脉冲是一种50HZ交流电压过零时刻的脉冲,可使可控硅在交流电压正

24

XXXXXX毕业设计

弦波过零时刻出发导通。过零同步脉冲由触发电路产生,详细电路如图6.1所示,图中电压比较器用于把50HZ的正弦交流电压变为方波。方波的正边沿和负边沿分别作为两个单稳态触发器的输入信号,单稳态触发器输出的两个脉冲经二极管或门混合后就可以得到对应于交流220V的市点的同步脉冲。此脉冲一方面可作为可控硅的触发脉冲加到温度控制电路,另一方面还可以作为计数脉冲加到8031的T0和T1端。

25

xxxxxxxx毕业设计

第六章 温度控制程序和算法

6.1 温度控制的算法

通常,电阻炉炉温控制采用偏差控制法。偏差控制的原理是先求出所测炉温对所需炉温的偏差值,然后对偏差值处理 而获得的控制信号去调节电阻炉的加热功率,以实现对电阻炉的为温度控制在工业上,偏差控制有称为PID控制,这是工业控制中常用的控制形式,一般能收到满意的效果。

控制理论告诉我们,PID控制的理想方法是

?1de???U?Kpe??edt?TD??Tdt1??

公式中e— 测量值与给定之之间的偏差; TD—微分时间; T—积分时间;

KP—调节器的放大系数。

Un?T?Kp?en?T1?nn?t?1??en?en?1??e1?T?

TD?Kpen?K1?et?KD?en?en?1?

t?1将上式离散化得到数字PID位置式算法

在位置式算法的基础之上得到数字PID增量式算法:

?U?Kp(en?en?1)?K1en?KD(en?2en?1?en?2)

?Kp?en?Ken?KD(?en??en?1)

6.2 温度控制程序

温度控制程序应该考虑如下问题:○1键盘扫描,键码识别和温度显示;○2炉温采样和数字滤波;数据处理时把所有数安定点纯小数补码形式转换,然后把8位温度采样值都变成16位,运算结果取8位有效值;越限报警处理;PID计算,温度标度转换。通常,符合上述功能的温度控制程序由主程序和T0中断服务程序组成,现分述如下;(1)主程序应包括80C31本身的初始化,8155初始化等

26

XXXXXX毕业设计

等。框图6.1如下:

设定堆栈指针 T1中断程序 请标志和缓存单元 请标识D5H 请显示缓存区 T0初始化开中断 停止输出 温度显示 扫描键盘 返回

图6.1主程序及T1中断程序流程图

主程序如下: ORG 0100H DISM0 DATA 78H DISM1 DATA 79H DISM2 DATA 7AH DISM3 DATA 7BH DISM4 DATA 7CH DISM5 DATA 7DH

MOV SP, #50H; 50H送SP CLR 5EH

; 清本次越限标志

CLR 5FH ; 清上次越限标志 CLR A ; 清累加器A MOV 2FH, A MOV 30H, A MOV 3BH, A MOV 3CH, A

27

清暂存单元

xxxxxxxx毕业设计

MOV 3DH, A MOV 3EH, A MOV 44H, A MOV DISM0, A MOV DISM1, A MOV DISM2, A MOV DISM3, A MOV DISM4, A MOV DISM5, A

MOV TMOD #56H;控制寄存器装初值 MOV TL0 #06H;装入TL0初值 MOV TH0 #06H;装入TH0初值 CLR PT0 SETB TR0

SETB ET0 ;开外部中断请求 SETB EA ;开T0中断

LOOP ACALL DISPLY ;调用显示程序

ACALL SCAN ;调用扫描程序 AJMP LOOP ;等待中断

应当注意;由于T0被设定为计数器方式2,初值为06H,故它的溢出中断时间为250个过零同步脉冲。为了系统正常工作,T1中断服务程序的执行时间必须满足T0的时间要求,因为T1的中断是嵌套在T0中断之中的。

清显示缓存区 清暂存单元

6.3 T0中断的服务程序CT0

T0中断服务程序是温度控制系统的主程序,用于启动A/D转换器,读入数据采样,数字滤波,越权温度报警处理,PID算法和输出可控硅的同步触发脉冲等。P1.3引脚上输出的该同步脉冲宽度由T1计数器的溢出中断控制,8031利用等待T1溢出中断空闲时间完成把本次采样数字转换成显示值而放入显示缓存区和调用温度显示程序,8031从T1中断服务程序返回后便可以恢复现场和返回主程序,以等待下次T0中断。

T0中断服务程序框图如图6.2

28

XXXXXX毕业设计

6.2 T0中断服务程序框图

ORG 000BH AJMP CT0

29

xxxxxxxx毕业设计

CTO: PUSH ACC

PUSH DPL 保护现场 PUSH PDH

SETB D5H ;置标志 ACALL ASMP ACALL FILTER CJME A,42H,TPL

WL: MOV C,5EH

MOV 5FH,C CLR 5EH ACALL UPL POP DPH POP DPL POP ACC

RETI TPL: JNC TPL1

CLR 5FH CJNE A,43H,MTPL

HAT: SETB P1.1 ACALL PID MOV A,2FH CPL A INC A

NM: SETB P1.3

MOV TL1,A MOV TH1,#0FFH SETB PT1

SETB TR1 SETB ET1 ACALL TRAST

LOOP: ACALL DISPLY JB D5H,LOOP POP DPH POP DPL POP ACC

;中断返回

;清上次越限标志 ;如果温度不越限,则绿灯亮

对PID值求值作为YL1的值;启动T1 ;允许T1中断 ;显示温度

;等待T1中断 30

XXXXXX毕业设计

RETI

MTPL: JNC HAT

SETB P1.0 ;否则,下限声光报警 MOV A,45H CPL A INC A AJMP NM

TPL1: SETB 5EH

JNB 5FH,WL

INC 44H ;越限计数器加1 MOV A,44H CLR C

SUBB A,#N ;越限N次吗? JNZ WL SETB P1.2 CLR 5EH CLR 5FH POP DPH POP DPL RETI

T1终端服务程序

ORG 001BH AJMP CT1

CT1: CLR D5H ;清标志

CLR P1.3 ;令P1.3变为低电平

RETI ;中断返回

6.4子程序

采样子程序SAMP;流程图如图6.3所示,

SAMP: MOV R0,#2CH ;采样值始址送R0 MOV R2,#03H MOV DPTR,#20H

SAM1: MOVX @DPTR,A ;启动ADC0809 MOV R3,#20H

31

xxxxxxxx毕业设计

DLY: DJNZ R3,DLY ;延时 HERE: JB P3.3,HERE MOVX A,@DPTR

MOV @R0,A ;存放采样值 INC R0 DJNC R2,SAM1 RET

图6.3 采样子程序流程图

数字滤波程序FILTER其流程图如图6.4所示;用于滤去来自控制现场对采样值的干扰。本设计采用中值滤波,程序如下: FILTER: MOV A,2CH

CJNE A,2DH,CAMP1 AJMP CMP2

CMP1: JNZ CMP2

XCH A,2DH XCH A,2CH

CMP2: MOV A,2DH

CJNE A,2EH,CMP3

32

XXXXXX毕业设计

MOV 2AH,A RET

CMP3: JC CMP4

MOV 20H,A RET

CMP4: MOV A,2EH

CJNE A,2CH,CMP5 MOV 2AH,A

CMP5: JC CMP6

XCH A,2CH

CMP6: MOV 2AH,A RET

图6.4 滤波程序FILTER其流程图

33

xxxxxxxx毕业设计

6.5 PID算法程序 6.5.1 PID算法程序

P(K)=P(K—1)+Kp[E(K)—E(K—1)]+K1*E(K)+Kd[e(K)—2E(K—1)+E(K—2)]=P(K—1)+Pp+Pi+Pd

我们可以根据上式编辑,相应程序框图如6.5所示。

根据E(K)=UR-Ui(k)计算E(K) 计算K1*E(k) 计算Kp[E(k)-E(k-1)] 计算Kp[E(k)-E(k-1)]+ K1*E(k) 计算Kp[E(k)-E(k-1)]+ K1*E(k)+KD[E(k)-2E(k-1)+E(k-2) 计算P(k) 返回 图6.5 PID算法程序流程图

PID: MOV R5,31H

MOV R4,32H MOV R3,2AH MOV R2,#00H ACALL CPL1 ACALL DSUM MOV 39H,R7 MOV 3AH,R6 MOV R5,35H

34

XXXXXX毕业设计

MOV R4,36H MOV R0,#4AH ACALL MULT1 MOV R5,39H MOV R4,3AH MOV R3,3BH MOV R2,3CH ACALL CPL1 ACALL DSUM MOV R5,33H MOV R4,34H MOV R0,#46H ACALL MULT1 MOV R5,49H MOV R4,48H MOV R3,4DH MOV R2,4CH ACALL DSUM MOV 4AH,R7 MOV 4BH,R6 MOV R5,39H MOV R3,3DH MOV R2,3EH ACALL DSUM MOV R5,R7 MOV R4,R6 MOV R3,3BH MOV R2,3CH ACALL CPL1 ACALL DSUM MOV R5,R7 MOV R4,R6 MOV R3,3BH MOV R2,3CH ACALL CPL1

35

xxxxxxxx毕业设计

ACALL DSUM MOV R5,37H MOV R4,38H MOV R0,#46H ACALL MULT1 MOV R5,49H MOV R4,48H MOV R3,4AH MOV R2,4BH ACALL DSUM MOV R3,R7 MOV R2,R6 MOV R5,2FH MOV R4,30H ACALL DSUM MOV 2FH,R7 MOV 30H,R6 MOV 3DH,3BH MOV 3EH,3CH MOV 3BH,39H MOV 3CH,3AH RET

*****双字节加法程序DSUM ;R5R4+R2R3→R7R6 DSUM: MOV A,R4 ADD A,R2 MOV R6,A MOV A,R5 ADD A,R3 MOV R7,A RET *****双字节求补程序CPL1 ;对R3R2求补

CPL1: MOV A,R2

CPL A

36

XXXXXX毕业设计

MOV R2,A MOV A, R3 CPL A ADDC A,#00H MOV R3,A RET

6.5.2双字节带符号乘法子程序MUL1

程序框图如6.6所示。

被乘数符号送Cy N Cy=1? Y 对R6R7求补 两乘数符号皆为负? Y 乘数符号送Cy N 对积高16位求补 N Cy=1? Y 对R4R5求补 返回 调用无符号乘法程序

图6.6 带符号双字节乘法流程图

入口条件:R6R7=被乘数 R5R4=乘数

出口条件:积为32位,按R0存入 标志位: SIGN1为位地址5CH

37

xxxxxxxx毕业设计

SIGN2为位地址5DH 程序清单:

MULT1: MOV A,R7

RLC A

MOV SIGN1,C ;被乘数符号送SIGN1 JNC POS1 ;若被乘数为正,则POS1 MOV A,R6 CPL A ADD A,#01H MOV R6,A

MOV A,R7 CPL A ADDC A,#00H MOV R7,A

POS1 MOV A,R5

RLC A

MOV SIGN2,C JNC POS2

MOV A,R4 CPL A ADD A,#01H MOV R4,A

MOV A,R5 CPL A ADDC A,#00H MOV R5,A

POS ACALL MULT MOV C,SIGN1

ANL C,SIGN2 JC TPL MOV C,SIGN1 ORG C,SIGN2 JNC TPL DEC R0 MOV A,@R0

;对R7求补 ;乘数符号送SIGN2 ;对R4求补 ;对R5求补 ;调用无符号乘法程序 38

XXXXXX毕业设计

CPL A ADD A,#01H MOV @R0,A INC R0 MOV A,@R0 CPL A ADDC A, #00H MOV @R0,A

TPL: RET

END

39

xxxxxxxx毕业设计

结论

毕业设计是大学阶段一次难得的理论与实际相结合的机会。通过这次的基于单片机的温度控制系统的设计,我更深层次的把理论知识和实际设计结合在一起。锻炼了我的综合运用所学的专业基础知识和解决实际工程问题的能力。同时也提升了我查阅文献资料、设计手册、设计规范以及电脑制图等其他知识能力水平。并且,通过对整体的掌控,对局部的取舍,对细节的斟酌处理,以及绘图的技巧都使我在设计领域的能力得到了锻炼,得到了较丰富经验。这次设计过程使我在意志力,抗压能力及耐力方面也都得到了不同程度的提升。

通过这次课题设计我学到了很多东西。对各种系统的适用条件,各种设备的选用标准,各种管道的安装方式,我都是随着设计的不断深入而逐渐熟悉并学会应用的。通过和老师的交流使我从经济的角度对设计又有了全新的认识也对自己的设计提出了成本方面的要求。

在设计过程中信号的处理是最让我们头痛的,原因是由于本设计采用可控硅进行信号采集,用过零触发电路进行滤整流,这些都非我们所学课程,但是经过我们努力探讨和老师的帮助,我们了解了其原理所在,顺利的完成了毕业设计。第一次体会到通过自己的努力获得成功的成就感。

顺利如期的完成本次毕业设计给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心,无论给水系统排水系统还是消防系统,我都采用了一些新的技术和设备他们有着很多的优越性,但也存在一定的不足,这新不足在一定程度上限制了我们的创造力。比如我的设计在节约水能源上就有很大的不足,在这个能源紧缺节能被高度重视的社会中,这无疑是很让我自身感到遗憾的,可这些不足正是我们要去更好的研究更好的创造的最大动力,只有发现问题面对问题才有可能解决问题,不足和遗憾不会给我打击只会更好的鞭策我前行,今后我更会关注新技术新设备新工艺的出现,并争取尽快的掌握这些先进的知识,更好的为祖国的四化服务。

40

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

Top