基于单片机的电梯控制程序
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;
}
}
单片机电梯控 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)