第一范文网 - 专业文章范例文档资料分享平台

基于51单片机的三层电梯系统设计 - 图文

来源:用户分享 时间:2025/5/18 8:09:01 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

基于单片机的三层电梯系统设计

附录1 元件清单

序号 名称 型号 单位 数量 备注 1 2 3 4 5 电阻 电容 晶振 按键 7段显示数码管 10K 30P 12MHZ --- SM42038 支 支 支 个 个 1 3 1 8 2 6 7 8 9 10 11 12 电池盒 电池 导线及焊锡 自锁开关 排阻 单片机 万用板 --- --- --- --- 102 AT89C51 --- 个 节 --- 个 个 个 块 1 3 若干 1 2 1 1

1

基于单片机的三层电梯系统设计

附录2 程序部分

#include #define LCD1 P1 #define LCD2 P3

void Zero();

void Delay_ms(unsigned int Time);

void Display(unsigned int n,unsigned char a); void Flash(unsigned int Time); void KBScan(); void dl_ms(); void Destination(); void Up(); void Down();

//P2与查询式键盘硬件相连 sbit P2_0=P2^0; sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; sbit P2_4=P2^4; sbit P2_5=P2^5; sbit P2_6=P2^6;

unsigned int lift=1; /*电梯所在楼层*/

unsigned int status=1; /*电梯上行为1,下行为0*/ unsigned char request[3]={0,0,0}; /*1~3楼有无请求,有请求为1*/ unsigned char dst=1; /*电梯的目的楼层*/

//清零程序 void Zero() {

LCD1=0x00; LCD2=0x00; }

//延时程序,以毫秒为单位,用软件计时,输入的参数 void Delay_ms(unsigned int Time) {

unsigned int i=0,j=0;

2

基于单片机的三层电梯系统设计

for(i=0;i

KBScan(); for(j=0;j<125;++j); } }

//显示某一楼层

void Display(unsigned int n,unsigned char a) {

unsigned char b; if(a==0) { b=0x5e; }

else if(a==1) { b=0x73; } Zero(); KBScan(); LCD2=b; KBScan(); switch(n) {

case 3:{LCD1=0x4f;break;} case 2:{LCD1=0x5b;break;} case 1:{LCD1=0x06;break;} default: {break;} } }

//闪烁显示到达楼层 void Flash(unsigned int Time) {

unsigned char i; for(i=0;i

Delay_ms(1000); KBScan(); Display(lift,status);

3

基于单片机的三层电梯系统设计

Delay_ms(1000); KBScan(); } Zero();

Delay_ms(1000); KBScan(); }

//查询式键盘扫描 void KBScan() {

if(P2!=0xff) { dl_ms(); if(P2!=0xff) {

switch(P2) {

case 0xfe: {P0_0=1;request[0]=1;break;} /*电梯内请求1楼*/

case 0xfd: {P0_1=1;request[1]=1;break;} /*电梯内请求2楼*/ case 0xfb: {P0_2=1;request[2]=1;break;} /*电梯内请求3楼*/ case 0xf7: {P0_3=1;request[0]=1;break;} /*电梯外1楼请求向上*/ case 0xef: {P0_4=1;request[1]=1;break;} /*电梯外2楼请求向上*/ case 0xdf: {P0_5=1;request[1]=1;break;} /*电梯外2楼请求向下*/ case 0xbf: {P0_6=1;request[2]=1;break;} /*电梯内3楼请求向下*/

default: {break;} /*错误请求*/ } } } }

//消抖延时 void dl_ms() {

unsigned char i; for(i=0;i<30;++i); }

//获取目的楼层 void Destination() {

unsigned char j; //j循环控制变量 KBScan(); //有键按下

4

基于51单片机的三层电梯系统设计 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c48iw61yfik55t2g9602f_11.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top