




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机原理及接口技术 课程设计报告 题 目 交通控制系统设计 学院(部) 电子与控制工程学院 专 业 建筑设施智能技术 班 级 学生姓名 学 号 2011年12 月 18日至2011年 12 月 29日 前 言随着社会经济的发展,城市问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据检测、交通信号灯控制与交通疏通的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。随着城市机动车量的不断增加,组多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速通道,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速通道,缓解主干道与匝道、城市同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通灯的控制方式很多,本系统采用intel8086为中心器件来设计交通灯控制器,实现本系统的各种功能。同时,本系统实用性强,操作简单。关键字:交通灯目 录前 言 1关键字1设计任务3第一章 系统概述4第二章 单元方案选择与论证5 硬件设计5 软件设计12第三章 交通灯控制系统总电路图15第四章 源程序 16心得与体会26参考文献26指导教师评语27一、设计任务:(一)设计要求:(1)设a道为东西方向,b道为南北方向。a道和b道上均有车辆要求通过时,a、b道轮流放行。a道放行x分钟),b道放行y分钟 。(2)一道有车而另一道无车时,交通灯控制系统应能立即让有车道放行。(3)交通灯的变化状态如表1所示。a车道与b车道之间的切换时间为2秒(即:黄灯闪的时间)。表1 交通灯状态表状 态紧急车通过的状态0:a道红灯亮,b道红灯亮状态1(a道放行):a道绿灯亮,b道红灯亮状态2(a道向b道切换):a道黄灯闪,b道红灯亮状态3(b道放行):b道绿灯亮,a道红灯亮状态4(b道向a切换):b道黄灯闪,a道红灯亮(4)当有急救车和消防车时,a、b道红灯亮,以禁止普通车辆通过并让其穿红灯而过。只有当其通过后,交通灯才恢复到正常的状态。(用中断技术实现)(5)显示灯控时间,当时间到时或剩余若干秒时,声报警提示(二)扩充功能(1)转弯道的路灯控制(2)分时区控制功能:如6:0022:00正常路灯控制,22:00次日6:00, 黄灯闪烁控制模式。第一章 系统概述1.1设计步骤与思路1.1.1 总框图设计构思在通过对题目以及要求的分析和思考,明确了设计任务的功能后,我们将设计过程分为五大模块,并分析各个模块之间的工作关系,最后将各模块组合在一起画出总体功能模块图,并完成实现整体的电路图,最终使用proteus模拟器模拟其实际功能,最终完成设计书。1.1.2 各单元的构思 对于不通的实验要求对各模块进行分析,这个题目是一个硬件与软件相结合的系统,通过研究,我们根据总电路的功能的划分,结合我们所学习过的知识对该系统进行具体的构思设计各单元模块,在实现各模块构思设计时,从要实现的功能及如何实现等方面着手,从熟悉的芯片与原件入手,选择相应的元器件及芯片,再进行细节设计,最后使用proteus对其进行仿真与测试。1.1.3 总电路图的构思(1)在以上步骤中设计好单元模块后,再从各个单元功能模块间的控制关系着手,选择最优方案,分别对各单元功能模块进行检验论证,在保证各个模块间无冲突,均能正常运行。(2)在仿真无误后,对整体电路进行误差分析,确定符合要求后,对模块间进行连接时电路图完整。而本设计的应重点分析部分。 (3)根据整体的电路的分布进行分划,设计好各个元件之间的连接以及位置,最后完成总的电路图。第二章 单元电路设计与分析一、硬件设计1.译码电路设计通过分析8259、8253、8255各端口地址,设计合理的地址译码电路。8259的地址为00h、01h、8253的地址为30h、31h、33h,8255的端口地址为70h、71h、72h、73h。采用独立编址的部分译码电路,具体见下图所示:2.计时中断模式2.1 8253级联方式本设计中采用计数器0的输出做计数器1的输入做级联,计数器0的时钟频率为1.19mhz,其中计数器0和1都采用方式2工作2.2 8259与8253连接3.中断模块4.并行通信模块5.主电路模块3.芯片介绍3.1 计时器/定时器8253(1)内部结构8253是intel公司生产的三通道16位的可编程定时/计时器,24引脚双列直插封装。8253的内部结构由数据总线缓冲器,读、写控制逻辑,3个独立的计数器三部分组成。 1)数据总线缓冲器这是一个三态8位双向缓冲器,d7d0同系统数据总线相连。cpu通过执行输入/输出指令来实现对缓冲器发送或接受数据。8253的控制字也是通过该缓冲器传送的。2)读、写控制逻辑读、写控制逻辑用来管理数据信息和控制字的传送,它接收来自cpu地址总线和控制总线的有关信号,向3个独立的计数器的控制部件发送命令。对8253进行控制的信号有:a1,a0:片内寄存器选择信号;cs:片选信号,低电平有效;rd:读信号,低电平有效;wr:写信号,低电平有效。控制信号cs,rd,wr以及a1,a0的组合可以实现对三个计数器和控制寄存器的读写操作。3)计数器三个计数器中每一个都有三条信号线:clk:计数输入,用于输入定时基准脉冲或计数脉冲;out:输出信号,以相应的电平指示计数的完成或输出脉冲波形;gate:选通输入,用于启动或禁止计数器的操作,以使计数器和计数器输入信号同步。每个计数器中有四个寄存器:a.6位的控制寄存器,初始化时,将控制字写入该寄存器;b.16位的计数初值寄存器,初始化时写入该计数器的初始值,其最大初始值为0000h;c.16位的减计数器,计数初值由计数初值寄存器送入减计数寄存器,当计数输入端输入一个计数脉冲时,减计数寄存器内容减一;d.16位的输出锁存器用来锁存计数执行部件的内容,从而使cpu可以对此进行读操作.(2) 工作方式8253有六种工作方式:(1)方式0:计数结束中断(2)方式1:复触发的单稳态触发器(3)方式2:频率发生器(4)方式3:方波发生器(5)方式4:软件触发选通信号(6)方式5:硬件触发选通信号计数启动方式:a.软件启动:gate端为高电平,置入计数初值后的第2个clk脉冲的下降沿。b.硬件启动:gate端有一个上升沿,对应clk脉冲的下降沿计数过程中,可用门控脉冲gate重新启动计数。当gate变低时,现行计数暂停,变高后,下一个clk输入脉冲使减一计数器恢复计数初值重新开始计数,所以可用一个外部控制逻辑来控制gate,从而达到同步计数的作用(3) 控制字8253只有一个控制字,其格式和含义如图3-2-1所示图3-2-1 8253控制字8253的控制寄存器和3个计数器分别具有独立的编程地址,并且控制字本身的内容又确定了所控制的寄存器序号,所以对8253的编程没有太多严格的顺序规定,使用非常灵活。但是,编程有3条原则必须严格遵守:1)在选择任何一种工作方式下,都必须先向8253写入控制字,控制字还起复位作用,它使out端变为工作方式中规定的状态和对计数初值寄存器清零。2)对计数器设置初值前必须先写控制字,在设置计数初值时,要符合控制字中的格式规定,控制字中一旦规定,具体初始值设定时就要与之一致。3)读取当前计数值时,必须设置锁存操作控制字。由于8253对外的数据线只有8根,对16位计数器进行写入或读取当前计数值时,需要分两次进行;由于两次读/写之间存在时间间隔,这期间可能恰好有计数脉冲,所以读出的值带有随机性,为了使cpu能获得计数器某一时刻准确的值,8253设置了锁存操作。当控制字的d5,d4位为00时,表示锁存。当锁存命令到来时,减一计数器记到某一个值,因为锁存器是跟随减一计数器工作的,所以,锁存器中为同一个值,此时,这一数值被锁住,当cpu将此锁定值置后,锁存器自动失锁,于是又跟随计数器变化。3.2 中段控制器8259a8259a是一种可由软件进行控制的中断控制器,可以使用于各种不同环境,具有很强的中断管理功能。8259a主要功能有:a.每片8259a可管理8级优先权中断源,在基于不增加其他电路的情况下,通过8259a的级联,最多可管理64级优先级的中断源;b对任何一个级别的中断源都可以单独进行屏蔽,使该级中断请求暂时被禁止,直到取消屏蔽时为止;c.向cpu提供可编程的标识码,对于8086-pentium的cpu来说就是中断类型码。d.具有六种中断优先权管理方式,即全嵌套方式、特殊全嵌套方式、自动循环方式、特殊循环方式、特殊屏蔽方式、中断查询方式,这些管理方式均可通过程序动态的进行变化;e.具有三种中断结束方式,即自动中断结束方式,一般的中断结束方式和特殊的中断结束方式;f.8259a用nmos工艺制作,只需要一组+5v电源。3.3可编程并行接口8255 (1)内部结构8255为可编程的并行接口芯片,具有40个引脚,双列直插dip封装,+5v供电,全部信号与ttl电平兼容。8255的特点有:a.具有三个并行数据传输端口:a端口、b端口、c端口;b.每个端口拥有不同的工作方式:a口具有3种工作方式;b口具有2种工作方式;c口只有1种工作方式;c.每个端口工作在输出方式时,具有锁存功能;d.可以通过编程设置成4位端口,8位端口,12位端口,16位端口,20位端口或24位端口;8255由四部分组成,如下图3-2-2所示图3-2-2 8255a 结构图(2)工作方式8255有三种工作方式(方式0,方式1,方式2)可供选择使用,而且三个端口可以同时按照各自选择的工作方式工作,当然8255各端口在正常工作开始前,必须进行初始化设计,确定每个端口按哪种工作方式工作。方式0:基本输入或输出方式,为单向8位端口。多用于同步数据传输场合,无需握手线进行传输,也可用于查询方式,此时往往用c口的某些信号线作为自定义状态线和控制线。8255的三个端口都可工作于方式0。方式1:选通输入或输出方式,为单向的8位端口。只有a口和b口可以工作在方式1状态,而此时c口的某些信号线一定作为a口或b口的联络线,其他非联络线仍可以工作在方式0 输入或输出状态。方式2:双向传输方式,既可以输入又可输出。只有a口可以采用方式2 工作,此时c口中的5根信号线作为a口的联络线,而其余的3根信号线可以做b口方式1时的联络线,或者与b口一起工作在方式0状态。(3)控制字8255在正常工作之前必须进行初始化设置,对所用到的每个端口都要设置具体的工作方式。8255具有2个控制字:方式控制字和c口位控控制字。2个控制字均需要送入控制寄存器口地址中,其区别在于:方式控制字中的d7=1,c口位控控制字中的d7=0。1)方式控制字其中d7为方式控制字标志位,用来区别c口位控控制字。d6d5设置a口的工作方式,d4 设置a口处于方式0或者方式1时的传输方向,当处于方式2时此位无效,d3设置c口的高4位传输方向,由于c口只有一种工作方式,因此不需要设置方式,d2设置b口的工作方式,d1设置b口的传输方向,d0设置c口的低4位传输方向。当c 口的信号线作为a口或 b口的联络线时,设置无效。2)c口位控控制字c口位控控制字用于将c口中的某一位清0或置1。c口位控控制字格式定义如下:其中d7为方式控制字标志位,用来区别方式控制字,d6d5d4为无效位,d3d2d1用来选择pc7pc0中之一,d0为0表示清0,为1表示置1。二、软件设计主程序流程图如下所示:初始化8255,8253和8259芯片;main主程序开始判断是否有紧急情况是否在6:00-22:00东西南北黄灯闪烁判断东西有车南北无车判断东西无车南北有车东西绿南北红东西红南北绿倒计时剩是否不足5秒停止报警报警分是否为奇数东西绿南北红东西红南北绿是否剩2秒是否剩2秒黄灯闪开始否否否东西南北红是否否否否否否否否否是是是是是是否否否否否否否否否0定时中断流程图如下:分加1秒归0进入中断否否否分是否为1440秒标志位是否为60天标志位置位退出中断显示标志位翻转显示标志位是否为0调用显示函数否否否是是否否否是1号外部中断如图:进入中断紧急标志位翻转退出中断第三章 交通灯控制系统电路图第四章 源程序;*数据段初始化*data segment a_icw1_8259 equ 00ha_icw2_8259 equ 01ha_icw4_8259 equ 01ha_ocw2_8259 equ 00hd_icw1_8259 equ 13h ;icw1 上升沿,单片,写icw4d_icw2_8259 equ 08h ;ir0中断向量码为08hd_icw4_8259 equ 01h ;非自动eoi方式a_cnt0_8253 equ 30ha_cnt1_8253 equ 31h a_conl_8253 equ 33h d_cnt0_8253 equ 2000 ;cnt0为2000,主频2mhz时定时为1msd_cnt1_8253 equ 500 ;cnt1为500,主频1khz时定时为0.5sd_conl0_8253 equ 34h ;cnt0为16位数据,工作方式2,二进制d_conl1_8253 equ 74h ;cnt1为16位数据,工作方式2,二进制a_pa_8255 equ 70h a_pb_8255 equ 71ha_pc_8255 equ 72ha_conl_8255 equ 73h d_conl_8255 equ 88h ;a口方式0输出,b口方式0输出,c口低4位输出mark1 db 00h ;0.5s计数mark2 dw 0000h ;1min计数mk db 00h ;特殊情况标志位mk1 db 00hmk2 db 00hdata ends ;*堆栈段初始化*stack segment dw 64 dup(?)stack ends;*代码段*code segment assume cs:code,ds:datastart: mov ax,data ;段寄存器初始化 mov ds,ax push ds;当前用户ds段入栈保存 mov ax,0000h mov ds,ax;修改ds=0000h,指向中断矢量表所在段 mov ax,offset irq0 ;取出中断处理子程序的入口偏移地址(以0为基准) add ax,2000h ;修正,实际地址=装入地址的偏移量+相对于0起始的偏移量 mov si,0020h;ir0中断矢量号为08h,处于矢量表的20h23h mov si,ax;将偏移地址装入矢量表 mov ax,0000h mov si,0022h mov si,ax;将段地址(0000h)装入矢量表 mov ax,offset irq1 ;取出中断处理子程序的入口偏移地址(以0为基准) add ax,2000h ;修正,实际地址=装入地址的偏移量+相对于0起始的偏移量 mov si,0024h;ir1中断矢量号为09h,处于矢量表的24h27h mov si,ax;将偏移地址装入矢量表 mov ax,0000h mov si,0026h mov si,ax;将段地址(0000h)装入矢量表 pop ds;恢复用户数据段ds;-初始化8259- mov al,d_icw1_8259 ;写入icw1,上升沿触发,写icw4 mov dx,a_icw1_8259 out dx,al mov al,d_icw2_8259 ;写入icw2,设置ir0的中断向量码为08h,ir7中断向量码为0fh mov dx,a_icw2_8259 out dx,al mov al,d_icw4_8259 ;写入icw4,非自动eoi mov dx,a_icw4_8259 out dx,al ;-初始化8253- mov dx,a_conl_8253 mov al,d_conl0_8253 out dx,al mov al,d_conl1_8253 out dx,al mov dx,a_cnt0_8253 mov ax,d_cnt0_8253 out dx,al mov al,ah out dx,al mov dx,a_cnt1_8253 mov ax,d_cnt1_8253 out dx,al mov al,ah out dx,al sti ;开中断;-初始化8255- mov al,d_conl_8255 ;写入8255方式控制字,a口方式0输出,c口高4位输入,b口方式0输出,c口低4位输出 mov dx,a_conl_8255 out dx,al;*主函数体死循环*;/main: mov al,mk ;判断mk是否为1,为1为特殊情况,为0为普通情况 cmp al,0 jz normal jmp specialspecial: mov al,10001000b ;东西红,南北红 mov dx,a_pa_8255 out dx,al jmp main normal: mov ax,mark2 cmp ax,360 ;判断mark2是否=6:00 jae judge ;是则继续判断 jmp t22_0_6 ;否则进入22_0_6执行judge: cmp ax,1320 ;判断mark2是否=55s,即剩余不足5s时报警 jb silent ;55s则停止报警 sound: mov al,01h ;c口按位操作,c0口置1 mov dx,a_conl_8255 out dx,al silent: mov al,00h ;c口按位操作,c0口置0 mov dx,a_conl_8255 out dx,al pop ax pop dx ret warning endp ;*数码管显示子函数*display proc push ax push dx push bx mov al,mark1 cbw ;al扩展成ax and ax,00ffh ;ax高位清零 mov bl,2 div bl ;ax/bl传到al 即秒值 mov bl,60 sub bl,al ;60-al传到bl mov al,bl cbw and ax,00ffh mov bl,10 div bl ;al中存放商,ah中存放余数 mov bh,ah mov bl,16 mul bl ;al中的数乘以16即左移4位放入ax中 mov ah,bh or al,ah ;将ah中的余数与al中移位后的整数相或 mov dx,a_pb_8255 out dx,al ;显示转换为bcd码的整数 pop ax pop dx pop bx ret display endp ;*irq0中断服务子程序(定时)*irq0: push ax push dx xor ax,ax mov al,mk2 ;mk2每0.5s翻转一次 cmp al,0 jz mrh2 jnz mrl2 mrh2: mov al,1 mov mk2,al jmp ok2 mrl2: mov al,0 mov mk2,al call display ;mk2每两次翻转即1s则调用一次数码管显示函数 jmp ok2 ok2: mov al,mark1 inc al mov mark1,al cmp al,120 ;判断mark1是否为1min jz t1min jmp over0;/ t1min: mov al,mk1 ;mk1每1min翻转一次 cmp al,0 jz mrh1 jnz mrl1 mrh1: mov al,1 mov mk1,al jmp ok mrl1: mov al,0 mov mk1,al jmp ok ok: mov al,00h ;mark1清零 mov mark1,al mov ax,mark2 inc ax mov mark2,ax cmp ax,1440 ;判断mark2是否为1day jz t1d jmp over0;/ t1d: mov ax,0 ;mark2清零 mov mark2,ax over0: mov al,20h ;一般eoi命令,全嵌套方式,ir0复位 mov dx,a_ocw2_8259 out dx,al
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省淮北市五校联考2022-2023学年九年级上学期语文月考三试卷(含答案)
- 2025年保健教师考试及答案
- 2025年保安员考试题库及答案
- 楚雄国企考试题目及答案
- 综合实践课考试题及答案
- 怒江州人工温泉施工方案
- 固化剂掺地坪漆施工方案
- 房屋监理规划方案范本
- 自来水厂木工施工方案
- 江苏第四代住宅施工方案
- 内蒙古铜矿资源报告
- MSA-测量系统分析模板
- 植筋锚固深度计算表格
- 切肉机安全操作规程
- 110KV、220KV线路迁改工程施工组织设计.11588
- 钢箱梁支架搭设检查验收表
- 旅游文体翻译课件
- 植物病理学课件
- 广西基本医疗保险门诊特殊慢性病申报表
- 幼儿园小班语言活动教案《我会看书》
- DB62∕T 3171-2019 双向螺旋挤土灌注桩技术规程
评论
0/150
提交评论