设计目的
首先采用液体的导电性,以按键模拟液位,这样可以很精确的检测到液位系统,同样达到预期的目的,通过单片机系统使数码管显示相应的数字。
系统采用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;
}
}
}
上一篇:单片机电子密码锁Proteus仿真
下一篇:单片机用Itoa函数
推荐阅读最新更新时间:2024-10-26 10:24