嵌入式系统课程论文:基于ARM的温度测控系统设计12538_第1页
嵌入式系统课程论文:基于ARM的温度测控系统设计12538_第2页
嵌入式系统课程论文:基于ARM的温度测控系统设计12538_第3页
嵌入式系统课程论文:基于ARM的温度测控系统设计12538_第4页
嵌入式系统课程论文:基于ARM的温度测控系统设计12538_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式系统课程论文基于arm的温度测控系统的设计 专业:电气工程及其自动化 姓名: 左立刚 学号: 031040522 指导老师: 刘三军 日期:2013年11月3日 目 录第1节 引言 31.1 温度控制系统概述 31.2 本设计的主要任务和目标 4第2节 系统设计原理及方案选择 42.1 系统框图 42.2 方案论证 42.3 各部分电路方案 5第3节 硬件电路设计与计算 73.1 温度采样和转换电路 73.2 温度控制电路 83.3 arm控制部分 93.4 键盘显示设定部分 10第4节 实验测试 11 4.1整个系统的软件流程图 11 4.2 温度设定13 4.3 pwm输出 13第5

2、节 课程设计总结 13 5.1 设计中遇到的问题及解决 13 5.2 设计还存在的问题 14第六节 附录 14 第一节 引 言温度测量与控制在现代化工业企业及日常生活中应用广泛,分类较多,不同场合不同环境的温度控制系统也不尽相同,因而要根据不同的控制目标与要求设计出较好的温度测控系统,其中比较简单应用也十分广泛的就是采用pid调节控制,从而达到较理想的控制指标。本课题的控制内核采用philips的arm2131控制整个系统。采用软件编程,实现用pid算法来控制pwm波的产生,进而控制电炉的加热时间来实现温度控制。然而,单纯的pid算法无法适应不同的温度环境,在某个特定场合运行性能非常良好的温度

3、控制器,到了新环境往往无法很好胜任,甚至使系统变得不稳定,需要重新改变 pid 调节参数值以取得佳性能。本文首先用pid算法来控制pwm波的产生,进而控制电炉的加热时间来实现温度控制。当实际温度偏离控制温度系统会通过软件自动修改重新稳定在控制目标附近,从而不至于使控制要求产生不理想的偏差。当系统环境变化时可以通过软件修改参数达到较好的控制要求。1.1 温度控制系统概述温度控制是无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,现代冶金、石油、化工及电力生产过程中,温度是极为重要而又普遍的热工参数之一。在环境恶劣或温度较高等场合下,为了保证生产过程正常安全地进行,提高产品的质量和数量

4、,以及减轻工人的劳动强度、节约能源,要求对加热炉炉温进行测、显示、控制,使之达到工艺标准。经过近年来的发展,arm控制技术的发展越来越进步,arm技术的应用也已经日趋成熟。可以预见在不远的将来以arm 控制为核心嵌入式的发展会越来越广泛。以arm为核心设计的温度控制系统,可以同时采集多个数据,并将数据通过通讯口送至数码管进行显示和控制。那么无论是哪种控制,我们都希望温度控制系统能够有很高的精确度(起码是在满足我们要求的范围内),帮助我们实现我们想要的控制,解决身边的问题。在计算机没有发明之前,这些控制都是我们难以想象的。而当今,随着电 子行业的迅猛发展,计算机技术和传感器技术的不断改进,而且计

5、算机和传感器的价格也日益降低,可靠性逐步提高,用信息技术来实现温度控制并提高控制的精确度不仅是可以达到的而且是容易实现的。用高新技术来解决工业生产问题, 排除生活中对温度的控制问题已成为我们电子行业的任务,以此来加强工业化建设,提高人民的生活水平。1.2 本系统的主要任务和目标 1、基本要求 整个系统可以自由修改要达到的控制温度,即修改给定量,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。 2、性能指标 控制精度 温度控制误差 3600时,积分作用去除)系统投运后先把p参数调好,尔后再把i参数逐步往小调,观察系统响应,以系统能快速消除静差进入稳态,而不出现超调振荡为最佳。d参数设

6、置如不能肯定微分时间参数d应为多少,请先把d参数设置为o,即去除微分作用,系统投运后先调好p参数和i参数,p、i确定后,再逐步增加d参数,加微分作用,以改善系统响应的快速性,以系统不出现振荡为最佳,(多数系统可不加微分作用)。5.2 设计还存在的问题1) 采样经过数字滤波之后采样值还是不够准确。2) 温度的变化电阻值具体变化的真实值还是不清楚。3) 经过pid算法之后的控制精度有待于进一步提高,波动范围还是有一点大。4) 信号的处理还存在不科学的地方。5) 要提高控制精度还是要做好信号处理,最好做一个传感器线性变化的系统出来做一下比较。 第 六节 附录附录一:参考书籍、网站深入浅出arm7lp

7、c213x/214x(上册)百度网站、百度文库附录二:元件清单:lpc2131开发板 一块键盘显示板、电路板一块三极管9013、滑动变阻器各一枚继电器、加热陶瓷、温度传感器各一个发光二极管 三枚电阻、电容、导线若干附录三:程序如下#include config.h#define key 10;i-) for(j=5000;j0;j-);/*=timer0youguan=*/void timer0_init(void)t0tc = 0; /定时器设置为0t0pr = 0; / 时钟不分频t0mcr = 0x03; /复位t0tc,并产生中断标志t0mr0 = fpclk/1000;/t0tcr

8、= 0x01; /1毫秒定时void _irq timer0int(void)t0flag = 1;disp+; / t0中断标志置位t0ir = 0x01; / 清除中断标志vicvectaddr = 0; / 向量中断处理结束void irq_init(void)vicintselect = 0x00; / 设置所有的通道为irq中断vicvectcntl0 = 0x20 | 4; / timer0分配到irq slot1vicvectaddr0 = (uint32)timer0int; / 设置timer0向量地址vicintenable = (1 4) ; / 使能timer0和tim

9、er1中断/*=conbit=*/void convbit0(uint16 num,uint8 hor)data0hor+3 = num/1000;data0hor+2 = num%1000/100;data0hor+1 = num%100/10;data0hor+0 = num%10/1;/*=spi=*/void mspi_init(void) spi_spccr = 0x10; / 设置spi时钟分频 spi_spcr = (0 3) | /在sck 第一个时钟沿采样 (1 4) |/ cpol = 1, sck 为低有效 (1 5) |/ mstr = 1, spi 处于主模式 (0

10、6) |/ spi 数据传输msb (位7)在先 (0 7);/ spie = 0, spi 中断被禁止uint8 mspi_senddata(uint8 data) spi_spdr = data; while( 0 = (spi_spsr & 0x80);/ 等待数据发送完毕 return(spi_spdr);/*=adcaiyang=*/void adc_init(void)uint32 adclk=(fpclk / 1000000 - 1),h=0;ad0cr = (1 3)|/ sel=8,选择通道3(adclk 8)|/ clkdiv=fpclk/1000000-1,转换时钟为1m

11、hz(0 16)|/ burst=0,软件控制转换操作(0 17)|/ clks=0, 使用11clock转换(1 21)| / pdn=1,正常工作模式(0 22)| / test1:0=00,正常工作模式(1 24)|/ start=1,直接启动adc转换(0 27);delay();h= ad0dr;uint16 adc(void)uint32 adc_r;uint16 adc_r1;ad0cr |= 1 24; / 进行第一次转换while (ad0dr & 0x80000000) = 0); / 等待转换结束ad0cr |= 1 6) & 0x3ff;adc_r1 = adc_r1

12、* 2480/ 1024;return (adc_r1);/*=pininit=*/void pininit()pinsel1 = (pinsel1 & (0x0328)|(0x0128);/p0.30选择ad0.3通道pinsel0 = (pinsel0 & (0xff8)|(0x558); / 选择spi功能/*=pwminit=*/void pwminit()pinsel0 = (pinsel0 & (0x0314)|(0x0214);pwmpr = 0;pwmtc = 0;pwmmr0 = fpclk / 1;pwmmr2 = pwmmr0 * pwm_value /100;pwmpc

13、r = (1 0)/pwm_value = pwm_value + 5;/if(pwm_value100)pwm_value = 90;i_pid_result=i_pid_result+10;if(i_pid_result100)i_pid_result = 90;pwmmr2 = pwmmr0 * i_pid_result / 100;if(i_pid_result 0)/pwm_value = pwm_value - 10;/i_pid_result= (- i_pid_result)-10;i_pid_result = 1;/if(pwm_value5)pwm_value = 5;pw

14、mmr2 = (pwmmr0 * i_pid_result) / 100;if(i_pid_result = 0)/pwm_value = pwm_value;pwmmr2 = pwmmr0 * i_pid_result / 100;pwmler = 0x05;pwmtcr = 0x09;/*=*/*=*/int main (void)uint8 s=0,x=0,k=4,i=0; timer0_init(); irq_init(); mspi_init(); adc_init(); pininit(); pwminit(); t0tcr = 0x01; irqenable(); while(1

15、) if(disp=240) disp=0; adc_datas=adc(); if(s=4) /adc_result=0; for(s=0;s5;s+) adc_result=adc_result + adc_datas; adc_result=adc_result/5; s=0; else待添加的隐藏文字内容1 s+; /temprapid(tem); /*if(t0flag=1) t0flag=0; temprapid(tem); convbit0(ui_ad_cnl,0); convbit0(adc_result,4); x=data0k; mspi_senddata(digitabl

16、ex); mspi_senddata(selectablek); if(k=7) k=0; else k+; */ if(t0flag=1) t0flag=0; temprapid(tem); w+; if(w=80) w=0; if(m=0) switch(page) case 0: convbit0(ui_ad_cnl,0); convbit0(adc_result,4); break; case 1: convbit0(tem,0); convbit0(0,4); break; /m=0 if(sf)sf=0;elsesf=1; /w=80 if(m=0)x=data0k;elseif(

17、k=r)if(sf=0)x=10;elsex=data0k;elsex=data0k;mspi_senddata(digitablex); mspi_senddata(selectablek); if(io0pin & key) !=0) if(tk=k) switch(tk) case 0: if(m=2) m=1; else m+; switch(m) case 1: convbit0(ui_ad_cnl,0); convbit0(adc_result,4); break; case 2: convbit0(tem,0); convbit0(0,4); break; break; case 1: if(r=3) r=0; else r+; break; case 2: if(m=2) if(data0r=9)data0r=0;elsedata0r+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论