交通信号灯控制课程设计.docx

上传人:b****5 文档编号:5738563 上传时间:2022-12-31 格式:DOCX 页数:15 大小:142.10KB
下载 相关 举报
交通信号灯控制课程设计.docx_第1页
第1页 / 共15页
交通信号灯控制课程设计.docx_第2页
第2页 / 共15页
交通信号灯控制课程设计.docx_第3页
第3页 / 共15页
交通信号灯控制课程设计.docx_第4页
第4页 / 共15页
交通信号灯控制课程设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

交通信号灯控制课程设计.docx

《交通信号灯控制课程设计.docx》由会员分享,可在线阅读,更多相关《交通信号灯控制课程设计.docx(15页珍藏版)》请在冰豆网上搜索。

交通信号灯控制课程设计.docx

交通信号灯控制课程设计

西南科技大学

课程设计报告

 

课程名称微型计算机原理与接口技术

设计题目交通信号灯控制

院(系)

年级专业

班级

学生姓名

学号

指导老师

 

2008年01月08日

目录

一概述…………………………………………………3

二 设计内容与要求………………………………………4

三 设计思想………………………………………………5

四 教学实验系统连线……………………………………6

五 所用芯片工作原理……………………………………6

六 实验连线图……………………………………………7

七 程序流程图……………………………………………7

八 程序源代码……………………………………………11

九 设计心得………………………………………………15

 

一、概述

十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。

十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。

当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—黄灯—绿灯”转换间隔,并自动切换。

它们一般由通行与禁止时间控制、红黄绿三色信号灯和方向指示灯三部分组成。

交通灯的时间控制,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。

但是,实际上不同时刻的车辆流通状况是十分复杂的、高度非线性的、随机的,还经常受人为因素的影响。

采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。

它不会因当前道路上通行车辆数的实际情况而变化,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。

    

    本次课程设计有一个十字路口,1,3为南北方向,2,4为东西方向,每个路口各有红、黄、绿三个交通信号灯。

用红黄绿三个彩色发光二极管模拟控制交通信号。

红、黄、绿灯接通时间分别为5秒、2秒、5秒。

二、设计内容与要求

1、设计要求

假设有一个十字路口,1,3为南北方向,2,4为东西方向,每个路口各有红、黄、绿三个交通信号灯。

用红黄绿三个彩色发光二极管模拟控制交通信号。

红、黄、绿灯接通时间分别为5秒、2秒、5秒。

 

2、设计内容

用8255的B端口和C端口控制12个LED发光二极管的,发光二极管输入为“0”时点亮;为“1”时熄灭。

8255应工作于模式0输出状态。

(1)十字路口红、绿灯通电方式如下表:

十字路口红、绿灯通电方式

绿1

绿2

绿3

绿4

黄1

黄2

黄3

黄4

红1

红2

红3

红4

 

(2)交通灯的时间控制

时间控制有两种方法:

1)硬件定时;

2)用软件延时,调用软件延时子程序。

 

三、设计思想

1.用实验系统8255A实现对信号灯的控制(所用端口自定);2位数码显示用8255A实现控制。

2.用实验系统8235的计数器2定时向实验系统主片8259A的IRQ7请求中断,以实现要求的5秒钟、2秒钟和5秒钟的定时。

实验系统8235的计数器2的CLK2接OPCLK,频率为1.19318MHZ;GATE2已接+5V;定时采用软硬件相结合的方式实现。

⒊用实验系统的发光二极管模拟红绿灯。

    注:

8259A的端口地址为:

218H、219H

        8255A的端口地址为:

端口A-200H、端口B-201H、端口

C-202H、控制端口-203H

8253的端口地址为:

计数器0-208H、计数器1-209H、计数器2-20aH、控制寄存器0-20bH。

设计数器0的计数初值为25000,由于CLK0接脉冲信号,频率为2.5MHZ,所以每10ms中断一次。

利用CX对不同的状态时间计数,用来实现计数器0对5秒钟,2秒钟,5秒钟的定时。

中断子程序分为数码显示刷新部分和红绿黄灯各种状态切换部分。

每进入中断即刷新LED显示。

用对于东西车道和南北车道黄灯闪烁利用标志位判断实现,满足比较条件就暗,不满足条件就亮。

 

四、教学实验系统连线

 

五、所用芯片工作原理

8253计数的起停由8255的PA0控制,8255的PA0输出1时,8253开始计数,交通灯按正常状态切换工作,PA0输出0时,计数器停止工作,交通灯不再按正常状态切换。

8253开始计数后每100ms发出一个中断申请信号,在中断子程序中先刷新数码管,然后判断当前状态,进入相应的处理程序进行处理。

当有紧急情况时进入外部中断服务子程序,先让8253停止计数,然后点亮所有的红灯,下一次外部中断处理时,恢复原来的交通灯状况,启动8253开始工作。

六、实验连线图

8255接口电路

 

七、程序流程图

主程序负责系统的初始化,然后数码管数据输出显示,同时检测PC键盘按键,有按键就退出程序。

主程序的流程图如图1示。

系统初始化包括8253的初始化,8255的初始化,中断向量初始化以及设置交通灯工作的初始状态。

8253定时的时间是100ms,clk0的输入时钟f=46875hz,所以计数初值为124FH。

 

 

图1主程序的流程图

 

定时中断子程序是本设计的重点,负责完成数码管输出数据刷新和各个状态的处理切换。

中断子程序包括数码管输出数据刷新程序和各状态处理程序。

中断程序的流程图如图2所示。

数码管输出数据刷新子程序是实现倒计时5s,用LEDOUT表示输出的数据,cnt用来软件计时1s,就是计数50个100ms。

LED输出是要将输出的数据转化为段选码。

LED数码管倒计时显示子程序的流程图如图3所示。

根据当前的状态跳转到相应的处理程序,在处理程序中完成定时和状态的切换。

状态1和3的流程是一样的,先点亮对应的交通灯,再判断定时到了就可以切换了。

状态2和4要实现黄灯的闪烁,间隔点亮和熄灭就可以了。

状态1和3处理程序的流程图(以状态1为例)如图4所示,其中NUM是状态1对应的PC口输出,见前面的表中介绍。

状态2和4处理程序(以状态1为例)的流程图如图5所示,其中NUM1和NUM2是状态1对应的PC口输出。

 

外部中断服务子程序主要用来处理紧急情况,将2个方向的车都停止运行,点亮所有红灯。

下次中断来时恢复以前的状态。

用一个标志位FLAG判断是第一次进入还是恢复状态。

外部中断服务子程序的流程图见图6所示。

八、程序源代码

本次设计中,选用8235的计数器0定时向实验系统主片8259A的IRQ0请求中断。

设置8253的计数器0每100ms请求一次中断,工作于模式3;8255的A端口控制交通灯;数码管驱动程序采用指导老师提供的程序。

初始化程序:

DATASEGMENT

LEDDB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H       ;存放七段代码表

DB  7FH,6FH,77H,7CH,39H,5EH,79H,71H        

D1EQU10H

D2      EQU200H            ;8255A端口A

EAEQU200H               ;8259端口地址

EEEQU203H

CONTROLEQU20bH          ;8253端口地址

COUNT0  EQU208H

COUNT1  EQU209H                  

COUNT2  EQU20aH

Z8279    EQU       222H

D8279    EQU       220H

LEDMOD   EQU       00   ;左边输入,八位显示外部译码八位显示

LEDFEQ   EQU       38H  ;扫描频率

DATAENDS

CODESEGMENT

    ASSUMECS:

CODE,DS:

DATA

CODE   SEGMENT

      ASSUMECS:

CODE

CONT    DB0

CONT1    DB0

CONT2    DB0

BKSD    DB0

BKAD    DB0

BKDA    DB0

TEMP    DB0

*******************************************

START:

MOVAX,0

MOVDS,AX

MOVAX,OFFSETIRQ0

ADDAX,2000H

MOVSI,0FH*4

MOV[SI],AX

MOVAX,0

MOV[SI+2],AX

INAL,218H

ANDAL,7FH

OUT219H,AL

CLI

MOVAL,80H        ;初始化8255

OUTEE,AL

MOVAL,00

OUTEA,AL

MOVAL,0f0H

OUTEA,AL

              

MOV   DX,218H      ;8259初始化

MOV   AL,00010010b

OUT   DX,AL

MOV   AL,08H

MOV   DX,219H

OUT   DX,AL

    

MOV     DX,203H    ;设置为全输出

MOV     AL,80H

OUT     DX,AL

MOV     DX,200H

MOV     AL,0ffh

OUT     DX,AL       ;清LED

MOV     DX,200H     ;全红

MOV     AL,0F0H

OUT     DX,AL

MOVAL,00000010b   ;初始化8253

OUTCONTROL,AL

MOVAX,2500

MOVDX,COUNT0

OUTDX,AL

MOVAL,AH

OUTCOUNT0,AL

MOVAX,DATA

MOVDS,AX

中断服务程序:

A1:

    STI

    HLT

    JMPA1

IRQ0:

                                    

    JMPCOMPARE

COMPARE:

CMPDL,0

    JZSTATE0

    CMPDL,1

    JZSTATE1

    CMPDL,2

    JZSTATE2

    CMPDL,3

    JZSTATE3

STATE0:

                ;状态0:

东西红南北绿

    moval,00000101b   

   outD2,al

    DECSI

    JNZCHANGE1

    DECDH

    MOVSI,100

CHANGE1:

DECCX

    CMPCX,0

    JNZM0

    MOVCX,500

STATE1:

    DECDI         ;状态1:

东西方向黄灯闪烁,南北绿灯

    CMPDI,0

    JNZSHINE1

    MOVAL,00000101b     ;东西灭,南北绿

    OUTD2,AL

    MOVDI,50

    JMPCHANGE

SHINE1:

    MOVAL,00000010B     ;东西黄,南北绿

    OUTD2,AL

CHANGE:

    DECSI

    JNZCHANGE2

    DECDI

    MOVSI,100

CHANGE2:

DECCX

    CMPCX,0

    JNZM1

    MOVCX,2000

    MOVDH,25

STATE2:

    MOVAL,00000101b          ;状态2:

东西绿灯,南北红灯

    OUTD2,AL

    DECSI

    JNZCHANGE3

    DECDH

    MOVSI,100

CHANGE3:

DECCX

    CMPCX,0

    JNZM2

    MOVCX,500

STATE3:

DECDI                   ;状态3:

东西绿灯,南北黄灯闪烁

    CMPDI,0

    JNZSHINE2

    MOVAL,000000101B                   ;东西绿灯,南北灭

    OUTD2,AL

    MOVDI,50

   JMPSOURCE

SHINE2:

    MOVAL,00000010B            ;东西绿,南北黄

    OUTD2,AL

SOURCE:

    DECSI

    JNZCHANGE4

    DECDH

    MOVSI,100

CHANGE4:

DECCX

    CMPCX,0

    JNZM3

    MOVCX,6000

    MOVDH,65

M0:

    MOVDL,0           ;下次进入状态0

    JMPEXIT

M1:

    MOVDL,1           ;下次进入状态1

    JMPEXIT

M2:

    MOVDL,2           ;下次进入状态2

    JMPEXIT

M3:

    MOVDL,3           ;下次进入状态3

EXIT:

    MOVAL,20H

    OUT218H,AL

    IRET

CODEENDS

ENDSTART

九、设计心得

在本次设计中,使用了8259A中断控制器、8253计数器、8255可编程并行接口实现了,对南北、东西方向交通的分别计时、分别控制。

在设计中掌握的计算机接口设计的基本方法、锻炼了团队合作的能力。

本次设计中,对MCS-51单片机又有了更深的认识。

MCS-51单片机内部有两个可编程定时器/计数器T0和T1,每个定时器/计数器有四种工作方式:

方式0~方式3。

方式0是13位的定时器/计数器,方式1是16位的定时器/计数器,方式2是初值重载的8位定时器/计数器,方式3只适用于T0,将T0分为两个独立的定时器/计数器,同时T1可以作为串行接口波特率发生器。

不同位数的定时器/计数器其最大计数值也不同。

对于定时器/计数器的编程包括设置方式寄存器、初值及控制寄存器(可位寻址)。

初值由定时时间及定时器/计数器的位数决定。

本次设计通过用以上四种工作方式设计100ms定时实例来对红绿灯的转换定时,不但要对硬件的控制,同时也运用了秒表的控制原理。

中断是指当机器正在执行程序的过程中,一旦遇到某些异常情况或特殊请求时,暂停正在执行的程序,转入必要的处理(中断服务子程序),处理完毕后,再返回到原来被停止程序的间断处(断点)继续执行。

中断请求的优先级由用户编程和内部优先级共同确定,中断编程包括中断入口地址设置、中断源优先级设置、中断开放或关闭、中断服务子程序等。

通过这次的设计,本人对《汇编语言》和在大一的时候学习的《逻辑语言和逻辑系统》得到了很好的实践,并对《微机原理与接口技术》的理解有了更深的认识,我相信自己会把这些理论知识很好的运用的生活中去的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1