




免费预览已结束,剩余17页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
红绿灯控制系统的设计目 录引 言 1一、系统分析 1(一)十字路口基本情况分析1(二)交通灯状态转换分析2(三)硬件功能可行性分析3二、系统设计 6(一)硬件设计71电路需求分析72电路连接设计7(二)软件设计81程序总体设计 82程序流程设计103重要代码分析12三、系统实现15(一)软件开发和运行环境15(二)系统硬件环境15(三)系统运行步骤15(四)系统测试结果16四、系统开发总结16参考文献18附 录19(一)重要源代码19致 谢21学士学位论文 红绿灯控制系统的设计引 言随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯,用以指挥马车通行。1914年,电气启动的红绿灯出现在美国,这种红绿灯由红、绿、黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。利用红外线红绿灯,当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路,红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。黄色信号灯的发明者是我国的胡汝鼎。他在美国通用电器公司任职的时候,想到在红、绿灯中间再加上一个黄色信号灯,作为红灯和绿灯之间的缓冲,提醒人们注意安全。于是红、黄、绿三色信号灯即成为了一个完整的指挥信号家族。城市路口交通信号控制系统大体上分为三种类型:定周期的信号机、多时段且具有无电缆协调功能的微电脑型信号机以及联网式自适应多相位智能型信号机。具体采用哪种类型,应根据其应用场合及特点加以确定。其中,第一种类型以其成本低、设计简单、安装及维护方便等特点得到了广泛应用。本文讨论的交通灯控制系统就属于该种类型。城市机动车量的不断增加使许多大中城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,如何改进交通灯的设计、有效的疏导交通,使其更好的适应城市交通的发展也成为了一个重要课题。本论文正是在以上背景下探讨和设计一个交通灯控制系统。一、 系统分析(一)十字路口基本情况分析图1-1是一个典型的十字路口示意图。分别用1、2、3、4表明东、南、西和北四个流向的主车道,每个主车道置有一个交通灯,用于指示对面车辆的左转、右转和直行。比如,1号路口的左转灯亮时,即表示对面3号路口的车可以向左转行驶。每个路口的情况都不尽相同,要根据具体的情况来设置各个方向的放行时间。假设,1、3方向是主干道,车流量比较大,可以将1、3路口的直行灯亮的时间设得比较长;而2、4路口是一般道路,那么2、4路口直行灯亮的时间可以设得短一点。左转灯和右转灯放行的时间一般应比直行灯放行的时间要短。通常情况下,主干道直行时间应在40-60秒左右;左转和右转通行时间应在15-30秒之间。每个路口应设置时间指示灯,用来显示剩余的通行时间,并在时间快用尽时,交通灯闪烁一定的次数,用来提醒行人。完成一个循环应在2分钟以内,以免引起车辆等待过长的时间。图1-1 十字路口示意图(二)交通灯状态转换分析合理的设置每个路口、每个方向的交通灯的通行时间,对车辆能否及时疏散,有着决定性的作用。在本系统中,路口共设有四个状态,分别用来表示不同时间路口的通行状况。状态1的时候,2、4两个路口的直行灯亮,东西方向行驶的车辆通行45秒。2、4方向步行的行人,也可以同时通过路口。当通行时间快结束的时候,led灯会闪烁,提醒车辆和行人通行时间快到了。状态2的时候,1、3两个路口左转灯亮,2、4两个路口右转灯亮15秒。在本状态的时候,四个路口的车辆可以同时进行疏散,并且不发生冲突,大大地加快了车辆通行的速度。这样的设置,在南京市新街口的十字路口有类似这样的设置。通过在十字路口中间设置相应的行车线,行人也可以和车辆同时地经过路口。当通行时间快结束的时候,led灯会闪烁,提示通行时间即将结束。类似于状态2,状态3的时候,1、3两个路口右转灯亮,2、4两个路口左转灯亮15秒。通过在十字路口中间设置相应的行车线,行人也可以和车辆同时地经过路口。当通行时间快结束的时候,led灯会闪烁,提醒车辆和行人注意安全。类似于状态1,状态4 的时候,1、3两个路口的直行灯亮,东西方向行驶的车辆通行45秒。1、3方向步行的行人,也可以同时通过路口。完成四个状态的一次循环需要120秒,完成了在适当的时间限度内,有效的疏散较大的通行量的目的。整个状态转换的过程见表1-1。表1-1 路口四个状态和相互转换过程每个路口灯的点亮情况通行时间路口1路口2路口3路口4状态1(zt1)直行直行45秒状态2(zt2)左转右转左转右转15秒状态3(zt3)右转左转右转左转15秒状态4(zt4)直行直行45秒(三)硬件功能可行性分析18253a定时/计数器芯片8253a定时/计数器具有定时、计数双功能。它具有三个相同且相互独立的16位减法计数器,分别称为计数器0、计数器1和计数器2。每个计数器计数频率为02mhz。其内部数据总线缓冲器为双向三态,故可直接连在系统数据总线上,通过cpu写入计数初值,也可由cpu读出计数当前值。读写控制逻辑,当选中该芯片时,根据读写命令和送来的地址信息控制整个芯片工作。其工作方式通过控制字确定。控制字寄存器用于接收数据总线缓冲器的信息。当写入控制字时,控制计数器的工作方式;当写入数据时则装入计数初值。控制寄存器为8位,只能写入不能读出。8253a内部结构见图1-2。当8253a执行计数功能时,计数器装入初值后,当gate为高电平时,可用外部事件作为clk脉冲对计数值进行减1计数。每来一个脉冲减1,当计数值减为0时,由out端输出一个标志信号。当8253a执行定时功能时,计数器装入初值后,当gate为高电平时,由clk脉冲触发开始自动计数。当计数到零时,发计数结束定时信号。8253a可以工作在方式0到方式5,常用的有方式2频率发生器方式和方式3方波发生器方式。在方式2时,当初值装入后,out变为高;计数结束,out变为低。该方式下如果计数未结束,但gate为低时,立即停止计数,将out变为高;当gate再变高时,便启动一次新的计数周期。在方式3时,当装入初值后,在gate上升沿启动计数,out输出高电平;当计数完成一半时,out输出低电平。在本系统中,8253a工作于方式3方波发生器方式。计数器0clk0gate0out0计数器1clk1gate1out1计数器2clk2gate2out2数据总线缓冲器读/写逻辑控制字寄存器d0-d7-rd-wra0a1-cs图1-2 8253a内部结构图28259a中断控制器芯片8259a是专为控制优先级中断而设计的芯片。它将中断源按优先级排队、辨认中断源和提供中断向量的电路集成于一体,只要用软件对它进行编程,就可以管理8级中断。8259a的内部结构见图1-3。它由中断请求寄存器(irr)、优先级分析器、中断服务寄存器(isr)、中断屏蔽寄存器(imr)、数据总线缓冲器、读写控制电路、级联缓冲器和比较器组成。控制逻辑服务寄存器优先级分析器中断请求寄存器中断屏蔽寄存器imr内部总线ir0ir1ir2ir3ir4ir5ir6ir7数据总线控制器读写电路级联缓冲器/比较器cas0cas1cas2d0-d7-rd-wra0-cssp/-enint-inta图1-3 8259a的内部结构对8259a编程和初始化的时候,首先要写初始化命令字icw1-icw4。写icw1以确定中断请求信号类型,清除中断屏蔽寄存器,进行中断优先级排队和确定系统是用单片还是多片。写icw2用来定义中断向量的高五位类型码。icw3可以定义主片8259a中断请求线上ir0-ir7有无级联的8259a从片。写icw4用来定义8259a工作时用8085模式还是8088模式,以及中断服务寄存器复位方式等。初始化命令字写完以后,要写8259a的控制命令字,它包括ocw1-ocw3。写ocw1可以设置或清除对中断源的屏蔽。写ocw2设置优先级是否进行循环、循环的方式和中断结束的方式。8259a复位时自动设置ir0优先权最高,ir7优先权最低。写ocw3用来设置查询方式和特殊屏蔽方式,并可以读取8259a中断寄存器的当前状态。在本系统中,使用8259a的循环等待中断工作方式。38255a可编程并行接口芯片8255a是一种可编程的芯片,它采用双列直插封装,用5v电源供电。内部有3个8位的i/0端口:a口、b口和c口。这三个端口也可以分为各有12位的两组:a组和b组。a组包含a口8位和c口的高四位,b组包含b口8位和c口的低四位;a组控制和b组控制用于实现方式选择操作;读写控制逻辑用于控制芯片内部寄存器的数据和控制字经数据总线缓冲器送入各组接口寄存器中。由于8255a数据总线缓冲器是双向三态8位驱动器,因此可以直接和8088系统数据总线相连。8255a的内部逻辑结构见图1-4。a组端口a组端口c高4位a组端口c低4位b组端口a组控制b组控制数据总线缓冲器读写控制逻辑双向数据总线d0-d7i/0pa7-pa0i/0pc7-pc0i/0pc0-pc20i/0pb7-pb0-cscpu接口内部逻辑外设接口-rd-wra1 a0reset图1-4 8255a的内部结构8255a有三种工作方式:方式0、方式1和方式2。它通过对控制寄存器写入不同的方式选择控制字来决定其三种不同的工作方式。方式0是基本输入输出方式。该方式下的a口8位和b口8位可以由输入的控制字决定为输入或输出,c口分成高4位(pc4-pc7)和低4位(pc0-pc3)两组,也有控制字决定其输入或输出。需要注意的是,该方式下,只能将c口其中一组的四位全部置为输入或输出。方式1选通输入输出方式,又叫单向输入输出方式。它分为a、b两组,a组由数据口a和控制口c的高4位组成,b组由数据口b和控制口c的低4位组成。数据口的输入输出都是锁存的,与方式0不同,由控制字来决定它是作为输入还是输出。c口的相应位用于寄存数据传送中所需的状态信号和控制信息。方式2为双向输入输出方式。本方式只有a组可以使用。此时a口为输入输出双向口,c口中的5位(pc3-pc7)作为a口的控制位。在本系统中,8255a的三个端口均工作于方式0,全部为输出口。二、 系统设计(一)硬件设计1电路需求分析本系统要实现的功能是模拟十字路口红绿灯的工作状况。按照预先设定并优化的交通灯规则,控制led指示灯的亮灭,同时在实验箱的数码管显示屏上显示剩余的时间。当时间递减到0的时候,改变led灯的状态,并刷新显示屏显示的时间。为了实现以上功能需求,本系统需要12个led指示灯,来分别代表四个路口的直行、左转和右转灯;两个双位的数码管显示屏,用来显示1、3路口和2、4路口剩余的时间。为了实时地更新数码管显示屏上的数字,需要使用8255a可编程芯片来即时地改变显示屏每个笔划的电平高低,从而准确地将需要显示的数字显示在数码管显示屏上。由于交通灯需要按秒进行计数,所以需要一个均匀地时钟发生器。8253a芯片是个功能丰富、使用简单的定时/计数器。它可以根据需要设置不同的显示初值,从而产生所需频率的时钟脉冲,为系统提供计时和驱动其他事件的发生。8259a中断控制器芯片可以在收到8253a发出的时钟脉冲时,产生定时的中断,在中断服务程序中,更新显示缓冲区,并调用8255a芯片来执行相关程序,从而更新led灯和数码管显示屏。本系统使用集成的电路和实验环境,以方便进行电路的连接和测试,同时减少由于电路的复杂性而产生的错误。2电路连接设计本系统所使用到的硬件包括8253a芯片、8259a芯片、8255a芯片、led指示灯和数码管显示屏。在电路连接的时候,将8255a芯片的pb4-pb7连接至四个路口的直行灯, pc0-pc3连接至四个路口的右转灯,pc4-pc7连接至四个路口的左转灯。通过改变8255a的pb口和pc口的值来实时地控制每个led灯的亮灭,从而改变十字路口的交通状态。将8255a的cs插孔cs-8255接译码输出y7插孔。将8253a的t2clk插孔连接至1mhz的分频输出插孔。分频输出插孔所输出的频率是将系统的主频分解为一定的频率,以供其他硬件或者软件使用。8253a从分频插孔得到1mhz的固定频率,再根据芯片内部设定的计数初值,从而产生需要频率的时钟脉冲,由t2out口输出,供其他芯片使用。将8253a的t2out插孔连接至8259a的irq3插孔上。8259a的irq3中断口每隔固定的时间便会收到8253a发送过来的时钟脉冲,作为中断源来执行中断服务程序。在中断服务程序中,完成更新数码管显示值和改变交通灯状态的功能。硬件的连接见图2-1和图2-2。d0 t0outd1 gate0d2 t0clkd3 gate2d4 t2outd5 t2clkd6d7 8253a out1 cs rd wrgate2 a0clk1 a1d0d1d2d3d4d5d6d7vcctclk1t0outvcct0clkckvccub318253tout1cs3ioriowadd0add11mhzir0 d0ir1 d1ir2 d2ir3 d3ir4 d4ir5 8259a d5ir6 d6ir7 d7 a0sp/en wr rdcs int intaadd0iowiorintrintacsvcc图2-1 系统电路图8253a和8259a的连接图rd pb0 pb1wr pb2a0 pb3a1 pb4reset pb5cs pb6 pb78255a pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7vccy7l3(控制左转灯)l6l9l12l1(控制右转灯)l4l7l10l2(控制直行灯)l5l8l11cs_8255图2-2 系统电路图8255a和led灯的连接图(二)软件设计1程序总体设计本系统采用“自上而下总体规划、自下而上应用开发”的策略进行总体设计和开发。先根据其功能需要,设定需要的功能模块,确定需要编写的子程序,从而使程序结构清晰,便于阅读和调试,加快了系统完成的速度。结构化的程序设计方法很适合用来开发汇编语言程序,因为汇编语言的特性决定了其无法使用面向对象的程序开发方法;使用瀑布程序开发模型,从开始的时候把系统的需求分析透彻,对系统的功能和各个模块进行清晰的规划,从而缩短系统开发所用的时间。为了完成系统的功能,系统的程序部分应包含以下几个模块(见图2-3)。各个模块有的为一个子程序,有的为几个子程序的集合,有的为一段代码,但是其功能却是相互独立和便于调用的。程序定义模块。它用来定义系统的代码段、数据段、堆栈段、所使用到的常量和变量、8253a、8255a和8259a的各控制口和数据口地址,以及系统的储存地址的偏移量。汇编语言所编写的程序开头有固定的格式,为下面程序的运行建立必须的条件。芯片初始化模块用来初始化各个芯片,分为以下几个步骤:写8253a芯片的控制字,选用方波发生器方式,并设定其使用通道2进行工作;定义8255a的工作方式,使a、b、c三个端口均工作于方式0,且为输出口;写8259a的icw1、icw2、icw3和icw4,设定其工作方式为循环等待中断方式。地址赋初值模块(format)用来定义数字对应的显示字符,便于转换模块将时间缓冲区中的数值转换为便于数码管显示的字符;定义“err“显示区,供int7中断服务程序调用;定义初始显示缓冲区中的字符,用于系统初始运行的时候,直接从此取值进行显示;定义显示缓冲区,用于存放系统运行时剩余时间所对应的显示字符;定义交通灯的初始状态、初始时间缓冲区的值,便于系统开始运行时从此数值开始递减,led灯也按照这里定义的状态值进行点亮。等待模块(wating)在中断请求没有到来的时候,根据交通灯所处的状态,判断应调用哪个交通灯状态程序,从而点亮相应的led灯;有中断请求时,调用相应的中断服务程序。交通灯状态模块存放着四个交通灯状态子程序zt1、zt2、zt3、zt4,供等待模块调用。当某个子程序被调用时,便点亮相应的led灯。中断处理程序分为两个子程序。其中int7是在中断源电平信号不符合规定要求时,自动转到7号中断,在数码管显示屏上显示“err”;int3是主要的中断服务程序,用来对8253a发来的时钟脉冲进行计数,到达一定次数后,调用newtime、convers和leddisp模块。更新时间缓冲区模块(newtime)每次被调用的时候,将时间缓冲区中的时间减1,所以数码管显示屏上的数字才能够不断的减少。更新显示缓冲区模块(convers),用来将时间缓冲区中值转换为适合在数码管上显示的字符,并存入显示缓冲区。显示模块(leddisp)使用8255a将显示缓冲区的字符逐位显示在数码管显示屏上,完成显示数值的更新。程序定义模块地址赋初值模块format芯片初始化模块等待模块wating交通灯状态模块zt1-zt4显示模块leddisp中断处理程序int3,int7更新显示缓冲区模块convers更新时间缓冲区模块newtime交通灯控制系统图2-3 系统模块图2程序流程设计程序运行的流程图见图2-4。开始运行的时候,调用format初始化程序,给初始显示区和电平错误显示区赋初值,这样系统会在初始显示和电平有错误的时候,显示相应的字符;定义数值对应的显示字符,便于转换程序取到时间数值对应的字符;定义显示缓冲区的地址,便于系统运行的时候,把时间转换成的显示字符存到相应的单元中;定义时间缓冲区初值,系统运行后时间将从该处的值开始减小;定义系统初始状态,便于运行后led灯工作于相应的状态。接着对8253a、8255a和8259a进行初始化。定义8253a使用通道2,工作于方式3,其计数初值为3c50,每隔20ms向8259a发出一个时钟脉冲;8255a的a、b、c三个端口均工作于输出方式;8259a工作于循环等待中断方式。进入等待程序wating后,首先打开中断,等待8259a发出的中断请求。当无中断的时候,判断系统所处的状态,并调用相应的交通灯状态子程序,使led灯相应的点亮。芯片初始化初始化时间缓冲区、时间缓冲区、状态开中断状态1等待调用zt1状态2调用zt2状态3调用zt3调用zt4yyynnn主程序流程图关中断data620data6清零leddisp显示时间newtime时间减1状态1时间=0设为状态2,时间值为15、15状态2时间=0设为状态3,时间值为15、15状态3时间=0设为状态4,时间值为40、40状态4设为状态1,时间值为40、40convers时间转为显示字符y时间=0中断服务程序流程图yyyyyynnnnnnnnyn开始开始中断返回退出reset图2-4 程序流程图当有中断的时候,则转到相应的中断服务程序,本系统主要为int3程序。int3程序首先关闭中断,判断中断计数器data6单元所存储的中断次数是否达到20次,如果没有则直接调用intr2程序,打开中断,并中断返回。如果达到20次,则将中断计数器清零;再调用显示程序leddisp把当前时间显示出来;接着调用时间缓冲区更新程序newtime将剩余时间减1;进入状态判断程序p1-p4,当相应状态的剩余时间未减到0的时候,调用conv程序,更新显示缓冲区并中断返回,否则改变状态,并将新状态将持续的时间写入时间缓冲区,再调用conv程序,更新显示缓冲区并中断返回等待程序,执行相应的交通灯状态子程序。3重要代码分析(1)中断服务程序int3是本系统的程序最核心的子程序。它用来计算收到8353a发来的中断次数,当次数达到20的时候,就自动将次数清零、调用leddisp显示程序、newtime时间缓冲区更新程序、状态修改程序p1-p4和中断返回程序,完成数码显示屏上时间的更新和led灯状态的改变。以下是该程序的代码分析,并注有详细的功能说明。int3: ;定义函数名称 cli ;处理中断时先关中断 push ax ;保存堆栈 push dx mov al,ds:data6 ;data6用于保存收到的中断次数,取当前中断次数 inc al ;将中断次数加1 mov ds:data6,al ; 将加1后的中断次数写回data6存储单元 cmp al,20h ;将中断次数与20进行比较 jae next ; 大于等于20时,清零,并转向状态判断程序,中断返回 jmp intre2 ;小于时直接中断返回next: mov byte ptr ds:data6,00h ;将data6清零 call leddisp ;调用显示程序,将显示缓冲区中的数字显示出来 call newtime ;调用时间缓冲区更新程序,将时间缓冲区data8,data9减1p1: cmp byte ptr ds:status,01h ;判断是否是状态一 jnz p2 ;如果不是状态一,则转p2 cmp byte ptr ds:data8,00h ;如果是状态一,看时间否已经减到0 jne conv ;如果未减到0,则更新显示缓冲区,并中断返回 mov byte ptr ds:status,02h ;如果减到0,则设置系统为状态二 mov byte ptr ds:data9,15h ; 设定状态二时,路口的显示初始值 mov byte ptr ds:data8,15h jmp conv;p2-p4类似于p1,在此略去。 conv: call convers ;把时间缓冲区中的时间转换到显示缓冲区中intre2: mov al,20h ;写8259控制口 ,并中断返回mov dx,intport1 out dx,al pop dx ;弹出堆栈 pop ax sti ;开中断 iret ;中断返回(2)交通灯状态程序也是本系统中一个非常重要的子程序。它通过改变8255a的pb和pc口的值来控制特定led灯的亮灭。下面以状态1所对应的子程序为例,来分析一下如何用8255a来控制交通灯的亮灭。zt1: push ax push dx mov al,01010000b ;设置2,4路口直行灯亮 mov dx,bport ;bport为8255a的pb口的地址 out dx,al ;更改pb口的值,从而改变led灯显示的状态 mov al,00h ;设置四个路口左转灯,右转灯全部关闭 mov dx,cport ;cport为8255a的pc口的地址 out dx,al ;更改pc口的值,从而改变led灯显示的状态 pop dx pop ax retzt1f: ;状态一闪烁程序: 2、4路口直行灯闪烁 push ax push dxmov cx,12h ;定义闪烁12次zt1flash:mov al,00h ;灯灭mov dx,bportout dx,alcall delay2 ;短延时 mov dx,bport mov al,01010000b ;灯亮out dx,alcall delay2 ;短延时loop zt1flash ;循环 pop dx pop ax jmp wating ;跳转到等待程序(3)显示子程序leddisp: push ax ;将当前寄存器保存到堆栈中 push bx push cx push dx mov si,data4 ;将显示缓冲区的首地址0520h存入si mov al,90h ;初始显示时 data3 equ 0518h mov dx,contport ;写8255控制口 out dx,al mov byte ptr ds:data5,00h ;data5单元中保存当前显示到第几位led1: cmp byte ptr ds:data5,05h ;看是否显示到第5位 ja led2 ;如果显示完5位后,返回 mov bl,ds:data5 mov bh,0h mov al,cs:bx+si ; 将当前位的显示缓冲区的地址写入al mov dx,dataport ;写8255a数据口,以此改变显示值 out dx,al add byte ptr ds:data5,01h ;显示下一位 jnz led1led2: pop dx ;弹出堆栈并返回 pop cx pop bx pop ax ret另外,时间缓冲区更新子程序convers和时间缓冲区更新子程序newtime在本系统中也有很重要的作用。它们的具体代码见附录。三、系统实现(一)软件开发与运行环境本系统的代码使用8086汇编语言编写,所以代码编写环境可以使用任何文本编辑器。如系统自带的记事本、dos下的编辑工具edit和文本编辑工具ultraedit等。本系统使用了dvcc-8086jhn实验箱附带的dv88联机软件。它可以读取其他编辑软件生成的masm格式的汇编语言文件(*.asm),也可以作为汇编代码的编辑、测试、运行环境。在显示代码的时候,可以把常用的汇编指令显示为蓝色,数值显示为红色,注释显示为绿色,从而使论文清晰易读,并容易发现代码中的错误。dv88联机软件同样可以作为系统的运行环境。系统运行的时候需要将asm源程序编译产生的obj文件传送到实验箱,由实验箱上的处理器和各个芯片负责执行。(二)系统硬件环境交通灯控制系统采用的dvcc-8086jhn通用微机原理及接口实验系统,集成了8253a计数/定时器芯片、8255a可编程并行接口芯片和8259a中断控制器芯片,并把大部分的引脚进行了封装,方便直接进行使用;并设有12个led显示灯;系统分频器可以产生特定频率的时钟脉冲;固定的导线接口,方便使用导线把各芯片进行连接;并设有键盘,可以随时控制程序的运行,方便进行调试。实验箱使用串行口连接线与pc机的串口相连,然后使用dv88联机软件与实验箱进行连接并传送运行的程序。(三)系统运行步骤系统的代码编写完毕的时候,便可以进行程序的联机调试了。将实验箱的电源线连接好,使用串口通信线将实验箱上的串口与pc机上的串口相连。将各个芯片和led灯按照硬件连接设计图上的图示进行连接。打开实验箱的电源,数码管显示屏上显示dvcc86,提示实验箱初始化成功。在pc机上打开dv88联机软件,调用编辑好的程序代码。首先进行编译,系统会自动调用masm程序对代码进行编译。若没有提示错误,便可以点击连接按钮,调用link程序把编译生成的obj文件进行连接,生成exe文件。再点进调试按钮,把生成的可执行文件传送到实验箱,进行调试状态,此时屏幕会显示实验箱各个寄存器的值。最后点击连续运行按钮,实验箱上的数码显示管和led灯便会按照设计的要求进行工作。在运行的过程中可以随时按实验箱上的reset键,中断程序的执行,以便进行代码的修改或者结束系统的运行。(四)系统测试结果按照表1-1中交通灯四个状态所对应的秒数,在程序中为各个状态子程序设定相应的时间初值。测试运行的结果如下:开始运行时,系统在状态一下工作,两个显示屏显示剩余时间为45秒,并不断递减,同时led灯的2、4路口的直行灯点亮;当状态一的剩余时间减至零的时候,系统自动切换到状态二,显示屏显示剩余时间变为15秒并递减,同时1、3路口的左转灯和2、4路口的右转灯点亮;状态二结束时,系统切换到状态三,显示屏的剩余时间变更为15秒,1、3路口的右转灯和2、4路口的左转灯点亮;状态三结束时,进入状态四,显示屏剩余时间变为45秒,同时1、3路口的直行灯点亮。状态四结束时,自动切换到状态一循环执行。四、系统开发总结本文分析了设计高效交通灯系统的必要性,并从硬件和软件两方面分析其实现的可行性。在深入分析功能需求的前提下,本文详细地介绍了交通灯控制系统硬件的选择和连接,以及软件各模块的流程和重要代码的分析。最后介绍了系统的开发环境以及测试运行的具体步骤和结果。本系统在dvcc-86jhn实验平台上,利用汇编语言对8253a、8255a和8259a进行编程,实现在数码显示屏上的秒数变化时,动态地改变led灯的点亮状态,从而模拟交通红绿灯的工作过程。当然,这次系统开发由于硬件条件的限制以及时间的限制等原因,系统还存在很多需要完善的地方。如系统设置的交通灯状态数量较少也较为简单,程序代码的编写不够简练等。经过近三个月的努力,我在指导老师的帮助和指导下完成了红绿灯控制系统的开发任务。在做毕业设计之前我对硬件芯片编程的了解并不是很深刻,实际的开发经验比较少。在整个开发过程中,遇到了很多程序编写和硬件设计上的问题,但经过老师的指导和帮助,并查看相应的资料,最终达到了设计目的。在整个毕业设计的过程中,我学会了三种常用的可编程芯片的编程方法,对硬件编程有了初步的理解,对论文的写作也有了良好的认识。经过毕业设计的三个月,我学到了很多,比如如何把找工作和毕业设计的时间安排好,两者都是大四很重要的内容;如何在遇到问题的时候进行原因的分析和解决;怎么样去学自己以前从未接触过的东西等。参考文献:1郑学坚:微型计算机原理及应用实验指导(第二版),清华大学出版社,2001年。 2宋杰:微机原理与接口技术课程设计,机械工业出版社,2005年。 3马平:微机原理及应用,中国电力出版社,2003年。 4崔应留:微机原理与接口技术实验指导书,南京审计学院自编教材,2006年。 5万福君:单片微机原理系统设计与应用,中国科学技术大学出版社,2001年。 6喻萍:单片机原理与接口技术,化学工业出版社
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 兼职司机聘用协议
- 健康养生咨询及免责合同书
- 2025年防城港危险品考试题库
- 环保建材采购及质量保证合同
- 农业合作社土地租赁协议书
- 农村林地合作经营合同
- 体育赛事赞助权益合作协议
- 员工全年收入及奖金明细证明(6篇)
- 音响设备制造与出口协议
- 企业营销效果分析与跟踪实施合作协议
- 小学一年级写字教学(课堂PPT)
- 道路交通事故--------者及家庭情况登记表(共1页)
- ZPS型声控自动喷雾降尘装置说明书
- 钢筋混凝土单向板肋形楼盖课程设计
- 200903宝钢大厦BA系统改造方案
- 图书入库登记表
- BMH型半门式起重机说明书
- 放射性的应用与防护教案
- 医院岗位设置与人员编制标准[详]
- 土地估价报告市场比较法(工业)模板2016.09.26
- 每日安全巡查记录表
评论
0/150
提交评论