微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机的电梯控制程序

基于单片机的电梯控制程序

时间:12-01 来源:互联网 点击:

if(jylc>

if(jylc>

if(jylc>

if(jylc>if(jylc>=4)

{ jd2=0;jd3=1; sb=1;jb=0; led=0; } //电梯上升

}

}

if(lch!=lch1||fg2==1)

{

fg2=0;

switch(lch)

{

case 1:

{

for(i=0;i<8;i++)

{

SCL=0;

Delay(1);

if(i==0||i==7)

SDA=1;

else

SDA=0;

SCL=1;

Delay(1);

}

} break;

case 2:

{

for(i=0;i<8;i++)

{

SCL=0;

Delay(1);

if(i==2||i==7)

SDA=0;

else

SDA=1;

SCL=1;

Delay(1);

}

} break;

case 3:

{

for(i=0;i<8;i++)

{

SCL=0;

Delay(1);

if(i==2||i==4)

SDA=0;

else

SDA=1;

SCL=1;

Delay(1);

}

} break;

case 4:

{

for(i=0;i<8;i++)

{

SCL=0;

Delay(1);

if(i==1||i==5||i==4)

SDA=0;

else

SDA=1;

SCL=1;

Delay(1);

}

} break;

}

lch1=lch;

}

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

/*------------------------------------------------

定时器初始化子程序

------------------------------------------------*/

void Init_Timer0(void)

{

TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响

//TH0=0x00; //给定初值

//TL0=0x00;

EA=1; //总中断打开

ET0=1; //定时器中断打开

TR0=1; //定时器开关打开

}

/*------------------------------------------------

定时器中断子程序

------------------------------------------------*/

void Timer0_isr(void) interrupt 1

{

TH0=(65536-5000)/256; //重新赋值 5ms

TL0=(65536-5000)%256;

num++;

if(num<20)

{

led1=0;

if(jd2==1&&jd3==1&&mb==0)

led=0;

}

else

{

led1=1;

if(jd2==1&&jd3==1&&mb==0)

led=1;

}

if(mb==1)

{

if(num%10==0)

led=~led;

if(num==200)

led=1;

}

if(num==200)

{

num=0;

num2++;

if(num2==60)

{ num2=0;fg2=1; }

if(tz==0) // 长按停止键 关闭总电源

num1++;

else

num1=0;

if(num1>2)

jd1=0;

}

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top