资源描述
-/
郑州航空工业管理学院
微机原理课程设计说明书
2012 级 电气工程及其自动化 专业1206972班级
题 目 交通灯控制系统设计
姓 名 学号 120697202
指导教师 王义琴 职称 讲师
二О一二 年 十二 月 十一 日
摘 要
本次专业课程设计作为前阶段学习知识的一个检验,培养了我们的动手能力以及独立思考设计的能力,也是大学培养的一个重要实践步骤。设计初期,我们参照所做过的实验并通过网络,图书馆等资源查找到利用微机原理与接口技术设计制作交通灯的相关信息,对不同的方案进行细致的分析比较。并且按照题意与实际情况进行改进,使之符合要求。设计过程中发现的一些问题通过共同的分析研究得到的解决,此次课程设计巩固了前期的理论知识,增强了动手实践能力。
程序主要采用了8255A可编程并行I/O接口芯片控制发光二极管LED,并由8253软件定时等来实现电路。
关键词:交通灯;8255A;8253;LED;软件定时;
一、交通灯控制系统的基本原理
在本次课程设计当中,本次设计采用的是软件定时(即通过汇编指令)实现的。而灯的亮与灭以及闪烁是用8255的A口和B口控制的,工作在方式0,A口和B口均为输出。
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
二、交通灯控制系统的设计方案
设计中使用8255A可编程并行接口实现了,对南北、东西方向交通的分别计时、分别控制,设计采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时。
城市十字交叉路口红绿灯控制系统主要负责控制东西走向和南北走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,按照设计要求设计如下:
(1) 南北方向的绿灯,东西方向的红灯同时亮30秒。
(2) 南北方向的绿灯灭,黄灯亮5秒,同时东西方向的红灯继续亮。
(3) 南北方向的黄灯灭,红灯亮,同时东西方向的红灯灭,绿灯亮,持续30秒。 (4) 南北方向的红灯继续亮,同时东西方向的绿灯灭,黄灯亮5秒。
(5) 重复以上过程。
三、硬件设计
3.1 8255结构
8255的内部结构及引脚如图1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2所示
图1 8255的内部结构及引脚
图2 8255工作方式控制字和C口按位置位/复位控制字格式
3.2电路接线图
图3 红绿灯模拟设计总电路图
上电路图为红绿灯模拟设计总电路图,通过8086CPU系统总线来控制8255的A端口、B端口,而A、B端口分别接LED发光二极管来控制十字路口红绿灯。 红、黄、绿灯的表示情况如下:由于仪器上面只有16个发光二级管,且从高到低依次为:D15D14D13D12D11D10D9D8 D7D6D5D4D3D2D1D0。在设计的过程中做了如下的规定:R表示红灯,G表示绿灯,Y表示黄灯;E表示方向东,W表示方向西,S表示方向南,N表示方向北,例如:ER表示东方向为红灯,WG表示西方向为绿灯,SY表示南方向为黄灯,其余的类似。所以在设计中采用如下的规定:D15D14表示ER,D13D12表示SR,D11D10表示EG,D9D8表示SG,D7D6表示WR,D5D4表示NR,D3D2表示WG,D1D0表示NG,D15D14D11D10表示EY,D7D6D3D2表示WY,D13D12D9D8表示SY,D5D4D1D0表示NY。具体连线及表示如下图所示(圆圈表示发光二极管)。
图4 十字路口红黄绿灯的表示
3.3使用说明
这是一个交通红绿灯的模拟显示实验,由8255控制16个LED发光二极管的亮与暗来表达十字路口的交通信号,A口表示东、南方向,B口表示西、北方向,绿灯和红灯共同表示黄灯。可以通过发光二极管来判断具体是哪个方向、哪个灯亮。
四、软件设计
4.1程序流程框图
芯片初始化
南北方向绿灯亮,东西方向红灯亮30秒
南北方向黄灯闪烁,东西方向红灯亮5秒
南北方向红灯亮,东西方向绿灯亮30秒
南北方向红灯亮,东西方向黄灯闪烁5秒
有键按下?
返回到DOS
结束
否
是
4.2源程序清单
IOY0 EQU 0DA00H ;片选IOY0对应的端口始地址
MY8255_A EQU IOY0+00H*4 ;8255的A口地址
MY8255_B EQU IOY0+01H*4 ;8255的B口地址
MY8255_C EQU IOY0+02H*4 ;8255的C口地址
MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
LA DB ? ;定义数据变量
LB DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,MY8255_MODE ;定义8255工作方式
MOV AL,80H ;工作方式0,A口和B口为输出
OUT DX,AL
LOOP1: MOV DX,MY8255_A ;写A口发出的数据,南方向绿灯亮,东方向红灯亮
MOV AL,0C3H
OUT DX,AL
MOV DX,MY8255_B ;写B口发出的数据,北方绿向灯亮,西方向红灯亮
MOV AL,0C3H
OUT DX,AL
CALL DALLY1
MOV CX,08H
MOV DX,MY8255_A ;写A口发出的数据,南方黄向灯亮,东方向红灯亮
MOV AL,0F3H
OUT DX,AL
MOV DX,MY8255_B ;写A口发出的数据,北方黄向灯亮,西方向红灯亮
MOV AL,0F3H
OUT DX,AL
CALL DALLY2
MOV DX,MY8255_A ;写A口发出的数据,南方向红灯亮,东方向绿灯亮
MOV AL,03CH
OUT DX,AL
MOV DX,MY8255_B ;写B口发出的数据,北方向红灯亮, 西方向绿灯亮
MOV AL,03CH
OUT DX,AL
CALL DALLY1
MOV CX,08H
MOV DX,MY8255_A ;写A口发出的数据,南方向红灯亮,东方向黄灯亮
MOV AL,0FCH
OUT DX,AL
MOV DX,MY8255_B ;写B口发出的数据,北方向红灯亮,西方向黄灯亮
MOV AL,0FCH
OUT DX,AL
CALL DALLY2
MOV AH,1 ;判断是否有按键按下,调用功能号1
INT 16H ;ROM BIOS 功能调用
JZ LOOP1 ;无按键则跳回继续循环,有则退出
QUIT: MOV AX,4C00H ;结束程序退出
INT 21H ;DOS 系统功能调用
DALLY PROC NEAR ;软件延时子程序
PUSH CX
PUSH AX
MOV CX,0FFFH
D1: MOV AX,0FFFFH
D2: DEC AX
JNZ D2
LOOP D1
POP AX
POP CX
RET
DALLY ENDP
DALLY1 PROC NEAR ;软件延时子程序,东西方向红灯亮,南北方向绿灯亮
PUSH CX
PUSH AX
MOV CX,1EH
D3: CALL DALLY
LOOP D3
POP AX
POP CX
RET
DALLY1 ENDP
DALLY2 PROC NEAR ;软件延时子程序,黄灯闪烁(即亮与灭)的时间间隔,
PUSH CX
PUSH AX
MOV CX,05H
D4: CALL DALLY
LOOP D4
POP AX
POP CX
RET
DALLY2 ENDP
CODE ENDS
END START
5、 结论
本次课程设计模拟十字路口交通灯控制系统,运用8255A控制在红,黄,绿三个信号灯,并用软件定时实现了南北方向的绿灯,东西方向的红灯同时亮30秒。30秒后南北方向的绿灯灭,黄灯亮5秒,同时东西方向的红灯继续亮。5秒后南北方向的黄灯灭,红灯亮,同时东西方向的红灯灭,绿灯亮,持续30秒。再过30秒南北方向的红灯继续亮,同时东西方向的绿灯灭,黄灯亮5秒,如此循环。
六、参考文献
[1]舒贞权,任伟利微机计算机原理[M]西安:西安交通大学出版社,1997
[2]顾元刚,韩燕汇编语言与微机原理教程[M]北京:电子工业出版社,2000
[3]钱晓捷 主编:《微机原理与接口技术》,第4版,机械工业出版社,2008
[4]沈美明等编著:《80X86汇编语言程序设计》,清华大学出版社,2001年9月出版。
[5]杨素行等编著:《微型计算机系统原理及应用》,第2版,清华大学出版社,2004
设计总结:
通过这两周的微机原理与接口技术课程设计课,我对这学期学微机原理与接口技术原理的知识有了更进一步的认识。课程设计中我受益匪浅,收获颇多,但从中也发现了自己许多的不足,和需要改进的地方。首先,把握整个的设计的大概的流程,然后再对每一个分快进行设计,最后进行调试。在设计的过程中,很重要的一点是要熟悉可编程并行通信接口芯片8255A的初始化及其端口的使用。通过课程设计,我的实际操作能力和设计能力都得到了一定的提高,但理论与实践之间永远是存在着一定差距的,要把理论知识充分灵活地运用于实践是需要一定的实践经验和牢固的理论基础,希望以后能有更多这样的实践的机会。
指导教师评语:
课程设计成绩: 指导教师签名:
年 月 日
展开阅读全文
相关搜索