版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、xxxx毕毕 业业 设设 计计 任任 务务 书书专业专业 应用电子技术应用电子技术年级年级 20 xx 级级班级班级 一班一班姓名姓名 xx 学号学号 20 xx0203052毕业设计指导须知一、毕业设计是高职教学过程中一个十分重要的环节。是锻炼学生运用所学知识正确分析和解决实际问题的一个重要方面,也是高职培养应用型专门人才的要求。二、导教师应为具有讲师以上或相应职称的有关专业人员,且专业对口(指所指导专业应同所聘教师专业职称相一致) 。经系、教务处审查同意后,才能指导学生的毕业设计。三、学生应以严肃认真,实事求是的态度完成设计。要独立思考,自己动手,不得抄袭或找人代笔。四、毕业设计选题要符合
2、专业培养目标的要求。论文(任务书)写作要做到论点明确、论据充分,论理透彻,语言准确恰当,书面整洁、字迹工整,图纸应清晰、工整,符合设计要求,符合国家有关标准和部颁标准。字数、图纸数量符合有关要求。并在规定的时间内完成。五、答辩过程中学生要严认真,文明礼貌,谦虚谨慎,认真回答答辩主持人,委员等提出的问题。六、填报有关表格时,应按项目要求逐项填实、填全、填清。学号20 xx0203052姓名xx学制三年专业应用电子技术年级20 xx 级教学班负责人xx班级1 班指导教师姓名xx职务或职称助教设 计 题 目模拟交通灯系统指导教师评语:成绩: 指导教师签名: 工作单位 年 月 日系复审意见:成绩: 复
3、审人签名: 职称: 公章 年 月 日教务处终审意见:公章 年 月 日答答 辩辩 情情 况况 记记 录录答 辩 情 况答 辩 题 目正确基本正确经提示回 答不正确未回答此表由主持答辩的同志填写。答辩委员会(或小组)评语:成绩: 主持答辩人签名: 职称: 月 日一、毕业设计的任务和具体要求:(一)任务1巩固和提高学生学过的基础理论和专业知识。2提高学生运用所学专业知识进行独立思考和综合分析、解决实际问题的能力。3培养学生掌握正确的思维方法和利用软件和硬件解决实际问题的基本技能。4增强学生对实际工艺技术、电子技术和设备技术等方面的认识,掌握分析处理方法,进行调试、计算等基本技能的训练,使之具有一定程
4、度的实际工作能力。5使学生掌握科研、资料查询的基本方法以及获取新知识的能力。6促使学生学习和获取新知识,掌握自我学习的能力。7通过参与企业实际工作,使学生了解社会和工作,在职业道德、社会公德和综合素质具方面得到提高,具备一定的实际工作能力和社会适应能。(二)具体要求1实事求是的态度完成设计,要独立思考,自己动手,不得抄袭或找人代笔。2使学生复习、巩固所学过的理论与专业知识,并予以适当的深化。3进一步训练学生的基本技能(如:搜集资料、整理数据、制表绘图、发现与分析问题、寻求解决问题的方案、撰写学术论文等)。4论文(任务书)写作要做到论点明确、论据充分,论理透彻,语言准确恰当,书面整洁、字迹工整,
5、图纸应清晰、工整,符合设计要求,符合国家有关标准和部颁标准。字数、图纸数量符合有关要求。并在规定的时间内完成。二、毕业设计应完成的图纸:图 1-1 路口交通示意图,见 2 页图 1-2 通行示意图,见 2 页图 2-1 spcexx1a 内部结构图,见 4 页图 2-2 61 板实物图,见 9 页图 2-3 测试流程图,见 10 页图 2-4 交通灯模组实物图,见 11 页图 3-1 系统结构框图,见 12 页图 3-2 硬件连线图,见 13 页图 3-3 功能框图,见 13 页图 4-1 spcexx1a 最小系统,见 14 页图 4-2 电源模块电路图,见 15 页图 4-3 交通灯模组
6、v3.0_led 板实物图,见 15 页图 4-4 led 板电路,见 16 页图 4-5 交通灯模组 v3.0_led 驱动板实物图,见 16 页图 4-6 led 驱动电路,见 17 页图 4-7 61 板上 j5 的选择,见 17 页图 4-8 led 板与驱动板的连接,见 18 页图 4-9 状态 1,见 19 页图 4-10 状态 3,见 20 页图 4-11 状态 5,见 21 页图 4-12 状态 7,见 22 页图 4-13 操作流程图,见 23 页图 5-1 主程序流程图,见 25 页三、其他要求:无四、毕业设计的期限:自 2008 年 9 月 1 日 至 2008 年 10
7、 月 10 日五、毕业设计(论文)进度计划:起 至 日 期工 作 内 容备 注09-01 到 09-xx09-07 到 09-2009-21 到 09-2810-01 到 10-10拟定课题,元件采购,c 语言学习分析原理,设计电路、程序搭建硬件电路,调试程序毕业论文撰写模拟交通灯系统摘 要在现代社会城市交通越来越拥挤,塞车现象越来越严重。在北京塞车已经是司空见惯的事情,塞上半个小时都不足为奇。交通指挥设施就变得越来越重要了,本论文结合实际应用使用单片机完成模拟交通灯控制系统。本方案利用 spcexx1a 为主控制器,配合交通灯模组 v3.0 设计的交通灯控制系统。该系统在适当的时候控制点亮绿
8、色、黄色或者红色的 led 灯,示意行人或者车辆可以通行或者不可以通行;另外通过数码管倒计时,示意车辆或者行人不可以通行时需要等待的时间或者通行时还有多少的剩余时间。 目 录第 1 章 前言.11.1 选题背景.11.2 路口交通简介.21.3 交通灯的分类 .31.4 交通灯功能简介 .3第 2 章 芯片简介.42.1 spcexx1a 单片机.42.1.1 spcexx1a 简介 .42.1.2 芯片特性.52.2 spcexx1a 精简开发板 .72.2.1 61 板的功能简介 .72.2.2 61 板的自检 .92.3 交通灯模组 v3.0 系统概述.102.3.1 功能简介 .102
9、.3.2 电气参数 .112.3.3 注意事项 .11第 3 章系统总体方案.123.1 硬件框图.123.2 电路连接图.123.3 功能框图.13第 4 章 系统硬件设计.144.1 spcexx1a 最小系统.144.2 电源模块.144.3 led 板 .154.4 led 驱动电路 .164.5 硬件连接步骤及流程 .17第 5 章 系统软件设计.245.1 软件结构.245.2 主程序流程图.245.3 主程序说明 .25第 6 章 调试故障分析.27第 7 章 结语.287.1 全文总结.287.2 工作展望.28参考文献、资料索引.29致 谢.30 模拟交通灯系统- 1 -第
10、1 章 前言1.1 选题背景 随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。 随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自 80 年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造
11、上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。单片机技术的出现给现代工业测控领域带来了一次技术革命。目前,单片机仍以其高可靠性、高性价比,在工业控制系统、数据采集系统、智能画仪器仪表、智能家电等诸多领域得到了广泛的应用。作为将要从事单片机应用系统开发方面的技术人员,掌握单片机的应用技术是必要的。 在单片机的应用过程中,单片机只是应用系统的一个核心部件,为把单片机系统应用于不同的领域
12、,只掌握单片机的基础知识是远远不够的,要想构成一个完善的应用系统,还要熟悉执行机构及硬件接口电路的应用特性,同时,还应该掌握系统的结构布局、印刷电路板的结构布局及软件的设计技巧这些书本上学不到的知识,因此为设计出完善模拟交通灯系统- 2 -的应用系统,必须在实际工作中勤于实践,逐步积累这方面的经验 。本方案要求利用凌阳科技公司的凌阳 16 位单片机 spcexx1a 作为主控芯片和交通灯模组 v3.0 包括一块驱动电路板(交通灯模组 v3.0_驱动板)和四块 led 板(交通灯模组v3.0_led 板)。充分利用 spcexx1a 精简开发板(简称 61 板)上面的三个按键,完成一个简易交通灯
13、系统。1.2 路口交通简介 十字路口交通情况如下图所示:图 1-1 路口交通示意图(注:r 表示车辆右拐 l:表示车辆左拐 s:表示车辆直行 p:表示人行 数字1、2、3、4 表示路口 1、2、3、4)模拟交通灯系统- 3 -上图中,常规交通灯的绿灯亮状态(通行)顺序为: 图 1-2 通行示意图其中, “1-2”表示 1p 和 2p 可以通过路口 2 通行;“2-3”表示 2p 和 3p 可以通过路口 3 通行;“3-4”表示 3p 和 4p 可以通过路口 4 通行;“4-1”表示 4p 和 1p 可以通过路口 1 通行。1.3 交通灯的分类 交通灯包括交通信号灯、交通工具信号灯和交通工具照明
14、灯三类:交通信号灯:它是为管理交通工具和行人的动向,传达一种命令而设置的一类固定不动的灯具。交通信号包括用光的颜色、闪烁和排列组合成的灯光信号和能显示发光文字、符号的灯光标志两种。后者只用于陆上道路交通中,起指示限速、导向和表示道路情况等的作用。交通信号灯可按交通的种类分为:用于陆上交通的铁路信号灯、道路交通信号灯,用于水上交通的航标灯(大型的称灯塔)和用于空中交通的机场灯、障碍灯等。 交通工具信号灯:它是安装在交通工具上以显示其存在和运动状态的一类灯具。包括飞机灯、船灯、火车灯和汽车灯。 交通工具照明灯:它是安装在交通工具内部或外部起照明作用的灯具。其中照明前方或搜索目标的一类灯具称强光照明
15、灯,它们有规定的光分布,如火车和汽车上的前照灯、船用探照灯、苏伊士运河灯和飞机的着陆滑行灯等。 不同类型的交通灯的外形、结构、光源、光分布和供电方式等有所不同,但光色和外壳防护性能基本相同。1.4 交通灯功能简介本方案的交通灯就是一个简易的交通指示灯控制系统, 由一套 spcexx1a 精简开发模拟交通灯系统- 4 -板(简称 61 板)和一套交通灯模组构成,功能有: 1. 系统有两个状态,设置状态和显示状态,利用 61 板的键盘的 key1 键盘可以进行两个状态间的切换; 2. 开机时,系统为显示状态,四个路口数码管从默认的倒计时时间(本系统四个路口分别为 24、24、49、74)开始倒计时
16、; 3. 设置状态时利用 61 板的 key1key3 键盘可以设置各路口直行通行倒计时时间,设置的路口数码管闪烁显示,各路口的通行时间可以不相等,其中 key2 为加 1 键,key3 为减1 键,key1 为确定键; 4. 显示状态时,交通灯模组的四个 led 板的数码管进行倒计时;led 板各组的红绿灯交通指示;如果一个 led 板上有三个绿灯亮,这时候数码管显示的是通行时间,否则,数码管显示的是等待时间;显示过程中按 key1 键可以重新进入设置状态。第 2 章 芯片简介2.1 spcexx1a 单片机 2.1.1 spcexx1a 简介spcexx1a 是凌阳科技研发生产的性价比很高
17、的一款十六位单片机,具有易学易用且效率较高的一套指令系统和集成开发环境。在此环境中,支持标准 c 语言,可以实现 c语言与汇编语言的互相调用.spcexx1a 片内还集成了一个 ice(在线仿真电路)接口,使得对该芯片的编程、仿真变得非常方便,而 ice 接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unsp ide),用户可以进行在线调试、仿真;而程序的下载(烧写)也是通过该接口完成。 模拟交通灯系统- 5 - 图 2-1 spcexx1a 内部结构图2.1.2 芯片特性1. 16 位 nsp 微处理器; 2. 工作电压:内核工作电压 vdd 为 3.03.6v(cpu),io
18、 口工作电压 vddh 为3.05.5v(i/o); 3. cpu 时钟:0.32mhz49.152mhz; 4. 内置 2k 字 sram; 5. 内置 32k 字 flash; 6. 可编程音频处理; 7. 晶体振荡器; 8. 系统处于备用状态下(时钟处于停止状态),耗电小于 2a/3.6v; 9. 2 个 16 位可编程定时器/计数器(可自动预置初始计数值); 模拟交通灯系统- 6 -10. 2 个 10 位 dac(数-模转换)输出通道; 11. 32 位通用可编程输入/输出端口; 12. 14 个中断源可来自定时器 a/b,时基,2 个外部时钟源输入,键唤醒; 13. 具备触键唤醒的
19、功能; 14. 使用凌阳音频编码 sacm_s240 方式(2.4k 位/秒),能容纳 210 秒的语音数据; 15. 锁相环 pll 振荡器提供系统时钟信号; 16. 32768hz 实时时钟; 17. 7 通道 10 位电压模-数转换器(adc)和单通道声音模-数转换器; 18. 声音模-数转换器输入通道内置麦克风放大器和自动增益控制(agc)功能; 19. 具备串行设备接口; 20. 低电压复位(lvr)功和低电压监测(lvd)功能; 21. 内置在线仿真板(ice,in- circuit emulator)接口。另外,spcexx1a 单片机具有易学易用的效率较高的一套指令系统和集成开
20、发环境。在此环境中,支持标准 c 语言,可以实现 c 语言与凌阳汇编语言的互相调用,并且提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条件。 spcexx1a 具有 plcc84 和 lqfp80 两种封装形式,其引脚功能见表 1 和表 2:模拟交通灯系统- 7 -表 1模拟交通灯系统- 8 -表 22.2 spcexx1a 精简开发板 2.2.1 61 板的功能简介spcexx1a精简开发板(简称61板),是以凌阳16位单片机spcexx1a为核心的精简开发仿真实验板,大小相当于一张扑克牌,是“凌阳科技大学计划”专为大学生、电子爱好者等进行
21、电子实习、课程设计、毕业设计、电子制作及电子竞赛所设计的,也可作为单片机项目初期研发使用。61板除了具备单片机最小系统电路外,还包括有电源电路、音频电路(含mic输入部分和dac音频输出部分)、复位电路等,采用电池供电,方便学生随身携带!使学生在掌握软件的同时,熟悉单片机硬件的设计制作,锻炼学生的模拟交通灯系统- 9 -动手能力,也为单片机学习者和开发者创造了一个良好的学习条件和开发新产品的机会! 61板上有调试器接口(probe接口)以及下载线(ez_probe)接口,分别可接凌阳科技的在线调试器、简易下载线,配合unsp ide,可方便地在板上实现程序的下载、在线仿真调试。 61板上的主要
22、功能模块如下: 1spcexx1a单片机最小系统外围电路模块; 2电源输入模块; 3音频电路(包含mic输入、dac音频功放输出)模块; 4按键模块; 5i/o端口接口模块; 6调试、下载接口模块; 下面将61板各区的功能进行一下简要的介绍,以便在后面的编程调试时知道是要操作硬件的哪一部分。电源区:为整个系统提供电源,通常采用系统配套的电池盒进行供电,只要放入3节5号电池就可以满足供电需求了。下载区:程序就是通过这边的接口下载到spcexx1a单片机的,当然,在进行在线调试时也能上传一些硬件信息到开发环境中。音频区:这里的麦克风是用来进行语音输入的,还有一个喇叭的接口用来进行语音播放。spce
23、xx1a与周边:这就是整块板子的大脑,所有控制信息都是从这里发出的,那些周边器件用来协助spcexx1a单片机正常工作。键控区:采用这几个按键我们可以做一些简单的试验,比如说当板子里下载了复读机的程序,按这几个按键就可以分别用来进行录音、暂停和播放,如果下载了语音万年历的程序,这几个按键就可以用来设定初始时间和控制播放当前时间等。复位区:这里是由几个简单的电子元器件组成,当按下这里面的按键后,单片机就重新开始工作,也可以说成是单片机里的程序从第一条开始重新运行。端口区:用于对外挂硬件的控制,或者获取外部硬件的一些状态以便spcexx1a来进行处理。模拟交通灯系统- 10 -图 2-2 61 板
24、实物图2.2.2 61 板的自检第一步 连接电源,可以连接电池盒(3节),也可以直接接5v的稳压源; 现象:当电源接通时,红色的发光二极管会点亮。同时会有语音提示:“欢迎进入自检模式”,此时因为还没有连线,所以会听到:“i/o测试失败”的警告,进行第二步的操作; 第二步 用排线分别将ioa口的低8位和iob口的低8位相连,ioa口的高8位和iob口的高8位相连,然后按下reset复位键; 现象:当按下reset复位键后,程序重新开始执行,语音提示“欢迎进入自检模式”,当听到语音提示“i/o测试成功”后,进行第三步操作; 第三步 按k1键进行睡眠功能测试; 现象:如果测试成功,会看到绿色的发光二
25、极管闪亮一下,并有语音提示 “睡眠测试成功”,否则提示“睡眠测试失败”,然后进行第四步操作; 第四步 按下k2键进行a/d转换的测试; 现象:语音提示:“a/d测试成功”,否则提示“a/d测试失败”,进入最后一步操作; 第五步 拔掉第一步测试时的排线,并按下k3键测试mic输入及d/a转换输出是否正常;模拟交通灯系统- 11 -(注:在按下k3键后,喇叭会发出啸叫声,用手按在mic上可消除啸叫声。) 现象:可以在mic上轻轻的拍几下,同时听是否有声音输出,如果有,则说明mic输入和d/a转换输出部分正常。 以上操作,只有当i/o测试成功后,按键才会有效。 图2-3 测试流程图模拟交通灯系统-
26、12 -2.3 交通灯模组 v3.0 系统概述 2.3.1 功能简介1交通灯模组 v3.0 由一块驱动板(交通灯模组 v3.0_驱动板)和四块 led 板(交通灯模组 v3.0_led 板)构成,使用时,只需要把四块 led 板分别插接(或者连接)在驱动板的j1j4 四个接口上即可使用;通过软件设计,控制四块 led 板上的数码管倒计时,并控制红、绿、黄二极管的点亮与熄灭,就可以实现交通灯功能。2led 板中每个方向提供四组交通 led 灯(包括左转、直行、右转、人行道四组),每组交通灯包括红、黄、绿三个灯,可以实现交通的通行控制; led 板中每个方向提供两个数码管,可以实现 100 以内的
27、倒计时。 3交通灯模组实物图如图 24,使用时,直接用 10pin 排线连接驱动板的单片机接口和 61 板的 i/o 口即可使用。 图2-4 交通灯模组实物图2.3.2 电气参数 1工作电压:dc4.5v(推荐使用 5v 稳压源); 2尺寸: 驱动电路板:78.7mm67.9mm; led 板:45.2mm53.2mm模拟交通灯系统- 13 -2.3.3 注意事项 1不要把 61 板的“+”、“-”与模组的“+”、“-”接反; 2为了保证数码管及 led 灯的亮度,61 板上的 j5 接口要选择 5v,推荐使用 5v 的稳压源给 61 板供电; 3向驱动板上插(或者用排线连接)led 板时注意
28、不要接反。 第 3 章系统总体方案3.1 硬件框图本系统由一套 61 板和一套交通灯模组构成,如图 31,spcexx1a 通过 i/o 口控制交通灯模组中各 led 板的数码管和发光二极管的显示;通过 61 板上的三个键盘key1key3 可以设置各 led 板指示的路口通行倒计时时间。 图 3-1 系统结构框图3.2 电路连接图系统硬件连接如图 32,把四个 led 板连接到驱动板上,利用三根 10pin 排线分别连接交通灯模组和 61 板的 j5 与 j9、j6 与 j6、j7 与 j7;连接 61 板电源,注意要把 61板的 j5 接口选择为 5v。模拟交通灯系统- 14 -图3-2
29、硬件连线图3.3 功能框图图 3-3 功能框图模拟交通灯系统- 15 -第 4 章 系统硬件设计4.1 spcexx1a 最小系统spcexx1a 最小系统包括 spcexx1a 芯片及其外围的基本模块,其中外围的基本模块有:晶振输入模块(osc)、锁相环外围电路(pll)、复位电路(reset)、指示灯(led)等,如图 4.1 所示。 图 4-1 spcexx1a 最小系统4.2 电源模块61板电源模块电路如图 42,spcexx1a的内核供电为3.3v,而i/o端口可接3.3v5v,所以在电源模块(61板上)中有一个端口电平选择跳线,如图中的j5。 模拟交通灯系统- 16 -图4-2 电
30、源模块电路图4.3 led 板led板电路如图44,led板包含两位数码管u1、12个led灯d1d12和一个26的接口j1。其中,12个led灯构成26的连接方式,d1d6的阴极连接到一个公共段g3上,d7d12的阴极连接到一个公共段g4上。当g3为低电平、a为高电平的时候就可以点亮d1;同样,如果要点亮d10,只要使g4为低电平、d为高电平即可。使用时可以直接通过j1口与驱动板连接。 图4-3 交通灯模组v3.0_led板实物图 模拟交通灯系统- 17 -图4-4 led板电路4.4 led 驱动电路 如图46,uln2803是常见的驱动芯片,一片可提供8路的驱动信号(关于uln2803的
31、详细资料,请参考uln2803的datasheet),两片uln2803共16路,用来驱动8位数码管及8组16led灯(每个led板上有两组,4个led板共8组,详细参考led板的电路图)的阴极,其中u1为数码管的驱动芯片,u2为led灯的阴极驱动芯片;8个三极管q1q8组成的共集电极电路用来驱动8位数码管的段及led灯的阳极。 图 4-5 交通灯模组 v3.0_led 驱动板实物图模拟交通灯系统- 18 -图 4-6 led 驱动电路4.5 硬件连接步骤及流程第一步:按照图 47 所示连接硬件,连接好下载线或者 probe,打开电源。注意 61板上的 j5 要选择 5v;led 板不要插反。
32、如图 47 和图 48 为正确连接。 图4-7 61板上j5的选择 模拟交通灯系统- 19 -图4-8 led板与驱动板的连接第二步:在交通灯模组v3.0democodetraffic路径下双击打开traffic.spj工程;rebuild all工程,把工程下载到61板上; 第三步:全速运行,这时候可以观察四个led板的数码管和led灯的变化,体验交通灯的控制顺序。此时四个led板数码管倒计时和led灯的亮灭8种状态循环进行,如下: 状态1:如图49,红绿灯亮灭及数码管倒计时状态为1s,1l,1-2p,3r,4r通行,路口1(j1)倒计时显示24(表示直行和左拐通行时间),路口2(j2)倒计
33、时显示24(表示直行和左拐等待时间),路口3(j3)倒计时显示49(表示直行和左拐等待时间),路口4(j4)倒计时显示74(表示直行和左拐等待时间)。所有数码管开始倒计时,当路口2的数码管显示3时,进入状态2。(1表示j1、2表示j2、3表示j3、4表示j4,s表示直行,l表示左拐,r表示右拐,p表示人行) 模拟交通灯系统- 20 -图4-9 状态1状态2:路口1倒计时显示03,路口2倒计时显示03,路口3倒计时显示28,路口4倒计时显示53。此时1s,1l,1-2p,3r由绿灯变黄灯,2s,2l,2-2p,1r由红灯变黄灯闪烁。继续倒计时,路口1倒计时到00后,从74开始倒计时;路口2倒计时
34、到00后从24开始倒计时,进入状态3。 状态3:如图 410,红绿灯亮灭及数码管倒计时状态为2s,2l,2-3p,4r,1r通行,路口1倒计时显示74,路口2倒计时显示24,路口3倒计时显示24,路口4倒计时显示49。模拟交通灯系统- 21 -图4-10 状态3状态4:路口2倒计时显示02,路口3倒计时显示02,路口4倒计时显示27,路口1倒计时显示52。此时2s,2l,2-3p,4r由绿灯变黄灯,3s,3l,3-4p,2r由红灯变黄灯。继续倒计时,路口2倒计时到00后,从74开始倒计时;路口3倒计时到00后从24开始倒计时,进入状态5。 状态5:如图4-11,红绿灯亮灭及数码管倒计时状态为3
35、s,3l,3-4p,1r,2r通行,路口2倒计时显示74,路口3倒计时显示24,路口4倒计时显示24,路口1倒计时显示49。模拟交通灯系统- 22 -图4-11 状态5状态6:路口3倒计时显示02,路口4倒计时显示02,路口1倒计时显示27,路口2倒计时显示52。此时3s,3l,3-4p,1r由绿灯变黄灯,4s,4l,4-1p,3r由红灯变黄灯。继续倒计时,路口3倒计时到00后,从74开始倒计时;路口4倒计时到00后从24开始倒计时,进入状态7。 状态7:如图4-12,红绿灯亮灭及数码管倒计时状态为4s,4l,4-1p,2r,3r通行,路口3倒计时显示74,路口4倒计时显示24,路口1倒计时显
36、示24,路口2倒计时显示49。模拟交通灯系统- 23 -图4-12 状态7状态8:路口4倒计时显示02,路口1倒计时显示02,路口2倒计时显示27,路口3倒计时显示52。此时4s,4l,4-1p,2r由绿灯变黄灯,1s,1l,1-2p,4r由红灯变黄灯。继续倒计时,路口4倒计时到00后,从74开始倒计时;路口1倒计时到00后从24开始倒计时,进入状态1,如此循环。第四步:如果要自己设置各路口的通行时间,按 61 板上的 key1 键进入设置状态。按 key1 开始设置第一个(j1)led 板的数码管显示的通行时间,此时第一个 led 板的数码管闪烁,key2 为加 1 键,key3 位减 1
37、键;设置完第一个,按 key1 键设置第二个 led板,设置方法和设置第一个 led 板相同;设置完成后设置第三个、第四个,全部设置完成后,如果设置正确,按 key1 键后 4 个 led 板的数码管开始显示,且其发光二极管进行相应指示;如果没有设置正确,系统不会进行倒计时,这时候需要按 key1 键重新进行设计。 注意:由于每个路口只有两位数码管显示倒计时时间,所以无论是通行时间,还是等待时间,都不能超过 99;一个路口的等待时间等于其他三个路口通行时间之和,如果模拟交通灯系统- 24 -相邻三个路口设置的通行时间之和大于 99,则设置错误,需要重新设置,按 key1 会自动进入设置状态进行
38、设置。 四个路口的通行时间可以设置相同,也可以不同。 操作流程如图 4-13: 图4-13 操作流程图模拟交通灯系统- 25 -第 5 章 系统软件设计5.1 软件结构本系统软件包括 main.c、diguser.c、dig.asm、key.c、isr.asm 5 个源文件,其中: main.c 文件为主程序文件,控制系统在两个状态(设置状态与显示状态)的切换,设置状态时通行时间的设置和显示状态时各数码管的倒计时和发光二极管的点亮与熄灭。 diguser.c 为一个用户函数文件,这个函数里定义了倒计时、显示、熄灭等与数码管和发光二极管相关的函数。 dig.asm 是一个针对交通灯模组专门写的一
39、个数码管和发光二极管写的驱动函数文件,包括初始化函数和动态扫描函数,其中动态扫描函数要求在 1khz 的中断服务函数中调用;同时,通过这个文件可以设置 i/o 口。 key.c 是一个键盘扫描文件,包含键盘 i/o 口的初始化和键扫描函数; isr.asm 是中断服务函数文件,本系统中用到了两个中断服务函数文件,其中 2hz 中断用来倒计时,1khz 中断用来刷新显示。 5.2 主程序流程图本系统有两个状态:设置状态和显示状态,设置状态时通过键盘来设置 4 个路口的通行时间(默认 4 个路口的通行时间相同,各为 25s),被设置的路口数码管会闪烁显示;显示状态中又分了东边路口指示直行通行,南边
40、路口指示直行通行,西边路口指示直行通行,北边路口指示直行通行四个显示状态;四个路口数码管显示倒计时时间。 主程序流程如图 5-1 所示:上电后为显示状态,系统按照默认的倒计时时间进行倒计时显示,从东边路口通行状态开始,按照东、南、西、北的方式顺序进行;在显示的过程中,如果有 key1 键按下,则进入设置状态。 设置状态时,按 key1 进入第一个路口的指示通行时间设置,按 key2 和 key3 进行设置,设置完成后按 key1 切换到下一个路口设置,四个路口都设置完成后,先判断设置模拟交通灯系统- 26 -是否正确,如果不正确,返回继续设置。 由于一个路口通行完成后,需要等待其他三个路口通行
41、完成,所以等待的最大时间为其他三个路口的通行时间之和,如果其他三个路口的直行时间之和大于 100,系统就认为设置出错,这是因为数码管最多显示 99。 开始初始化为显示状态设置状态?n键盘扫描,取键值ykey1?key2?key3?确认yyyyyyyyynnnnnnnnn加一减一重新设置闪烁显示全部设置完成?设置正确?设置为显示状态计算东边路口指示的通行时间和其他路口指示的等待时间设置为东边路口直行通行状态。东边路口指示直行通行设置为南边路口直行通行状态。南边路口指示直行通行设置为西边路口直行通行状态。西边路口指示直行通行设置为北边路口直行通行状态。北边路口指示直行通行设置为设置状态是否为显示状
42、态?是否为显示状态?是否为显示状态?是否为显示状态?图 5-1 主程序流程图5.3 主程序说明图 5-1 中,显示状态时,各路口的直行状态,其实是图 1-2 通行示意图四个通行状态的其中一个状态,所以这个状态不但要允许直行通行,同时要允许图 1-2 中各状态下其他方向通行。比如在东边路口直行通行状态下,事实上该状态函数里,按照图 1-模拟交通灯系统- 27 -2,应该是 1l、1s、1-2p、3r、4r 状态,所以不但要允许东边路口指示直行通行,也要允许东边路口左拐和人行道指示通行,还要允许西边和北边路口右拐指示通行,程序段如下:ledshow(east_l,leftgrn,strtgrn,r
43、igtred,mansgrn); /东边路口左拐、直行、人行道绿灯亮,右拐红灯亮 ledshow(south_l,leftred,strtred,rigtred,mansred); /南边路口全部红灯亮 ledshow(west_l,leftred,strtred,rigtgrn,mansred); /西边路口左拐、直行、人行道红灯亮,右拐绿灯亮 ledshow(north_l,leftred,strtred,rigtgrn,mansred); /北边路口左拐、直行、人行道红灯亮,右拐绿灯亮另外,在四个显示状态里,都调用了键盘扫描函数,如果 key1 按下,结束显示状态,进入设置状态。程序段如
44、下:ikey = keyscan(); /取键值 if(ikey=1) /判断 key1 是否按下 dirflag = 0; status = 1; /是,进入设置状态 这也是每次进入一个显示状态前,先判断是否为显示状态的原因。 每个显示状态的直行通行路口从设置好的通行时间开始倒计时,倒计时到 0 时,从其他三个路口的通行时间之和开始倒计时;其他路口正常减 1 倒计时。程序段如下:while(status=show) max = snumset+wnumset+nnumset-1;/设置通行后的等待时间 dirflag = east_g; /设置方向状态标志为东边路口车辆直行通行状态,east
45、_g 为 east green enum = enumset-1; /东边路口数码管从 enumset(设置通行时间)-1 开始倒计时 eaststrough(); /进入 1l,1s,1p,3r,4r(通行 25s)状态,该函数在 diguser.c 文件中定义 if(status=show) max = wnumset+nnumset+enumset-1; /设置通行后的等待时间 dirflag = south_g; /设置方向状态标志为南边路口车辆直行通行状态,south_g 为 south green snum = snumset-1; /南边路口数码管从 snumset(设置通行时间
46、)-1 开始倒计时 southstrough(); /进入 2l,2s,2p,4r,1r(通行 25s)状态,该函数在 diguser.c 文件中定义 if(status=show) 模拟交通灯系统- 28 -max = nnumset+enumset+snumset-1; /设置通行后的等待时间 dirflag = west_g; /设置方向状态标志为西边路口车辆直行通行状态,west_g 为 west green wnum = wnumset-1; /西边路口数码管从 wnumset(设置通行时间)-1 开始倒计时 weststrough(); /进入 3l,3s,3p,1r,2r(通行
47、25s)状态,该函数在 diguser.c 文件中定义 if(status=show) max = enumset+snumset+nnumset-1; /设置通行后的等待时间 dirflag = north_g; /设置方向状态标志为北边路口车辆直行通行状态,north_g 为 north green nnum = nnumset-1; /北边路口数码管从 nnumset(设置通行时间)-1 开始倒计时 northstrough(); /进入 4l,4s,4p,1r,2r(通行 25s)状态,该函数在 diguser.c 文件中定义 *p_watchdog_clear = 0 x0001; 第 6 章 调试故障分析1.上电后数码管不显示,led 灯也不点亮,为什么? 答:检查交通灯模组的驱动板电源指示灯是否点亮,如果没有点亮,切断电源,检查是否正负极接反。 2.驱动板电源指示灯亮,可是数码管和发光二极管显示不正常,或者发光二极管变化显示,数码管显示乱七八糟。 答:可能由两种情况造成:第一,交通灯模组和 61 板连接不正确,注意 61 板和交通灯模组驱动板的连接顺序是 j5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓储货物出入库作业SOP
- 安宁疗护人才师资培育方案
- 肾小球疾病免疫抑制剂应用指南
- 中小学体育健康提升工作计划
- 学校财务内控规范实施工作计划
- 索道配套土建工程施工组织设计技术标
- 路面标线涂料工程设计
- 二年级语文学困生转化计划
- 农村水利工程安全防护技术指南
- 采血室标本转运操作手册
- 2023年军转自荐信多篇
- 卫生部手术分级目录(2023年1月份修订)
- 电力工程专业设计工日定额9.26
- GB/T 10802-2006通用软质聚醚型聚氨酯泡沫塑料
- 初高中英语衔接初高中英语衔接-课件
- 电路分析基础:第八章 阻抗与导纳
- 企业清产核资工作底稿模板-会计师事务所
- 校园环境卫生检查及记录表
- 实验室产品测试标准流程
- (人教部编版)二年级上册语文课课练(全册)含答案
- 学校安全管理ppt
评论
0/150
提交评论