微型计算机控制技术课程设计
微型计算机控制技术课程方案

微型计算机控制技术课程设计----电阻加热炉温度控制学院:专业班级:姓名:学号:指导教师:目录一、摘要 (2)二、总体方案设计 (2)设计任务1、设计内容及要求 (2)2、工艺要求 (2)3、要求实现的系统基本功能 (3)4、对象分析 (3)5、系统功能设计 (3)三、硬件的设计和实现 (4)四、数字控制器的设计 (7)五、软件设计 (9)1、系统程序流程图 (9)2、程序清单 (11)六、完整的系统电路图 (21)七、系统调试 (21)八、设计总结 (21)九、参考文献 (22)一、摘要温度是工业对象中主要的被控参数之一。
特别是在冶金、化工、机械各类工业中,广泛使用各种加热炉、热处理炉、反应炉等。
由于炉子的种类不同,所采用的加热方法及燃料也不相同,如煤气、天然气等。
但就控制系统本身的动态特性而言,均属于一阶纯滞后环节,在控制算法上基本相同,可采用PID控制或其他纯滞后补偿算法。
为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度,节约能源,对加热用的各种电炉要求在一定条件下保持恒温,不能随电源电压波动或炉内物体而变化,或者有的电炉的炉温根据工艺要求按照某个指定的升温或保温规律而变化,等等。
因此,在工农业生产或科学实验中常常对温度不仅要不断地测量,而且要进行控制。
二、总体方案设计设计任务用一台计算机及相应的部件组成电阻炉炉温的自动控制系统,并使系统达到工艺要求的性能指标。
1、设计内容及要求电阻加热炉用于合金钢产品热力特性实验,电加热炉用电炉丝提供功率,使其在预定的时间内将炉内温度稳定到给定的温度值。
在本控制对象电阻加热炉功率为8KW,有220V交流电源供电,采用双向可控硅进行控制。
系统模型:2、工艺要求按照规定的曲线进行升温和降温,温度控制范围为50—350℃,升温和降温阶段的温度控制精度为+5℃,保温阶段温度控制精度为+2℃。
3、要求实现的系统基本功能微机自动调节:正常工况下,系统投入自动。
微型计算机控制技术课程设计

微型计算机温度控制系统设计1总体方案设计温度控制是工业生产中经常碰到的过程控制问题之一。
对温度准确的测量和有效的控制是一些设备优质高产、低耗和安全生产的重要指标。
当今计算机控制技术在这方面的应用,已使温度控制系统达到自动化、智能化,比过去单纯采用电子线路进行PID 调节的效果要好得多,可控性方面也有了很大提高[1]。
1.1设计要求该系统为基于数字PID 的电加热炉温度控制系统。
电加热炉用于合金钢产品热力特性实验,迪娜加热炉用电炉丝提供功率,使其在在预定时间内江路内温度稳定到给定的温度值。
在本控制对象加热炉功率为8KW ,有220V 交流电源供电,采用双向可控硅进行控制。
本设计针对一个温区进行温度控制,要求控制温度范围50-350℃,保温阶段温度控制精度为±1℃。
选择合适的传感器,计算机输出信号经转换后通过双向可控硅控制器控制加热电阻两端的电压。
其对象温控数学模型为1)(+=-s K s G T e d s d τ (1.1)其中:时间常数T d =350s 秒放大系数K d =50滞后时间τ=10秒 控制算法选用改进的PID 控制。
1.2方案设计要想达到设计要求的内容,少不了以下几种器件:单片机、温度传感器、LCD显示屏、直流电动机等。
其中单片机用做主控制器,控制其它器件的工作和处理数据;温度传感器用来检测环境中的实时温度,并将检测值送到单片机中惊醒数值比较;LCD 显示屏用来显示温度数字值;直流电动机用来表示电加热炉的工作情况,转动表示迪娜加热炉通电加热,停止转动表示电加热炉断电停止加热。
整体思路如下:首先我们通过按键设定所需要的温度,然后利用温度传感器检测电加热炉的实时加热温度,并传送至单片机与设定值进行比较。
若检测值小于设定值,则无任何动作,电加热炉继续导通加热;若检测值大于设定值,则单片机控制光电耦合器导通,继电器动作,电加热炉断电停止加热。
一旦炉温低于设定值,单片机又控制光电耦合器断开,继电器开关分离,电加热炉开始导通加热。
微型计算机控制技术课程设计

微型计算机控制技术课程设计
一、概述
本课程设计旨在通过对微型计算机控制技术的深入学习和实践,使学生掌握计
算机控制系统设计的基本方法和技能,提高学生的实际操作能力和综合素质。
课程设计主要通过实例演示、仿真、实验等方式,引导学生逐步掌握微处理器的编程、外设接口设计、实时控制和调试等关键技术,最终完成一个综合性的计算机控制系统的设计和实现。
二、课程目标和要求
1. 课程目标
通过本课程的学习和实践,使学生能够掌握以下核心知识和技能:
•了解微型计算机控制技术的基本概念和原理;
•掌握基于微处理器的软硬件系统设计,包括编程、外设选型、接口设计等;
•熟悉实时控制和调试的方法和技巧,进一步提高系统的性能和稳定性;
•通过实际项目设计和实现,培养学生的独立思考、创新能力,提高学生的实际操作技能和综合素质。
2. 课程要求
•学生需要具备一定的计算机基础知识和编程基础;
•学生需主动参与课堂学习和实验操作,积极完成相关实验报告和课程设计任务;
•学生需熟练使用计算机软硬件工具和测量仪器,实现系统的设计、调试和测试;
1。
微型计算机控制技术课程设计.

微型计算机控制技术课程设计姓名:任文华班级:1220391学号:122039128日期:2014-12-22实训一流水灯的设计一、实训目的1.通过实验,熟悉并掌握试验系统原理与使用方法。
2. 掌握单片机的基本使用方法与编程方法。
3. 掌握C语言编程基本思想。
4. 学会基础的编程控制。
二、实训内容1. 使用仿真软件设计流水灯控制电路。
2. 使用Keil编写程序实现流水灯的控制。
3. 运行并调试程序。
三、实训原理本流水灯是一个带有八个发光二极管的单片机最小应用系统,即为AT89C51单片机、电阻、发光二极管、电源等电路和必要的软件组成的单片机。
如果要让接在P1.0口的LED1(共阴极接法)亮起来,那么只要把P1.0的电平变为高电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为低电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭方法同LED1。
因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。
在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管灯亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。
四、实训过程1. 电路设计如下图:2.编写程序#include<reg51.h>void delay(){int i, j;for(i=0;i<100;i++)for(j=0;j<200;j++);}void main(){while(1){P1=0X01;delay();P1=0X02;delay();P1=0X04;delay();P1=0X08;delay();P1=0X10;delay();P1=0X20;delay();P1=0X40;delay();P1=0X80;delay();}}3.运行过程如下图:实训二 8*8点阵显示屏的设计一、实训目的1.通过实验,熟悉并掌握试验系统原理与使用方法。
微型计算机控制技术课程设计

目录一、步进电机控制系统的设计1、设计目的2、实验仪器3、步进电机的基本工作原理4、步进电机控制的设计内容系统硬件设计系统软件设计5、结束语二、炉温控制系统的设计1、设计目的2、设计要求3、设计原理4、设计过程系统硬件设计系统软件设计5、结束语三、直流电机调速系统的设计1、设计目的2、设计要求3、设计过程系统硬件设计系统软件设计四、设计总结及心得体会一、步进电机的控制系统设计一、设计目的1.了解步进电机的工作原理。
2.掌握步进电机的驱动及编程方法。
二、实验仪器1.EL-CAT-III型计算机控制系统实验箱一台2.PC计算机一台3.步进电机控制实验对象一台三、步进电机的基本工作原理:步进电机的工作就是步进转动。
在一般的步进电机工作中,其电源是采用单极性的直流电源。
要使步进电机转动,就必须对步进电机的各相绕组以适当的时序进行通电。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(成为“步距角”),它的旋转是以固定的角度一步一步运行的。
因此,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的。
本实验步进电机的工作方式为两相四拍式,其电机的通电顺序如下图所示:四、步进电机控制实验内容:1、硬件设计(1)、实验框图2、软件仿真步进电机采用的是开环控制。
在实验仿真开始时,先设置起点坐标和重点坐标,再将实际的转盘指针调到与软件上的指针起始值相同。
然后开始运行,看软件仿真指针所转角度是否与实际相同。
正转:起时角为0,终止角为100反转:起始角100,终止角50五、结束语:通过本次的实验了解了步进电机的工作原理和它的工作方式,以及如何用计算机来控制步进电机的转动。
根据实验所得出的结果是:实际步进电机的指针旋转角度与在软件仿真中指针的旋转角度是相同的。
所以通过计算机对步进电机的控制可以达到很高的精度。
二、电阻炉温控制系统的设计一、设计目的(1)、了解温度控制系统的特点。
(2)、研究采样周期T对系统特性的影响。
微型计算机控制技术课程设计报告

《微型计算机控制技术》课程设计报告学号姓名指导老师所在学院计算机与信息学院(常州)完成日期 2011年 9 月 27 日一、课程设计地目地本次课程设计我所做地是基于单片机地液晶显示日期、时间和温度地系统,利用AT89S52单片机控制外围电路,通过时钟芯片DS1302和温度传感器DS18b20,实现液晶显示日期、时间、温度等功能.可以直接通过按键来设置时间和日期.时钟芯片DS1302通过简单地串行通信与单片机进行通信,时钟/日历电路能够实时提供年、月、日、时、分、秒等信息,采用双电源供电,当外部电源掉电时能够利用后备电池准确计时.数字温度传感器DS18B20具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中地温度测量,也可以当作温度处理模块嵌入到其它系统中,作为其它主系统地辅助扩展.通过本次课程设计,首先,使我们增进对单片机地感性认识,加深对单片机理论方面地理解.其次,让我们掌握单片机地内部功能模块地应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通讯等.还有,使学生了解和掌握单片机应用系统地软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础.同时,课程设计培养综合运用知识和独立开展实践创新地能力,增强学以致用地思想,提高解决问题地能力和百折不饶地品质,规范化训练学生撰写技术报告,提高书面表达能力.二、主要设计任务和内容本次计算机控制课程设计主要是在单片机开发板上,依靠开发板资源,设计出一个应用系统.我所做地为12864液晶显示年月日、星期、时间以及当前温度,同时能够用键盘调整年月日、星期和时间.采集温度使用地是DS18b20温度传感器,时钟芯片为DS1302.基于单片机地液晶显示多功能时钟与温度计系统主要由五个模块组成,分为单片机最小系统模块,按键设置模块,液晶显示模块,时钟芯片DS1302模块以及温度传感器DS18b20模块.系统结构图见图2.1.图2.1系统结构图系统硬件上由这五部分组成,通过单片机对时钟芯片DS1302和温度传感器DS18b20地设置和读取,在12864液晶上显示当前地日期,时间和温度等,还可以通过按键来调整时间日期等.否图2.2 软件流程图设计程序开始进行液晶初始化,DS18B20初始化,DS1302初始化,然后进入默认地液晶显示,并判断按键是否进入调整模式,如果进行调整模式,则可以选择调整日期,时间,星期,通过设置地上下键来改变相应地数值,调整完,退出调整模式,然后显示日期、时间、温度等.如果没有通过按键进入调整模式,则显示预设地日期、时间、温度等.三、现场调试和修改在这次课设过程中,开始时按键调整功能未能实现,经过仔细排查,查阅资料以及与同学地讨论交流,发现由于程序地逻辑出了问题.通过查阅资料,然后大量地调试,基本上解决了这个问题.整个系统功能上实现了常规地日期,时间以及温度地显示,以及对时间日期地调整.现场老师要求将温度加10℃显示,通过更改程序,将温度数据地十位加1即可实现要求.程序如下:void temp_to_str() //温度数据转换成液晶字符显示{TempBuffer[2]=(temp_value%100/10+ 1)+'0'。
微型计算机控制技术课程设计任务书

微型计算机控制技术课程设计任务书题目:两级微机温度控制系统的设计主要技术数据加热器(电热杯)功率:800W⨯2水温恒定值:85°C±5°C设计步骤一、总体方案设计;二、控制系统的建模和数字控制器设计三、硬件的设计和实现1.选择计算机机型(单片机和系统机);2.设计支持单片机工作的外围电路(EPROM、RAM、键盘、显示、通信端口等);3.选择主电路器件并设计主电路;4.完成单片机与系统机的通信;5.温度传感器的选择与安装;6.设计相关的保护电路;四、软件设计1.分配系统资源,编写系统初始化和主程序模块;2.编写数字调节器软件模块;*3.编写A/D转换器处理程序模块;*4.编写数字触发器或输出控制程序模块;*5.系统机的数据采集及显示模块。
五、编写课程设计说明书,绘制完整的系统电路图(A3幅面)。
课程设计说明书要求1.课程设计说明书应书写在学院统一印制的课程设计(论文)说明书上,书写应认真,字迹工整,论文格式参考国家正式出版的书籍和论文编排。
2.论理正确、逻辑性强、文理通顾、层次分明、表达确切,并提出自己的见解和观点。
3.课程设计说明书应有目录、摘要、序言、主干内容(按章节编写)、主要结论和参考书,附录应包括程序清单、系统方框图和电路原理图。
4.课程设计说明书应包括按上述设计步骤进行设计的分析和思考内容和引用的相关知识。
5.*部分可选项,不作要求。
6.程序清单可以提交电子文档,按以下方式提交。
电子邮件:主题中标明班级_学号_姓名,程序使用附件,文件名按班级_学号_姓名.txt排序。
微型计算机控制技术课设

微型计算机控制技术课设学⽣实验报告实验课名称:微型计算机控制技术实验项⽬名称:多路数据采集系统设计专业:电⽓⼯程及其⾃动化学号:姓名:⽬录⼀、实验⽬的⼆、实验原理1、TLC2543的基本原理2、SPI总线3、数字滤波三、硬件电路设计及proteus仿真四、程序设计⼀、实验⽬的1、掌握串⾏总线的使⽤⽅法。
2、学会利⽤串⾏总线实现单⽚机与外设之间的数据传送与接收。
3、掌握数字滤波的使⽤,并有⼀个深刻的认识。
4、将总线接⼝技术、数字滤波、⼈机交互接⼝技术、模拟量输⼊输出通道技术综合设计,多微机系统有⼀个⼤概的认识。
⼆、实验原理该多路数据采集系统是基于89C52和TLC2543⽽设计的,含有数字滤波(此处采⽤平均值滤波的数字滤波⽅式)的功能,⽤⼀⽚TLC2543实现5路模拟量的巡回检测,并通过液晶显⽰器12864显⽰最终处理之后经标度变换的数据采集量。
1、TCL2543的基本原理⼀)引⾔TLC2543是TI公司的12位串⾏模数转换器,使⽤开关电容逐次逼近技术完成A/D 转换过程。
由于是串⾏输⼊结构,能够节省51系列单⽚机I/O资源;且价格适中,分辨率较⾼,因此在仪器仪表中有较为⼴泛的应⽤。
⼆) TLC2543的特点(1)12位分辩率A/D转换器;(2)在⼯作温度范围内10µs转换时间;(3)11个模拟输⼊通道;(4)3路内置⾃测试⽅式;(5)采样率为66kbps;(6)(6)线性误差±1LSBmax;(7)(7)有转换结束输出EOC;(8)(8)具有单、双极性输出;(9)(9)可编程的MSB或LSB前导;(10)(10)可编程输出数据长度。
三)TLC2543的引脚排列及说明TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1。
图1 TLC2543的封装表1 TLC2543引脚说明2、SPI总线MOTOROLA公司的SPI总线的基本信号线为3根传输线,即SI、SO、SCK。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微型计算机控制技术课程设计----电阻加热炉温度控制学院:专业班级:姓名:学号:指导教师:目录一、摘要 (2)二、总体方案设计 (2)设计任务1、设计内容及要求 (2)2、工艺要求 (2)3、要求实现的系统基本功能 (3)4、对象分析 (3)5、系统功能设计 (3)三、硬件的设计和实现 (4)四、数字控制器的设计 (7)五、软件设计 (9)1、系统程序流程图 (9)2、程序清单 (11)六、完整的系统电路图 (21)七、系统调试 (21)八、设计总结 (21)九、参考文献 (22)一、摘要温度是工业对象中主要的被控参数之一。
特别是在冶金、化工、机械各类工业中,广泛使用各种加热炉、热处理炉、反应炉等。
由于炉子的种类不同,所采用的加热方法及燃料也不相同,如煤气、天然气等。
但就控制系统本身的动态特性而言,均属于一阶纯滞后环节,在控制算法上基本相同,可采用PID控制或其他纯滞后补偿算法。
为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度,节约能源,对加热用的各种电炉要求在一定条件下保持恒温,不能随电源电压波动或炉内物体而变化,或者有的电炉的炉温根据工艺要求按照某个指定的升温或保温规律而变化,等等。
因此,在工农业生产或科学实验中常常对温度不仅要不断地测量,而且要进行控制。
二、总体方案设计设计任务用一台计算机及相应的部件组成电阻炉炉温的自动控制系统,并使系统达到工艺要求的性能指标。
1、设计内容及要求电阻加热炉用于合金钢产品热力特性实验,电加热炉用电炉丝提供功率,使其在预定的时间内将炉内温度稳定到给定的温度值。
在本控制对象电阻加热炉功率为8KW,有220V交流电源供电,采用双向可控硅进行控制。
系统模型:2、工艺要求按照规定的曲线进行升温和降温,温度控制范围为50—350℃,升温和降温阶段的温度控制精度为+5℃,保温阶段温度控制精度为+2℃。
3、要求实现的系统基本功能微机自动调节:正常工况下,系统投入自动。
模拟手动操作:当系统发生异常,投入手动控制。
微机监控功能:显示当前被控量的设定值、实际值,控制量的输出值,参数报警时有灯光报警。
4、对象分析在本设计中,要求电阻炉炉内的温度,按照上图所示的规律变化,从室温开始到50℃为自由升温阶段,当温度一旦到达50℃,就进入系统调节,当温度到达350℃时进入保温段,要始终在系统控制下,一保证所需的炉内温度的精度。
加工结束,要进行降温控制。
保温段的时间为600—1800s。
过渡过程时间:即从开始控制到进入保温阶段的时间要小于600s。
在保温段当温度高于352℃或低于348℃时要报警,在升温和降温阶段也要进行控制,使炉内温度按照曲线的斜率升或降。
采用MCS—51单片机作为控制器,ADC0809模数转换芯片为模拟量输入,DAC0832数模转换芯片为模拟量输出,铂电阻为温度检测元件,运算放大器和可控硅作为功率放大,电阻炉为被控对象,组成电阻炉炉温控制系统,另外,系统还配有数字显示,以便显示和记录生产过程中的温度和输出值。
5、系统功能设计计算机定时对炉温进行测量和控制一次,炉内温度是由一铂电阻温度计来进行测量,其信号经放大送到模数转换芯片,换算成相应的数字量后,再送入计算机中进行判别和运算,得到应有的电功率数,经过数模转换芯片转换成模拟量信号,供给可控硅功率调节器进行调节,使其达到炉温变化曲线的要求。
三、硬件的设计和实现1、计算机机型:MCS—51 8031(不包含ROM、EPROM)系统总线:PC总线2、设计支持计算机工作的外围电路矩阵键盘技术:温度输出显示技术:LED静态显示接口技术,所谓静态显示,即CPU输出显示值后,由硬件保存输出值,保持显示结果.特点:占用机时少,显示可靠.但元件多,线路复杂、成本高,功耗大。
报警电路设计:正常运行时绿灯亮,在保温阶段炉内温度超出系统允差范围,就要进行报警。
报警时报警灯亮,电笛响,同时发送中断信号至CPU进行处理。
3、设计输入输出通道输入通道:因为所控的实际温度在50 ~ 350℃左右,即(350-50)=300所以选用8位A/D转换器,其分辨率约为1.5℃/字,再加放大器偏置措施实现。
(通过调整放大器的零点来实现偏置)这里采用一般中速芯片ADC0809。
ADC0809是带有8位A/D转换器,8路多路开关以及微型计算机兼容的控制逻辑的CMOS 组件,其转换方法为逐次逼近型。
8路的模拟开关由地址锁存器和译码器控制,可以在8个通道中任意访问一个通道的模拟信号。
输出通道:据其实际情况,D/A转换器的位数可低于A/D转换器的位数,因为一般控制系统对输出通道分辨率的要求比输入通道的低,所以这里采用常用的DAC0832芯片DAC0832是8位D/A转换器,与微处理器完全兼容。
期间采用先进的CMOS工艺,因此功耗低,输出漏电流误差较小。
因DAC0832电流输出型D/A转换芯片,为了取得电压输出,需在电流输出端接运算放大器,Rf为为运算放大器的反馈电阻端。
4、元器件的选择传感器的选择:铂铑10—铂热电偶,S型,正极性,量程0—1300C,使用温度小于等于600C,允差+1.5C。
执行元件的选择:电阻加热炉采用晶闸管(SCR)来做规律控制,结合电阻炉的具体要求,为了减少炉温的纹波,对输出通道采用较高的分辨率的方案,因此采用移相触发方式,并且由模拟触发器实现移相触发。
变送器的选择:因为系统要求有偏置,又需要对热电偶进行冷端补偿,所以采用常规的DDZ系列温度变送器。
控制元件:采用双向可控硅进行控制,其功能相当于两个单向可控硅反向连接,具有双向导通功能,其通断状态有控制极G决定。
在控制极加上脉冲可使其正向或反向导通。
四、数字控制器的设计1、控制算法:电阻加热炉温度控制系统框图:.整个闭环系统可用一个带纯滞后的一阶惯性环节来近似,所以其控制算法采用大林算法。
电阻加热炉温度控制系统模型为其广义的传递函数为:大林算法的设计目标是设计一个合适的数字控制器,使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节,即: 通常认为对象与一个零阶保持器相串联, 相对应的整个闭环系统的脉冲传递函数是:11788.2)(40+=-s es G s2、计算过程:连同零阶保持器在内的系统广义被控对象的传递函数]11788.21[)(40+-=--s eseZ z G sTs])1178(1[)1(8.2401+-=--s s Z zz T]11781781[)1(8.2401+--=--s s Z zzT]1111[)1(8.211781141---------=zezzz15945.01154.0---=zz系统闭环传递函数]11[)()()(+-==Φ--s eseZ z R z C z NTsTsτ111)1(-------=zeezTTN ττ数字控制器:)](1)[()()(z z G z z D Φ-Φ=)(])1(1[)1(111z G z ezeezN TTTN ------------=τττ51510110105154.0945.01])1(1[)1(-------------=zzze zeezτττ511933.0007.01)945.01(448.6------=zzz]933.0933.0933.0933.01)[1()945.01(448.6)(432111------++++--=zz zzzzz D消除振铃现象后的数字控制器:111)945.01(448.6)(----=zzz D111945.0297.1297.1)()()(---⨯-==zzz E z U z D将上式离散化:U (Z )—U (Z )Z —1=1.279E (Z )—1.226E (Z )Z —1U (K )—U (K —1)=1.279E (K )—1.226E (K —1) 最终得:U (K )=U (K —1)+1.279E (K )—1.226E (K —1)五、软件设计1、系统程序流程图a、系统主程序框图b、A/D转换子程序流程图c、LED显示流程图d、数字控制算法子程序流程图2、程序清单ORG 0000HAJMP MAINORG 0003HAJMP KEYSORG 000BHAJMP PIT0ORG 001BHAJMP PIT1 ;中断入口及优先级MAIN:MOV SP,#00HCLR 5FH :清上下限越限标志MOV A,#00HMOV R7,#09HMOV R0,#28HLP1:MOV @R0,AINC R0DJNZ R7,LP1MOV R7,#06HMOV R0,#39HLP2:MOV @R0,AINC R0DJNZ R7,LP2MOV R7,#06HMOV RO,#50HLP3:MOV @R0,AINC R0DINZ R7,LP3 ;清显示缓冲区MOV 33H,#00HMOV 34H,#00H ;赋KP高低字节MOV 35H,#00HMOV 36H,#00H ;赋KI高低字节MOV 37H,#00HMOV 38H,#00H ;赋KD高低字节MOV 42H,#00HMOV 43H,#00H ;赋K高低字节MOV TMOD,#56H ;T0方式2,T1方式1计数MOV TLO,#06HMOV THO,#06HMOV 25H,#163H ;设定值默认值350SETB TR0 ;键盘高优先级SETB ET0SETB EX0SETB EA;开键盘T0。
T1中断LOOP: MOV R0,#56HMOV R1,#55HLCALL SCACOV ;标度转化MOV R0,#53HLCALL DIRNOPLCALL DLY10MSNOPLCALL DLY10MSAJMP LOOP ;等中断键盘子程序KEYS: CLR EX0CLR EAPUSH PSWPUSH ACC ;关中断LCALL DLY10MS ;消抖CC: JB P3.2 AASETB 5DH ;置“显示设定值温度值标志”MOV A,25H ;取运算位的值MOV B,#10H ;BCD码转化DIV A BMOV 52H,AMOV A, BMOV 51H, AMOV R0,#50HLCALL DIR ;显示设定温度NOPLCALL DLY10MSNOPLCALL DLY10MSJB P1.7 ,BBMOV R1,#25HLCALL DAAD1NOPLCALL DLY10MSAJMP CCBB: JB P1.6 CCMOV R1,#25HLCALL DEEC1NOPLCALL DLY10MSAJMP CCAA: POP ACCPOP PSWSETB EA;出栈RETI显示子程序DIR: MOV SCON ,#00H ;置串行口移位寄存器状态SETB P1.4 ;开显示JB 5DH,DL1 ;显示设定温度DL2: MOV DPTR,#SEGTDL0: MOV A,@R0MOVC A,@A+DPTRMOV SBUF ,ALOOP1: JNB TI, LOOP1CLR TIINC R0MOV A,@R0MOVC A,@A+DPTRANL A, #7FH :使数带小数点MOV SBUF ,ALOOP2: JNB TI,LOOP2CLR TIINC R0MOV A,@R0MOVC A,@A+DPTRMOV SBUF,ALOOP3: JNB TI,LOOP3CLR TICLR P1.4CLR 5DHRETDL1: MOV 50H,#0AH ;小数位黑屏AJMP DL2SEGT: DB 0C0H ,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH 加一子程序DAAD1: MOV A,#00HORL A,@R1ADD A,#01HCJNE A,#30H,DAAD2 ;超过48度了吗?DAAD3: MOV @R1,ADAA: RETDAAD2: JC DAAD3MOV @R1,#15EH ;超过48则转回到355AJMP DAA减一子程序DEEC1: MOV A,@R1CJNE A,#15EH,DEEC2 ;低于355度了吗?DEEC3: MOV @R1,ADEE : RETDEEC2: JNC DEEC3MOV @R1,#30H ;低于355则转回到48AJMP DEET0中断子程序PTT0: CLR EAPUSH ACCPUSH PSWPUAH DPLPUSH DPHSETB EA;压栈后开中断响应键盘PPP: LCALL SMAP :采样数据LCALL FILTER ;数字滤波MOV A,2AH ;取采样值CJNE A,#07H,AAA;下限48比较AJMP BBBAAA: JC CCC ;小于48度转CJNE A,#0FEH ,DDD ;上限355比较AJMP BBB ;转至48~355正常范围处理DDD: JC BBBCLR P1.2 ;大于355黄灯亮SETB 5EHCLR P1.1 ;置标志启动风扇AJMP PPPCCC: CLR P1.3 ;小于48红灯亮SETB 5FHBBB: CLR P1.0 ;置标志启动电炉AJMP PPPSETB P1.0SETB P1.1SETB P1.2SETB P1.3CLR 5EHCLR 5FH ;50~350之间正常LCALL PIDJNB 20H,EEF ;设定温度小于实际值转到风扇MOV A,29HLCALL FFFCLR P1.0LOOP10: MOV R0,#56H ;存放相乘结果的首址MOV R1,#55H ;赋显示缓冲区最高位地址LCALL SCACOV ;标度转化MOV R0,#53H ;赋显示首址CLR DIRJB D5H,LOOP10 ;等待T1中断CLR EAPOP DPHPOP DPLPOP PSWSETB EAPOP ACCRETIEEE: MOV A,28H ;风扇处理LCALL FFFCLR P1.1AJMP LOOP10FFF: CRL A;根据PID结果计算T1初值INC AMOV TL1,AMOV TH1,#0FFHSETB PI1SETB TR1SETB ET1RET标度转化SCACOV :PROC NEARMOV DX,0MOV DA TA1,#258HMOV DA TA2,#708HMOV DA TA3,#960HPROC NEARMOV DX,0MOV AX,DA TAP ;取采样时间CMP AX,DA TA3 ;时间大于2400?JAE Q3DORCMP AX,DA TA2JAE Q3-Q2 ; 1800<时间<2400CMP AX,DA TA3JAE Q2-Q1 ; 600<时间<1800 Q0: MOV BX,0.8H ;<600S Q=50+t/2MUL BXADC DX,0JMP DONEQ2-Q1: MOV AX,#15EH ;Q=350Q3-Q2: SUB AX,DA TA2 ;Q=350-(t-1800)/2MOV BX,0.8HMUL BXMOV AX,#15EHSUB AX,BXMOV @R1,APP: RET采样子程序SWAP: M OV R0,#20HMOV R1,#03HSA W1: MOV DPTR,#7FF8HMOVX @DPTR A;A/D转化MOV R2,#20HDLY: DJNZ R2,DLY;延时HERE: JB P3.3 ,HEREMOV DPTR,#7FF8HMOVX A,@DPTR ;读转化结果MOV @R0,AINC R0DJNZ R1,SAM1RET数字滤波FILTER: MOV A, 20HCJNE A,2DH CMP1AJMP CMP2CMP1: JNC CMP2XCH A,2DHXCH A,2CHCMP2: MOV A,2DHCJNE A,22EH,CMP3MOV 2AH,AAJMP RRCMP3: JC CMP4MOV 2AH,AAJMP RRCMP4: MOV A,2EHCJNE A,2CH,CMP5MOV 2AH ,AAJMP RRCMP5: JC CMP6XCH A,2CHCMP6: MOV 2AH,ARR: RETT1中断PIT1: CLR 00HJB 20H, GGGSETB P1.0 ;关闭电炉GG: CLR PT1RETIGGG: SETB P1.1 ;关闭风扇CLR 20HAJMP GG延时10MS子程序DLY10MS: MOV R7,#0A0HDLOO: MOV R6,#0FFHDL11: DJNZ R6,DL11DJNZ R7,DL00RET数字PID算法子程序PID: MOV R5,#00HMOV R4,2DH ;取NX值MOV R3,#00HMOV R2,#32H ;取50LCALL CPL1LCALL DSUM ;求(NX-32H)值MOV R0,#5AH ;赋乘法算法运算暂存单元地址首址MOV R5,#05HMOV R4,#1CH ;赋参数LCALL MULT ;调无符号数乘法MOV 31H ,5BHMOV 32H ,5AH ;存放结果有效值MOV R5,31HMOV R4,32H ;取双字节UR(设定)MOV R3,2AHMOV R2,#00H ;取双字节实测值ACALL CPL1 ;取U(K)补码ACALL DSUM ;计算E(K)MOV 39H, R7MOV 3AH,R6 ;存E(K)MOV R5,35HMOV R4,36H ;取KI参数MOV R0,#4AHACALL MULT1 ;计算PI=KI*E(K)MOV R2,39HMOV R4,3AH ;取E(K)MOV R3,3BHMOV R2,3CH ;取E(K-1)MOV R5,33HMOV R4,34H ;取KP参数MOV R0,#46HACALL MULT1 ;KP*[ E(K)- E(K-1)]MOV R5,49HMOV R4,48HMOV R3,4DHMOV R2,4CHLCALL DSUM ;KP*[ E(K)- E(K-1)]+ KI*E(K)MOV 4AH, R7MOV 4BH,R6 ;保存上式之和MOV R5,39HMOV 3CH,3AH ;存E(K)到E(K-1)MOV A,31H ;取设定值CJNE A,2AH,AA2 ;比较设定值与实测值AA3: CLR 20H ;清电炉标志AA1: RETAA2 JNC AA3SETB 20H ; 清风扇标志位MOV R3,39HMOV R2,3AHLCALL CPL1MOV A,R3MOV R7,AMOV A,R2MOV R6,AMOV R5,42HMOV R4,43H ;取K1风扇标志MOV R0,#5AHACALL MULT1 ;计算P=K*E(K)且结果存在51H,50H单元中MOV 28H,5BH ;取8位有效值存在28H单元AJMP AADSUM: MOV A,R4 ;双字节加法子程序(R5R4)+(R3R2) (R7R6) ADD A,R2MOV R6,AMOV A,R5ADDC A,R3MOV R7,ARET双字节求补CPL1: MOV A,R2CPL AADD A,#01HMOV R2,AMOV A,R3CPL AADDC A,#00HMOV R3,ARET乘法被乘数R7R6乘数R5R4MULT1: MOV A,R7RLC AMOV 5CH,C ;被乘数符号C1 5CH位JNC POS1 ;为正数则转MOV A,R1 ;为负数求补CPL AADD A,#01HMOV R6,AMOV A,R7CPL AADDC A,#00HMOV R7,APOS1: MOV A,R5 ;取乘数RLC A;乘数符号C2 5DHMOV 5DH,CJNC POS2 ;为正数则转MOV A,R4CPL AADD A,#01HMOV R4,AMOV A,R5CPL AADDC A,#00HMOV R5,APOS2: ACALL MULTMOV C,5CHANL C,5DHJC TPL ;负负相乘转MOV C,5CHMOV C,5DHJNC TPL ; 正正相乘转DEC R0MOV A,@ROCPL AADD A,#01MOV @R0,AINC R0MOV A,@R0CPL AADDC A,#00HMOV @R0,ATPL: RETMULT: MOV A,R6MOV B,R4 ;取低位相乘MUL ABMOV @R0,AMOV R3,BMOV A,R4MOV B,R7MUL ABADD A,R3MOV R3,AMOV A,BADDC A,#00HMOV R2,AMOV A,R6MOV B,R5MUL ABADD A,R3INC R0MOV @R0,ACLR 5BHMOV A,R2ADDC A,BMOV R2,AJNC LASTSETB 5BH ;置进位标志LAST: MOV A,R7MOV B,R5MUL ABADD A,R2INC R0MOV @R0,A;存积MOV A,BADDC A,#00HMOV C,5BHADDC A,#00HINC R0MOV @R0,ARETEND六、完整的系统电路图七、系统调试在设计完成后进行调试,根据设计逻辑图制作好实验样机,就可以进入硬件调试,调试的主要任务是排除样机的故障,其中包括设计错误和工艺性故障,然后在进行软件的调试用微型机对MCS51系列单片机程序进行交叉汇编。