基于8086的智能交通灯的设计 下载本文

摘要:随着交通的不断发展和交通指挥的需要,交通灯的控制指挥系统自始至终都显得尤为重要。本课题旨在设计一种交通灯控制指挥系统,以实现对交通的有效控制。在十字路口,当南北方向红灯亮,东西方西绿灯亮时,南北方向车辆禁止通行,东西方向允许通行;反之,南北方向允许车辆通行,东西方向禁止车辆通行。当发生危急情况时,可使所有路口红灯点亮,禁止所有车辆通行。

本系统使用8255可编程接口进行数据的输入输出,使用8253可编程计时器进行延时。通过本课程设计,可加深对微机原理与接口技术的进一步理解。 关键词:交通灯 汇编语言 8255 8253

KEY WORDS: the Traffic Lights AssemblyLanguage 8255 8253

1任务及要求

1.1课程设计任务

通过开放实验室,学生有兴趣地创造自己的设计课题,并在实验中进行完善,使学生能综合运用微机原理与接口技术、数字电路、汇编语言程序设计等课程学到的知识,掌握微型计算机接口的方法和原理,具备一定的微机应用开发的实践能力,加深对理论课程的理解。 提高汇编语言编程能力及对接口等硬件的理解分析能力和设计接口电路的能力。提高实践能力,培养独立工作和创新思维的能力,取得设计与调试的实践经验。 1.2课程设计要求

利用“微机实验系统”的8255可编程接口的A口(PA7-PA0)、B口(PB7-PB0)、C口(PC7-PC0)控制发光二级管(红、绿灯)的L1-L8和开关KK1- KK2,使发光二级管按照十字路口交通灯的规律交替发光,模拟交通信号灯的工作。 ? 发光二级管(LED) 显示电路

8个LED L1-L8,4个红灯、4个绿灯 L=0 LED亮; L= LED灭

? 开关对交通灯的控制

①开关KK2=0 红灯皆亮;开关KK2=1 绿灯皆亮

②开关KK1=0 启动交通灯的亮灭;开关KK1=1停止交通灯的亮灭(所有发光二级管皆灭) ? 交通灯亮灭规律参考

①南北方向绿灯亮、东西方向红灯亮20秒 ②南北方向红灯亮、东西方向绿灯亮20秒 重复上述过程

注:20秒定时由8253控制

2总体设计思想

2.1系统原理图示

CPU 接口 8255 外设 L1-L8 发光二机管 外设 KK1-KK2 开关

(PA PB PC) L 2.2基本工作原理说明

此方案是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。

本课题的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经连接,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。 2.3 8255的工作原理

2.3.1 8255A的内部结构

(1)数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。

(2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。 (3) A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。

(4)读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。 2.3.2 8255的工作方式

方式0---基本输入输出方式;方式1---选通输入输出方式; 方式2---双向选通输入输出方式。 2.3.3 8255的引脚信号

8255A的引脚如图7.5所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。

D7~D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。 (chip select):片选信号线,低电平有效时,芯片被选中。 A1, A0(port address):地址线,用来选择内部端口。 (read):读出信号线,低电平有效时,允许数据读出。 (write):写入信号线,低电平有效时,允许数据写入。

+5V

RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。 PA7~PA0(port A):A口输入/输出信号线。 PB7~PB0(port B):B口输入/输出信号线。 PC7~PC0(port C):C口输入/输出信号线。 VCC:+5V电源。 GND:电源地线。 2.4 8253的工作原理

8253是可编程的计数器/定时器,其内部有三个独立的16位计数器/定时器通道,每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。其CLK0~CLK2是计数器0~2的时钟脉冲输入端, GATE0~GATE2是门控脉冲输入端, OUT0~OUT2是输出端。

3硬件设计

3.1硬件设计思路

本系统共实现两个功能,分别是①开关KK2=0 红灯皆亮;开关KK2=1 绿灯皆亮②开关KK1=0 启动交通灯的亮灭;开关KK1=1停止交通灯的亮灭(所有发光二级管皆灭)。可利用开关KK3来控制两个功能,KK3=1,实现功能①;KK3=0,实现功能② 3.2硬件连线图

PA0-PA7 +5V CS1 CS0 CLK4 KK1 KK2 KK3 PA0-PA7 PC0 PC1 PC2 PC3 8255CS CS8253 GATE2 8253CLK2 OUT2 8253 8255

3.3实际硬件连线图

4软件设计

4.1源程序及程序功能

data segment;设置数据段,用端口号代替地址 porta equ 04b0h portb equ 04b2h portc equ 04b4h ptcon8255 equ 04b6h port0 equ 04a0h port1 equ 04a2h port2 equ 04a4h ptcon8253 equ 04a6h data ends;数据段设置完毕

assume cs:code

code segment public

org 100h;程序从100h处开始执行

start:mov dx,ptcon8255;初始化8255,方式0,A口输出,C口低4位输入 mov al,81h out dx,al

putin1:mov dx,porta

mov al,01010101b;红灯皆亮,绿灯皆灭