汇编语言交通灯控制系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

交通灯控制系统

一、设计要求

1.东西方向车辆放行60秒钟。即东西方向的绿灯和南北方向的红灯同时点亮1分钟;

2.1分钟后,东西方向的黄灯闪烁5秒钟,以警示车辆将切换红绿灯。此时南北方向仍维持红灯点亮。在南北方向亮红灯期间,在2位数码管上显示计数值(每秒减1),从60减为0。

3.东西方向的黄灯闪烁5秒钟后,转为南北方向放行20秒钟。即东西方向的红灯和南北方向的绿灯同时点亮20秒钟;

4.南北方向放行20秒钟后,转为南北方向的黄灯闪烁5秒钟,以警示将切换红绿灯。此时东西方向仍维持红灯点亮。

5.南北方向的黄灯闪烁5秒钟后,再转为东西方向车辆放行1分钟。如此循环重复。

二、设计目的

⒈了解交通灯管理的基本工作原理

⒉熟悉8259A中断控制器的工作原理和应用编程

⒊熟悉8255A并行接口的各种工作方式和应用

⒋熟悉8254计数器/定时器的工作方式及应用编程,掌握利用软硬件相结合定时的方法

⒌掌握多位LED显示问题的解决

三、程序设计流程图主程序流程图,如下图所示。

装入计数初值

支路拐走

四、总体设计和电路图

Ⅰ.芯片选择及端口选择

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

2. 用实验系统8254的计数器2定时向实验系统主片8259A的IRQ7请求中断,以实现要求的1分钟、5秒钟和20秒的定时。实验系统8254的计数器2的CLK2接OPCLK,频率为1.19318MHZ;GATE2已接+5V;定时采用软硬件相结合的方式实现。

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

注:8259A的端口地址为:218H、219H

8255A的端口地址为:端口A-200H、端口B-201H、端口C-202H、控制端口-203H

8254的端口地址为:计数器0-208H、计数器1-209H、计数器2-20aH、控制寄存器0-20bH。

Ⅱ.设计电路图

图2-1 交通灯实时控制系统8255原理图

图2-2 中断服务原理图

图2-3 中断服务电路接线图

图2-4电路连线图

Ⅲ..交通灯程序

本次设计中,选用8254的计数器0定时向实验系统主片8259A的IRQ0请求中断。设置8254的计数器0每10ms请求一次中断,工作于模式3;8255的A端口控制交通灯;

初始化程序:

DATA SEGMENT

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

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

D1 EQU 10H

D2 EQU 200H ;8255A端口A

EA EQU 200H ;8259端口地址

EE EQU 203H

CONTROL EQU 20bH ;8254端口地址

COUNT0 EQU 208H

COUNT1 EQU 209H

COUNT2 EQU 20aH

Z8259 EQU 222H

D8259 EQU 220H

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

LEDFEQ EQU 38H ;扫描频率

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

CODE SEGMENT

ASSUME CS:CODE

CONT DB 0

CONT1 DB 0

CONT2 DB 0

BKSD DB 0

BKAD DB 0

BKDA DB 0

TEMP DB 0

;******************************************* START:

MOV AX,0

MOV DS,AX

MOV AX,OFFSET IRQ0

ADD AX,2000H

MOV SI,0FH*4

MOV [SI],AX

MOV AX,0

MOV [SI+2],AX

IN AL,218H

AND AL,7FH

OUT 219H,AL

CLI

MOV AL,80H ;初始化8255 OUT EE,AL

MOV AL,00

OUT EA,AL

MOV AL,0f0H

OUT EA,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

MOV AL,00110110b ;初始化8254 OUT CONTROL,AL

MOV AX,2500

MOV DX,COUNT0

OUT DX,AL

MOV AL,AH

OUT COUNT0 ,AL

MOV AX,DATA

MOV DS,AX

中断服务程序:

A1: STI

HLT

JMP A1

IRQ0: ;写数码管程序,暂缺

JMP COMPARE

COMPARE:CMP DL,0

JZ STATE0

CMP DL,1

JZ STATE1

相关文档
最新文档