单片机毕业设计
中图分类号:
UDC: 图书馆收藏 密级: 编号:1331
毕业设计
交通信号灯模拟控制系统设计
--
专业名称: 建筑电气工程技术(楼宇智能化)
班 级:
学 制:
学 号: 学历层次:
指导教师:
评 阅 人: 建电09-2 三年 0960213226 专 科 李德路
论文(设计)提交日期: 2012年 6 月 15 日
论文(设计)答辩日期: 2012年 6 月 19 日
江
苏建筑职业技术 学院 二〇一二年六月十五日
专业、班级 姓名 日期
1、设计题目
2、设计指导教师(签名)
3、设计评阅人(签名)
4、评定意见及成绩
年 月 日
中文摘要
本文研究的是以AT89C51单片机为控制器的智能交通灯控制系统,该系统实现了有交通灯指示的东西通行,南北通行。通行指示灯采用红黄绿各3个共计12个单色发光二极管。红灯停,绿灯直行及左右拐。本设计是以软件和硬件相结合的方式来实现,文中给出了具体的硬件电路图和软件流程图及程序源码。
关键词:智能交通灯,AT89C51,LED单色发光二极管
目 录
1. 引言 .......................................................... 1
2. 方案设计及基本要求 ............................................ 3
2.1方案设计 ..................................................... 3
2.1.1交通灯控制方法简介 ....................................... 3
2.1.2交通灯控制系统的总体方案设计 ............................. 3
2.2交通灯控制系统基本要求 ....................................... 3
3. 交通灯系统硬件设计 ............................................ 4
3.1单片机概述 ................................................... 4
3.2 AT89C51单片机 ............................................... 5
3.2.1 AT89C51简介 ............................................. 5
3.2.2 AT89C51主要特性 ......................................... 5
3.2.3 AT89C51特性概述 ......................................... 5
3.2.4 AT89C51的引脚功能 ....................................... 6
3.2.5运算器和控制器 ........................................... 8
3.2.6存储器 ................................................... 9
3.3交通灯控制系统工作原理 ....................................... 9
3.4交通灯控制系统组成 .......................................... 10
3.4.1交通信号灯控制系统组成 .................................. 10
3.4.2交通信号灯主控制系统 .................................... 10
3.4.3通行灯输出控制 .......................................... 10
3.5交通信号灯控制系统硬件设计 .................................. 11
3.5.1系统硬件组成及仿真图 .................................... 11
4. 系统软件设计 ................................................. 13
4.1程序流图 .................................................... 13
4.2软件应用 .................................................... 13
4.2.1 PROTEUS简介 ............................................ 13
4.2.2 Keil C51开发系统简介 ................................... 13
5. 系统调试 ..................................................... 15
5.1硬件调试 .................................................... 15
5.2软件调试 .................................................... 16
5.3 PROTEUS软件仿真 ............................................ 16
5.3.1仿真过程 ................................................ 16
6. 毕业设计心得体会 ............................................. 19
6.1设计过程中遇到的问题 ........................................ 19
6.2系统不足 .................................................... 19
6.3体会 ........................................................ 19
7. 结束语 ....................................................... 21
参考文献 ......................................................... 22
致谢 ............................................................. 23
附录:源程序: ................................................... 24
1. 引言
今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两块以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。现在交通系统已不能满足经济发展的需求。由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。在交通中管理引入单片机交通灯控
制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。
中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。
2. 方案设计及基本要求
2.1方案设计
2.1.1交通灯控制方法简介
目前,国内的交通灯设计方案有很多,有应用PLC对交通灯控制系统实现控制的设计;有应用单片机对交通灯控制系统实现控制的设计。交通灯一般设置在十字路口,用红、黄、绿两种颜色的指示灯来控制车辆通行。本设计采用标准AT89C51单片机作为控制器,直行的通行指示灯采用的是单色发光二极管。由于AT89C51单片机自身带有2个定时/计数器、5个中断源,端口刚好满足要求。该系统具有电路简单,设计方便,耗电少,可靠性高等优点。
2.1.2交通灯控制系统的总体方案设计
本设计研究的是基于AT89C51单片机的交通灯智能控制系统。根据交通控制系统的设计原理,阐述了硬件和软件方面开发的整个过程。主控系统采用AT89C51单片机作为控制器,控制左拐、右拐及直行的通行,占用端口少,耗电也最小。系统电源采用独立的+5V稳压电源,有各种成熟电路可供选用,使此方案可靠稳定。该设计可直接在I/O口上接按键开关,精简并优化了电路。
2.2交通灯控制系统基本要求
本系统需要采用MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器,实现以下功能:
1) 初始东西方向绿灯亮,南北方向红灯亮,东西方向通车。
2) 延时10s,东西方向绿灯熄灭,黄灯闪烁5次。
3) 黄灯闪烁后,东西方向红灯亮同时南北方向绿灯亮,南北方向开始通
车。
4) 延时10s,南北方向绿灯灭,黄灯闪烁5次,然后又切换成东西方向通
车,如此重复。
3. 交通灯系统硬件设计
3.1单片机概述
单片机是由运算器、控制器、存储器、输入设备以及输出设备共五个基本部分组成的。单片机是把包括运算器、控制器、少量的存储器、最基本的输入输出口电路、串行口电路、中断和定时电路等都集成在一个尺寸有限的芯片上。
通常,单片机由单个集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、4代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压、低功耗。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。它主要是作为控制部分的核心部件。因此,单
片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
3.2 AT89C51单片机
3.2.1 AT89C51简介
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
3.2.2 AT89C51主要特性
1) 与MCS-51 兼容;
2) 4K字节可编程FLASH存储器;
3) 寿命:1000写/擦循环;
4) 数据保留时间:10年;
5) 全静态工作:0Hz-24MHz;
6) 三级程序存储器锁定;
7) 128×8位内部RAM;
8) 32可编程I/O线;
9) 两个16位定时器/计数器;
10) 5个中断源;
11) 可编程串行通道;
12) 低功耗的闲置和掉电模式;
13) 片内振荡器和时钟电路。
3.2.3 AT89C51特性概述
AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部R
AM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
3.2.4 AT89C51的引脚功能
AT89C51为双列直插(DIP)式封装的51单片机芯片,有40条引脚,其引脚示意如图3.1所示。
图3.1 AT89C51单片机引脚图
各引脚功能说明如下: 主电源引脚
Vcc(40脚):接+5(1±20﹪)V电源正端;
Vss(20脚):接地。 I/O引脚
P0口(39-32脚):P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口(1-8脚):P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。
P2口(21-28脚):P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口(10-17脚):P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示: P3.0 RXD(串行输入口); P3.1 TXD(串行输出口); P3.2 /INT0(外部中断0); P3.3 /INT1(外部中断1); P3.4 T0(记时器0外部输入); P3.5 T1(记时器1外部输入);
P3.6 /WR(外部数据存储器写选通); P3.7 /RD(外部数据存储器读选通)。
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST/ VPD (9脚):复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG(30脚):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN(29脚):外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP(31脚):当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1(19脚):它在单片机内部是一个反向放大器的输入端,构成了片内振荡器。当采用外部时钟时,HMOS单片机的该引脚应接地;CHMOS单片机的该引脚作为外部振荡信号的输入端。
XTAL2(18脚):它在单片机内部是片内振荡器的反向放大器的输出端。当采用外部时钟时,HMOS单片机的该引脚作为外部振荡信号的输入端;CHMOS单片机的该引脚应悬空不接。
3.2.5运算器和控制器
AT89C51的运算器和控制器功能类似于一般微机中的微处理器(CPU),是单片机的核心部件,它决定了单片机的主要功能特性。它完成逻辑算术运算并协调单片机其它各部分的工作。各种算术、逻辑运算所涉及到的寄存器包括:累
加器ACC、寄存器B、暂存器1(TEMP1)和暂存器2(TEMP2)、程序状态字寄存器PSW,程序计数器PC,堆栈指针SP,数据指针寄存器DPTR等。它们位于CPU内部,又称CPU专用寄存器,以区别于I/O接口专用寄存器。
3.2.6存储器
MCS-51系列单片机存储器组成是所谓的哈佛结构,存储器的组织方式与通用单片机系统不同,包含程序存储器与数据存储器,其地址空间是相互独立的,而不是程序存储器与数据存储器统一编址。在AT89C51单片机中,程序存储器采用EEPROM,而数据存储器采用RAM。它们又可以进一步分成内部或外部两类。
程序存储器 程序存储器内部和外部是统一连续编址的,内部占用地址空间的低4KB,地址0000H~0FFFH,外部地址范围1000H~FFFFH,共60KB。程序存储器主要用来存放程序和常数。当程序计数器PC由内部ROM开始执行到外部ROM时,会自动寻址外接程序存储器。
程序地址空间原则上可由用户任意安排,但复位和中断源的程序入口地址在51系列单片机中是固定的,用户不能改变。入口地址见表3.1。复位后,CPU从0000H地址开始执行程序。其他地址为中断服务程序入口地址,响应某个中断时,将自动从其对应的入口地址执行中断服务程序。
表3.1AT89C51单片机复位、中断入口地址
3.3交通灯控制系统工作原理
本系统运用单片机对交通灯控制系统实施控制,通过直接控制信号灯的状态变化,指挥交通的具体运行。由此,本设计系统以单片机为控制核心,构成
最小系统,根据按键设置模块产生输入,由信号灯状态模块输出。系统进入工作状态,执行交通灯状态显示控制。
3.4交通灯控制系统组成
3.4.1交通信号灯控制系统组成
该交通信号灯控制系统有以下几个部分组成:晶振、复位电路、输入控制、单片机、LED单色发光二极管。
此系统核心元件为单片机AT89C51,对其编写相关程序来控制交通信号灯闪烁。系统共采用12个发光二极管来模拟各路交通信号灯,东西道通行10秒,南北道通行10秒,转换时黄灯闪烁5次。源程序采用C语言编写,并通过keil软件进行编译,最后倒入AT89C51单片机中,运行系统。设计好后通过PROTUES软件仿真,并调试。
3.4.2交通信号灯主控制系统
主控器采用AT89C51,是美国ATMEL公司生产的一款性能稳定、低功耗的单片机,兼容MCS-51系列产品指令系统及引脚。片内含4KB的可重复编程的Flash程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,使用5(1±20﹪)V的电源电压, 128×8位的内部RAM,4个8位的双向可位寻址的I/O端口,2个16位定时/计数器,6个中断源,AT89C51单片机可提供许多高性价比的应用,灵活应用于各种控制领域。
3.4.3通行灯输出控制
道口交通灯指示采用红黄绿各3个共计12个单色发光二极管。道口指示灯电路如图3.2所示
图3.2交通信号灯位置图
3.5交通信号灯控制系统硬件设计
3.5.1系统硬件组成及仿真图
根据要实现的具体功能,经过比较,我选用AT89C51单片机及外围器件构成最小控制系统,用红、黄、绿各4个共12个单色发光二极管显示实现交通控制功能。硬件仿真图如图3.3所示:
图3.3交通信号灯硬件仿真图
4. 系统软件设计
4.1程序流图
软件部分采用模块化程序设计的方法,由单片机控制主程序、数码管显示组成。系统软件设计是在KeilC编译环境下进行的,由于C语言程序可移植性好,所以提高了编程的效率。软件程序流程图如图4-1所示。
4.2软件应用
4.2.1 PROTEUS简介
Proteus软件不仅具有EDA工具软件的仿真功能,还能仿真单片机及外围器件Proteus从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。在编译方面,它支持IAR、Keil和MPLAB等多种编译器。
4.2.2 Keil C51开发系统简介
Keil C51是51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,生成的目标代码效率非常之高,多数语句生成的汇编代码紧凑,容易理解。在开发大型软件时更能体现其高级语言的优势。
图4.1交通信号灯软件流程图
5. 系统调试
5.1硬件调试
模拟程序调试
先编写一个简单无误的程序,写入AT89C51芯片,检查LED灯是否可以正常显示,如果不能正常显示,则一一进行排查。如果能正常显示,则说明整体电路没有问题,可以进行软件调试。在这里使用的是一个简单的闪烁程序:
#include
#define uchar unsigned char #define uint unsigned int sbit LED=P1^0; //延时
void DelayMS(uint x) { } //主程序 void main() { }
经测试,LED灯正常闪烁,整体电路图没有问题。
uchar i; while(x--) { }
for(i=0;i
while(1) { }
LED=~LED; DelayMS(150);
5.2软件调试
当程序编写无误后再将程序写入AT89C51芯片,观察电路有效果出来。如无法正常显示,可能是程序编写错误,继续改正。如果检查程序无误,但是结果显示还是不正确,则有可能是原件损坏。将程序进行编译后,打开AT89C51单片机的元件属性编辑对话框。在Proteus当硬件调试完毕后,可进行软件调试。首先编写程序,检查程序编写是否正确后,单击文件夹图标,选择“程序JTD.hex”文件后,即可对系统进行仿真。
5.3 PROTEUS软件仿真
5.3.1仿真过程
状态一:东西道亮绿灯10秒、南北道亮红灯;如图5.1。
状态二:东西道绿灯停,黄灯闪烁5次、南北道继续亮红灯;如图5.2。 状态三:东西道亮红灯、南北道亮绿灯10秒;如图5.3。
状态四:东西道继续亮红灯、南北道绿灯停,黄灯闪烁5次;如图5.4。 然后转到状态一循环
图5.1状态1
图5.2状态
2
图5.3状态3
图5.4状态4
6. 毕业设计心得体会
6.1设计过程中遇到的问题
因为开始对单片机相关软件的不熟悉,在过程中经常遇到一些问题,首先在安装Keil编程软件时,我总是安装不上,安装了也无法使用。总算安装好后,使用了几分钟就自动关闭了。后来我请教了好几个同学,还是没有解决。最后还是上百度搜索了一下才知道原来是我用的程序不稳定。我找李老师要了一分稳定的装上去总算能用了。使用Keil程序编程时,文件要先保存成xx.c的格式,然后使其生成xx.hex的文件再进行仿真,开始时我经常忘记,这导致我无法进行仿真。还有文件保存在默认的文件夹里不要随意改变文件夹,防止找不到文件。其次,在搭接仿真电路时,有一个LED灯的线没有接上,运行时对应的LED灯不亮。
6.2系统不足
系统设定中没有LED数码管倒计时程序,特种车辆放行程序,左拐直行分开显示,没用定时器时间不精确以及自动根据车流改变红绿灯时间,此外,还没有充分考虑的把现代管理、人工智能运用到交通的控制中,来计算交通控制点之间的距离,来更合理的安排红、绿灯的持续时间,使城市的交通管理更加人性化。使人们远离目前的交通拥塞的现象。
6.3体会
本设计系统是基于单片机的模拟交通灯控制系统,具有一定的实际意义。通过本次设计很好的完成了以单片机为核心,通过LED灯完成了十字路口的工作状态的模拟。其运行可靠,操作方便,适用性强,可以广泛应用于城市路口,具有较大的推广价值。
由于时间比较紧张,其中不免出现一些不足的地方,但是,在短暂的时间内,从对题目的分析到方案的确定,再到软件的模拟,最后通过硬件的调试,都达到了预想的效果。
在这次毕业设计中我收获很多。首先,在知识方面:经过这次毕业设计,我对大学几年中所学的专业知识有一个良好的回顾和总结。平时学的知识在这里得到了综合运用,使我对所学的专业知识有了更深的理解;使我学会如何将
理论知识运用到具体的实用领域中。同时在设计的过程中,我还接触到很多新的知识。
其次,在能力方面:在设计过程中,我需要查找资料,找工具书,需要将所学的知识综合,需要学习新的知识补充,需要与老师交流,这些都锻炼了我运用现有知识的能力。学到知识又能应用到实践中去才是最重要的。
再次,我的个人素质也得到锻炼。在设计过程中,它需要耐心、毅力和解决问题的能力。碰到困难不能后退和放弃,要有不达目的不罢休、持之以恒的精神。
当然,由于我的知识和能力有限,有很多不足之处,恳请老师指教。
7. 结束语
通过这次交通灯的毕业设计,我在指导老师李德路老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,这对我今后进一步学习计算机方面的知识有极大的帮助。使我得到了一次用专业知识、专业技能分析和解决现实问题的能力。使我在单片机的基本原理、单片机应用学习过程中,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为一名合格的应用型人才打下良好的基础。本次毕业设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更深层次的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流得到解决。
还有交通灯是我们生活中非常常见的一种东西,对于我们学以致用的这种能力得到了很好锻炼,能够为我们以后的工作于学习打下基础。
由于本人的水平有限,设计中难免会有一些不合理的部分,系统的稳定性还有待提高。
参考文献
[1]吴晓苏编著《单片机原理与接口技术》人民邮电出版社,2009
[2]杨路明编著《C语言程序设计教程》北京邮电大学出版社,2005
[3]楼然苗、李光飞编著《单片机课程设计指导》北京航空航天大学出版社,2007
[4]曹建树、夏云生、曾林春编著《51单片机实用教程》中国石化出版社,
致谢
三年的大学时光在不知不觉间已经走到末尾,在这三年的时光中很多老师都给予我们很多帮助。不管是侯老师对我们的严格要求,还是沈老师的严格把关,亦或是刘老师在课堂上经常给我们讲解的社会经验,现在看来都体现出老师们对我们无微不至的关心和照顾。当然在这次毕业设计中,李老师给了我很大的帮助。李老师用自己的下班时间晚上在教室给我们进行毕业设计辅导,使我们不仅完成了毕业设计还学到了更多。
值此毕业答辩之际,真心感谢每一位帮助我的老师和同学。也祝愿其他每一位参加答辩的同学都能答辩成功精彩
附录:源程序:
#include
#define uchar unsigned char
#define uint unsigned int
sbit RED_A=P0^0; //东西向灯
sbit YELLOW_A=P0^1;
sbit GREEN_A=P0^2;
sbit RED_B=P0^3; //南北向灯
sbit YELLOW_B=P0^4;
sbit GREEN_B=P0^5;
uchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型变量 //延时
void DelayMS(uint x)
{
}
//交通灯切换
void Traffic_Light()
{
switch(Operation_Type) { case 1: //东西向绿灯与南北向红灯亮 RED_A=1;YELLOW_A=1;GREEN_A=0; RED_B=0;YELLOW_B=1;GREEN_B=1; DelayMS(10000); Operation_Type=2; break; uchar i; while(x--) for(i=0;i
} } DelayMS(300); YELLOW_A=~YELLOW_A;GREEN_A=1; if(++Flash_Count!=10) return; //闪烁5次 Flash_Count=0; Operation_Type=3; break; case 3: //东西向红灯,南北向绿灯亮 RED_A=0;YELLOW_A=1;GREEN_A=1; RED_B=1;YELLOW_B=1;GREEN_B=0; DelayMS(10000); Operation_Type=4; break; case 4: //南北向黄灯闪烁5次 DelayMS(300); YELLOW_B=~YELLOW_B;GREEN_B=1; if(++Flash_Count!=10) return; Flash_Count=0; Operation_Type=1;
//主程序
void main()
{
}
while(1) Traffic_Light();