1、 I 目 录 摘要 1 一、 设计目的 2 二、 设计任务和要求 2 三、 设计原理分析 2 四、 硬件模块及功能 3 1、 个模块功能 3 2、 材料清单4 3、 硬件图 5 五、 软件模块及功能 6 1、 个模块功能原理 6 2、 程序清单6 3、 程序流程图 9 六、 调试运行 10 1、 程序编译链接10 2、 观察模拟仿真11 七、 心得体会 12 参考文献 12 致谢 13 1 摘 要: 单片微型计算机(单片机)自问世以来,因其小巧灵活、成本低、控制能力强、易 于产品化等优势,在社会各领域中得到广泛的应用。 根据 89C52 单片机的特点及 交通灯在实际控制中的特点,本文提出一种利
2、用单片机自动控制交通灯及时间 倒计时显示的方法,将整个系统缩小在一块小小的单片机上,大大提高了产品 的经济性和轻便性。设计过程包括硬件电路设计和程序设计两大步骤。硬件电 路其结构比较简单, 主要包括核心器件单片机、 12 只二极管组成的模拟交通灯、 复位电路、振荡电路、显示数码管模块。单片机开发中除必要的硬件外,同样 离不开软件,我们写的汇编语言源程序要变为 CPU 可以执行的机器码有两种方 法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。 机器汇编是通过汇编软件将源程序变为机器码, 用于 MCS-51 单片机的汇编软件 有早期的 A51,随着单片机开发技术的不断发展,从
3、普遍使用汇编语言到逐渐 使用高级语言开发,单片机的开发软件也在不断发展,Keil 软件是目前最流行 开发 MCS-51 系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 Keil 即可看出。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功 能强大的仿真调试器等在内的完整开发方案, 通过一个集成开发环境 (uVision) 将这些部份组合在一起。 本文就用 Keil 编程, 相比硬件设计程序设计较为复杂, 必需同时考虑灯控制、时间显示、紧急开关等问题,并且具有一定的 C 语言基 础和一定的思维能力及逻辑能力。本文对十字路口状态预设为两种,一种是正 常状态,即倒计时 60 秒,交通灯循环亮,另一种是故障或紧急状态,即无论交 通灯处于何种状态只要按下紧急开关,就立即打开相应的绿灯,另一方向则亮 红灯,当再按起开关则反向,并从 60 秒倒计时,恢复正常状态,分别用黄、红、 绿色灯的不同组合来表示。本系统采用单片机 AT89C52 为核心器件来