文档详情

基于51单片机的六层电梯控制系统c语言程序.pdf

发布:2019-01-08约1.15万字共7页下载文档
文本预览下载声明
#includereg51.h #define MAXFLOOR 6 //定义一个最大层数为6 层的电梯 unsigned char code LEDCODES[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d}; //LED 数码管发光数组 /****************** 电梯外对应的上下按键*************************/ sbit FLOOR6DOWN=P1^0; //6 楼下对应的P1^0,IO 口 sbit FLOOR5UP=P1^1; //5 楼上对应的P1^1,IO 口 sbit FLOOR5DOWN=P1^2; //5 楼下对应的P1^2,IO 口 sbit FLOOR4UP=P1^3; //4 楼上对应的P1^3,IO 口 sbit FLOOR4DOWN=P1^4; //4 楼下对应的P1^4,IO 口 sbit FLOOR3UP=P1^5; //3 楼上对应的P1^5,IO 口 sbit FLOOR3DOWN=P1^6; //3 楼下对应的P1^6,IO 口 sbit FLOOR2UP=P1^7; //2 楼上对应的P1^7,IO 口 sbit FLOOR2DOWN=P2^0; //2 楼下对应的P2^0,IO 口 sbit FLOOR1UP=P2^1; //1 楼上对应的P2^1,IO 口 /****************** 电梯内对应各层楼的按键***********************/ sbit FLOOR1=P2^2; //1 楼对应的P2^2IO 口 sbit FLOOR2=P2^3; //2 楼对应的P2^3IO 口 sbit FLOOR3=P2^4; //3 楼对应的P2^4IO 口 sbit FLOOR4=P2^5; //4 楼对应的P2^5IO 口 sbit FLOOR5=P2^6; //5 楼对应的P2^6IO 口 sbit FLOOR6=P2^7; //6 楼对应的P2^7IO 口 /********************* 电梯上下运行指示灯************************/ sbit LEDUP=P3^6; //LED 上对应的P3^6IO 口 sbit LEDDOWN=P3^7; //LED 下对应的P3^7IO 口 bit DIRECTION=1,STOP=0; // 电梯运行方向位,电机运行停止与否标志位 unsigned char CURFLOOR=1; // 当前楼层处于1 楼 unsigned char DESTFLOOR=1; // 目地楼层处于1 楼 unsigned char RUN=0; //运行状态标志位,RUN=1 表示正在运行 unsigned int timer1=0,timer2=0; //timer1 为楼层间运行时间计数值, timer2 为等待计数值 unsigned char CALLFLOORUP[7]={0,0,0,0,0,0,0}; // 呼叫楼层上对应的数组,存储每层楼的信息, 1 为有人呼叫或者有人前往 unsigned char CALLFLOORDOWN[7]={0,0,0,0,0,0,0}; //呼叫楼层下对应的数组,存储每层楼的信 息,1 为有人呼叫或者有人前往 unsigned char CALLFLOOR[7]={0,0,0,0,0,0,0}; // 呼叫楼层对应的数组,存储每层楼的信息, 1 为有人呼叫或者有人前往 /************* 自定义函数的声明*******************/ void SELECTNEXT(); void step(bit DIRECTION); void DELAY(unsigned int Z); void JUDGESIT(); /********************主函数**********************/ void main(void) { P0=LEDCODES[1]; //点亮第一层对应的LED TH0=0x3C; //定时器1 的初值 TL0=0xB0; TMOD=0x01;
显示全部
相似文档