单片机控制十字路口交通灯概要 下载本文

课程设计报告

时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。 3.4软件设计

首先对程序进行模块化处理,根据要求的4路口交通灯的具体功能,对程序进行模块化处理。

根据不同功能的分配可以将程序划分为以下几个模块:

主模块、MAX7219初始化模块、初始化模块(主函数初始化)、定时器模块、MAX7219地址和数据发送模块、数字变化处理模块。

由子模块的功能,可以设计绘制出各模块的程序流程图。各子模块之间可能会有联系,也可能没有联系,最后由主模块对其进行必要的汇总处理,实现要求的功能。流程图绘制完毕后,可以将流程图作为编程的依据,进行编程操作。如此,可使程序简化处理,减少错误,提高程序的编写效率。给自己带来不少的方便之处。

程序流程图:

1、主模块: 2、MAX7219初始化模块: 3、初始化模块: 4、定时器模块: 9

课程设计报告

5、MAX7219地址和数据发送模块: 6、数字变化处理模块: 本着简洁清晰明了易懂的目的,对程序模块化处理,不同模块执行不同的功能。就如同多元化的大家庭一样,进行不同的分工,个分工之间也可能存在联系。最后,由主模块进行总的调用处理,从而将零散的分工汇聚一起,共同实现最终的目的。

模块说明:

主模块:采用顺序循环程序设计,进行汇总处理,实现最终的目的。即实现交通等控制器功能,东西通行时间为80s,南北通行时间为60s,缓冲时间为3s。

10

课程设计报告

MAX7219初始化模块:顺序调用MAX7219地址、数据发送模块,对MAX7219进行初始化处理。

初始化模块:采用顺序程序对定时器中断初始化,开中断定时器进行计时。并对相应变量和交通灯做初始化出处理。

数码管数字显示处理模块:调用数字变化处理模块,得到正确的跳变时间,根据时间的变化做出相应变化,并作出相应的处理。调用MAX7219地址和数据发送模块使数字信息在数码管上正确地显示出来。

MAX7219地址和数据发送模块:根据MAX7219地址、数据发送时序图,对MAX7219做相应处理,使其能够发送一位地址和数据。

数字变化处理函数:当数字变量变为0时,相应方向的数字变化标志增1,并根据数字变化标志当前值,使数字变量做出相应的变化,并使相应方向上相应的灯发亮。以实现数字变量从0的正确跳转和交通灯的正确发亮。

定时器模块:对定时器重新赋初值,并使时间标志t加1计时。

11

课程设计报告

4软件仿真

12