1、锅炉报警系统说明书锅炉越限报警系统引言随着科技的不断发展,日常生活中越来越多的采用高温高热的一些设备及装置,它在方便了人们生活的同时,也留下了安全隐患,因此做好高温预警工作是非常必要的。为了能实现防火、防灾的目的,就必须采取先进的自动检测和控制手段。本文所设计的单片机智能检测控制器能通过现场温度传感器检测到室内的温度或是设备、装置的温度等信息,然后根据现场信息进行相应的处理。即当温度超过了预先设定的警戒值时,此系统能显示温度信息并且发出警报声,通知管理人员进行控制。本系统不仅能实现高温报警,同时也能实现对温度下限的报警,满足不同场合的设计需要。1 功能介绍一、设计目的和要求1、设计目的:通过用
2、C51单片机来编写一个简单的程序,利用ADC8080实现模数转换监控锅炉的越限参数的变化,从而实现相应的报警控制。了解ADC8080的使用方法,以及学习使用Keil C51进行单片机开发的方法,并掌握联合Proteus来实现仿真调试。2、设计要求:(1).蒸汽压力(X3)的下限报警值为1.5V, 炉膛温度(X2)的下限报警值为1V,上限报警值为4V, 水位(X1)的下限报警值为1V,上限报警值为4V;(2).调节滑动变阻器X3模拟蒸气报警,若参数越界, 对应红灯亮,并有报警声,按K1键消除报警声;(3).调节滑动变阻器X2模拟炉膛温度报警,若参数越界, 对应红灯亮,并有报警声,按K1键消除报警
3、声;(4).调节滑动变阻器X1模拟水位报警,若参数越界, 对应红灯亮,并有报警声,按K1键消除报警声;(5).若所有参数均正常,绿灯亮。二、硬件电路设计越限参数监控ADC0808模数转换AT89C52单片机报警显示单元电路的设计图1 硬件电路主控芯片 根据设计的所需要求分析STC89C52单片机的工作原理,可得出来温度电路设计方便和优点。VCC : 电源;GND: 地,RST: 复位输入。P0 口:P0口是一个8位漏极开路的双向I/O口。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口: 是一个具有内部上拉电阻的8 位双向I/O
4、口,在flash编程和校验时,P1口接收低8位地址字节。P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,在flash编程和校验时,P3口也接收一些控制信号。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于89S52,如果EA 接VCC,程序读写先从内部存储器(地址为0000H1FFFH)开始,接着从外部寻址,寻址地址为:2000HFFFFH。
5、数据存储器:STC89C52 有256 字节片内数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的STC89C52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中(定时器0、1、2)和一个串行中断每个中断源都可以通过置位或清除特殊寄存器IE 中的相关中断允许控制位分别使得中断源有效或无效。STC89C52单片机引脚图如图2所示图2 单片机引脚图单片机晶振电路和复位电路图3 晶振和复位电路锁存电路图4 锁存电路模数转换电路图5 模数转换电路越限参数控制电路图6 越限参数控制电路报警显示电路图7 报警显示电路三、软件设
6、计1、程序设计流程编程流程图2、程序说明3、相关的越限参数指标:蒸汽压力(X3)的下限报警值为1.5V, 炉膛温度(X2)的下限报警值为1V,上限报警值为4V, 水位(X1)的下限报警值为1V,上限报警值为4V;由相应的越限参数,我们可以按如下的步骤调试:调节滑动变阻器X3模拟蒸气报警,若参数越界, 对应红灯亮,并有报警声,按K1键消除报警声;调节滑动变阻器X2模拟炉膛温度报警,若参数越界, 对应红灯亮,并有报警声,按K1键消除报警声;调节滑动变阻器X1模拟水位报警,若参数越界, 对应红灯亮,并有报警声,按K1键消除报警声;若所有参数均正常,绿灯亮。五、心得体会通过本次课程设计,我们熟悉了AT
7、89C52、ADC0808等元器件的功能和应用。结合C51单片机语言设计一个程序,实现相关要求的控制系统设计。在设计之前先画好流程图,形成清晰的编程思路,进而合理的完成实验编程。通过实际的编程和仿真调试,我们可以在这一过程中将书本上的理论知识应用在实际的控制系统的设计中。同时在仿真调试时,我们可以发现在编程时出现的错误并予以纠正。在实际的编程环境中,可以很直观的纠正自己在编程中的错误,并形成良好的编程习惯,同时也为以后的编程设计打下良好基础。当然,我们也会发现在这一设计过程中的不足。即在软件和硬件实现的功能一样时,在实际硬件上能实现,但在Proteus仿真软件上却不能单独实现,必须要配合软件才
8、能实现。这就要求我们不仅要学会使用相关的软件,同时也应该积累实践的经验,从中总结一些实际的问题的解决方法。于此同时也学会了将Keil软件和Proteus软件联合在单片机设计中的仿真调试。提高了我们实际的操作能力,多方位地丰富了我们对硬件电路和软件程序的仿真调试手段。成功完成本次的实验,让我们受益匪浅,同时也激发了个人的实际动手的积极性。将死板的课本知识应用到实际可行的控制设计,是一种很好的学习方法。实践是检验真理的唯一标准,学好了知识必须要能在实际的应用中实现才能体现其价值。通过这次课程设计让我们对所学内容有了进一步的理解六、参考文献1、徐爱钧 编著 8051单片机实践教程 电子工业出版社.2
9、006年2、常喜茂 孔英会 付小宁 编著 C51基础与应用实例 电子工业出版社.1999年3、贺敬凯 刘德新 管明祥 编著 单片机系统设计仿真与应用基于Keil和Protues仿真平台 西安电子科技大学出版社.2003年4、孙涵芳 编著MCS-51/96系列单片机原理及应用(修订版).北京航空航天大学出版社.1994 5、李朝青 编著单片机原理及接口技术(第3版).北京航空航天大学出版社.20056、周润景 袁伟亭 景晓松 编著Proteus在MCS-51&ARM7系统中的应用百例 电子工业出版社.2006附录一元器件清单序号符号名称数量174LS04反相器 7274LS373锁存器13ADC
10、0808模数转换器14AT89C52单片机CPU15BUTTON按钮16CAP电容27CAP-ELEC电解电容18CRYSTAL晶振19LED-GREEN绿发光二极管110LED-RED红发光二极管511NOR或非门212POT-LIN变阻器113RES电阻214RESPACK-8排阻115SPEAKER蜂鸣器1附录二系统仿真电路图附录三 系统实现程序/ * 文件名 锅炉报警系统程序.c * 芯片:AT89C52 * 主频:12MHZ * 功能描述:锅炉报警系统,对水位、炉膛温度、蒸汽压力监控 */#include #include #define uchar unsigned char#de
11、fine uint unsigned int/*ADC0808的地址*/#define ADC_0808 XBYTE0x7fff/*采样值保存位置,分别为水位,温度,蒸汽压力值*/uchar SAMP3=0x00,0x00,0x00;/*各个警限值,分别为水位上限值,水位下限值,温度上限值,温度下限值,蒸汽压力下限值*/uchar LIMIT5=0xc0,0x40,0xc0,0x40,0x50;/*报警铃开/关标志,0-开,1-关*/bit ALARM=0;uchar DETECT; /保存消除报警铃时的值/*P3口定义*/sbit ADC_EOC = P30; / AD转换后产生一个正脉冲s
12、bit LS_373 =P31;/*P1口定义*/sbit P1_0= P10; /水位上限灯控制 sbit P1_1= P11; /水位下限灯控制sbit P1_2= P12; /温度上限灯控制 sbit P1_3= P13; /温度下限灯控制sbit P1_4= P14; /蒸汽压力下限控制sbit P1_5= P15; /正常运行sbit P1_6= P16;sbit P1_7= P17; /报警铃控制/*函数原型申明*/void Delay500ms(void);void InitInt0(void);/* * 函数名:main() * 功能:程序入口 * 输入参数:无 * 输出参数:
13、无 */void main() uchar i; P1=0x20; InitInt0(); while (1) for(i=0;iLIMIT0) /水位上限超过 P1_0=1; P1_1=0; else if(SAMP0LIMIT2) /温度上限值超过 P1_2=1; P1_3=0; else if(SAMP1LIMIT3) /温度下限值超过 P1_2=0; P1_3=1; else /温度正常 P1_2=0; P1_3=0; break; case 2: if(SAMP2(DETECT&0x1f) /判断消除报警铃后其它有没有报警 ALARM=0; if(P1=0x00)|(P1=0x80)
14、 /无警限值超过 P1=0x20; ALARM=0; Delay500ms(); /* * 函数名:int0 * 功能描述:外部中断0中断服务程序 * 输入参数:无 * 返回值:无 */void int0 (void) interrupt 0 ALARM=1; DETECT=P1;/* * 函数名:InitInt0 * 功能描述: 外部中断0初始化 * 输入参数:无 * 返回值:无 */ void InitInt0(void) EA=1; EX0=1; IT0=1; /* * 函数名:Delay500ms * 功能描述:500ms延时 * 输入参数:无 * 返回值:无 */void Delay500ms(void) uchar i, j, k; for(i=23; i0; i-) for(j=152; j0; j-) for(k=70; k0; k-);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1