STM8S003F3
家用空调温度控制器的控制程序设计
《微机原理及接口技术》 课程设计说明书 课题:家用空调温度控制器的控制程序设计专业: 班级: 姓名: 学号: 指导老师:王亚林 2015年1月8 日
目录 第1章、设计任务与目标................................................................................ 错误!未定义书签。 设计课题:................................................................................................ 错误!未定义书签。 设计目的:................................................................................................ 错误!未定义书签。 设计任务:................................................................................................ 错误!未定义书签。 基本设计要求:............................................................................................................. 错误!未定义书签。 第2章、总体设计规划与方案论证 (6) 设计环节及进程安排 (6) 方案论证 (5) 第3章、总体软件设计说明及总流程图 (10) 总体软件设计说明 (10) 总流程图 (11) 第4章、系统资源分配说明 (13) 系统资源分配 (13) 系统内部单元分配表 (13) 硬件资源分配 (15) 数据定义说明 (16) 部分数据定义说明 (16) 第5章、局部程序设计说明 (17) 总初始化以及自检 主流程 按键音模块 (17) .2 单按键消抖模块 (17) PB按键功能模块 (18) 基本界面拆字模块 (19) 4*4矩阵键盘模块 (19) 模式显示模块 (20) 显示更新模块 (21) 室内温度AD转换模块 (21) 4*4矩阵键盘扫描子程序 (21) 整点报时模块 (23) 空调进程判断及显示模块 (23) 三分钟压缩机保护模块 (23) 风向摆动模块 (24) 驱动控制模块 (24) 定时开关机模块 (25) 第6章、系统功能与用户操作使用说明 (26)
ISO9001-2015车间温湿度控制程序A0
车间温湿度控制程序 (ISO9001:2015) 1.温湿度管理概述 要做好组装、测试间温湿度管理工作,首先要学习和掌握空气温湿度的基本概念以及有关的基本知识。 (1)空气温度 空气温度是指空气的冷热程度。 一般而言,距地面越近气温越高,距地面越远气温越低。 在日常温度管理中,多用摄氏表示,凡0度以下度数,在度数前加一个“-”,即表示零下多少摄氏度。 (2)空气湿度 空气湿度,是指空气中水汽含量的多少或空气干湿的程度。 表示空气湿度,主要有以下几种方法: ①绝对湿度 绝对湿度,是指单位容积的空气里实际所含的水汽量,一般以克为单位。 温度对绝对湿度有着直接影响。一般情况下,温度越高,水汽蒸发得越多,绝对湿度就越大;相反,绝对湿度就小。 ②饱和湿度 饱和湿度,是表示在一定温度下,单位容积空气中所能容纳的水汽量的最大限度。如果超过这个限度,多余的水蒸气就会凝结,变成水滴。些时的空气湿度便称为饱和湿度。 空气的饱湿度不是固定不变的,它随着温度的变化而变化。温度越高,单
位容积空气中能容纳的水蒸气就越多,饱和湿度也就越大。 ③相对湿度 相对温度是指空气中实际含有的水蒸气量(绝对湿度)距离饱和状态(饱和湿度)程度的百分比。即,在一定温度下,绝对湿度占饱和湿度的百分比数。相对湿度用百分率来表示。公工为: 相对温度=绝对湿度/饱和湿度×100% 绝对温度=饱和温度×相对温度 相对湿度越大,表示空气越潮湿;相对湿度越小,表示空气越干燥。 空气的绝对湿度、饱和温度、相对湿度与温度之间有着相应的关系。温度如发生了变化,则各种湿度也随之发生变化。 ④露点 露点,是指含有一定量水蒸气(绝对湿度)的空气,当温度下降到一定程度时所含的水蒸气就会达到饱和状态(饱和湿度)并开始液化成水,这种现象叫做结露。水蒸气开始液化成水时的温度叫做“露点温度”,简称“露点”。如果温度继续下降到露点以下,空气中超饱和的水蒸气,就会在商品或其他物料的表面上凝结成水滴,此现象称为“水池”,俗称商品“出汗”。此外,风与空气中的温湿度有密切关系,也是影响空气温湿度变化的重要因素之一。 2.内外温湿度的变化 从气温变化的规律分析,一般在夏季降低车间内温度的适宜时间是夜间10点钟以后~次日晨6点钟。当然,降温还要考虑到商品特性、车间条件、气候等因素的影响。
温度的PID控制及程序示例
温度的PID 控制 一.温度检测部分首先要OK. 二、PID 调节作用 PID 控制时域的公式 ))()(1)(()(?++ =dt t de Td t e Ti t e Kp t y 分解开来: (1) 比例调节器 y(t) = Kp * e(t) e(k) 为当前的温差(设定值与检测值的插值) y(k) 为当前输出的控制信号(需要转化为PWM 形式) # 输出与输入偏差成正比。只要偏差出现,就能及时地产生与之成比例的调节 作用,使被控量朝着减小偏差的方向变化,具有调节及时的特点。但是, Kp 过大会导致动态品质变坏,甚至使系统不稳定。比例调节器的特性曲线. (2) 积分调节器 y(t) = Ki * ∫(e(t))dt Ki = Kp/Ti Ti 为积分时间 #TI 是积分时间常数,它表示积分速度的大小,Ti 越大,积分速度越慢,积分作用越弱。只要偏差不为零就会产生对应的控制量并依此影响被控量。增大Ti 会减小积分作用,即减慢消除静差的过程,减小超调,提高稳定性。 (3) 微分调节器 y(t) = Kd*d(e(t))/dt Kd = Kp*Td Td 为微分时间 #微分分量对偏差的任何变化都会产生控制作用,以调整系统输出,阻止偏差变化。偏差变化越快,则产生的阻止作用越大。从分析看出,微分作用的特点是:加入微分调节将有助于减小超调量,克服震荡,使系统趋于稳定。他加快了系统的动作速度,减小调整的时间,从而改善了系统的动态性能。 三.PID 算法: 由时域的公式离散化后可得如下公式:
y(k) = y(k-1)+(Kp+Ki+Kd)*e(k)-(Kp +2*Kd)*e(k-1) + Kd*e(k-2) y(k) 为当前输出的控制信号(需要转化为PWM形式) y(k-1)为前一次输出的控制信号 e(k) 为当前的温差(设定值与检测值的插值) e(k-1) 为一次前的温差 e(k-2) 为二次前的温差 Kp 为比例系数 Ki = Kp*T/Ti T为采样周期 Kd = Kp*Td/T 四.PID参数整定(确定Kp,Ts,Ti,Td): 温度控制适合衰减曲线法,需要根据多次采样的数据画出响应曲线。 所以需要通过串口将采样时间t, 输出y(t)记录下来,方便分析。 1)、不加入算法,系统全速加热,从常温加热到较高的温度的时间为Tk, 则采样时间一般设为 T = Tk/10。 2)、置调节器积分时间TI=∞,微分时间TD=0,即只加比例算法: y(k) = y(k-1)+Kp*e(k) 比例带δ置于较大的值。将系统投入运行。(δ = 1/Kp) 3)、待系统工作稳定后,对设定值作阶跃扰动,然后观察系统的响应。若响应振荡衰减太快,就减小比例带;反之,则增大比例带。如此反复,直到出现如图所示的衰减比为4:1的振荡过程时,记录此时的δ值(设为δS),以及TS 的值(如图中所示)。当采用衰减比为10:1振荡过程时,应用上升时间Tr替代 振荡周期TS计算。 系统衰减振荡曲线 图中,TS为衰减振荡周期,Tr为响应上升时间。 据表中所给的经验公式计算δ、TI及TD的参数。
简单温度控制完整程序
简单温度控制完整程序
#include #include #define uchar unsigned char #define uint unsigned int sbit rs = P3^4 ; sbit rw = P3^5 ; sbit ep = P3^7 ; unsigned int set1=30,set2=10; unsigned char flag=0; sbit DQ =P1^7; //定义通信端口 sbit fengmingqi=P1^1; sbit jidianqi=P1^5; code uchar mayuan[]={'0','1','2','3','4','5','6','7','8','9'}; code uchar aa[]={"wendu is:"}; code uchar bb[]={"sheding :"};
typedef bit BOOL ; unsigned char k,dat_wr[8],dat_rd[8]; void putchar(uchar weizhi,uchar da); void delay(uchar); void lcd_wcmd(uchar); BOOL lcd_bz(); void lcd_pos(uchar) ; void lcd_wdat(uchar) ; void display(uchar,uchar *) ; void lcd_init(); void longdelay(uchar s); void keyscan(void); BOOL lcd_bz() { // 测试LCD忙碌状态 BOOL result ; rs = 0 ; rw = 1 ; ep = 1 ;
温度控制系统
目录 第一章设计背景及设计意义 (2) 第二章系统方案设计 (3) 第三章硬件 (5) 3.1 温度检测和变送器 (5) 3.2 温度控制电路 (6) 3.3 A/D转换电路 (7) 3.4 报警电路 (8) 3.5 看门狗电路 (8) 3.6 显示电路 (10) 3.7 电源电路 (12) 第四章软件设计 (14) 4.1软件实现方法 (14) 4.2总体程序流程图 (15) 4.3程序清单 (19) 第五章设计感想 (29) 第六章参考文献 (30) 第七章附录 (31) 7.1硬件清单 (31) 7.2硬件布线图 (31)
第一章设计背景及研究意义 机械制造行业中,用于金属热处理的加热炉,需要消耗大量的电能,而且温度控制是纯滞后的一阶惯性环节。现有企业多采用常规仪表加接触器的断续控制,随着科技进步和生产的发展,这类设备对温度的控制要求越来越高,除控温精度外,对温度上升速度及下降速度也提出了可控要求,显而易见常规控制难于满足这些工艺要求。随着微电子技术及电力电子技术的发展,采用功能强、体积小、价格低的智能化温度控制装置控制加热炉已成为现实。 自动控制系统在各个领域尤其是工业领域中有着及其广泛的应用,温度控制是控制系统中最为常见的控制类型之一。随着单片机技术的飞速发展,通过单片机对被控对象进行控制日益成为今后自动控制领域的一个重要发展方向。在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。对工件的处理温度要求严格控制,计算机温度控制系统使温度控制指标得到了大幅度提高。采用MCS-51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。 ,
基于单片机的温度控制器附程序代码
生产实习报告书 报告名称基于单片机的温度控制系统设计姓名 学号0138、0140、0141 院、系、部计算机与通信工程学院 专业信息工程10-01 指导教师 2013年 9 月 1日
目录 1.引言.................................. 错误!未定义书签。 2.设计要求.............................. 错误!未定义书签。 3.设计思路.............................. 错误!未定义书签。 4.方案论证.............................. 错误!未定义书签。方案一................................................. 错误!未定义书签。方案二................................................. 错误!未定义书签。 5.工作原理.............................. 错误!未定义书签。 6.硬件设计.............................. 错误!未定义书签。单片机模块............................................. 错误!未定义书签。 数字温度传感器模块 .................................... 错误!未定义书签。 DS18B20性能......................................... 错误!未定义书签。 DS18B20外形及引脚说明............................... 错误!未定义书签。 DS18B20接线原理图................................... 错误!未定义书签。按键模块............................................... 错误!未定义书签。声光报警模块........................................... 错误!未定义书签。数码管显示模块......................................... 错误!未定义书签。 7.程序设计.............................. 错误!未定义书签。主程序模块............................................. 错误!未定义书签。 读温度值模块.......................................... 错误!未定义书签。 读温度值模块流程图: ................................. 错误!未定义书签。
温度PID控制实验
温度PID 控制实验 一、实验目的 1.加深对PID 控制理论的理解; 2.认识Labview 虚拟仪器在测控电路的应用; 3.掌握时间比例P、积分I、微分D 对测控过程连续测控的影响以及提高测控系统的精度; 4.通过实验,改变P、I、D 参数,观察对整个温度测控系统的影响; 5.认识固态继电器和温度变送器,了解其工作原理。 二、预习要点 1.PID 控制理论与传递函数。请学生在0-100 的范围里,自己选择较好的KP,KI,KD 值,用该控制参数进行后续实验; 2.了解A/D、D/A 转换原理; 3.Labview 虚拟仪器图形软件(本实验指导书附录中对使用环境详细介绍)。 三、实验原理 温度是通过固态继电器的导通关断来实现加热的,控制周期即是一个加热和 冷却周期,PID 调节的实现也是通过这个周期实现的,在远离温度预设值的时固 态继电器在温度控制周期中持续加热(假设导通时间是T),在接近温度预设值 时通过PID 得到的值来控制这一周期内固态继电器的开关时间(假设导通时间是 1/2T)维持温度(假设导通时间是1/4T)。如图1 所示: 图1 加热周期控制示意图 8 四、实验项目 1.用PID 控制水箱温度; 2.用控制效果对比完成数据对比操作,选出最佳值。 五、实验仪器 ZCK-II 型智能化测控系统。 六、实验步骤及操作说明 1.打开仪器面板上的总电源开关,绿色指示灯亮起表示系统正常;
2.打开仪器面板上的液位电源开关,绿色指示灯亮起表示系统正常; 3,确保贮水箱内有足够的水,参照图2 中阀门位置设置阀门开关,将阀门1、3、5、6 打开,阀门2、4 关闭; 图2 水箱及管道系统图 4.参看变频器操作说明书将其设置在手动操作挡; 5.单击控制器RUN 按钮,向加热水箱注水,直到水位接近加热水箱顶部,完 全 淹没加热器后单击STOP 按钮结束注水; 6.关闭仪器面板上的液位电源开关,红色指示灯亮起表示系统关闭; 7.打开仪器面板上的加热电源开关,绿色指示灯亮起表示系统正常; 8.打开计算机,启动ZCK-II 型智能化测控系统主程序; 9.用鼠标单击温度控制动画图形进入温度控制系统主界面,小组实验无须在个 人信息输入框填写身份,直接确定即可; 10.在温度系统控制主界面中,单击采集卡测试图标,进入数据采集卡测试程序。 请在该选项中确定选择设备号为端口1,因为我们接入数据采集卡的端口是1 号 9 端口,其他数据端口留做其他方面使用的,所以切记不能选错,否则程序会报 错 并强制关闭。选择采集通道时请选择0 号通道即温度传感器占用的通道。控制上、 下限选项是为设置报警电路所预设的,在本实验中暂未起用该功能,感兴趣的 同 学可以试着完善它,本实验报警数值是+1V 以下和+5V 以上,这里只做了解即可。 采样点数(单位:个)、采样速率(单位:个/秒)和控制周期(单位:毫秒) 请 参照帮助显示区进行操作,一切设置确认无误后即可单击启动程序图标,观察 温 度和电压的变化,也可以单击冷却中左边的开关按钮进入加热程序,观察温度 上 升曲线及电流表和电压表变化,确认传感器正常工作后点击程序结束,等待返 回 主界面图标出现即可返回温度控制主界面进入下一步实验。 11.在温度系统控制主界面中,单击传感器标定图标,进入传感器标定程序。 本 程序界面和数据采集卡测试程序界面基本相同,操作请参照步骤10 进行,一切 设置确认无误后即可单击启动程序图标,观察温度和电压的变化,同时用温度
可设定上下限温控程序
/*---------------------------------------------------------------- 段P0,位P2。接线从低端开始,段a--h对应P0.0--P0.7.位1,2...对应 P2.0--P2.7 ------------------------------------------------------------------*/ //单片机:89CS52 //晶振:12MH #include #include "DS18B20.h" #define schar signed char #define uint unsigned int #define uchar unsigned char //宏定义 sbit SET=P3^1; //定义调整键 sbit DEC=P3^2; //定义减少键 sbit ADD=P3^3; //定义增加键 sbit jiawen=P3^6; //定义加温 bit shanshuo_st; //闪烁间隔标志 bit beep_st; //加温间隔标志 uchar x=0; //计数器 schar m,PD; //温度值全局变量 uchar n; //温度值全局变量 uchar set_st=0; //状态标志 schar shangxian=50; //上限报警温度,默认值为50 schar xiaxian=25; //下限报警温度,默认值为25 uchar code LEDData[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90}; //共阳码code LEDData1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //共阳码/*****延时子程序*****/ void Delay(uint num) { while( --num ); } /*****初始化定时器0*****/ void InitTimer() { TMOD=0x1; TH0=0x3c; TL0=0xb0; //50ms(晶振12M) } /*****定时器0 中断服务程序*****/ void timer0(void) interrupt 1 {
PID温度控制的PLC程序设计
PID温度控制的PLC程序设计 温度控制是许多机器的重要的构成部分。它的功能是将温度控制在所需要的温度范围内,然后进行工件的加工与处理。PID控制系统是得到广泛应用的控制方法之一。在本文中,将详细讲叙本套系统。 l 系统组成 本套系统采用Omron的PLC与其温控单元以及Pro-face的触摸屏所组成。系统包括CQM1H-51、扩展单元TC-101、GP577R以及探温器、加热/制冷单元。 l 触摸屏画面部分(见图1-a) 1-a 如图所见,数据监控栏内所显示的002代表现在的温度,而102表示输出的温度。如按下开始设置就可设置参数。需要设置的参数有六个,分别是比例带、积分时间、微分时间、滞后值、控制周期、偏移量。它们在PLC的地址与一些开关的地址如下所列。 比例带: DM51 积分时间: DM52 微分时间: DM53 滞后值: DM54 控制周期: DM55 偏移量: DM56 数据刷新: 22905 l PLC程序部分 002:PID的输入字 102:PID的输出字 [NETWORK] Name="Action Check" //常规检查 [STA TEMENTLIST] LD 253.13 //常ON OUT TR0 CMP 002 #FFFF //确定温控单元是否完成初始化 AND NOT 255.06 //等于 OUT 041.15 //初始化完成 LD TR0 AND 041.15 OUT TR1 AND NOT 040.10 //不在参数设置状态 MOV DM0050 102 //将设置温度DM50传送给PID输出字 LD TR1 MOV 002 DM0057 //将002传送到DM57 [NETWORK] Name="Setting Start"//设置开始 [STA TEMENTLIST] LD 253.13 OUT TR0 AND 229.05 //触摸屏上的开始设置开关
pid温控c程序算法
#include #include #include #include struct PID { unsigned int SetPoint; // 设定目标Desired Value unsigned int Proportion; // 比例常数Proportional Const unsigned int Integral; // 积分常数Integral Const unsigned int Derivative; // 微分常数Derivative Const unsigned int LastError; // Error[-1] unsigned int PrevError; // Error[-2] unsigned int SumError; // Sums of Errors }; struct PID spid; // PID Control Structure unsigned int rout; // PID Response (Output) unsigned int rin; // PID Feedback (Input) sbit data1=P1^0; sbit clk=P1^1; sbit plus=P2^0; sbit subs=P2^1; sbit stop=P2^2; sbit output=P3^4; sbit DQ=P3^3; unsigned char flag,flag_1=0; unsigned char high_time,low_time,count=0;//占空比调节参数unsigned char set_temper=35; unsigned char temper; unsigned char i; unsigned char j=0; unsigned int s; /*********************************************************** 延时子程序,延时时间以12M晶振为准,延时时间为30us×time ***********************************************************/ void delay(unsigned char time) { unsigned char m,n; for(n=0;n