过程控制系统课程设计稿_第1页
过程控制系统课程设计稿_第2页
过程控制系统课程设计稿_第3页
已阅读5页,还剩12页未读, 继续免费阅读

下载本文档

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

文档简介

1、过程控制系统绪论 在科技高速发展的信息时代,电子技术、微型计算机技术的应用更是空前广 泛,伴随着科学技术和生产不断发展, 需要对各种参数进行温度测量。 在单片机 温度测量系统中最关键的是测量温度、 控制温度和保持温度, 温度测量是对工业 对象中主要的被控参数之一, 因此单片机测量是对温度的有效的测量, 并能在工 业生产中得到广泛应用。本次课设所研究的课题是“基于单片机的热水锅炉温度控制系统设计,主要 介绍了对热水锅炉的温度显示、 控制及报警、 实现了温度的实时显示及控制。 锅 炉水温控制部分采用了 AT89S52单片机、 DS18B20 温度传感器以及步进电机来 实现,通过温度传感器 DS18

2、B20 采集环境温度,以单片机为核心控制部件将采 集到的温度通过串口通信 MAX232 输入到电脑中,在电脑中通过 C 语言编程来 控制单片机的工作方式, 将程序下载到单片机中, 通过设定温度与给定温度的比 较来控制电机的正反转来模拟升温和降温使系统工作在设定的温度范围之内, 当 温度高于设定值时, 通过电机正转来模拟开大冷水阀, 进而使水温降低; 当温度 低于设定值时, 通过电机反转来模拟关小冷水阀, 进而使水温升高; 直到在规定 的温度范围内进行恒温加热。 本次课设通过 Labview 来绘制人机交互界面设置温 度的上下限。并且通过该界面可以实时显示当前的温度值, 发出报警信号等, 便 于

3、操作人员观察。关键词: AT89S52 单片机 DS18B20 温度传感器 串口通讯 Labview 步进电机设计任务、要求和技术指标1.1 设计任务 系统构成: 系统主要由温度传感器,单片机控制系统、锅炉温度对象、执行器(查找资料自 己选择)等组成。温度传感器、 控制器、执行器可查找资料自行选择, 控制器选择单片机为控制器。 单片机型号自选 写出温度测量与控制过程,绘制温度控制系统组成框图。 ( 1)系统硬件电路设计自选。 温度测量程序、温度校准程序、温度控制程序等部分组成。1.2 主要技术指标( 1) 温度显示误差不超过 1。(2) 温度显示范围为 0 99。二、总体设计方案2.1 设计思

4、路本设计方案采用 AT89S52单片机作为控制器, DS18B20 芯片作为温度传感 器,步进电机作为执行器构成过程控制系统, 来模拟热水锅炉温度控制系统。 通 过温度传感器 DS18B20 采集锅炉水温,以单片机为核心控制部件将采集到的温 度通过串口输入到电脑中,在电脑中通过 labview 组态软件来显示实时温度和设 置预置温度, 并根据实时温度与预置温度的偏差大小控制进水阀门的开关, 进而 达到调节锅灶水温的目的。 当实时温度高于设定值时, 通过电机正转来模拟开大 冷水阀,进而使水温降低; 当温度低于设定值时, 通过电机反转来模拟关小冷水 阀,进而使水温升高;直到在规定的温度范围内进行恒

5、温加热。本次课设通过 Labview 来绘制人机交互界面,设置所需温度值。2.2 系统总体框图2.3 系统框图三、控制器 AT89S523.1 AT89S52 简介AT89S52 是一种低功耗、高性能 CMOS8位微控制器,具有 8K 在系统可 程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工 业 80C51 产品指令和引脚完全兼容。片上Flash 允许程序存储器在系统可编程亦适于常规编程器在单芯片上拥有灵巧的 8 位 CPU 和在系统可编程 Flash ,使得 AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解 决方案。 AT89S52 具有以下标

6、准功能:8k 字节 Flash 、256 字节 RAM、 32 位 I/O 口线、看门狗定时器, 2 个 数据指针、三个 16 位 定时器 /计数器、一个 6 向量 2级中断结构、全双工 串行口,片内晶振及时钟电路。另外AT89S52可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作允许 RAM、定时器/ 计数器、串口、中断继续工 作。掉电保护方式下, RAM内容被保存振荡 器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。电路 图如下:四、传感器 DS18B20DS18B20 是美国 DALLAS 半导体公司最新推出的一种改进型智能温度传感

7、器,与传统的热敏电阻等测温元件相比, 它能直接读出被测温度, 并且可根据实 际要求通过简单的编程实现 9-12位的数字值读数方式。 DS18B20 的性能特点如 下:? 独特的单线接口仅需一个端口引脚进行通讯? 简单的多点分布应用? 无需外部器件? 可通过数据线供电? 零待机功耗? 测温范围 -55+125,以0.5递增。 华氏器件 -67+2570F,以0.90F 递增 ? 温度以 9 位数字量读出? 温度数字量转换时间 200ms(典型值)? 用户可定义的非易失性温度报警设置? 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。DS18B20的测温原理如图 所示,图中低温度系数

8、晶振的振荡频率受温 度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2 的脉冲输入,图中还隐含着计数门,当计数门打开时, DS18B20就对低温度系数振荡器产生的 时钟脉冲后进行计数,进而完成温度测量 . 计数门的开启时间由高温度系数振荡 器来决定,每次测量前,首先将 -55 所对应的基数分别置入减法计数器 1 和温 度寄存器中,减法计数器 1和温度寄存器被预置在 -55 所对应的一个基数值。减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数, 当减法计数 器 1 的预置值减到 0 时温度寄存器的值将加 1,

9、减法计数器 1 的预置将重新被装 入,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数 , 如此循 环直到减法计数器 2计数到 0时,停止温度寄存器值的累加, 此时温度寄存器中 的数值即为所测温图 2 中的斜率累加器用于补偿和修正测温过程中的非线性其 输出用,于修正减法计数器的预置值, 只要计数门仍未关闭就重复上述过程, 直 至温度寄存器值达到被测温度值,这就是 DS18B20的测温原理。另外,由于 DS18B20单线通信功能是分时完成的, 他有严格的时隙概念, 因 此读写时序很重要。系统对 DS18B20的各种操作必须按协议进行。操作协议为: 初始化 DS18B2(0 发复位脉

10、冲)发 ROM功能命令发存储器操作命令处理数 据。图 DS18B20 测温原理图五、接口通讯单元51 单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行 串口通讯。进行串行通讯时要满足一定的条件, 比如电脑的串口是 RS232电平的, 而单片机的串口是 TTL 电平的,两者之间必须有一个电平转换电路, 因此采用专 用芯片 MAX232进行转换。max232资料简介:该产品是由德州仪器公司 (TI )推出的一款兼容 RS232标准的芯片。 由于电 脑串口 rs232 电平是-10v +10v ,而一般的单片机 应用系统的信号电压是 ttl 电 平 0 +5v, max232就是用

11、来进行电平转换的 , 该器件包含 2 驱动器、 2 接收器和一 个电压发生器电路提供 TIA/EIA-232-F 电平。该器件符合 TIA/EIA-232-F 标准,每一个接收器将 TIA/EIA-232-F 电平转换 成 5-V TTL/CMOS 电平。每一个发送器将 TTL/CMOS电平转换成 TIA/EIA-232-F 电平。主要特点 :1、单 5V 电源工作2、LinBiCMOSTM工艺技术3、两个驱动器及两个接收器4、±30V 输入电平5、低电源电流:典型值是 8mA6、符合甚至优于 ANSI标准 EIA/TIA-232-E 及 ITU 推荐标准 V.287、ESD保护大于

12、 MIL-STD-883(方 法 3015)标准的 2000V5 1 单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地 进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是 RS232 电平的,而单片机的串口是 TTL电平的, 两者之间必须有一个电平转换电路, 我 采用了专用芯片 MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但 是还是用专用芯片更简单可靠。、系统总工作原理工作原理本设计方案采用 AT89S52单片机作为控制器, DS18B20 芯片作为温度传感 器,步进电机作为执行器构成过程控制系统, 来模拟热水锅炉温度控制系统。 通 过温度传感器 DS1

13、8B20 采集锅炉水温,以单片机为核心控制部件将采集到的温 度通过串口输入到电脑中,在电脑中通过 labview 组态软件来显示实时温度和设 置预置温度, 并根据实时温度与预置温度的偏差大小控制进水阀门的开关, 进而 达到调节锅灶水温的目的。 当实时温度高于设定值时, 通过电机正转来模拟开大 冷水阀,进而使水温降低; 当温度低于设定值时, 通过电机反转来模拟关小冷水 阀,进而使水温升高;直到在规定的温度范围内进行恒温加热。本次课设通过 Labview 来绘制人机交互界面,设置所需温度值。系统通过 DS18B20 检测锅炉的水温,DS18B20作为全数字式的温度传感器, 将所测温度以数字量形式传

14、给 AT89S52 单片机,单片机先不直接处理所测温度, 而是将温度传给上位机,计算机通过 labview 对温度信息进行记录和处理然后又 发送到单片机通过单片机控制执行器件。 Labview 先对温度进行中值滤波以消除 随机误差。 然后再与设定温度相减以取得偏差, 然后再根据偏差方向控制步进电 机的正反转以调节冷水阀的开度。进而达到控制锅炉水温的目的 七、参考文献1、马淑华 单片机原理与接口技术 北京邮电大学出版社2、任彦硕 自动控制系统 北京邮电大学出版社3、谭浩强 C语言程序设计 清华大学出版社 八、结束语通过本次课程设计,将之前所学的专业课单片机原理 、过程控制系 统 、虚拟仪器 、

15、C语言等课程有机的结合到了一起。将所学的知识付 诸于实践是一件很兴奋的事情, 这让我明白了自己所学的知识与实际的生产生活 有着很大的联系。 但通过本次课设我也发现了自己有很多不足之处, 对编程缺乏 兴趣、对一些本专业的软件不能熟练的掌握等缺点。 因此, 在即将到来的毕业设 计中,我要主动去学习一些软件的用法, 不拿不敢兴趣为理由, 做出一个漂亮的 作业。附录 1 源程序主程序#include<reg52.h> /包含单片机寄存器的头文件#include<intrins.h> /包含 _nop_()函数定义的头文件unsigned char jieshou;unsigne

16、d char flag,tltemp;unsigned code FFW8=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09;unsigned code REV8=0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01;void delay1ms()unsigned char i,j;for(i=0;i<4;i+)for(j=0;j<33;j+); void delaynms(unsigned char n) unsigned char i;for(i=0;i<n;i+)delay1ms();步进电机正转void moto

17、r_ffw()unsigned char i; unsigned char j; for (j=0; j<8; j+) if(jieshou=3) break; for (i=0; i<8; i+) /转 1*n 圈/退出此循环程序 /一个周期转 45 度P1 = FFWi;/取数据delaynms(4);/调节转速步进电机反转*/void motor_rev()unsigned char i; unsigned int j; for (j=0; j<8; j+)if(jieshou=0)break;for (i=0; i<8; i+) P1 = REVi; delay

18、nms(4);/串口初始化void UART_Init(void)/转 1×n 圈/退出此循环程序 /一个周期转 45 度/取数据/调节转速SCON = 0x50; /串口工作方式为 1 , 串行允许接收TMOD = 0x20; / 定时器 1 工作在方式 2/PCON = 0x80; /SMOD = 1; 波特率加倍TH1 = 0xfd; /波特率 9600bps fosc="11".0592MHzTL1 = 0xfd;ES = 1; /开串口中断TR1 = 1; /允许定时器 1 工作EA = 1; /开总中断/串口发送一个字节 void Uart_SendC

19、har(short int dat)SBUF = dat; /待发送的数据写入缓冲区 while(!TI); / 等待发送完成TI = 0; / 清零发送标志位/* 以下是 DS18B20的操作程序 */ sbit DQ=P33;unsigned char time; /设置全局变量,专门用于严格延时 /*函数功能:将 DS18B20 传感器初始化,读取应答信号 */ bit Init_DS18B20(void)bit flag;DQ = 1;/先将数据线拉高for(time=0;time<2;time+) / 略微延时约 6 微秒DQ = 0;/ 再将数据线从高拉低,要求保持 4809

20、60usfor(time=0;time<200;time+) /略微延时约 600 微秒;/以向 DS18B20 发出一持续 480960us的低电平复位脉冲DQ = 1; / 释放数据线(将数据线拉高) for(time=0;time<10;time+); /延时约 30us(释放总线后需等待 1560us 让 DS18B20 输出存在脉冲) flag=DQ;/让单片机检测是否输出了存在脉冲( DQ=0 表示存在)for(time=0;time<200;time+) /延时足够长时间,等待存在脉冲输出完毕return (flag);/返回检测成功标志 /* 函数功能:从 D

21、S18B20 读取一个字节数据 出口参数: dat*/ unsigned char ReadOneChar(void)unsigned char i=0;unsigned char dat; / 储存读出的一个字节数据for (i=0;i<8;i+)DQ =1;/ 先将数据线拉高_nop_(); /等待一个机器周期DQ = 0;/单片机从 DS18B20 读书据时,将数据线从高拉低即启动读时序_nop_();/等待一个机器周期DQ = 1;/将数据线"人为"拉高,为单片机检测 DS18B20的输出电平作准备for(time=0;time<2;time+); /

22、延时约 6us,使主机在 15us 内采样 dat>>=1;if(DQ=1)dat|=0x80; /如果读到的数据是 1,则将 1 存入 dat elsedat|=0x00;/如果读到的数据是 0,则将 0 存入 dat/将单片机检测到的电平信号 DQ 存入 ri for(time=0;time<8;time+);/延时 3us,两个读时序之间必须有大于 1us 的恢复期 return(dat);/返回读出的十六进制数据/* 函数功能:向 DS18B20 写入一个字节数据 入口参数: dat*/ WriteOneChar(unsigned char dat)unsigned

23、char i=0;for (i=0; i<8; i+)DQ =1;/ 先将数据线拉高_nop_();/等待一个机器周期DQ=0;/ 将数据线从高拉低时即启动写时序DQ=dat&0x01; /利用与运算取出要写的某位二进制数据 , /并将其送到数据线上等待 DS18B20 采样 for(time=0;time<10;time+);/延时约 30us,DS18B20 在拉低后的约 1560us期间从数据线上采 样DQ=1;/ 释放数据线for(time=0;time<1;time+);/延时 3us,两个写时序间至少需要 1us 的恢复期dat>>=1;/将

24、dat中的各二进制位数据右移 1 位for(time=0;time<4;time+); / 稍作延时 ,给硬件一点反应时间/* 函数功能:做好读温度的准备 */ void ReadyReadTemp(void)Init_DS18B20();/将 DS18B20 初始化WriteOneChar(0xCC); / 跳过读序号列号的操作 WriteOneChar(0x44); / 启动温度转换 delaynms(200); /转换一次需要延时一段时间Init_DS18B20();/将 DS18B20 初始化WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(

25、0xBE); / 读取温度寄存器 ,前两个分别是温度的低位和高void main(void)unsigned char TL; unsigned char TH; unsigned char TN; unsigned char TD; unsigned char N=64;/储存暂存器的温度低位/储存暂存器的温度高位/储存温度的整数部分/储存温度的小数部分因为我们的步/N 步进电机运转圈数进电机是减速步进电机 减速比是 1/64 所以这里 N=64 时 步进电机外部的主轴 转1圈UART_Init(); / 初始化串口 while(1) / 不断检测并显示温度ReadyReadTemp();/读温度准备TL=ReadOneChar();/先读

温馨提示

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

评论

0/150

提交评论