交通灯计算机硬件课程设计.doc
《交通灯计算机硬件课程设计.doc》由会员分享,可在线阅读,更多相关《交通灯计算机硬件课程设计.doc(37页珍藏版)》请在沃文网上搜索。
1、交通灯计算机硬件课程设计目录1 课题分析51.1基本功能分析及设计52 硬件设计52.1总电路52.2分电路73 软件设计103.1主程序的设计流程图103.2各子程序的流程图114 扩展功能的实现144.1黄灯过渡155 测试结果及分析155.1实验结果显示155.2系统详细操作说明225.3结果分析236 设计总结236.5总结277 附录287.1参考文献287.2程序清单28 1 课题分析1.1基本功能分析及设计 根据课题的功能要求,经过反复的思考和讨论我们决定采用模块化的思想来分析及设计整个课题。 首先我们把功能模块化,对其功能进行细化分解,对于该课题我们可以把它的功能分解为下面几块
2、:显示模块,计时模块,颜色模块,定时模块,选择分支模块,报警模块等。根据以上各个模块我们就可以分布进行设计和硬件的悬着。首先交通灯的时间显示我们采用8254芯片的定时器和计数器功能功能来实现,其次,对于交通灯的三种颜色我们采用实验箱上的三色LED灯来显示,再有对于车辆数还有闯红灯的演示我们用小键盘来实现,对于闯红灯我们利用LED灯和蜂鸣器同时作用。这样就很容易的设计好各个子功能模块,然后根据整体功能的要求合理的把各个子功能整合起来就能完成整个课题的设计了。这样做的目的和好处是思路清晰,方便设计。 2 硬件设计2.1总电路根据分析此次要用到的硬件模块包括8254定时芯片,CPU,8255,可编程
3、并行接口芯片,LED,蜂鸣器等。它们的相关介绍如下:图1是此次试验所用到的试验箱面板,此次课题就在其上完成 图1 PD-32E操作面板 此次试验的硬件电路仿真图如图2所示 图2 仿真总电路图硬件连接如下,8255A:PA0PA3与键盘行信号P0P3,PB0PB3与键盘列信号Q0Q3连接C口的pc1接8254的控制端口gate0,pc7口接蜂鸣器。8255的口接340, 8254的接译码模块的CS1,CLK1接频率为47KHZ的时钟信号,GATE1接+5V,OUT1接8259(1)的IRQ0;8259(1)的CS-1接译码模块的CS2,P/1接+5V,INT1接CPU的INTR;其硬件连接框图如
4、图3所示: 图3 总体框图2.2分电路2.21 8255模块 8255A是一个并行输入、输出器件,具有24个可编程设置的I/O口,包括3组8位的I/O为PA口、PB口、PC口,又可分为2组12位的I/O口:A组包括A口及C口高4位,B组包括B口及C组的低4位。A口可以设置为方式0、方式1、方式2,B口与C口只能设置为方式0或方式1。工作方式如下:方式0基本输入/输出方式方式1选通输入/输出方式方式2双向选通输入/输出方式各引脚功能如下。D7D0与CPU侧连接的八条双向数据线;WR(低电平有效)写输入信号;RD(低电平有效)读输入信号; 图4CS(低电平有效)片选输入信号;A0、A1片内寄存器选
5、择输入信号;PA7PA0A口外设双向数据线;PB7PB0B口外设双向数据线;PC7PC0C口外设双向数据线;RESET复位输入信号此次用8255的A口作为键盘的输入B口作为键盘的输出C口的pc1口作为8254的控制端口pc7口用来控制蜂鸣器。2.22 8254模块8254的功能用途是:(1)延时中断 (2)可编程频率发生器 (3)事件计数器 (4)二进倍频器 (5)实时时钟(6)数字单稳(7)复杂的电机控制器 8254有六种工作方式: (1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器 (4)方式3:方波频率发生器(5)方式4:软件触发的选通信号(6)方式5:硬件
6、触发的选通信号 8254,各引脚功能如下。D7D0八条双向数据线;WR(低电平有效)写输入信号;RD(低电平有效)读输入信号;CS(低电平有效)片选输入信号; 图5A0、A1片内寄存器地址输入信号;CLK计数输入,用于输入定时基准脉冲或计数脉冲;OUT输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。 本项目用8254来实现1秒定时中断功能,其中0口工作在方式3,产生1HZ的方波以此作为8259-IRQ0的中断请求输入信号,并通过设置变量实现定时和计数功能。2.23 8259模块各引脚功能如下。D7D0八条
7、双向数据线;WR(低电平有效)写输入信号; RD(低电平有效)读输入信号;CS(低电平有效)片选输入信号; A0地址信号;INT中断请求信号;INTA(低电平有效)中断响应信号; CAS0CAS2级联信号,形成一条专用8259A总线, 图6以便多片8259A的级联;SP/EN从编程/允许级联。在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。在非缓冲方式中,作为输入信号用于表示主片还是从片;IR0IR7外部中断请求输入线。要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。2.24 蜂鸣器模块 图7 蜂鸣器电路原理图蜂鸣器是一种一体化结构的电
8、子讯响器,采用直流电压供电,通过放大电路驱动,用来做提示或报警。2.25 按键模块 本次项目中按键的功能如下表所示 图8 表1 小键盘的按键功能按键1789ABC功能对应的车辆数干线有人按键干线有人闯红灯支线有人闯红灯干线有人闯红灯支线有人按键2.26 三色LED模块用实验板上的四片8255的三色LED数码管来实现交通灯的仿真并显示计时。LED数码管与各路口路灯的对应情况如下表所示 表2 三色LED数码管对应各路口的情况L1 L2L3 L4L5 L6L7 L8支线人行显示干线人行显示干线通车显示支线通车显示 3 软件设计本次设计采用的是子程序嵌套,即程序的模块化思想。在进行设计的时候,先写好主
9、程序,定好程序的总体框架结构,划分出若干个子程序。子程序用一个个小的调试程序调试好,确认准确之后再将各个子程序嵌入到主程程序包括主程序,初始化子程序,键盘扫描子程序,报警子程序,定时子程序,延时子程序,人行子程序,干线子程序等 3.1主程序的设计流程图在主程序中,首先是初始界面的显示,用8255实现输入输出,8254实现1秒定时中断功能和定时、计数功能,再次根据实际情况实现不同情况下的三色数码管显示情况,并在板上实现。 图9 主程序的流程图3.2各子程序的流程图 3.21秒定时中断和按键中断 图103.22定时子程序;函数名称:DINGSHI ;功能:开启定时器,接入时钟频率47KHZ 入口参
10、数:无;出口参数:TIME0;调试状态:已调试DINGSHI PROC NEAR PUSHA MOV DX,PORTC MOV AL,80H OUT DX,AL ;给予GATE低电平,禁止计数 MOV TIME,0 MOV TIME_3,0 MOV TIME_10,0 MOV TIME_15,0 ;清除所有时间标志位 MOV DX,CNT0 ;计数器0端口地址 MOV AX,47000 OUT DX,AL MOV AL,AH OUT DX,AL ;8254 0口工作在方式3情况下,产生1S的方波 MOV DX,PORTC OR CL,81H MOV AL,CL OUT DX,AL ;给予GAT
11、E高电平,重新开始计数 POPAEXIT: RET DINGSHI ENDP3.23 刷新显示子程序流程图: 将time0的值送入AL分别取出各位和十位,并转化成为段代码,暂存于shiwei和各位将shiwei放入daixian调用DUAN函数,根据STA中的状态,分别转入LED1-4对应函数段将daixian的数据放入AL,并根据要显示的位置移位将EAX的地址送入DUANXUAN从A(200H)口送出并刷新十位数据将个位放入daixian调用DUAN函数,根据STA中的状态,分别转入LED1-4对应函数段将daixian的数据放入AL,并根据要显示的位置移位将EAX的地址送入DUANXUAN
12、从B(204H)口送出并刷新个位数据送出颜色刷新数据 图11324干线通车转支线通车子程序流程图(当JIEGUO=4-7时转入该子程序)同时TIME_15,TIME_3清零 Time0=15,送出STA1 启动定时,调用显示程序刷新Time_15=1? NTime0=3,(三秒黄灯定时),送出状态2Time0=15,送出STA3,同时TIME_15,TIME_3清零TIME_15,TIME_3清零启动定时,调用显示程序刷新Time_3=1?Time_15=1?Time0=3,(三秒黄灯定时),送出状态4Time_3=1?启动定时,调用显示程序刷新 Y N Y N Y N 图12说明:其他部分如
13、干线车行转入人行与此基本一致 4 扩展功能的实现由于时间和我们自身能力的问题,做起来有点吃力所以等我们吧基本功能做完以后时间就差不多了,所以没有做太多的扩展功能,只加了一个3秒黄灯提示的功能,其基本思想如下当干线通车15秒和支线通车15秒结束以后我们加一个3秒黄灯的提示时间,这样会更加的安全4.1黄灯过渡a. 支线黄灯过渡过渡3秒MOVECX,STA5 ;支线通车结束黄灯过渡状态 MOVSTA,ECX MOV TIME0,3 CALL DINGSHI M5: CALL CLOR_LED CMPTIME_3,1 ;支线黄灯3s是否到达 JNZM5 MOVTIME_3,0B干线黄灯过渡3秒 MOV
14、ECX, STA4 ;干线通车结束过度状态,干线黄灯3s MOV STA,ECX MOV TIME0,3 CALL DINGSHI M3: CALL CLOR_LED CALL VOICE CMPTIME_3,1 ;干线黄灯3s是否到达 JNZM3MOVTIME_3,0 5 测试结果及分析5.1实验结果显示在实验板上结果显示根据题目的要求, 通过调试运行程序,得到了不同状态的下实验箱上亮灯的各种情况如下:(1) 正常情况,干线通车亮绿灯,支线人行、干线人行,支线通车亮红灯如下图13图13 正常情况显示情况(2)支线人行道通行,支线人行道绿灯,干线通车,支线通车亮红灯,维持10秒,结果如图14
15、图14 支线人行道通行情况的显示(3)干线人行道通行亮绿灯10秒,支线人行、干线通车,支线通车亮红灯,结果如图15 图15 干线人行通行情况的显示(4) 支线通车亮绿灯,干线人行,干线通车,支线人行亮红灯,维持15秒如图16所示 图16 支线通车情况的显示(5) 由干线通车转支线通车,干线通车先亮15秒绿灯再亮3秒黄灯再变为红灯,支线通车由红灯变为绿灯且维持15秒绿灯黄灯3秒、干支线人行道,支线人行亮红灯,结果如图17 图17 干线转支线通车情况的显示(6) 由干线通车转支线人行,先经过干线15秒绿灯,再由干线3秒黄灯过渡到支线人行绿灯,干线变为红灯,结果如图18 图18干线通车转支线人行情况
16、的显示(7) 由干线通车转干线人行,先经过干线15秒绿灯,再由干线3秒黄灯过渡到干线人行绿灯,干线变为红灯,结果如图19 图19 干线通车转干线人行的情况显示5.2系统详细操作说明其中按键1-7表示对应的车辆数,按键8表示干线有人要通行,9表示干线有人闯红灯,A表示支线有人闯红灯,B表示支线车闯红灯,C表示支线有人要通行三色LED灯从左到右第一个为支线人行时间显示,第二个为干线人行时间显示,第三个为干线通车显示;第四个为支线通车时间显示其中初始状态为干线通车显示为绿灯,其他的显示为红灯,当干线有人按下键时即8键被按下时,干线开始转变为亮15秒绿灯,然后再亮3秒黄灯后变为红灯通时干线变为绿灯计时
17、10秒,10秒结束后返回初始状态,当支线有键按下时即C键被按下时和干线被按下时同理,当4-7键被按下时表明支线车辆数大于等于4,要让支线通行,此时干线会亮15秒绿灯然后3秒黄灯后变为红灯,支线通车变为绿灯亮15秒,之后变为黄灯3秒后,返回初始状态,当按下9,A,B键时蜂鸣器会向同时led会亮起表示有人或车闯红灯。5.3结果分析 根据以上的测试结果,课题的基本功能都实现了,但是还有很多不完善和有缺陷的地方,这里我们主要分析一下存在的问题。 第一个问题是我们的功能不完善,最明显的地方时当支路上的车小于4辆时,车要一直等待,对于这个问题我们开始也考虑到的,具体的方法解决方法是当支路等待时间达到30秒
18、时就可以通车,没做的原因是我们本打算最后做的,但最后没时间了所以就没有加上去。 第二个问题是我们的定时不精确,比如定时15秒结果跑了17秒,这是因为我们的延时程序不准确,所以就导致了最后的计时不精确 最后就是我们没有什么扩展的功能除了3秒黄灯的提示外,这主要是因为我们自身的能力及时间的问题,我们以后会做得更好的。 这次总体来说不是特别的满意,虽然基本功能都实现了,但还是存在很多的问题和缺陷需要改进和完善。 6 设计总结6.1 在计算机硬件基础课程设计动员大会上,就听到老师说“交通灯管理系统这道题有点难度”,当时就暗想我会不会抽到那一题,结果在分配好组员后进行分配任务的时候,这道题果然还是花落我
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 计算机硬件 课程设计
