基于单片机的温度及压力智能控制系统设计.docx
《基于单片机的温度及压力智能控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度及压力智能控制系统设计.docx(27页珍藏版)》请在咨信网上搜索。
基于单片机的温度及压力智能控制系统设计 摘 要 本文设计了以AT89C51单片机为核心的温度和压力控制系统的工作原理以及设计方法。温度信号由温度传感器PT100采集,再由变送器将信号变换为0-5V的信号给PCF8591芯片。单片机最后通过IIC总线将模拟量信号读回来或者发送出去。压力信号也是由压力传感器采集回来,再由变送器变换为0-5V的电压信号给PCF8591芯片。PCF8591芯片是支持4路模拟量输入,1路模拟量输出的8位芯片,并且支持IIC总线,最大可以同时接8个同样的芯片。单片机将采集回来的信号经过计算与处理后将温度和压力值显示在LCD1602液晶上,设计中介绍了控制系统的硬件电路,包括:温度、压力检测电路、温度控制电路、压力控制电路、电源电路、报警电路、显示电路、单片机最小系统电路、按键电路和其他一些单片机的接口电路。本设计中还介绍了软件程序编写部分,都采用模块化的结构编程。软件程序部分主要包括:主程序、显示程序、温度和压力采集子程序、按键子程序、控制输出子程序等。 关键词: A/D转换;单片机;温度及压力采集;智能控制 1.1研究背景及现状 单片机自从20世纪70年代产生以来,已经广泛地应用在工业自动化控制、自动检测、机电一体化设备、智能仪器仪表、家用电器、汽车电子等各个方面。单片机具有功能齐全,抗干扰能力强,应用可靠,前景广阔,简单方便等优点。此外,单片机还具有体积小、应用灵活性强、性能价格比高等特点,在嵌入式微控制系统中具有非常重要的地位。从工业自动化、智能仪器仪表、自动控制、消费类电子产品等方面直到国防尖端技术领域,单片机都起着十分重要的作用。 近些年来,随着微机的发展,单片机的应用在人们的日常生活和工作中显得越来越重要。工业过程控制也是它的一个重要应用领域。由单片机而构成的嵌入式系统越来越受到世人的关注。因此,可以毫不夸张的说,没有单片机的仪器不能算是先进的仪器,没有单片机的过程控制系统不能称做是智能控制系统。 国内外的温度控制系统发展都非常迅速,并在智能化、参数自整定、自适应等方面取得了不同的成果。目前的温度控制大多都是采用智能调节器,国产调节器的精度和分辨率比较国外的较低,温度的控制效果也不是很理想但价格非常便宜,国外的调节器精度和分辨率都比较高,价格较贵。德国、美国、日本、瑞典等技术领先,都生产出了商品化的,性能优异的温度控制器以及仪器仪表,并在各个行业已经广泛应用。 压力的测量对于实时监测以及安全生产都具有非常重要的意义。在工业应用中,为了高效并且安全的生产,就必须要有效的控制生产过程中的一些重要数比诸如压力、温度、流量等主要参数。因为压力的控制在一般生产过程中都起着决定性的安全作用,因此更有必要准确的测量压力。为了测得不同位置的压力数据,本设计的压力测量系统。通过压力传感器将需要测量的压力信号转变为电信号,再由变送器最终转换为0-5V的电压信号给PCF8591AD-DA芯片。单片机通过IIC总线将模拟数据读回来再根据变换公式做数据处理,最终将温度和压力值显示在LCd1602上。芯片转换时间受IIC总线速率影响,可以最大支持8个相同的PCF8591芯片,即最大支持32路模拟量输入,8路模拟量输出。 键盘输入是单片机控制系统常用的实现人际对话的输入设备。通过键盘,向单片机控制系统输入各种数据或者命令,也可以通过键盘,设置单片机控制系统工作于预定的模式。 1.2 实现温度及压力智能控制的意义 温度、压力都是过程生产中非常重要的参数,它们是生产过程中判断设备是否正常运行的关键因素。在生产过程中对于温度和压力的控制也就显的极为重要。比如在化工生产过程中,压力能影响物料平衡,也能影响化学的反应速度,是标志着生产过程是否可以正常进行的极为重要的参数。从安全生产的角度,压力的检测也是很重要的。如:保证压力容器内的压力值要在安全的指标之内,确保易燃易爆等介质的压力不能超标等等。 总之,温度与压力的检测是通常是生产过程中不可缺少的环节,只有严格按照生产工艺的要求来保持温度及压力的稳定,才能保证生产的正常进行。因此温度及压力准确测量与控制在现实生活中是非常重要的。 2 系统方案设计及论证 2.1温度、压力采集方案选择 2.1.1温度采集方案比较 1.使用DS18B20模块 本方案的优点是:采集温度精度较高,接线简单; 缺点:单总线方式,当系统需要扩容时要另外占用单片机管脚资源。并且远距离传输时,因为是单总线方式,不能传到太远。 2.普通热敏电阻 优点:价格低廉 缺点:电路设计相对较为复杂些,精度低。 3.PT100铂电阻方式 优点:精度高,使用方便,配合专用的变送器能远距离传输。 缺点:价格较为低廉 2.1.2压力采集方案 1.压力传感器配合变送器方式 优点:价格相对低廉,可靠性高,能较远距离传输,精度较高 缺点:相对带通信功能的压力模块,扩容是需要占用AD通道 2.压力采集带通信专用模块 优点:采集精度高,更智能,扩容时不需要占用任何硬件资源 缺点:造价高。 本设计中温度采集选用PT100铂电阻的测温方式,PT100铂电阻传感器会根据温度的不同,自身阻值也会有相应的变化,专用的变送器只需要接上PT100铂电阻及电源就可以输出标准的4-20mA或者是0-20mA信号,本设计选用输出0-20mA信号,选用电流信号是因为当较远距离传输时变送器相当于恒流源输出,减小线路阻值带来的误差,当接到本设计中的控制板时,再通过串接250欧姆的电阻来将电流信号转换为0-5V的电压信号。压力采集方案选用压力传感器配合变送器方式,压力采集原理也是如此,不同的是前端传感器不是PT100而是压力传感器。 接线示意图如图2-1所示。设计温度控制输出采用开关量的输出方式,控制原理为当温度实际值大于等于温度上限值时停止加热,当温度实际值小于等于下限值时,开始加热。 压力控制方式采用外接变频器控制电机,进而控制管道压力的方式,原理为当压力实际值小于等于下限值时,控制板将电机的供电,并给变频器输入相应的控制值,控制算法采用建议的模糊控制算法,即在一定的时间内检测到前后两次的压力值变化的大小,如果变化很小,说明给出的值小了,需要加大此值,如果变化一般,说明给出的值合适,如果变化很大,说明给出的值大了,需要减小此值。本设计默认分为6档判断。即压力差值的6个档位分别为小于等于0.05MPa;大于0.05MPa并且小于等于0.1MPa;大于0.1MPa并且小于等于0.15MPa;大于0.15MPa并且小于等于0.2MPa;大于0.2MPa并且小于等于0.25MPa;大于0.25MPa并且小于等于0.3MPa; 图2-1 接线示意图 2.2系统结构总框图 图2-2系统结构总框图 2.3 单片机的选择 单片机AT89C51是美国的ATMEL公司生产的一款低电压、高性能的CMOS的8位单片机,芯片内部含有4K字节的可擦写的只读程序存储区以及128个字节的数据存储器,该芯片是采用高密度和非易失性存储技术生产的,兼容了以往标准的MCS-51产品的指令系统,单片机片内含有通用的8位中央处理器,AT89C51单片机具有不错的性价比以及可靠性和应用性,此单片机可以灵活的应用在各种控制领域之中。 AT89C51芯片提供以下一些标准的功能: (1).4K字节的闪存 (2).128字节的内部数据存储区 (3).32个I/O口线,可以输入或者输出 (4).两个16位定时或者计数器 (5).一个5向量两级的中断结构 (6).有一个全双工的串行口 单片机(AT89C51)的工作可以降至0HZ的静态的逻辑操作,并且还支持两种可以通过软件来选择节约电能的工作模式: (1).空闲工作方式:停止单片机的工作,但是允许数据存储器(RAM)、定时或者计数器、通信口以及中断程序的工作。 (2).掉电的方式:保存数据存储器(RAM)中的内容,但是单片机的晶振电路停止工作并且禁止其它所有部件的工作一直到下一个硬件复位。 AT89C51引脚图如图2-3所示。 图2-3 AT89C51单片机引脚图 引脚功能说明: Vcc:电源电压正 GND:电源电压负 P0口:P0口是8位的漏极开路型的双向I/O口,即地址或者数据总线的复位口。如果P0口作为输出端口时,每个端口能驱动8个逻辑门电路,如果对端口写“1”时,可以作为高阻抗输入端口来使用。 如果在访问外部数据存储器或者程序存储器的时候,这组口线分时转换地址(低8位)和数据总线复用,此时的P0端口激活内部的上拉电阻。 P1口:P1端口是带有内部上拉电阻的8位的双向口。P1端口的输出可以驱动(输入或输出)4个TTL逻辑门电路。如果对端口写“1”时,通过内部的上拉电阻把端口拉到高电平,此时可以当作输入端口使用。因为内部存在上拉电阻,假如某个引脚被外部信号拉低时会输出一个电流。 P2口:P2端口是带有内部上拉电阻的8位的双向口,P2端口可以驱动(输入或输出电流)4个TTL逻辑门电路。如果对端口写“1”,通过内部的上拉电阻把P2端口拉到高电平,此时P2端口可以作为输入口。 P3口:P3端口是带有内部上拉电阻的8位的双向口。P3端口输出缓冲级可以驱动(输入或输出)4个TTL逻辑门电路。如果P3端口写入“1”时,他们被内部上拉电阻拉高并可作为输入口。此时,被外部拉低的P3端口将用上拉电阻输出电流。P3端口还接收一些用于闪存编程和程序校验的控制信号。 RST:复位。当单片机工作时,复位引脚如果有两个机器周期以上的高电平信号就可以让单片机复位。 XTAL1、XTAL2:振荡器输入端。 液压压力传感器是工业中最为常见的一种压力传感器,它广泛应用于各种工业自控的环境中,涉及石油管道、铁路交通、水利水电、生产自控、智能建筑、航空航天、石化、军工、电力、油井、船舶、管道送风、机床、锅炉负压等等众多的行业。 工作原理:液压压力传感器的工作原理为压力直接作用在传感器的薄膜片上,使膜片产生与介质压力成正比的微小位移,让传感器的电阻发生了变化,再用电子线路检测这一变化,并且转换输出一个对应于这个压力的标准的电信号。 常见参数:全密封、平膜型不锈钢焊接结构、高灵敏度、小体积、零点满度可调节。 应用领域:液压、中央空调系统 、压铸、恒压供水、机械、机车制动系统轻工、冶金、环保、石化、空压机等其他自动控制系统 。 实物图如图2-4所示。 图2-4 平模传感器 量 程: -0.1~0~1~1000(MPa) 输出信号: 4~20mA(二线制)、0~5V、1~5V、0~10V(三线制) 综合精度: 0.1%FS、0.25%FS、0.5%FS 供电电压: 24DCV(9~36DCV) 介质温度: -20~85~150℃ 环境温度: 常温(-20~85℃) 量程温度漂移: ≤±0.05%FS℃ 零点温漂移: ≤±0.05%FS℃ 补偿温度: 0~70℃ 安全过载: 150%FS 极限过载: 200%FS 响应时间: 5 mS(上升到90%FS) 绝缘电阻: 大于2000MΩ (100VDC) 负载电阻: 电流输出型:最大800Ω;电压输出型:大于5KΩ 密封等级: IP65 长期稳定性能: 0.1%FS/年 振动影响: 在机械振动频率20Hz~1000Hz内,输出变化小于0.1%FS 机械连接(螺纹接口):M20×1.5等,其它螺纹可依据客户要求设计 电气接口(信号接口): 紧线螺母+四芯屏蔽线 2.6 A/D-D/A转换器 PCF8591芯片是一个单片集成、低功耗、单独供电、8-bit CMOS数据获取器件。PCF8591具有4个模拟量输入、1个模拟量输出以及1个串行I²C总线接口。PCF8591芯片的3个地址引脚A0、 A1和A2可以用于硬件地址编程,允许在同个I²C总线上最多接入8个PCF8591器件,而不需要额外的硬件。在PCF8591芯片上输入输出的地址和控制和数据信号都是通过双线双向I²C总线以串行的方式进行传输的。 PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。PCF8591的最大转化速率由I²C总线的最大速率决定。 AIN0~AIN3:模拟信号的输入端。 A0~A3:引脚的地址端。 VDD、VSS:电源端。(2.5~6V) SDA、SCL:IIC总线的数据线、时钟线。 OSC:外部时钟的输入端,内部时钟的输出端。 EXT:内、外部时钟选择线,使用内部时钟时EXT要接地。 AGND:模拟信号接地端。 图2-5 PCF8591引脚图 2.7液晶LCD1602 LCD1602字符型的液晶显示模块是一种专门用于显示字母、符号、数字等点阵式的LCD,目前常用的有16*1、16*2、20*2以及40*2行等样式的模块。下面以长沙太阳人电子有限公司的生产的LCD1602字符型液晶显示器为例,来做简单的介绍。一般的LCD1602字符型液晶显示器实物如图2-6所示: 图2-6 LCD1602液晶实物图3 锅炉温度和压力控制系统硬件电路的设计 3.1 最小单片机系统 单片机的最小系统,是指用最少的元器件组成的并可以正常工作的单片机系统,对本设计来说,单片机最小系统应该包括:单片机,晶振电路以以及复位电路。 3.1.1 晶振电路 典型的晶振值一般取11.0592MHz(因为可以准确地计算得到9600波特率和19200波特率,常用用于有串口通讯的场合)/12MHz。 在图3-1中,晶振Y2与电容C8、C9构成了单片机的晶体振荡电路。本设计当中的晶振选用的是无源晶振,晶振为11.0592MHz。起振电容选用的是两个22pF的小电容。 图3-1 晶振电路 3.1.2 复位电路 在图3-2中,S2、C6及R18构成了复位电路。此单片机是高电平复位,即当按键S1按下时,单片机的RST引脚被拉高,单片机被复位;当按键S1松开后,单片机的RST引脚被下拉电阻R18拉低,单片机开始执行用户程序。电容C6是滤波电容,防止按键S1按下的瞬间,单片机的RST引脚电平信号抖动,影响单片机的工作。 图3-2复位电路 刚上电的时候或者触动按钮后C6两端的电压为0,这时RST为高电平,而它高电平保持的时间是由电阻R18和电容C6的时间常数决定,由公式(3-1)可知,电容C6充电的时间常数τ等于0.22ms,远远大于2μs,即使复位管脚RST高电平的时间保持2μs以上,保证了单片机正常复位。 τ=R*C (3-1) 3.2 温度及压力采集电路设计 如图3-3所示,PCF8591芯片是一个带4路模拟量输入,1路模拟量输出以及IIC总线的芯片。此IIC总线上最多可以挂8片PCF8591芯片。温度采集占用第一路模拟量采集通道即AN0,压力采集占用模拟量采集通道第二路即AN1。模拟量输出接AOUT即J6。此处的信号电平都是0-5V的电平信号。 图3-3模拟量采集模块 3.3设计 3.6 报警电路设计 本系统采用蜂鸣器报警的方式来发出报警信息。图3-6中U5为蜂鸣器,三极管Q3为驱动三极管,R5为限流电阻,当单片机管脚P3.3为高电平时,三极管Q3截至,蜂鸣器不发声;当单片机管脚P3.3为低电平时,三极管Q3导通,蜂鸣器发出声音。来达到报警提示的功能。本设计只设计了压力报警提示,当压力实际值超过设定的报警限值时,蜂鸣器会发出声音报警,当压力实际值在正常范围内时,蜂鸣器停止发声。3.7电源电路设计 图3-7电源电路 4 系统软件设计 4.1系统总流程图设计 系统程序的流程图如图4-1所示。 图4-1系统程序流程图 上电后,系统首先初始化,初始化完成后开始采集模拟量值,判断按键程序,之后再判断各值是否在正常范围内,如果不在范围内做出相应的操作。最后输出控制逻辑。 4.2部分程序说明 程序部分大致分为主程序、LCD显示程序、模拟量采集程序、模拟量输出程序、按键设置程序、自动控制程序等部分。 4.2.1主程序 main() { LCD_Initialise(); //LCD初始化 AD_CHANNEL=0; T_OUT=1; //关闭温度输出 alarm_OUT=1; //关闭报警输出 while(1) { ISendByte(PCF8591,0x41); D[0]=IRcvByte(PCF8591); //ADC0 模数转换1 Delay_1ms(5); Convert_To_Voltage(D[0],0); //求温度 LCD_Line_1[2]=Voltage[2]; LCD_Line_1[3]=Voltage[1]; LCD_Line_1[5]=Voltage[0]; ISendByte(PCF8591,0x40); D[1]=IRcvByte(PCF8591); //ADC0 模数转换1 Delay_1ms(5); Convert_To_Voltage(D[1],1); //求压力 LCD_Line_2[2]=Voltage[2]; LCD_Line_2[4]=Voltage[1]; LCD_Line_2[5]=Voltage[0]; P_time= P_time+1; //时间计数 /* ISendByte(PCF8591,0x42); D[2]=IRcvByte(PCF8591); //ADC2 模数转换3 ISendByte(PCF8591,0x43); D[3]=IRcvByte(PCF8591); //ADC3 模数转换4 */ while (menu_bit==1) { key_read(); //按键读取函数 P0=0X0e; //显示开,光标开,闪烁 lcd_enable(); if ((set_bit==0)||(set_bit==2)) { key_set(); //按键设置 } else if ((set_bit==1)||(set_bit==3)) { key_set1(); //按键设置 } if ((set_bit==0)||(set_bit==1)) { P0=0X80; //设置第1行显示地址 } else if ((set_bit==2)||(set_bit==3)) { P0=0XC0; //设置第2行显示地址 } lcd_enable(); //调用LCD显示设置函数 if ((set_bit==0)||(set_bit==1)) { write_h(); // } else if ((set_bit==2)||(set_bit==3)) { write_l(); // } } key_read(); //按键读取函数RC4、RC5、RC6、RC7分别为四个按键,按下瞬间,Trg值分别为16,,3,64,128 if (Trg==16) //菜单键按下时 { bai=TH/100; shi=TH%100/10; ge=TH%10; menu_bit=1; //菜单键标志 } auto_t_p(); //自动控温及控压子程序 Delay_1ms(5); DACconversion(PCF8591,0x40, D[2]); //DAC 数模转换 LCD_Display_A_Line(0x00, LCD_Line_1); LCD_Display_A_Line(0x40, LCD_Line_2); } } 4.2.2 LCD显示程序 bit LCD_Busy_Check() //LCD忙检测 { bit Result; //结果标志位 LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; Delay4us(); //延时4us Result = (bit)(P0&0x80); LCD_EN = 0; return Result; //输出结果标志位 } void LCD_Write_Command(uchar cmd) //LCD控制命令 { while(LCD_Busy_Check()); //while循环 LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); //短延时 _nop_(); P0 = cmd; Delay4us(); //延时4us LCD_EN = 1; Delay4us(); LCD_EN = 0; } void LCD_Write_Data(uchar dat) //LCD写数据 { while(LCD_Busy_Check()); //while循环 LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; Delay4us(); LCD_EN = 1; Delay4us(); LCD_EN = 0; } void LCD_Initialise() //LCD初始化 { LCD_Write_Command(0x38);Delay_1ms(5); LCD_Write_Command(0x0c);Delay_1ms(5); LCD_Write_Command(0x06);Delay_1ms(5); LCD_Write_Command(0x01);Delay_1ms(5); } void LCD_Set_Position(uchar pos) //LCD设置显示位置 { LCD_Write_Command(pos | 0x80); } void LCD_Display_A_Line(uchar Line_Addr,uchar s[]) //LCD显示行设置 { uchar i; LCD_Set_Position(Line_Addr); for(i=0;i<16;i++) { LCD_Write_Data(s[i]); } } 4.2.3 模拟量采集程序 void Convert_To_Voltage(unsigned long int val,uchar a) //数据转换,转换到电压值 { if (a==0) //求温度 { val=100*val/26 ; //数据转换 Voltage[2] = val/100+'0'; Voltage[1] = val%100/10+'0'; Voltage[0] = val%10+'0'; T_R=(Voltage[2]-'0')*100+(Voltage[1]-'0')*10+(Voltage[0]-'0'); //温度实际值 } else //求压力 { val=100*val/255 ; //数据转换 Voltage[2] = val/100+'0'; Voltage[1] = val%100/10+'0'; Voltage[0] = val%10+'0'; P_R=(Voltage[2]-'0')*100+(Voltage[1]-'0')*10+(Voltage[0]-'0'); //压力实际值 } } /******************************************************************* DAC 变换, 转化函数 *******************************************************************/ bit DACconversion(unsigned char sla,unsigned char c, unsigned char Val) { Start_I2c(); //启动总线 SendByte(sla); //发送器件地址 if(ack==0)return(0); SendByte(c); //发送控制字节 if(ack==0)return(0); SendByte(Val); //发送DAC的数值 if(ack==0)return(0); Stop_I2c(); //结束总线 return(1); } /******************************************************************* ADC发送字节[命令]数据函数 *******************************************************************/ bit ISendByte(unsigned char sla,unsigned char c) { Start_I2c(); //启动总线 SendByte(sla); //发送器件地址 if(ack==0)return(0); SendByte(c); //发送数据 if(ack==0)return(0); Stop_I2c(); //结束总线 return(1); } /******************************************************************* ADC读字节数据函数 *******************************************************************/ unsigned char IRcvByte(unsigned char sla) { unsigned char c; Start_I2c(); //启动总线 SendByte(sla+1); //发送器件地址 if(ack==0)return(0); c=RcvByte(); //读取数据0 Ack_I2c(1); //发送非就答位 Stop_I2c(); //结束总线 return(c); } 4.2.4按键设置程序 /*********按键设置函数********************* /******************************************************************************* * 函数名 : key() * 函数功能 : 按键函数 1.无按键按下时,P1=0xff;ReadData = 0; Trg = 0; Cont = 0; 2.P1.0按下时,P1.0=0;ReadData = 0x01; Trg = 0x01(Trg只会在这个时候对应位的值为1,其它时候都为0); Cont = 0x01; 3.P1.0长按住时,P1.0=0;ReadData = 0x01; Trg = 0x00;Cont = 0x01; 如果是P1.1按键那么Trg,Cont对应值都为2;如果是P1.2按键那么Trg,Cont对应值都为4;是P1.3按键那么Trg,Cont对应值都为8 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void key_read() //按键读取函数 { unsigned char temp = P2|0x0f; //将临时变量temp的低高四位置一,高四位不变 unsigned char ReadData = temp^0xff; // 1 Trg = ReadData & (ReadData ^ Cont); // 2 Cont = ReadData; } //-------------------------------------- //延时函数 void delay() { int i; for(i=0;i<0x100;i++); } //-------------------------------------- //LCD显示设置函数 void lcd_enable() { LCD_RS=0; //该字节数据为命令,而不是数据 LCD_RW=0; //此次操作为写,而不是读 LCD_EN=0; //拉低使能信号 delay(); //保持使能信号为低一段时间 LCD_EN=1; //拉高使能信号,建立LCD操作所需要的上升沿 } //----------按键设置子程序---------- void key_set() { if (Trg==32) //设置百位键按下 { bai++; if (bai>9) { bai=0; } } else if (Trg==64) //设置十位键按下 { shi++; if (shi>9) { shi=0; } } else if (Trg==128) //设置个位键按下 { ge++; if (ge>9) { ge=0; } } else if (Trg==16) //设置菜单键按下 { set_bit=set_bit+1; result=bai*100+shi*10+ge; P0=0X0C; //显示开,光标关 lcd_enable(); if (set_bit==1) { TH=result; bai1=PH/100; shi1=PH%100/10; ge1=PH%10; } else if(set_bit==3) { TL=result; bai1=PL/100; shi1=PL%100/10; ge1=PL%10; } if (set_bit>=4) { menu_bit=0; //标志清零 set_bit=0; } } } 4.2.5自动控制子程序 void auto_t_p() //自动控温及控压子程序 { if (T_R<=TL) //如果实际温度小于等于设定下限温度 { T_OUT=0; //加热 } else if(T_R>=TH) //如果实际温度大于等于设定上限温度 { T_OUT=1; //停止加热 } if (P_R<=PL) //如果实际温度小于等于设定下限温度 { P_OUT=0; //升压 P_ctrl(); //升压控制 alarm_OUT=0; //报警输出 } else if(P_R>=PH) //如果实际温度大于等于设定上限温度 { P_OUT=1; //停止升压 D[2]=0; //升压系数输出清零 alarm_OUT=0; //报警输出 } else if((P_R>=PL)&&(P_R<=PH)) //在正常值范围内 { alarm_OUT=1; //关闭报警输出 } } 5 仿真运行 本设计通过proteus7.8仿真已经完全没有问题。仿真如图5-1所示。单片机的管脚P2.4、P2.5、P2.6、P2.7接的按键分别为菜单(确定)按键、设置高位数据按键、设置中位数据按键、设置低位数据按键。P3.0、P3.1、P3.2、P3.3管脚接的LED分别代表温度控制开关量输出、压力开关量控制输出、模拟量采集指示及报警输出指示。LCD1602上显示的“T-25.3C”,表示当前实际温度为25.3℃。“P-0.70MPa”表示当前压力值为0.70MPa。调节温度或者压力可以通过前端的可调电阻来调节。PCF8591芯片的AN0通道接入的可调电阻代表温度模拟量输入;PCF8591芯片的AN1通道接入的可调电阻代表压力模拟量输入。输出仿真用电压表指示。本设计采用模糊控制,当在定长的时间段内,检测前后两次采集到的压力值,判断此压力的差值- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温度 压力 智能 控制系统 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文