




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
控制技术课程设计关于锅炉温度控制的系统设计该设计以单片机为控制器,对显示电路,温度检测电路,人机接口电路,键盘电路,报警电路,执行电路等主要电路进行具体设计,以实现锅炉水温的控制。所选硬件:51单片机、热电阻pt100、78m系列三端集成稳压器、控制系统原理框图pt100温度信号处理a/d转换键盘电路51单片机显示和报警电路加热机构pwm控制ssrssr工作指示 图 1 控制系统原理框图系统电源选择:主控电路所需的+5v电源;外围电路(如继电器、运算放大器)所需的+12v和-12v电源,这里考虑实际性价比、体积等因素后,选用了78m12、79m12、78m05三端稳压器提供相应的稳定电压。采用单片机最小系统原理51单片机的最小系统由单片机芯片、电源、时钟电路、和复位电路组成。晶振时钟电路用来产生时钟信号,以提供单片机片内各种数字逻辑电路工作的时间基准。按键s6_1能实现手动复位,电容c6_1能实现上电复位,复位电路用来使片内电路完成初始化的操作,具体功能是使程序计数器pc=0000h,引导程序从0000h地址单元开始执行; sfr中的21个特殊功能寄存器复位后的状态是确定。 图2 单片机最小系统原理图温度信号测量电路如下图,温度信号测量处理电路,利用热电阻pt100作为温度传感器件,然后通过运算放大器op-07构建差分放大电路将温度信号转换成adc0809模拟通道的输入标准电压信号。将pt100接入到电桥中,如图6 温度测量信号处理电路所示,由pt100的阻值来反映锅炉的温度的变化,电桥输出电压为:uba=vccr1_4/( r1_2+r1_4)- r1_3/( r1_1+r1_3) (其中下桥臂r1_3=100,r1_4=1k,上桥臂r1_2=1k,vcc=5v),所以uba=5*1k/( 1k+1k)- r1_3/( r1_1+100)=2.5-5* 100/( r1_1+100)其中ar1作用是将电桥电位vb、va作差分比例放大作用,由差分比例运算放大电路的计算方式:auf = uo1/(u1_ - u1+)=- r1_8/r1_6(其中r1_8=100k,r1_6=10k,u1_ - u1+=-uba)从而得到:uo1=10uba=25-50* 100/( r1_1+100)。图 3 温度测量信号处理电路查资料可得pt100铂电阻的电阻-温度关系线性度非常好,电阻-温度的关系可以近似确实测量上限温度,uo1=25-50* 100/( r1_1+100),当uo1=5v时,可以计算出测量上限温度时对应的电阻为:150欧姆,查pt100的分度表,可得:测量上限温度为131,即当t=0时,可得uo1=0v;当t=131时,可得uo1=5v。a/d转换单元 经过温度信号测量处理电路后所得到的05v电压模拟信号要经过a/d转换后才能送给单片机,如下温度信号ad转换电路图所示,电压模拟信号输入给in-0通道,转换完成后,输送给单片机的p0口。图 4 温度信号ad转换电路图其中adc0809的a、b、c三个端口作为它in0-in8八个输入通道的选择信号,由于此处只用到了in0通道,所以将此a、b、c三个端口全部接地,电路中adc0809的转换结束信号引脚eoc接在单片机p3.5上,单片机启动adc0809的转换后,延时一段时间,然后程序采取扫描方式检测adc0809是否转换结束,单片机然后去检测p3.5电平,当接收到一个高电平时,发出一个read信号,使得adc0809输出锁存缓冲器开放,将数据输送到数据线上,从而完成温度数字信号的采集过程。该控制系统的输出模块该控制系统的输出单元主要有三个:(1) 继电器输出控制加热执行机构的开与关。(2)当水温高于上限温度和低于下限温度时,系统进行声光报警。(3)数码管用于显示用户设定的温度、上限温度、下限温度和当前温度值。继电器输出加热执行机构的开与关状态由固态继电器来控制,如下图所示。图 5 固态继电器输出电路当系统采集到温度信号后与设定温度进行比较得到一个偏差,然后通过pid运算,从单片机p1.0口输出一个pwm波,pwm波形的高电平期间,固态继电器ssr输入端in1为高电平,从而out1和out2两触点闭合,将加热执行机构加热丝连入到交流220v回路中,控制加热机构对锅炉进行加热动作,与此同时工作指示灯led点亮。pwm波形低电平期间,ssr输入端in1为低电平,从而out1和out2两触点断开,将加热执行机构加热丝从220v回路中切断,控制加热机构对锅炉停止加热,与此同时工作指示灯led点熄灭。关于选用固态继电器ssr由于本系统加热执行机构的开与关状态交替比较频繁,一般的机械式继电器在这种工作模式下使用寿命大大降低,所以难以满足这一要求,考虑各种因素选用固态继电器ssr。与一般机械式继电器相比,固态继电器有如下优点: 高寿命,高可靠、 灵敏度高,控制功率小,电磁兼容性好: 快速转换 、电磁干扰小声光报警电路如声光报警电路图所示, 声光报警电路所示:当水温高于上限温度、低于下限温度或者在误输入时,单片机p1.1口给warn一个低电平信号来导通三极管8550以驱动蜂鸣器和led灯,进行系统声光报警。当温度恢复到设置范围内后,声光报警自动撤销。图 6 声光报警电路显示电路用于显示用户设定的温度、上限温度、下限温度和当前温度值等,精确到小数点后一位。如下图所示,单片机的p2口输出段选编码,p3.0、p3.1、p3.2、p3.3分别为四位数码管的位选编码。当其中位选编码输出低电平时,三极管8550导通,使得共阳极数码管公共端得到一个高电平,同时p2口输出相应的要显示的数字共阳极字型码并通过74hc573将段码信号锁存输出。图 7 温度数码管显示3.6 键盘电路键盘是用来给用户提供设置设定温度上限值、下限值、显示温度等功能。如下图,功能键:选择修改温度设定值、上限值、下限值、显示温度位选键:选择修改百位、十位、个位、十分位这四位的标志加1键:每按一次键,位选标志所指的当前位的值加1减1键:每按一次键,位选标志所指的当前位的值减1确定键:保存设置值并返回到显示温度状态图 8 键盘电路及功能说明当按键没有被按下时,p1.3-p1.7通过下拉电阻接地,单片机此时检测的电平是低电平,当有键按下时,对应p1.3-p1.7中的引脚与vcc接通,单片机此时检测的电平是高电平。 锅炉温度控制系统软件设计主程序流程图及分析在锅炉温度控制系统中,主程序的功能主要是实现初始化,温度采集a/d转换,温度值 开始系统初始化采集温度信号,ad转换显示温度值,经pid运算输出pwm控制ssr 是否满足报警条件? n启动声光报警 yn 是否有按键? y 修改设定值修改上限值值修改下限值值显示、保存设定值图 9 主程序流程图温度值显示,将实际温度与设定值进行比较进行pid运算,输出pwm波形控制ssr并判断是否要启动报警,反复对键盘进行扫描从而更新温度参数设置、显示。图18是系统分配装置的主程序流程图。 子程序流程图及分析本系统子程序主要有:数码管显示程序、ad转换程序、键盘扫描程序、pid控制算法子程序。 开始提取要显示的百、十、个、十分位的数值依次向数码管传送段码和位码延时显示下一位n 四位是否全部显示?y结束图 10 数码管显示程序操作流程图结束读入数据发送ad启动信号 开始n 转换是 否完成? y图 11 a/d转换程序操作流程图延时10-20msn 是否有按键? yn 是否有按键?y获键值,键处理n 按键已释放?y图 12 按键检测与处理流程图提取设定值r(k)和返回值y(k)设置各参数kp、ti、td和t计算e(k)=kpe(k)-y(k)计算计算kde(k)e(k)-e(k-1)+aae(k)-e(k-1)e(k)e(k-1) 开始 返回图 13 pid控制算法程序流程图单片机温度控制程序程序:lcd2402.asm 01 ; 02 ; 温度值存放单元 03 temp_zh equ 24h ;实时温度值存放单元 04 templ equ 25h ;低温度值存放单元 05 temph equ 26h ;高温度值存放单元06 temp_th equ 27h ;高温报警值存放单元 07 temp_tl equ 28h ;低温报警值存放单元08 temphc equ 29h ;存十位数 bcd 码 09 templc equ 2ah ;存个位数 bcd 码 10 ; 11 按键输入引脚定义 12 k1 equ p2.1 13 k2 equ p2.2 14 k3 equ p2.3 15 k4 equ p2.4 16 ; 17 spk equ p3.4 ;蜂鸣器引脚 18 relay equ p2.0 ;继电器引脚 19 x equ 2fh ;lcd 地址变量 20 ; 21 ;lcd 控制引脚 22 rs equ p3.5 23 rw equ p3.6 24 e equ p3.7 25 ; 26 flag equ 20h.0 ;ds18b20 是否存在标记 27 key_ud equ 20h.1 ;设定 key 的 up 与 down 标记 28 dq equ p2.5 29 30 ; 主程序 31 32 main: 33 acall set_lcd ;lcd 初始化设置子程序 34 acall wr_thl ;将报警上下线写入暂存寄存器子程序 35 toop: acall reset_1820 ;调用 18b20 复位子程序 36 jnb flag,toop1 ;ds1820 不存在转移 toop1 处 37 acall meu_ok ;调用显示ok信息子程序 38 acall re_thl ;把 eerom 里温度报警值拷贝回暂存器 39 acall temp_bj ;显示温度标记 40 jmp toop2 41 toop1: acall meu_error ;显示error信息 42 acall temp_bj ;显示温度标记 43 jmp $ ;等待 44 ; 45 toop2: 46 acall re_temp ;调用读取温度数据子程序 47 acall set_data ;调用处理显示温度数据子程序 48 acall temp_comp ;实际温度值与标记温度值比较子程序 49 acall p_key ;调用按键扫描子程序 50 sjmp toop2 ;循环51 52 ; 读取温度数据子程序 53 re_temp: 54 acall reset_1820 ;18b20 复位子程序 55 jnb flag,toop1 ;ds1820 不存在 56 mov a,#0cch ;跳过 rom 匹配 57 acall write_1820 ;写入子程序 58 mov a,#44h ;发出温度转换命令 59 acall write_1820 ;调写入子程序 60 acall reset_1820 ;调复位子程序 61 mov a,#0cch ;跳过 rom 匹配 62 acall write_1820 ;写入子程序 63 mov a,#0beh ;发出读温度命令 64 acall write_1820 ;写入子程序 65 acall read_1820 ;调用读取子程序 66 ret 67 68 ; 温度数据处理显示子程序 69 set_data: 70 acall conv_temp ;处理温度 bcd 码子程序 71 acall disp_bcd ;显示区 bcd 码温度值刷新子程序 72 acall conv ;lcd 显示子程序 73 ret 74 75; 按键键扫描子程序 76 p_key: ;按键 k1 处理 77 jb k1, pk1 ;k1 键未按,转到 pk1 处 78 acall spk_bz ;k1 键按下,一声鸣响79 jnb k1,$ ;等按键放开 80 mov dptr,#m_alax1 ;存 m_alax1 表 81 mov a,#1 82 acall lcd_print ;显示字符 83 acall look_alarm ;显示信息区子程序 84 jb k3, $ ;等待 k3 按下 85 acall spk_bz ;一声鸣响 86 jmp pk2 ;转到标号 pk2 处 87 pk1: ; 按键 k2 处理 88 jb k2, pk3 ;k2 键未按,转到 pk3 处 89 acall spk_bz ;k2 键按下,一声鸣响 90 jnb k2,$ ;等按键放开91 mov dptr, #ta1 ;存#ta1 表 92 mov a,#1 93 acall lcd_print ;显示字符 94 acall set_alarm ;设定报警值 th、tl 95 acall wr_thl ;将设定的 th,tl 值写入 ds18b20 内 96 acall write_e2 ;调用报警值拷贝 eerom 子程序 97 pk2: 98 acall meu_ok ;显示ok信息子程序 99 acall temp_bj ;显示温度标记子程序 100 pk3:101 ret 102 ; 103 ta1: ;菜单表 104 db reset alert code 105 ; 106 107 ; 设定报警值 th、tl 子程序 108 set_alarm: 109 acall look_alarm ;调用显示信息区子程序 110 a0: jb k1,a2 ;按下 k1(查看键),程序向下运行 111 acall spk_bz ;蜂鸣器响一声 112 jnb k1,$ ;等放开 113 cpl 20h.1 ;up/down 标记反向 114 a2: jb 20h.1,a3 ;20h.1=1,up,转移到 a3。 115 jmp a8 ;20h.1=0,down,转移到 a8 116 ; 117 ; th 值调整(增加) 118 a3: jb k2, a5 ;按下 k2(设定键),程序向下运行 119 acall spk_bz ;蜂鸣器响一声 120 inc temp_th ;th 值调整(增加) 121 mov a,temp_th ;th 值送入 a 122 cjne a,#120,a4 ;th 值增到 120,程序向下运行 123 mov temp_th,#0 ;th 值清 0 124 a4: acall look_alarm ;调用显示信息区子程序 125 mov r5, #10 126 acall delay ;调用延时程序 127 jmp a3 ;循环 128 ; 129 ;tl 值调整(增加) 130 a5: jb k3,a7 ;按下 k3(tl 值设定键)程序向下运行 131 acall spk_bz ;蜂鸣器响一声 132 inc temp_tl ;tl 值增加 1 133 mov a, temp_tl ;tl 值送入 a 134 cjne a,#99,a6 ;比较,若 a=99,程序向下运行 135 mov temp_tl,#00h ;tl 值清 0 136 a6: acall look_alarm ;调用显示信息区子程序 137 mov r5, #10 138 acall delay ;调用延时程序 139 jmp a5 ;程序转移到 a5,循环 140 ; 141 ;确定调整 ok 142 a7: jb k4, a0 ;按下 k4(调整确定键),程序向下运行 143 acall spk_bz ;蜂鸣器响一声 144 jnb k4, $ ;等放开 145 ret ;程序返回 146 ; 147 ;th 值调整 (减少) 148 a8: jb k2, a10 ;按下 k2(设定键),程序向下运行 149 acall spk_bz ;蜂鸣器响一声 150 dec temp_th ;th 值减 1 151 mov a,temp_th ;th 值送入 a 152 cjne a,#0ffh,a9 ;比较,若 a=0ff,程序向下运行 153 jmp a12 ;转移到 a12 154 a9: acall look_alarm ;调用显示信息区子程序 155 mov r5, #10 156 acall delay ;调用延时子程序 157 jmp a0 ;转移到 a12 158 ; 159 ;tl 值调整(减少) 160 a10: jb k3, a13 ;按 k3(tl 值设定键),程序向下运行 161 acall spk_bz ;蜂鸣器响一声 162 dec temp_tl ;tl 值减 1 163 mov a,temp_tl ;th 值送入 a 164 cjne a,#0ffh,a11 ;比较,若 a=0ff,程序向下运行 165 jmp a12 ;转移到 a12 166 a11: acall look_alarm ;调用显示信息区子程序 167 mov r5, #10 168 acall delay ;调用延时子程序 169 jmp a0 ;转移到 a0 170 a12: cpl 20h.1 ;up/down 标记反向 171 jmp a3 ;转移到 a3 ,th 值调整(增加) 172 a13: jmp a7 ;转移到 a7 ,确定调整 ok 173 ret ;子程序返回 174 175 ; 显示信息区子程序 176 look_alarm: 177 mov dptr,#m_alax2 ;存表 178 mov a,#2 ;显示在第二行 179 acall lcd_print ;调用显示字符子程序 180 mov a,#0c6h ;显示起始地址为第二行第 7 位 181 acall temp_bj1 ;调用显示温度标记子程序 182 mov a,temp_th ;加载 th 数据 183 mov x,#3 ;设置位置184 acall show_line2h ;显示数据 185 ; 186 mov a,#0ceh ;设定显示起始地址为第二行第 15 位 187 acall temp_bj1 ;调用显示温度标记子程序 188 mov a,temp_tl ;加载 tl 数据 189 mov x,#12 ;设置位置 190 acall show_line2l ;显示数据 191 ret 192 ; 193 m_alax1: 194 db look alert code,0 195 m_alax2: 196 db th: tl: ,0 197 ; 198 ;显示温度标记子程序 199 temp_bj1: 200 acall wr_comm ;调用写指令子程序 201 mov dptr,#bj2 ;存代码表 202 mov r1,#0 ;使指针指到表中第一个码 203 mov r0,#2 ;取码次数 205 b0: mov a,r1 ;a 为 0 206 movc a,a+dptr ;读取码 207 acall wr_data ;调用写数据子程序 208 inc r1 ;r1 值加 1 209 djnz r0,b0 ;判断是否将代码读取完? 210 ret 211 ; 212 bj2: ;代码表 213 db 00h,c 214 ; 215 216 ;在 lcd 的第二行显示高温数字 217 show_line2h: 218 mov b,#100 ;设置被除数,b 为百位数 219 div ab ;除法运算,结果 a 存商数,b 存余数 220 add a,#30h ;低半字节加 30 得到 ascii 码(转换为字符) 221 push b ;b 放入堆栈暂存起来222 mov b,x ;设置 lcd 显示的位置 223 acall lcdp2 ;由 lcd 显示出来 224 ; 225 pop b ;b 由堆栈取出来 226 mov a,#0ah ;a 赋值 10 227 xch a,b ;a、b 数据互换,b 为十位数 228 div ab ;除法运算,结果 a 存商数,b 存余数 229 add a,#30h ;转换为字符 230 inc x ;lcd 显示位位置加 1 231 push b ;b 放入堆栈暂存起来 232 mov b,x ;设置 lcd 显示的位置 233 acall lcdp2 ;由 lcd 显示出来 234 ; 235 pop b ;b 由堆栈取出来 236 inc x ;lcd 显示位位置加 1 237 mov a,b ;b 为个位数 238 mov b,x ;设置 lcd 显示的位置 239 add a,#30h ;转换为字符 240 acall lcdp2 ;由 lcd 显示出来 241 ret 242 调试在硬件设计和软件设计完成以后,就是系统调试环节,本次设计的调试是在多功能单片机实验板上完成。借助于多功能单片机实验板,利用实验板上的5个独立按键、四位数码管显示,蜂鸣器和发光二极管、再连接上pt100组建成电桥,用小水箱装
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东电工考试题及答案
- 等高线测试题及答案
- 导弹飞行试题及答案
- 平面构成考试题及答案
- 北京知识培训课件
- 2025年份河南事业单位选调公务员遴选考试笔试试题(含答案)
- 动脉穿刺、深静脉穿刺技术试题(附答案)
- 2025国家基层糖尿病防治管理指南认证考试题(含答案)
- 2025年广州市水务投资集团有限公司校园招聘考试题库及答案解析
- 护士条例及医疗事故处理条例试题(附答案)
- 境外常驻人员管理办法
- 2025至2030中国城市地下管线探测行业发展状况与投资策略分析报告
- 老年护理谵妄课件
- 电焊教学课件
- 研究生学生突发事件处理办法
- 2025至2030年中国果胶行业市场现状分析及产业前景研判报告
- 幼儿园大班家长会
- 非洲出国务工合同协议
- 网络基础知识课件教学
- 信号工-矿井提升运输安全培训课件
- 劳务派遣与工厂签合同
评论
0/150
提交评论