课程设计(论文)
课程名称 单片机课程设计
学 院 自动化与电气工程学院
班级学号 1606030113
学生姓名 于凤明
指导教师 和晓军 李汇明
2018 年 7 月 18 日
1
课程设计任务书及成绩
学生姓名
于凤明
班级学号
1606030113
课程名称
题目
单片机课程设计
交通灯控制设计
课程设计目标与任务、计划与进度安排:
实践教学要求与任务:
1、了解交通灯的基本工作原理;
2、用 Proteus 模拟实现交通灯控制;
3、用 Keil C51 编程实现上述功能;
4、用 Keil 与 Proteus 联调。
工作计划与进度安排:
17 周查找相关资料。
18 周详细设计。
19 周程序测试,书写论文,进行答辩。
评语:
成绩:
指导教师:
专业负责人:
学院教学副院长:
和晓军 李汇明
2018 年 7 月 18 日
2018 年 7 月 18 日
2018 年 7 月 18 日
2
目录
1 引言 ··········································································································· 1
2 应用软件介绍 ······························································································ 1
3 硬件资源介绍 ······························································································ 3
4 设计课题 ···································································································· 6
5.方案设计 ····································································································· 7
6 硬件系统设计 ······························································································· 8
7 软件系统设计 ······························································································· 9
8 电路仿真 ·································································································· 14
9 设计总结 ··································································································· 17
10 参考文献 ·································································································· 17
1
1 引言
交通事业蓬勃发展,交通流量年年增长,大、中、小城市的汽车、摩托车等各种车辆
与日俱增,道路交通繁忙,经常有严重堵车现象,特别是在交叉口,机动车、非机动车、
行人来往非常混乱,为了在叉口的各条干道实现合理的科学分流。本人根据单片机具有物
美价廉、功能强、使用方便灵活、可靠性高等特点,提出了一种用 STC89c51 单片机自动
控制交通信号灯及时间显示的方法,同时给出了软硬件的实现方法,为交通指挥自动化提
供了一种新的廉价手段,具有一定的推广意义。本文介绍了控制基本原理以及控制的表现,
同时也介绍了城市交通信息系统的设计目标, 开发途径及其系统结构与功能和数据地理编
码、建库, 同时, 论述了系统中交通现状、交通管理、交通规划及背景信息查询模块的建造
及应用。介绍了用于城市交叉路口的三色程控交通信号时间显示器的研制方案,对其电源
供电、发光二极管构成的负载结构、灯色时间检测都给出了精巧合理的优化结构,大幅度
地提高了产品可靠性并降低了制造成本。
2 应用软件介绍
2.1 C 语言介绍
C 语言是于 1972 年由贝尔实验室的 Dennis Ritchie 在 B 语言的基础上开发出来的。最
初的 C 语言是作为 UNIX 操作系统的开发语言而被人们所认识。此后,贝尔实验室对 C 语
言进行了多次改进和版本的公布,C 语言的优点才引起人们的普遍注意。随着 UNIX 操作
系统在各种机器上的广范使用,使 C 语言得到了迅速推广。1978 年由 Brian W. Kernighan
和 Dennis M. Ritchit 合著了《The C Programming Language》一书,该书对 C 语言作了详细
的描述,这本书对 C 语言发展影响深远,并成为了后来 C 语言版本的基础,称之为标准 C。
随后 C 语言在各种计算机上快速得以推广,并导致了许多 C 语言版本的出现。
1
2.2 Keil C51
Keil C51 是美国 Keil
Software 公 司 出 品 的 51
系列兼容单片机 C 语言
软件开发系统,与汇编相
比,C 语言在功能上、结构
性、可读性、可维护性上有
明显的优势,因而易学易
用。Keil 提供了包括 C 编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器
等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行
Keil 软件需要 WIN98、NT、WIN2000、WINXP 等操作系统。
2.3 Proteus
Proteus 软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件。它不仅具有
其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单
片机及外围器件的工具。
虽然目前国内推广刚起
步,但已受到单片机爱好
者、从事单片机教学的教
师、致力于单片机开发应
用的科技工作者的青睐。
Proteus 是 英 国 著 名 的
EDA 工具(仿真软件),从
2
原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现
了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模
型 仿 真 软 件 三 合 一 的 设 计 平 台 , 其 处 理 器 模 型 支 持 8051 、 HC11 、
PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等,2010 年又增加了 Cortex
和 DSP 系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持 IAR、Keil
和 MATLAB 等多种编译器。
3 硬件资源介绍
3.1 单片机简介
单片机(MCU)又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个
计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质
量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计
算机原理与结构的最佳选择。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过
程的实时控制和数据处理,广泛使用的各种智能 IC 卡,民用豪华轿车的安全保障系统,
录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单
片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、
开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
3.2 89C51 简介
89C51 是 一 种 带 4K 字 节 闪 烁 可 编 程 可 擦 除 只 读 存 储 器 ( FPEROM — Flash
Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS8 位微处理器,
3
俗称单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高
密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于
将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 89C51 是一种高效微
控制器,89C2051 是它的一种精简版本。
3.3 89C51 单片机的片内逻辑结构
3.4 89C51 硬件资源
(1)微处理器(CPU):一个 8 位 CPU。
(2)数据存储器(RAM):片内为 128B,片外最多可外扩 64KB。
(3)程序存储器(4KB Flash ROM):片内为 4KB,片外最多可外扩程序存储器至 64KB。
(4)4 个 8 位可编程并行 I/O 口(P0、P1、P2、P3),1 个全双工的串行口。
(5)定时器/计数器:片内有 2 个 16 位的定时器/计数器,具有 4 种工作方式。
(6)中断系统:具有 5 个中断源,2 级中断优先级。
4
(7)特殊功能寄存器(SFR): 共有 21 个特殊功能寄存器,用于 CPU 对片内各功能部件
进行管理、控制和监视。
(8)1 个看门狗定时器(WDT)。
注:程序状态字寄存器(PSW):
5