1、2、总体设计1、交通灯工作过程43、设计仿真图、设计流程图1、系统仿真图52、流程图63、8253、8255A结构及功能84、系统程序分析105、总结与体会136、参考文献13一、 需求分析1系统设计的意义:随着社会经济的发展,城市问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据检测、交通信号灯控制与交通疏通的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。随着城市机动车量的不断增加,组多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速通道,在
2、高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速通道,缓解主干道与匝道、城市同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通灯的控制方式很多,本系统采用可编程并行I/O
3、接口芯片8255A为中心器件来设计交通灯控制器,实现本系统的各种功能。同时,本系统实用性强,操作简单。2、设计内容采用8255A设计交通灯控制的接口方案,根据设计的方案搭建电路,画出程序流程图,并编写程序进行调试3、设计目的综合运用微机原理与应用课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识,提高程序设计能力及实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。针对此次课程设计主要是运用本课程的理论知识进行交通灯控制分析及设计,掌握8255A方式0的使用与编程方法,通从而复习巩固了课堂所学的理论知识,提高了对所学知识的综合应用能力。
4、4、设计要求:(1)、分别用C语言和汇编语言编程完成硬件接口功能设计;(2)、硬件电路基于80x86微机接口;(3)、程序功能要求:小键盘给定、数码管(屏幕)显示;(4)、同时具备急救车应急响应功能和时间倒计时显示功能。5、系统功能根据要求,我所设计的系统主要主要是基于普通的十字路口,交通灯的控制分为东西和南北两组,每组用红、黄、绿进行交通管理,除了基本的功能外,还添加了七段译码器时间显示模块和一种紧急情况处理模块,比方说急救车恰好遇到了红灯,可通过控制,让急救车所在的干道尽快变成绿灯而通车。1、交通灯工作过程 考虑普通十字路口,交通灯的控制可分东西向和南北向两组,每组可用红、黄、绿三个灯进行
5、交通管理,所以本方案要点是对12个交通灯进行控制。由于灯光控制只需要开、关两个状态,所以可以采用开关量实施控制。开关量的输出可以采用8255A的端口,由于开关量有6位,所以采用8位端口,又因为灯光控制不需要联络信号,所以按照方式0输出即可。时间显示模块采用七段数字显示器显示,运用共阴极接法,选用8255A的B口输出来控制七段数字显示器,其中低四位来控制个位的显示,高四位来控制十位的显示。我们知道七段数字显示器的段选是七个信号,用B口的高、低四位分别来控制十位、个位显示器显然是不行的,为了解决这个问题,我设计的是让B口输出的是经DAS指令调整过的压缩的BCD数,让译码器的输出来控制十位、个位显示
6、器,同样B口按照方式0输出即可。延时模块采用8253来设计,让计数器0、1级联使用,让计数器0的输出OUT0作为计数器1的时钟输入(CLK1),让计数器1的输出信号接到8255A的C口的0位,让处理器反复的读取PC0的值,当有脉冲进来的时候,也就是设计的时间结束时,才执行下一步,达到延时的目的。为了满足设计,让8255A的C口按照方式0输入即可,让计数器0工作在方式2,让计数器1工作在方式0。当计数器0的CLK采用2Mhz,初值为2000,计数器1初值为500时,计数器1输出一个就是意味着延时0.5秒。计数器的端口地址为40H43H,8255A的端口地址为60H64H。1、系统仿真图2、流程图
7、 主函数流程图延时0.5秒子函数流程图 时间显示模块函数流程图 3、8253、8255A结构及功能(1)8255具有两类控制字A、 方式选择控制字B、 c口复位/置位控制寄存器(2)8253定时器/计数器的结构及功能A、 8253计数器的结构B、8253定时/计数器的功能 可编程定时器芯片可以产生精确的时间间隔,形成各种脉冲序列,灵活性强。依所需时间间隔,设置计数器的时间常数,在一外部脉冲驱动下进行减1计数,计数值为0时,产生输出信号,供系统使用。 8253的每个通道均可以通过编程选择6种工作方式之一,这6种工作方式是:方式0: 计数到零产生中断请求;方式1: 硬件可重复触发的单稳态触发器;
8、方式2: 分频器;方式3: 方波发生器(用得最多的方式); 方式4: 软件触发选通;方式5: 硬件触发选通;C、 8253定时/计数器的实现方法利用CPU执行某一指令需要一定机器周期的原理,在软件编程时循环执行一段指令,从而产生累积的定时。4、系统程序分析.MODEL SMALL.8086.STACK.CODE.STARTUP START: MOV DX,0206H MOV AL,89H OUT DX,AL ;A、B口方式0输出,C口输入 MOV DX,0202H MOV AL,88H ;让显示器显示00 DAS OUT DX,AL MOV DX,0200H MOV AL,11H ;让两干道均
9、依次亮红黄绿灯0.5秒 CALL DELAY MOV AL,22H MOV AL,44H STEP1: MOV AL,41H ;设置亮灯情况(14H) MOV AH,AL ;保存亮灯状态东西干道亮红灯、南北干道亮绿灯 MOV AL,30H ;设置亮灯时间为30秒 CALL DISPLAY1 ;调用时间显示模块函数 STEP2: MOV AL,21H ;设置亮灯情况(22H)东西、南北干道均亮黄灯 MOV AL,5H ;设置亮灯时间为5秒 STEP3: MOV AL,14H ;设置亮灯情况(41H)东西干道亮绿灯、南北干道亮红灯 STEP4: MOV AL,12H ; JMP STEP1 ;延时
10、0.5秒子函数 DELAY PROC PUSH AX ;将当前AX入栈保存 MOV DX,0406H MOV AL,34H ;设定8253计数器0的工作方式2 MOV DX,0400H MOV AX,2000 ;给计数器0装入初值(2000) MOV AL,AH MOV AL,70H ;设定8253计数器1的工作方式0 MOV DX,0402H MOV AX,250 ;给计数器1装入初值(500) AGAIN1: MOV DX,0204H IN AL,DX ;检测计数器1的输出信号 AND AL,1 JZ AGAIN1 ;信号没来继续检测,否则结束 POP AX RET DELAY ENDP
11、DISPLAY1 PROCAX入栈保存 AGAIN2:显示器显示当前剩余时间 CMP AL,3 ;剩余时间是否多余3秒 JG D1 ;高于3秒,跳转到D1低于3秒,灯开始闪烁 MOV AL,0 ;低于三秒,灯熄0.5秒检测是否有紧急信号 AND AL,2 JNZ EXIT ;有紧急信号则跳出子函数 CALL DELAY ;熄灯延时0.5秒 MOV AL,AH ;灯亮0.5秒 JMP D2 D1:延时0.5秒 D2: POP AX ;恢复AX DEC AL ;把剩余时间减1秒 DAS ;调整AL CMP AL,0 ;剩余时间不小于0就继续显示 JNL AGAIN2 ;否则就结束该子函数 EXIT
12、: D3: JNZ D3 ; DISPLAY1 ENDP END5、总结与体会这次课程设计的主要任务是根据课堂所学知识,运用8255A进行交通灯控制的设计。按照设计的要求,我查阅了相关的资料,先设计出了单元电路,在此基础上设计出了整个系统的电路图。通过此次课程设计,我对8255A、8253的工作方式有了深刻的理解和认识,由于灯光控制只需要开、关两个状态,所以可以采用开关量实施控制。这次的课程设计通过对微机原理这门课程有了进一步的认识,加深了理解,巩固了所学的的知识,在设计时,要考虑到8255A、8253不同工作方式的差异,通过查阅很多资料,拓展了知识面,在这一过程中,我也学到了很多东西。在设计
13、时,根据要求选择合适的工作方式显得十分的重要。该次课程设计是利用课堂所学的知识来解决一个实际的问题,生动有趣,提到了我们运用知识的能力。通过课程设计,对于自己使用Proteus的技巧是一个很大的提高,如何让布局合理、如何让电路简单的设计是一种锻炼,同时也是一个娱乐的过程。总之,课程设计作为一种教学方式,巩固了我们课堂上所学的知识,提高了我们对知识学习的热情,锻炼了我们运用知识解决实际问题的能力,让我们收获了很多。6、参考文献1 周荷清,吴秀清 微型计算机原理与接口技术.中国科技大学出版社 ,20082 舒贞权,任伟利微机计算机原理M西安:西安交通大学出版社,19973 顾元刚,韩燕汇编语言与微机原理教程M北京:电子工业出版社,20004 楼顺天,周社佳.微机原理与接口技术M 科学出版社,2006
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2