历史上的今天
今天是:2024年12月27日(星期五)
2019年12月27日 | 基于单片机锅炉液位控制系统
2019-12-27 来源:51hei
设计目的
首先采用液体的导电性,以按键模拟液位,这样可以很精确的检测到液位系统,同样达到预期的目的,通过单片机系统使数码管显示相应的数字。
系统采用5个按钮模拟液位来进行由下自上的液位检测。上电复位后,各部分均初始化,P2.0、P3.5、P3.6、P3.7置高电平,报警器不发声,电机不转动,LED显示灯不亮。显示器显示0时为复位情况,当液位到达规定高度时由液体导通电路,实现按钮的闭合后,再通过1位七段LED数码管显示液位位置,做出相应的报警提示,提醒工作人员在接到自动上液报警后按时手工恢复,保证液体供应充足以及设备的安全。当液位为最低液位时显示黄灯并报警,按下复位键报警器不响,当液位为5时报警器响,提醒工作人员液位已满,此时电机停止工作,按下复位键报警器不响。
2设计方案
2.1单片机类型:AT89C51
AT89C51:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C51是一种带2K字节闪烁可编程可擦除只读存储器的单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中。
2.2晶体振荡电路
晶体振荡电路有一个晶体振荡器和两个30pf的瓷片电容组成。晶振是改单片机提供工作信号脉冲的,为了稳定,在晶振的两端接入了10pf-50pf的瓷片电容接地来消减谐波对电路的稳定性的影响。晶振与单片机的引脚XTAL0和引脚XTAL1构成的振荡电路中会产生谐波,但会降低电路稳定性。
4.2总结。
该系统设计是基于在单片机嵌入式系统而设计的,充分利用单片机强大控制功能和方便通信接口,该检测控制系统实现液位检测、电机故障检测、处理和报警等功能,提高了实验的自动控制能力。因此,该系统在锅炉工厂等冶炼领域有着广阔的应用前景。
课设初期,在选题上老师强调要找自己感兴趣有了解的课题,然后上网查资料,了解与自己选题有关的电器元件。
在课设中期,在连接电机的电路中遇到了问题,后经查询,选定AJC--1000动态继电器作为电机的开关,在电路中又加入了PNP型三极管,作为控制继电器的开关。
后期,在实验仿真过程中遇到调试与程序不符的情况,后经改正程序中的置位接口电平高低使调试顺利进行。
参考文献
[1] 陈海宴.51单片机原理及其应用[M].北京:北京航空航天大学出版社,2010.3
[2] 何希才.传感器及其应用实例[M].北京:机械工业出版社,2004.9
[4] 童诗白.数字电子技术[M].北京:高等教育出版社,2001.6
[5] 王思明,张金敏,苟军年等.单片机原理及应用[M].北京:科学出版社,2012.
附录1
#include
unsigned char codetable[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
//定义一个数组,使数码管显示的数字和数组元素的下标相等
sbit yeman=P1^0;//液体自动充满
sbit yw5=P1^1;//液位充满
sbit yw4=P1^2;//液位4
sbit yw3=P1^3;//液位3
sbit yw2=P1^4;//液位2
sbit yw1=P1^5;//液位1
sbitshougong=P1^6;//手工填液
sbitdianji=P1^7;//电机控制位
sbitstate1=P3^7;//红灯显示
sbitstate2=P2^0;//蜂鸣器
sbitstate3=P3^6;//电机工作指示灯绿灯开启
sbit state4=P3^5;//黄灯显示
/*延时程序*/
voiddelay02s(void)
{
unsigned char i,j,k;
for(i=100;i>0;i--)
for(j=100;j>0;j--)
for(k=200;k>0;k--);
}
main()
{
P0=0;
P2=1;
while(1)
{
if(shougong==0) //当按手动回复按钮时
{ state1=0; //手动控制亮红灯
dianji=0; //开电机
state2=0; //报警器响
state3=0; //液位显示灯
state4=1;
P0=table[0]; //数码管显示
delay02s(); //延时
}
if(yeman==1&&yw5==1&&yw4==1&&yw3==1&&yw2==1&&yw1==0)//当唯一的闭合一个传感器单元:水位1时发生
{
dianji=0;//开电机
state1=1;//红灯亮
state2=1; //报警不响
state3=0; //电机工作指示灯打开
state4=0; //液位为1时亮黄灯
P0=table[1]; //显示液位深度:1
}
if(yeman==1&&yw5==1&&yw4==1&&yw3==1&&yw2==0&&yw1==1)//当唯一的闭合一个传感器单元:水位2时发生
{
P0=table[2];//显示液位深度:2
state1=1; //红灯不亮
dianji=0; //电机显示亮
state2=1;
state3=0;
state4=1; //黄灯不亮
}
if(yeman==1&&yw5==1&&yw4==1&&yw3==0&&yw2==1&&yw1==1)//当唯一的闭合一个传感器单元:水位3时发生
{
P0=table[3]; //显示液位深度:3
state1=1;
state2=1;
dianji=0;
state3=0;
state4=1;
}
if(yeman==1&&yw5==1&&yw4==0&&yw3==1&&yw2==1&&yw1==1)//当唯一的闭合一个传感器单元:水位4时发生
{
P0=table[4];
state1=1;
state2=1;
dianji=0;
state3=0;
state4=1;
}
if(yeman==1&&yw5==0&&yw4==1&&yw3==1&&yw2==1&&yw1==1)//当唯一的闭合一个传感器单元:水位5时发生
{
dianji=1; //关电机
state1=0; //红灯开
state2=0;
state3=1; //电机工作指示灯熄灭
state4=1;
P0=table[5]; //显示水位深度已满
delay02s();
}
if(yeman==0&&yw5==1&&yw4==1&&yw3==1&&yw2==1&&yw1==1) {
P0=table[1];
dianji=0;
state1=1;
state2=1;
state3=0;
state4=0;
delay02s();
P0=table[2];
delay02s();
P0=table[3];
delay02s();
P0=table[4];
delay02s();
P0=table[5];
dianji=1;
state1=0;
state2=0;
state3=1;
state4=1;
}
}
}
下一篇:单片机用Itoa函数
史海拾趣
|
详细资料见http://www.xie-gang.com/df.htm 电路图本已经剪辑了,但不会上传,所以大家还是去网站看吧。:L 我现在是想做个无线的遥控,用单片机控制的。 发射部分,我想应该是用一个I/O口输出电平的变化,比如01010011,那么我应该能看到发射后 ...… 查看全部问答> |
|
是这样的,我想做一个有连贯动作的机器人,机器人完成了一个动作之后再做下一个动作,每一步动作快慢不一样,我想产生这样的方波信号来控制步进电机。需要有这样的功能,首先由外部中断触发,计时器开始产生频率为f1的方波,f1完了之后产生频率f2的 ...… 查看全部问答> |
|
高手帮忙啊,我电脑全格后重装后无法安装Dell I6400 BIOS A17驱动,因为我的电池出问题了,但AC adapter能正常使用,所以我不想去买块新的电池了,请问高手如何跳过电池检测而顺利安装BIOS A17?我用BIOS A14或其他更老版本的BIOS都不行,都要经过电池检测 ...… 查看全部问答> |
|
Usb serial KITL中S3C2440USBSER_Init函数是谁调用的???? 这几天想学习一下KITL,遇到了几个问题(usb serial kitl): 1、 X:\\WINCE500\\PLATFORM\\XXX\\Src\\Kernel\\Oal文件夹中的kitlusbser.c文件有个S3C2440USBSER_Init函数 在这里加打印信息 ,这个函数确实执行了,可是我搜索整个PLATFORM找不到 ...… 查看全部问答> |
|
刚刚接触单片机,选修课结课老师要求我做出一个单片机的程序。老师要求不要特别简单的。 我想不出做什么,所以请教大家,我应该做什么实验呢?不要太复杂的,比方说关于以太网口的实验,我可以做什么啊?请大家帮我想想,如果有代码参考更好了。我 ...… 查看全部问答> |
|
如何让wince5.0的系统支持运行.net2.0下用VS2005开发的程序?(定制系统内核) 请问怎么解决让wince5.0的系统支持运行.net2.0下用VS2005开发的程序,是直接安装PB5.0后定制的系统内核就支持吗? 我开始开发时装了VS2003和PB4.2,是支持.net1.0的程序在wince4.2上面运行的,但是装了VS2005和PB5.0后程序就不能支持运行了(vs200 ...… 查看全部问答> |




