完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
单片机新手求助~~~~
想用按键键入想去的楼层,LED灯指示想去的楼层 数码管指示当前所在楼层 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 想的简单,但做起来感觉好难好复杂,呃~~~~~~~~~我太弱了,自己写了个程序如下,望有人指点,反正不对,谢谢大家! main() { IE=0X82; TMOD=1; TH0=0XDC; TL0=0X01; TR0=1; a1=1; a1=1; a4=1; a5=1; a6=1; a8=1; a9=1; a12=1; while(1) { switch(floor) //检测楼层 { case 1: if(!(a9&a12)) //1层,如果1层电梯室按钮或者电梯内1层按钮按下 ,开门,清一层和电梯内1层按钮 { open(); a9=1;a12=1; } while(a1&a4&a5&a6&a8&a9&a12); //如果没有按钮按下,停止,有则继续 if(!(a9&a12)) //如果还是一楼按,跳出swtich,因为楼层还在1楼,还在case1 所以,开门,清一层和电梯一层, { floor=1;break; } delay_1s(); //如果按下的不是一层的,楼梯上升,楼层变2 跳出。 floor=2; break; case 2: if(!(a5&a6&a8)) //如果 电梯内外有2层的按钮按下,开门,清2层键 { open();a5=1;a6=1;a8=1; } while(a1&a4&a5&a6&a8&a9&a12);//没有按键,停止 if(!(a1&a4)) //如果3层按, 上升,楼层变3 { delay_1s();floor=3;break; } if(!(a5&a6&a8)) //如果2层按,跳出switch重新检测,然后开门,清二层 { floor=2;break; } if(!(a9&a12)) //如果1层按 下降 楼层变1 { delay_1s();floor=1;break; } case 3: if(!(a9&a12)) //楼层3,如果3层按,开门 清三层 { open();a9=1;a12=1; } while(a1&a4&a5&a6&a8&a9&a12); if(!(a9&a12)) //如果三层按,跳出,开门,清3层 { floor=3;break; } delay_1s();floor=2;break; //其他层按,下降,楼层变2 |
|
相关推荐
3个回答
|
|
程序没看,有点乱,先把控制原理/方式理清楚,后面才好做
|
|
|
|
自己先写个流程图,方便你思维
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
205 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1253 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
848 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
853 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12009 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 12:35 , Processed in 0.556331 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号