资讯详情

单片机水塔水箱水位系统Proteus仿真程序

#include ////调用单片机头文件

#define uchar unsigned char///无符号字符型 宏定义 变量范围0~255

#define uintunsigned int ///无符号整形 宏定义 变量范围0~65535

///数字管段选择定义 0 1 2 3 4 5 6 7 8 9

uchar code smg_du[]={0xde,0x91,0xcd,0xd5,0x93,0x2b,0x5f,0xd4,0xdf,0xd1,

// A B C D E F 不显示

0xd7,0x1f,0x4e,0x9d,0x4f,0x47 }; //断码

sbit led_y = P2^2; //黄灯 //高水位

sbit led_g = P2^1; //绿灯

sbit led_r = P2^0; //红灯 //低水位

sbit shuiwei1 = P3^4;

sbit shuiwei2 = P3^5;

sbit shuiwei3 = P3^6;

sbit shuiwei4 = P3^7;

sbit relay = P1^0; //继电器

sbit beep =P2^7; //蜂鸣器

uchar shuiwei; //水位

sbit dianji = P2^3;

/***********************1ms延时函数*****************************/

void delay_1ms(uint q)

{

uint i,j;

for(i=0;i

for(j=0;j<120;j );

}

/********************独立按键程序*****************/

uchar key_can; //按键值

void key() //独立按键程序

{

static uchar key_new;

P1 |= 0x06;

if((P1 & 0x06) != 0x06) 按下//按钮

{

delay_1ms(1); //按钮抖动

if(((P1 & 0x06) != 0x06) && (key_new == 1))

{ //确认按钮

key_new = 0;

switch(P1 & 0x06)

{

case 0x02: relay = 0;///手动进水

break; //得到按键值

case 0x04: relay = 1;//手动停止进水

break; //得到按键值

}

}

}

else ///按钮松开

key_new = 1;

}

/******************主程序**********************/

void main()

{

P0 = P1 = P2 = P3 = 0xff;///初始化单片机IO口为高电平

P0 = ~smg_du[0] ;

delay_1ms(1500);

while(1)

{

key(); //独立按键程序

if(shuiwei4 == 1) //高水位 4档

{

shuiwei = 4;

led_r = 1;led_g = 1;led_y = 0; ///高水位绿灯亮

}

else if(shuiwei3 == 1) // 3档

{

shuiwei = 3;

led_r = 1;led_g = 0;led_y = 1; ///正常水位绿灯亮

}

else if(shuiwei2 == 1) // 2档

{

shuiwei = 2;

led_r = 1;led_g = 0;led_y = 1; ///正常水位绿灯亮

}

else if(shuiwei1 == 1) // 1档

{

shuiwei = 1;

led_r = 1;led_g = 0;led_y = 1; ///正常水位绿灯亮

}else                            //低水位 0

{

shuiwei = 0;

led_r = 0;led_g = 1;led_y = 1;           //低水位红灯亮

}

P0 = ~smg_du[shuiwei];           //

if(shuiwei < 1)        //进水

{

beep = ~beep;  //蜂鸣器报警

relay = 0;     //打开继电器  进水

}

else

{

beep = 1;    //关闭蜂鸣器

}

if(shuiwei >= 4)  //停止进水

{

relay = 1;          //关闭继电器

dianji = 0;  //打开抽水电机

}else

{

dianji = 1;   //关闭电机

}

key();         //独立按键程序

delay_1ms(100);

}

}

标签: 74b水位继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台