




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(完整)基于51单片机的三层电梯系统设计(完整)基于51单片机的三层电梯系统设计(完整)基于51单片机的三层电梯系统设计基于51单片机的三层电梯系统设计专业班级:电子信息科学与技术1班姓名:李强指导教师:金国华老师信息科学技术学院附录2程序部分#include〈reg51.h〉#defineLCD1P1#defineLCD2P3voidZero();voidDelay_ms(unsignedintTime);voidDisplay(unsignedintn,unsignedchara);voidFlash(unsignedintTime);voidKBScan();voiddl_ms();voidDestination();voidUp();voidDown();//P2与查询式键盘硬件相连sbitP2_0=P2^0;sbitP2_1=P2^1;sbitP2_2=P2^2;sbitP2_3=P2^3;sbitP2_4=P2^4;sbitP2_5=P2^5;sbitP2_6=P2^6;unsignedintlift=1;/*电梯所在楼层*/unsignedintstatus=1;/*电梯上行为1,下行为0*/unsignedcharrequest[3]={0,0,0};/*1~3楼有无请求,有请求为1*/unsignedchardst=1;/*电梯的目的楼层*///清零程序voidZero(){LCD1=0x00;LCD2=0x00;}//延时程序,以毫秒为单位,用软件计时,输入的参数voidDelay_ms(unsignedintTime){unsignedinti=0,j=0;for(i=0;i〈Time;++i){KBScan();for(j=0;j〈125;++j);}}//显示某一楼层voidDisplay(unsignedintn,unsignedchara){unsignedcharb;if(a==0){b=0x5e;}elseif(a==1){b=0x73;}Zero();KBScan();LCD2=b;KBScan();switch(n){case3:{LCD1=0x4f;break;}case2:{LCD1=0x5b;break;}case1:{LCD1=0x06;break;}default:{break;}}}//闪烁显示到达楼层voidFlash(unsignedintTime){unsignedchari;for(i=0;i〈Time;i++){Zero();Delay_ms(1000);KBScan();Display(lift,status);Delay_ms(1000);KBScan();}Zero();Delay_ms(1000);KBScan();}//查询式键盘扫描voidKBScan(){if(P2!=0xff){dl_ms();if(P2!=0xff){switch(P2){case0xfe:{P0_0=1;request[0]=1;break;}/*电梯内请求1楼*/ case0xfd:{P0_1=1;request[1]=1;break;}/*电梯内请求2楼*/ case0xfb:{P0_2=1;request[2]=1;break;}/*电梯内请求3楼*/ case0xf7:{P0_3=1;request[0]=1;break;}/*电梯外1楼请求向上*/ case0xef:{P0_4=1;request[1]=1;break;}/*电梯外2楼请求向上*/ case0xdf:{P0_5=1;request[1]=1;break;}/*电梯外2楼请求向下*/ case0xbf:{P0_6=1;request[2]=1;break;}/*电梯内3楼请求向下*/default:{break;}/*错误请求*/}}}}//消抖延时voiddl_ms(){unsignedchari;for(i=0;i〈30;++i);}//获取目的楼层voidDestination(){unsignedcharj; //j循环控制变量KBScan();//有键按下if(status==1) //若电梯向上走则从高楼层到低楼层扫描{ //以此达到判断优先级的目的for(j=3;j>=1;—-j){if(request[j-1]==1){dst=j; //则将目的楼层设为该楼break; //并将其对应的request置1,然后跳出}}}elseif(status==0) //若电梯向下走则从低楼层到高楼层扫描{ //以此达到判断优先级的目的for(j=1;j〈=3;++j){if(request[j—1]==1){dst=j;break;}}}}//电梯向上走voidUp(){status=1; //置1表示电梯向上走for(;lift〈=dst;lift++) //电梯到达目的楼层之前往上走{Display(lift,1); //每到达一楼就显示该楼层数KBScan();Destination(); //读取点阵键盘if(request[lift—1]==1)//若请求到达的楼层在所在楼层和目的楼层之间则停下闪烁显示并将其对应的request清零{Delay_ms(3000);if(P0_5==1&&lift==2);else{request[lift—1]=0;}switch(lift){case1:{P0_0=0;P0_3=0;break;}case2:{P0_1=0;P0_4=0;break;}case3:{P0_2=0;P0_6=0;break;}default:{break;}}Flash(3);Delay_ms(800);}else{Delay_ms(3000);}}lift—-;}//电梯向下走voidDown(){status=0; //置1表示电梯向上走for(;lift>=dst;lift--) //电梯到达目的楼层之前往上走{Display(lift,0); //每到达一楼就显示该楼层数KBScan();Destination(); //读取点阵键盘if(request[lift-1]==1)//若请求到达的楼层在所在楼层和目的楼层之间则停下闪烁显示并将其对应的request清零{Delay_ms(3000);if(P0_4==1&&lift==2);else{request[lift—1]=0;}switch(lift){case1:{P0_0=0;P0_3=0;break;}case2:{P0_1=0;P0_5=0;break;}case3:{P0_2=0;P0_6=0;break;}default:{break;}}Flash(3);Delay_ms(800);}else{Delay_ms(3000);}}lift++;}voidmain(){P0=0;while(1) //电梯程序的循环{
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗工程施工合同范例
- 原料代理采购合同范例
- 厨房橱柜工程合同范例
- 临时合伙合同范例
- 人员租聘合同范例
- 公交宣传合同范例
- 储罐借用合同范例
- 厂房承包建筑合同范例
- 加工机械租赁合同范例
- 三轮车及司机租赁合同范例
- 慢性肾衰竭的护理病例讨论
- 医疗机构医疗废物管理规范考试试题及答案
- 铁路基础知识题库单选题100道及答案解析
- 小学家长及学生投诉处理制度
- 江苏省连云港市2024-2025学年高三上册开学摸底考英语试题(附答案)
- 新时代青年的使命与担当7
- 四年级语文下册第六单元【集体备课】(教材解读+教学设计)
- 2024版义务教育小学科学课程标准
- 八年级学生学情分析-20211031092110
- 健身健美课件
- 2024关于教师的民主评议个人年度工作总结
评论
0/150
提交评论