皖西学院2014届本科毕业设计(论文)
3.3原程序代码
/*********声明区************/ #include
/*******上下行指示灯********/ sbit led1=P2^0; sbit led2=P2^1;
/*******电机驱动接线********/ sbit P2_4=P2^4; sbit P2_5=P2^5; sbit P2_6=P2^6; sbit P2_7=P2^7;
/*********电梯内按键********/ sbit F1=P3^0; sbit F2=P3^1; sbit F3=P3^2; sbit F4=P3^3; sbit F5=P3^4;
/********各楼层按键*********/ sbit F1U=P1^0; sbit F2U=P1^1; sbit F2D=P1^2; sbit F3U=P1^3; sbit F3D=P1^4; sbit F4U=P1^5; sbit F4D=P1^6; sbit F5D=P1^7;
uchar direct,floor,aim,stop;
11
皖西学院2014届本科毕业设计(论文)
uint timer1,timer2; uchar code table[]={ 0x3f,0x06,0x5b, 0x4f,0x66,0x6d}; void delay(uint z);
/***********初始化子函数***********/ void init() { }
/*************显示子函数**************/ void display() {
led1=0; led2=0;
//上行指示灯 //下行指示灯
direct=1; //direct为1时,电梯上升 aim=1;
//目标楼层
floor=1; //当前楼层 stop=0; timer1=0; timer2=0; P0=0x00; P2_4=P2_7=0; P2_5=P2_6=0;
TMOD=0x01; //设置定时器0为工作方式1 TH0=(65536-50000)/256; //装初值 TL0=(65536-50000)%6; EA=1; //关外部中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器0
//电机起停标志
12
皖西学院2014届本科毕业设计(论文)
}
P0=table[floor];
/************按键扫描函数*************/ void keyscan() { }
/************电机驱动子函数**************/ void qudong()
if(F1U==0) aim=1;
else if(F2D==0||F2U==0)
aim=2;
else if(F3D==0||F3U==0) aim=3;
else if(F4D==0||F4U==0) aim=4; else if(F5D==0) aim=5; else if(F1==0)
{aim=1;stop=0;}
else if(F2==0)
{aim=2;stop=0;}
else if(F3==0)
{aim=3;stop=0;}
else if(F4==0)
{aim=4;stop=0;}
else if(F5==0)
{aim=5;stop=0;}
13
皖西学院2014届本科毕业设计(论文)
{ }
/*****************主函数*********************/ void main() {
init(); while(1) {
//初始化
if(direct==1) { } else { }
P2_4=P2_7=0; P2_5=P2_6=1; led1=0; led2=1; P2_4=P2_7=1; P2_5=P2_6=0; led1=1; led2=0;
else {
P2_4=P2_7=0; P2_5=P2_6=0; led1=0; led2=0;
}
14