微机基础原理-交通灯课程教学设计报告.doc
-/微型计算机原理及应用课程设计说明书交通灯控制系统设计班级: 1401班 姓 名: 学号: 指导教师: 日期: 2016年6月 一 课程设计目的:在车辆日渐增多的今天,人们也越来越关注交通问题,而交通灯在安全行车过程中无疑起着十分重要的作用。现在交通灯一般都设在十字路口,用红、绿、黄三种颜色的指示灯和一个倒计时的显示计时器来控制行车,对一般情况下的安全行车、车辆分流发挥着作用,但根据实际行车过程中出现的情况,主要有如下几个缺点:1、车道轮流放行时间相对固定,不能根据实际情况中两个车道的车辆多少来设置改变通行时间;2、没有考虑紧急车辆通过时,两车道应采取的措施。譬如,有消防车通过执行紧急任务时,两个车道的车都应停止,让紧急车辆通过。因此如何合理高效地利用交通灯指示交通情况,是一个亟需解决的问题。交通灯是采用计算机通过编写汇编语言程序控制的。红灯停,绿灯行的交通规则。广泛用于十字路口,车站,码头等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯,交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。或者给红绿色盲声音警示的人性化设计。现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。因此,研究交通灯及扩大其应用,有着非常现实的意义二 课程设计内容:设有一个十字路口,1、3为南北方向,2、4为东西方向。初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车; 延时一段时间后,1、3路口的绿灯开始闪烁,闪烁若干次以后,1、3 路口黄灯亮,后1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4 路口的绿灯熄灭,而绿灯开始闪烁,闪烁若干次以后,1、3路口红灯亮,而2、4路口黄灯亮,再切换到1、3路口方向,之后重复上述过程。三 问题分析及硬件介绍: 本次课程设计的内容为利用8086、8255等接口,实现控制十二个二极管亮灭的过程。需要PC机一台,8255并口:用做接口芯片。LED:共12个LED灯。还有8086芯片,8253a定时器等器材. 将8086和74273、74154和8255连接起来.需用到8255的六个输出端口。所以要求8255工作在方式0,因为二极管是共阳的,所以输出低电平二极管才会亮。8086用作cpu,三个74273是锁存器,锁存地址。用软件proteus7.8画出电路图,加载程序到8086cpu,进行模拟。系统硬件设计8086简介Intel8086是16位的微处理器(其内部总线为16位,外部总线为8位,故称为准16位微处理器),它采用HMOS工艺40条引脚封装。8086工作时使用5V电源,时钟频率5MHz(8086-1为10MHz,8086-2为8MHz)它有20根地址线,故可寻址的内存空间为1MB【9】。另外,Intel公司同期推出的Intel8088微处理器一种准16位微处理器,其内部寄存器,内部操作等均按16位处理器设计,与Intel8088微处理器基本上相同,不同的是其对外的数据线只有8位,目的是为了方便地与8位I/O接口芯片相兼容。如图所示是8086CPU的内部功能结构。从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。(1)8086的主要特性Intel8086/8088CPU是Intel公司推出的高性能的微处理器,具体如下主要特性:(a)8086CPU数据总线为16位,8088CUP数据总线为8位。(b)地址总线都是20位,低16位用于数据总线复用,可直接寻址为1MB的存储空间。(c)有16位的端口地址,可以寻址64KB的I/O端口。(d)有99条基本指令,指令功能强大。(e)有9种基本寻址方式。(f)可以处理内部和外部中断,外部中断源多达256个。(g)兼容性好,8086、8085在源程序一级兼容。(h)8086/8088标准主频为5MHz,8086/8088-2主频为8MH【3】。(i)支持单处理器或多处理器系统工作。(2)8086CPU寄存器结构8086CPU中有14个16位的寄存器,其中有4个16位的通用寄存器,2个16位指针寄存器,2个16位变址寄存器,1个16位指令指针及1个16位标志寄存器【8】。通用寄存器包括累加器AX,基址寄存器BX,计数寄存器CX,数据寄存器DX四个寄存器,位于CPU的EU中,每个数据寄存器可存放16位操作数, 也可拆成两个8位寄存器,用来存放8位操作数。指针和变址寄存器包括:堆栈指针SP、基址指针BP、源变址寄存器SI、和目的变址寄存器DI四个16位寄存器,可以来存放数据和地址。段寄存器包括:代码段寄存器CS,数据段寄存器DS,附加段寄存器ES,堆栈段寄存器SS【4】。8255简介8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。用+5V单电源,能在三种方式下工作:方式0-基本输入/出方式、方式1-选通输入/出方式、方式2-双向选通工作方式【3】。8255的内部结构及引脚图如图所示。具体的各引脚功能如下【3】:D0D7为双向数据信号线,用来传送数据和控制字。RD为读信号线,与其它信号线一起实现对8255接口的读操作通常接系统总线的IOR信号。WR为写信号线,与其它信号一起实现对8255的写操作,通常接系统总线的IOW。CS为片选信号线,当它为低电平(有效)时,才能选中该8255芯片,也才能对8255进行操作【6】。A0,A1为口地址选择信号线。8255内部有3个口;A口,B口,C 口,还有一个控制寄存器,它们可由程序寻址。A0,A1上的不同编码可分别寻址上述3个口和一个控制寄存器,具体规定如表1所示。表1 8255的寻址方式A1A0选择00A口01B口10C口11控制寄存器通常 A0,A1分别接系统总线A0和 A1,它们与CS一起来决定8255的接口地址。RESET为复位输入信号。此端上的高电平可使8255复位。复位后,8255的A口,B口,C 口均被定为输入状态。PA0PA7为A口的8条输入输出信号线。PB0PB7为B口的8条输入输出信号线。PC0PC7,8条线根据其工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线【7】。8255 工作方式控制字和C口按位置位/复位控制字格式如图3所示。【4】8255的工作方式主要有工作方式0、工作方式1和工作方式2。其中端口A可以工作在三种方式中的任一种;端口B只能工作在方式0和方式1;端口C通常作为控制信号使用,配合端口A和端口B的工作。在交通灯控制的设计中只用到了工作方式0。四 硬件原理图:五 主要程序:;SAMPLE.ASM.MODEL SMALL.8086.stack.code.startup mov dx,0206h ;将控制端口的地址送给dx mov ax,80h ;将控制字送给ax out dx,ax ;将控制字送给控制端口 mov dx,0200h ;将a端口的地址送给dx mov ax,0ffh ;将初始化数据送给ax out dx,ax ;将端口初始化 s0: mov ax,0bbh ;将数据10111011B送给ax out dx,ax ;将ax数据送给dx,让4个红灯亮 call delay5 ;调用延时程序子程序,维持4-5s s1: mov ax,0beh ;将数据10111110B送给ax out dx,ax ;将ax数据送给dx,使南北绿灯亮,东西红灯亮 call delay5 ;调用延时程序子程序,维持4-5s mov cx,6 ;将 lp: mov ax,0bfh ;将数据10111111B送给ax out dx,ax ;将ax数据送给dx,使南北绿灯灭,东西红灯亮 call delay05 ;调用延时程序子程序,维持4-5s mov ax,0beh ;将数据10111110B送给ax out dx,ax ;将ax数据给dx,实现南北绿灯亮,东西红灯亮 call delay05 ;调用延时程序子程序,维持4-5s loop lp ;循环实现绿灯的亮灭循环闪烁约6次 mov ax,0bdh ;将数据10111101B送给ax out dx,ax ;将ax送给dx,实现南北黄灯亮,东西红灯亮 call delay3 ;调用延时程序子程序,维持3-4s mov ax,0ebh ;将数据11101011B送给ax out dx,ax ;将ax数据送给dx,实现南北红灯亮,东西绿灯亮 call delay5 ;调用延时程序子程序,维持4-5s mov cx,6 ;将 lp1:mov ax,0fbh ;将数据11111011B送给ax out dx,ax ;将ax数据送给dx,实现南北红灯亮,东西绿灯灭 call delay05 ;调用延时程序子程序,维持4-5s mov ax,0ebh ;将数据11101011B送给ax out dx,ax ;将ax送给dx,实现南北红灯亮,东西绿灯亮 call delay05 ;调用延时程序子程序,维持4-5s loop lp1 ;循环实现绿灯的亮灭循环闪烁约6次 mov ax,0dbh ;将数据11011011B送给ax out dx,ax ;将ax送给dx,实现南北红灯亮,东西黄灯亮 call delay3 ;调用延时程序子程序,维持3-4s jmp s0 ;无条件跳转至程序S0,实现控制循环 delay5 proc near push cx mov bx,250 dy1:mov cx,5882 dy2:loop dy2 dec bx jnz dy1 pop cx ret delay5 endp delay05 proc near push cx mov bx,25 dy3:mov cx,5882 dy4:loop dy4 dec bx jnz dy3 pop cx ret delay05 endp delay3 proc near push cx mov bx,150 dy5:mov cx,5882 dy6:loop dy6 dec bx jnz dy5 pop cx ret delay3 endp .dataEND1. 结果分析:电路运行正常,交通灯按正确时间转换,实现了预期课程设计要求的目的。六 收获体会:一周的微机原理课程设计结束了。从中我学到了许多的知识和技术,也懂得了合作的重要性。我在同学的帮助下学会了用软件模拟图形,去研究程序的每一步。每一次遇到错误,都会自己先看,然后在去找同学询问。也复习了关于8086和8255一些相关的知识。这次课程设计让我体会到了仅仅学好课本知识还是不够的,还需要实践,才能掌握知识,融会贯通。在这次实践中,最大的收获是对课程的兴趣。兴趣是最好的老师,这将会让我更加爱上学习与实践。最终感谢老师和同学们的帮助!
收藏
- 资源描述:
-
-/
微型计算机原理及应用
课程设计说明书
交通灯控制系统设计
班级: 1401班
姓 名:
学号:
指导教师:
日期: 2016年6月
一. 课程设计目的:
在车辆日渐增多的今天,人们也越来越关注交通问题,而交通灯在安全行车过程中无疑起着十分重要的作用。现在交通灯一般都设在十字路口,用红、绿、黄三种颜色的指示灯和一个倒计时的显示计时器来控制行车,对一般情况下的安全行车、车辆分流发挥着作用,但根据实际行车过程中出现的情况,主要有如下几个缺点:1、车道轮流放行时间相对固定,不能根据实际情况中两个车道的车辆多少来设置改变通行时间;2、没有考虑紧急车辆通过时,两车道应采取的措施。譬如,有消防车通过执行紧急任务时,两个车道的车都应停止,让紧急车辆通过。因此如何合理高效地利用交通灯指示交通情况,是一个亟需解决的问题。
交通灯是采用计算机通过编写汇编语言程序控制的。红灯停,绿灯行的交通规则。广泛用于十字路口,车站,码头等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯,交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。或者给红绿色盲声音警示的人性化设计。现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。
要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。因此,研究交通灯及扩大其应用,有着非常现实的意义
二. 课程设计内容:
设有一个十字路口,1、3为南北方向,2、4为东西方向。初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车; 延时一段时间后,1、3路口的绿灯开始闪烁,闪烁若干次以后,1、3 路口黄灯亮,后1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4 路口的绿灯熄灭,而绿灯开始闪烁,闪烁若干次以后,1、3路口红灯亮,而2、4路口黄灯亮,再切换到1、3路口方向,之后重复上述过程。
三. 问题分析及硬件介绍:
本次课程设计的内容为利用8086、8255等接口,实现控制十二个二极管亮灭的过程。需要PC机一台,8255并口:用做接口芯片。LED:共12个LED灯。还有8086芯片,8253a定时器等器材.
将8086和74273、74154和8255连接起来.需用到8255的六个输出端口。所以要求8255工作在方式0,因为二极管是共阳的,所以输出低电平二极管才会亮。8086用作cpu,三个74273是锁存器,锁存地址。
用软件proteus7.8画出电路图,加载程序到8086cpu,进行模拟。
系统硬件设计
8086简介
Intel8086是16位的微处理器(其内部总线为16位,外部总线为8位,故称为准16位微处理器),它采用HMOS工艺40条引脚封装。8086工作时使用5V电源,时钟频率5MHz(8086-1为10MHz,8086-2为8MHz)它有20根地址线,故可寻址的内存空间为1MB【9】。
另外,Intel公司同期推出的Intel8088微处理器一种准16位微处理器,其内部寄存器,内部操作等均按16位处理器设计,与Intel8088微处理器基本上相同,不同的是其对外的数据线只有8位,目的是为了方便地与8位I/O接口芯片相兼容。
如图所示是8086CPU的内部功能结构。
从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。
(1)8086的主要特性
Intel8086/8088CPU是Intel公司推出的高性能的微处理器,具体如下主要特性:
(a)8086CPU数据总线为16位,8088CUP数据总线为8位。
(b)地址总线都是20位,低16位用于数据总线复用,可直接寻址为1MB的存储空间。
(c)有16位的端口地址,可以寻址64KB的I/O端口。
(d)有99条基本指令,指令功能强大。
(e)有9种基本寻址方式。
(f)可以处理内部和外部中断,外部中断源多达256个。
(g)兼容性好,8086、8085在源程序一级兼容。
(h)8086/8088标准主频为5MHz,8086/8088-2主频为8MH【3】。
(i)支持单处理器或多处理器系统工作。
(2)8086CPU寄存器结构
8086CPU中有14个16位的寄存器,其中有4个16位的通用寄存器,2个16位指针寄存器,2个16位变址寄存器,1个16位指令指针及1个16位标志寄存器【8】。
通用寄存器包括累加器AX,基址寄存器BX,计数寄存器CX,数据寄存器DX四个寄存器,位于CPU的EU中,每个数据寄存器可存放16位操作数, 也可拆成两个8位寄存器,用来存放8位操作数。
指针和变址寄存器包括:堆栈指针SP、基址指针BP、源变址寄存器SI、和目的变址寄存器DI四个16位寄存器,可以来存放数据和地址。段寄存器包括:代码段寄存器CS,数据段寄存器DS,附加段寄存器ES,堆栈段寄存器SS【4】。
8255简介
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。用+5V单电源,能在三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式【3】。
8255的内部结构及引脚图如图所示。
具体的各引脚功能如下【3】:
D0~D7为双向数据信号线,用来传送数据和控制字。
RD为读信号线,与其它信号线一起实现对8255接口的读操作通常接系统总线的IOR信号。
WR为写信号线,与其它信号一起实现对8255的写操作,通常接系统总线的IOW。CS为片选信号线,当它为低电平(有效)时,才能选中该8255芯片,也才能对8255进行操作【6】。
A0,A1为口地址选择信号线。8255内部有3个口;A口,B口,C 口,还有一个控
制寄存器,它们可由程序寻址。A0,A1上的不同编码可分别寻址上述3个口和一个控制寄存器,具体规定如表1所示。
表1 8255的寻址方式
A1
A0
选择
0
0
A口
0
1
B口
1
0
C口
1
1
控制寄存器
通常 A0,A1分别接系统总线A0和 A1,它们与CS一起来决定8255的接口地址。
RESET为复位输入信号。此端上的高电平可使8255复位。复位后,8255的A口,B口,C 口均被定为输入状态。
PA0~PA7为A口的8条输入输出信号线。
PB0~PB7为B口的8条输入输出信号线。
PC0~PC7,8条线根据其工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线【7】。
8255 工作方式控制字和C口按位置位/复位控制字格式如图3所示。【4】
8255的工作方式主要有工作方式0、工作方式1和工作方式2。其中端口A
可以工作在三种方式中的任一种;端口B只能工作在方式0和方式1;端口C通常作为控制信号使用,配合端口A和端口B的工作。在交通灯控制的设计中只用到了工作方式0。
四. 硬件原理图:
五. 主要程序:
;SAMPLE.ASM
.MODEL SMALL
.8086
.stack
.code
.startup
mov dx,0206h ;将控制端口的地址送给dx
mov ax,80h ;将控制字送给ax
out dx,ax ;将控制字送给控制端口
mov dx,0200h ;将a端口的地址送给dx
mov ax,0ffh ;将初始化数据送给ax
out dx,ax ;将端口初始化
s0: mov ax,0bbh ;将数据10111011B送给ax
out dx,ax ;将ax数据送给dx,让4个红灯亮
call delay5 ;调用延时程序子程序,维持4-5s
s1: mov ax,0beh ;将数据10111110B送给ax
out dx,ax ;将ax数据送给dx,使南北绿灯亮,东西红灯亮
call delay5 ;调用延时程序子程序,维持4-5s
mov cx,6 ;将
lp: mov ax,0bfh ;将数据10111111B送给ax
out dx,ax ;将ax数据送给dx,使南北绿灯灭,东西红灯亮
call delay05 ;调用延时程序子程序,维持4-5s
mov ax,0beh ;将数据10111110B送给ax
out dx,ax ;将ax数据给dx,实现南北绿灯亮,东西红灯亮
call delay05 ;调用延时程序子程序,维持4-5s
loop lp ;循环实现绿灯的亮灭循环闪烁约6次
mov ax,0bdh ;将数据10111101B送给ax
out dx,ax ;将ax送给dx,实现南北黄灯亮,东西红灯亮
call delay3 ;调用延时程序子程序,维持3-4s
mov ax,0ebh ;将数据11101011B送给ax
out dx,ax ;将ax数据送给dx,实现南北红灯亮,东西绿灯亮
call delay5 ;调用延时程序子程序,维持4-5s
mov cx,6 ;将
lp1:mov ax,0fbh ;将数据11111011B送给ax
out dx,ax ;将ax数据送给dx,实现南北红灯亮,东西绿灯灭
call delay05 ;调用延时程序子程序,维持4-5s
mov ax,0ebh ;将数据11101011B送给ax
out dx,ax ;将ax送给dx,实现南北红灯亮,东西绿灯亮
call delay05 ;调用延时程序子程序,维持4-5s
loop lp1 ;循环实现绿灯的亮灭循环闪烁约6次
mov ax,0dbh ;将数据11011011B送给ax
out dx,ax ;将ax送给dx,实现南北红灯亮,东西黄灯亮
call delay3 ;调用延时程序子程序,维持3-4s
jmp s0 ;无条件跳转至程序S0,实现控制循环
delay5 proc near
push cx
mov bx,250
dy1:mov cx,5882
dy2:loop dy2
dec bx
jnz dy1
pop cx
ret
delay5 endp
delay05 proc near
push cx
mov bx,25
dy3:mov cx,5882
dy4:loop dy4
dec bx
jnz dy3
pop cx
ret
delay05 endp
delay3 proc near
push cx
mov bx,150
dy5:mov cx,5882
dy6:loop dy6
dec bx
jnz dy5
pop cx
ret
delay3 endp
.data
END
1. 结果分析:
电路运行正常,交通灯按正确时间转换,实现了预期课程设计要求的目的。
六. 收获体会:
一周的微机原理课程设计结束了。从中我学到了许多的知识和技术,也懂得了合作的重要性。
我在同学的帮助下学会了用软件模拟图形,去研究程序的每一步。每一次遇到错误,都会自己先看,然后在去找同学询问。也复习了关于8086和8255一些相关的知识。这次课程设计让我体会到了仅仅学好课本知识还是不够的,还需要实践,才能掌握知识,融会贯通。在这次实践中,最大的收获是对课程的兴趣。兴趣是最好的老师,这将会让我更加爱上学习与实践。最终感谢老师和同学们的帮助!
展开阅读全文