基于51单片机的电梯(5层)
控制系统功能要求:1.电梯楼层共5层 2.电梯内部按键:1到5,开门键,关门键,报警键 3.电梯外部按键举例:1楼就一个上键;2楼有上键和下键; 5楼就一个下键。 4.电梯运行一层时间为2秒 5.电梯运行到设置楼层位置,自动开门维持时间是﹖秒 6.按下电梯内开门键后,电梯开门。释放按键2秒后,电梯关门7.电梯超重时(采用AD器件模拟),电梯不能运行,门打开 8.键盘采用矩阵方式,可以用上下复合功能键,也可以米用扩展刀式。蚁子和功能木 用自定义方式。 9.以上是基本要求,扩展要求是与实际运行电梯功能尽可能一致,有新功能。显示系统要求 1.电梯向上运行时,显示up和楼层数2.向下显示dn和楼层数 3. 开门时,显示 op和楼层数;关门时,显示cl和楼层数4.电梯不运行时,仅显示目前楼层 5.超重时,显示Sos 6.显示LED最少采用4位7段或8段码方式 ![请添加图片描述](https://img-blog.csdnimg.cn/direct/4d2c297eef614e19a0497e9515510099.png)
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit motor1=P3^5;//电机
sbit motor2=P3^6;
sbit beep=P3^7;//蜂鸣器
sbit led=P3^4;//开门指示灯
sbit smg1=P2^0;//数码管
sbit smg2=P2^1;
sbit smg3=P2^2;
sbit smg4=P2^3;
sbit CLK= P2^5;//时钟,初始状态为0
sbit DI= P2^6;//数据输入
sbit DO= P2^7;// 数据输出
sbit CS= P2^4;
uchar code smgduan[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
uchar time=60;//定时
uchar ceng=1,now=1;
uchar lou1[]={0,0,0,0,0};//上升
uchar lou2[]={0,0,0,0,0};//下降
uchar up=1,flag=1;
uchar weight=0;//重量
uchar moshi=0;//模式
/*********************************************
读取ADC
**********************************************/
uchar ADC()//通道ch0
{
uchar temp0,temp1,i;
CS=0;
temp0=0;
temp1=0;
_nop_();
_nop_();
DI=1;//开始位
_nop_();
_nop_();
CLK=1;
_nop_();
_nop_();
CLK=0;
_nop_();
_nop_();
DI=0;
_nop_();
_nop_();
//选择通道0
DI=1;
_nop_();
CLK=1;//上升沿DI=1
_nop_();
CLK=0;//1个下降沿DI=1
_nop_();
DI=0;
_nop_();
CLK=1;
_nop_();
CLK=0;//第3个上升沿DI=0
_nop_();
DI=1;
//********通道选择结束开始读取转换后的二进制数****
//下降沿读数,一下进行判断和处理,共8次
for(i=0;i |