51最简单交通灯单片机c51交通灯

分类:最简单交通灯单片机c51/微机應用 17:42

——请电气、智能、电力各班同学及时编写程序,在下次上机时可直接进行调试,否则难以完成任务.继保班也要求自行编写程序. 设计一个簡单的交通灯程序,有关条件和要求如下: 1、 条件:十字路口,4个方向各装设一对红、绿灯,这8个灯采用与P1口相连的8个LED来模拟,其中路口东的红绿灯对應P1.0、P1.1,路口南的红绿灯对应P1.2、P1.3,路口西的红绿灯对应P1.4、P1.5,路口东的红绿灯对应P1.6、P1.7.可采用ledkey仿真实验板来模拟该实验. 2、 程序要求:起始状态为东西向红燈和南北向绿灯同时闪烁8次,之后东西向红灯亮和南北向绿灯亮,延时1s;然后南北向红亮和东西向绿灯亮,延时1s;如此循环下去. 3、 要求延时1s时间为精確延时,误差越小越好,最简单交通灯单片机c51fosc=12MHz. 4、 采用Keil uvision2和ledkey仿真实验板来调试设计的程序.

}

前面我们用两篇文章分别介绍了設计要求和原理图内容我们已经对交通灯设计有了初步了解,这里我们继续学习程序的编写。

这一篇我们用到的工具软件有:

按照我們之前在第一篇文章里绘制的“基本功能和设计思路的图表”内容在“设计思路”里面列出了两个方法,我们选择第一种先制作仿真後制作实物。

01.分析程序中用到的内容

可能一开始让人觉得无从下手这个程序到底怎么写,写什么内容

不着急,我们回顾最开始的内容那时候我们画了一个“基本功能和设计思路的图表”,现在就根据这个图表给它添砖加瓦,增加程序的内容有了内容,就能做出控淛流程有了控制流程,就会有程序……

程序设计思路整理--思维导图

交通灯设计——从功能产生程序内容

从图中可以看出有两大部分:

┅是“功能”,这是我们第一篇文章里面的内容;

二是“程序内容”这是根据“功能”的需求,制定出的程序要编写的内容

后面,我們就根据程序内容来完成每个小定义、小函数的编写直到给程序准备好所有的“材料”,那么搭建一个完整的程序结构也就水到渠成了

02.确定程序控制流程

有了内容,把它们合理安排就可以做出我们原先设计的功能。

程序的流程用图来表达会比语言描述更加形象和直观虽然在实际程序编写过程中不一定会完全按照这个结构完成任务,但是事先有一个清晰的思想脉络,是非常必要的

下面是一个简单嘚主程序流程图:


交通灯控制主程序流程图

这里贴一张程序完成后的正常运行截图:


04. 选择编写和编译程序的工具

对于51最简单交通灯单片机c51,編译器不二的选择当然是Keil C51但是编写程序的编辑器可以有很多选择。

要注意的一点是用编辑软件编写源码时,编译软件Keil不要点保存文件(当然工程可以保存)只编译,这样就不容易出现乱码

git也是必要的工具,对于最简单交通灯单片机c51新手来说暂时不用也不影响

函数較多,首先是编写头文件定义端口;其次编写单个程序,逐一测试最后整合起来,用主函数来控制执行顺序

为了思路清晰,这里采鼡了状态切换的方式也加入了模式切换。实际简单程序可以只用状态来切换调理会更清晰。

主要的子函数有:定时中断、按键检测、數码管显示、倒计时计算、信号灯控制等

mainDisplay(); // 主显示子程序(包含按键检测和执行子程序) // 如果为设置时间模式 mainDisplay(); // 主显示子程序(包含按键检測和执行子程序) //如果中断计数1S时间到

上面给出编写主函数的例子。

一边编写程序一边编译成代码,用仿真加载运行调试不断修改完善。

同样的控制功能程序有各种各样的写法,通常采用一种自己习惯的方式但是也应该不断学习别人的优点,改变自己的的不好习惯

当然,笔者更趋向于用实际电路调试毕竟仿真和实际硬件往往存在不可预知的差异,有时候会出现很多奇怪的问题而真实板子就没囿哪些问题,前提是硬件要正常

}

基于51最简单交通灯单片机c51智能交通灯设计

最简单交通灯单片机c51+最小系统+数码管驱动显示模块+指示灯显示模块+按键模块

1. C语言完整源程序

}

我要回帖

更多关于 最简单交通灯单片机c51 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信