为了更有效的进行电梯控制,现在使用最左边的数码管表示电梯上升和下降状态,使用另外一个一个数码管表示电梯此时所在的楼层,使用按键来控制电梯上升或者下降的状态。在每层楼之后需要进行判断上升或者下降。如果是在上升过程中,应先判断是否继续上升,然后在判断是否下降。如果是在下降过程中,应先判断是否继续下降,在判断是否上升。在上升改变为下降状态时,或者下降改变为上升状态时。数码管的状态应该相应改变
运用单片机的按键模拟电梯的楼层按键系统,可以在由一楼上升到八楼过程中,按下下降按键则可以改变上升状态变为下降状态。然后在八楼到一楼的下降过程中,按下上升按键则可以改变下降状态为上升状态。在任意楼层按下上升或者下降按键,都可以产生相应的上升或者下降的状态,如下图所示
一个完整的电梯控制系统相当于一个简单的单片机系统,该系统是首判断有无按键按下,有按键按下后判断所在按键的楼层然后对按键的所在的楼层与电梯的所在的楼层作比较,然后判断电梯的升降问题,然后运用延时函数来延时电梯门开启的时间和电梯显示灯的时间,如果没有按键按下,电梯则不动处于原来的楼层,从而实现节省电力的效果。
这部分中定义了一些全局变量的数组和变量以及位标志,只是些定义的东西不需要画流程图了。这部分程序如下:
Proteus软件用于系统的仿真,编译软件采用keil UV3。程序的仿真用英国的labcenter公司的Protens V7.13。其果如下:加电后的结果如图此时电梯初始位置在0层
经过调试之后,使用单片机来模拟电梯的运行过程的是可行的,但是由于我选用的是方案一,模型比较简单,功能也较为单一。仅能上下升降而不可以选择任意的楼层停止。
改进的话就应该如同方案二一样,设计多个按键就可以对不同楼层进行操作。但是由于自身水平有限,对于该段操作流程理解的逻辑流程还是有点些乱,编写的程序也无法使用,凯发K8一触即发所以在接下来的学习中k8凯发,应该根据自身的对于单片机掌握的情况对单片机进行一些有针对性的学习。因为51单片机确实比较基础,仅有8位IO口,比较容易掌握。难的是自己的逻辑思维能力和C语言应用能力,能讲模型转化为程序编辑出来。在参考资料的过程中,有很多想法也设计了很多程序但是这些程序都有着很多的缺陷仅能完成自己想做的部分功能。