基于AVRAtmega128设计的小型电梯控制系统一实验目的本实验是一个综合性的实验,用到了实验箱上的大多数资源,能很好的检验学习的情况,对熟悉实验箱的应用和操作有很大的好处。二实验内容本实验是基于AVRATmegal128开发的电梯控制系统,由于本系统的硬件主要是依靠实验箱,所以所实现的功能没有实际的客运电梯的强大,但是本系统可以应用于运行条件不是特别严格的环境下,如小型货运电梯。三硬件原理为了加强自己对硬件部分的了解,提高自己的编程水平,尽可能多的使用现有实验箱资源,在这个系统中,加入了以下硬件:1、4*4键盘2、8*8LED点阵(LDM)3、TEXTLCD4、7段led数码管5、外部中断6、音频输出7、步进电机下面是各部分的硬件PCB:1、ATmegal1282、8*8LED点阵(LDM)3、TEXTLCD4、外部中断5、音频输出7、步进电机8、4*4键盘和7段led数码管四程序流程图TEXTLCD初始化,其上显示欢迎字幕,并要求用户进行楼层选择调用键扫描函数key_scan();通过扫描出来的键值来确定用户所要到的楼层数将上次运行的楼层数保存到参数d中并判断当前所选楼层bin与上次楼层之间的大小情况If(bind)If(bin=1)If(bind)调用print_message();TEXTLCD显示“THELIFTISRUNNING!”调用initializemotor();初始化电机,电机开始正转调用matrix(font_A);进行LDM显示,楼层数每变化一次,参数f自动加一(f用来存放当前电梯运行处的楼层数)判断当前楼层数是否与目标楼层数相等是调用function();电机停转,TEXTLCD显示,提醒语音响起,点阵静态现实当前已到楼层数否ou调用键扫描函数key_scan();扫描到关门键(数字'f')调用initializemotor();初始化电机,电机开始反转调用matrix(font_A);进行LDM显示,楼层数每变化一次,参数f自动减一(f用来存放当前电梯运行处的楼层数)(bind)(bin=1)判断当前楼层数是否为1否ou调用function();电机停转,TEXTLCD显示,提醒语音响起,点阵静态现实当前已到1层是系统主函数流程图电机中断流程图中断初始化给定中断初值内部计数器控制,中断初值自动加1,达到溢出值时触发中断给电机送入相序,使电机旋转