快捷搜索:  汽车  科技

简单的51单片机交通灯控制代码(设计一款交通灯控制系统的编程思路)

简单的51单片机交通灯控制代码(设计一款交通灯控制系统的编程思路)在状态参数赋值的子函数里,可以用switch case语句,也可以用数组加索引值的方式,一般来说switch比较直观,数组要求细心。图四. 状态函数处理内容图二. 定时器分析由于中断里面不宜处理太多的事情,所以设置一个全局标记变量flag,来传递秒信号给主函数。那么主函数做什么呢?

接前文《设计一款“交通灯控制系统”的原理图》,前面我们做好了电路准备,现在需要编写程序,那么如何开始呢?今天仅从思路着手,简单分析一下。

首先一个最重要的共同点是时间,秒信号:

简单的51单片机交通灯控制代码(设计一款交通灯控制系统的编程思路)(1)

图一.分析显示功能需要的共同点

需要秒信号,那么就少不了定时,软件延时显然不方便,那就定时器定时:

简单的51单片机交通灯控制代码(设计一款交通灯控制系统的编程思路)(2)

图二. 定时器分析

由于中断里面不宜处理太多的事情,所以设置一个全局标记变量flag,来传递秒信号给主函数。

那么主函数做什么呢?

简单的51单片机交通灯控制代码(设计一款交通灯控制系统的编程思路)(3)

图四. 状态函数处理内容

在状态参数赋值的子函数里,可以用switch case语句,也可以用数组加索引值的方式,一般来说switch比较直观,数组要求细心。

下来可以根据这个大的轮廓做一个函数结构图,就是所有子函数的列表,然后根据函数需要,分析需要哪些变量和数组?(本文略)。

通过以上分析,软件大概的轮廓已经有了,对于编写函数就是老一套了,先搞个头文件,从先前的程序里复制粘贴一些内容,再针对原理图定义各个端口,然后就是在主程序里做一些变量的定义,数组的定义,总之一个原则:就是先做一个个简单的子函数,个个编译击破,然后大的函数调试通过,最后总的调整。

这里有几个主要的点,例如:定时器初始化、中断、数码管显示函数、按键函数等等,完全可以把以前的函数粘贴过来,稍作修改即可;对于初学者,按键执行函数可能是个相对比较复杂的过程,这建议最后完成,否则一开始给自己施加很多阻力和时间的消耗很不值得。开始调试的时候可以人为调整函数的执行顺序,等调试好了再恢复原位。

以上是对程序设计的一点肤浅的分析,如果您有什么好的想法,欢迎留言;如果初学者对某个函数的处理有问题,也可留言,我会根据反馈情况在后续文中做详细的分析,否则我这边写的再多也不一定是阅读者想看的。。。

猜您喜欢: