红绿灯1.docx

上传人:b****5 文档编号:6471451 上传时间:2023-01-06 格式:DOCX 页数:15 大小:251.61KB
下载 相关 举报
红绿灯1.docx_第1页
第1页 / 共15页
红绿灯1.docx_第2页
第2页 / 共15页
红绿灯1.docx_第3页
第3页 / 共15页
红绿灯1.docx_第4页
第4页 / 共15页
红绿灯1.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

红绿灯1.docx

《红绿灯1.docx》由会员分享,可在线阅读,更多相关《红绿灯1.docx(15页珍藏版)》请在冰豆网上搜索。

红绿灯1.docx

红绿灯1

 

微机原理与接口技术课程设计报告

 

题目十字路口交通灯设计

系别虞山学院

年级09专业电子科学与技术

班级Y051092

学号

指导教师职称讲师

设计时间2011.12.27

目录

第一章系统设计1

1.1题目要求1

1.2方案论证1

1.3实施方案3

1.4原理及说明3

第二章硬件设计4

2.1硬件结构4

2.2硬件单元电路及相关说明5

2.2.18086的功能引脚图5

2.2.2可编程并行通信接口芯片8255A6

第三章软件设计9

3.1设计流程图9

3.2交通灯波形图10

3.3模块分析(流程图与部分核心代码及相关说明)10

3.3.18255A工作方式初始化及读取B端口的数据10

3.3.2南北方向红绿灯工作情况11

3.3.3东西方向红绿灯工作情况11

第四章系统调试13

4.1调试手段13

4.2调试过程中的问题13

4.3解决办法14

第五章总结15

参考文献16

第一章系统设计

1.1题目要求

一、任务:

掌握通过8255A并行口传输数据的方法,以控制发光二级管的亮与灭。

二、要求:

用8255做输出口,控制十二个发光管亮灭,模拟交通灯管理。

1.2方案论证

方案一:

1.在某一南北方向和东西方向的十字路口,每个方向都有红,黄,绿三色交通信号灯,要求信号灯按下列规则变化:

(1)首先使某一方向绿灯亮,另一方向红灯亮。

当出现下述情况之一时,开始变灯:

其一是红灯已亮30S;其二是红灯路口停留的车辆已达五辆。

(2)变灯应遵循的规律:

首先使绿灯闪烁5S(注:

0.5S灭,0.5S亮,重复5次),接着绿灯灭,黄灯亮5S后,使得黄灯灭,红灯亮,紧接着使另一方向的红灯变为绿灯。

在一个方向由绿灯变红灯的过程中,另一方向的红灯保持不变。

图1-18255A和8253工作流程图

2.画出硬件框图,编写控制程序。

提示:

用8253来实现定时和检测车辆。

用8255A某一断口的6根线控制交通灯。

对于检测车辆,假设另有传感器电路进行配合,此传感器电路每当有一辆车时,会发出一个脉冲信号。

图1-2交通灯硬件控制框图

方案二:

(1)通过8255A控制发光二极管,PB4-PB7对应黄灯,PC0-PC3对应红灯,PC4-PC7对应绿灯,以模拟交通路灯的管理。

(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路口方向,之后,重复上述过程。

(3)程序中设定好8255A的工作模式及三个端口均工作在方式0,并处于输出状态。

(4)各发光二级管共阳极,使其点亮应使8255A相应端口的位清0.

1.3实施方案

经小组讨论后决定采用第二个方案,因为设计出来的程序是产品,是要出售,面向用户的,用户一般所需求的东西是物美价廉的,因此,方便,简单,低价格是设计所需要考虑的。

方案二比方案一少用一个8253芯片,而且代码也相差不大,符合上述考虑,因此决定使用方案二。

1.4原理及说明

在本次课程设计当中,本次设计采用的是软件定时(即通过汇编指令)实现的。

而灯的亮与灭以及闪烁是用8255的B口和C口控制的,工作方式0,B口和C口均为输出。

并行接口是以数据的字节的单位与I/O设备或控制对象之间传递信息。

CPU和接口之间的数据传送是并行的,即可以同时传递8位、16位、32位等。

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5单电源供电,能在以下三种方式下工作:

方式0——基本输入/输出方式。

方式1——选通输入/输出方式。

方式2——双向选通工作方式。

由于实验中所用到的发光二级管是共阳极的,如图2-1所示,所以在为8255的B口和C口写数据时,对应的每一位有:

0代表灯亮,1代表灯灭。

第二章硬件设计

2.1硬件结构

交通灯在每天的变化规律并不相同,此课程设为了简化,只考虑了交通灯正常时的变化规律,即有如下规律变化:

程序一开始,四个方向的灯全为红灯,接着变为黄灯闪烁,然后东西方向为红灯,南北方向为绿灯但不显示倒计时时间,倒计时间结束后,交通灯变成黄灯,闪烁几次后,东西方向变成绿灯,南北变成红灯,再变成黄灯,如此按交通灯的变化规则交替变化,采用的是为各个灯设置固定的亮持续时间。

将8255A的RE和WR非信号端分别与8086的两个端口相对应连接起来,8255A的数据线和8086的数据端口相连接,RE和WR非信号都是8086发出的控制信号,当进行读数据时,从8255A传送到8086,如果为写信号时,由8086写向8255A。

PC端口的低四位(PC0-PC3)分别设置为1,2,3,4路口的红灯;PC端口高四位(PC4-PC7)分别设置为1,2,3,4路口的绿灯;PB端口的高四位(PC4-PC7),分别置为1,2,3,4路口的黄灯。

图2-1实验原理硬件结构图

2.2硬件单元电路及相关说明

2.2.18086的功能引脚图

图2-28086引脚图

通用引脚:

1.GND(地)和Vcc电源。

Vcc引脚接+5V电源,GND引脚接地。

2.AD15~AD0(AddressDataBus)地址/数据复用引脚,双向、三态。

3.A19/S6~A16/S3(Address/Status)地址/状态复用引脚,输出、三态。

4.BHE/S7(BusHighEnable/Status)高8位数据线允许/状态复用引脚,输出、三态。

5.NMI(Non-MaskableInterrupt)非屏蔽中断请求引脚,输入,不受IF影响。

6.INTR(InterruptRequest)可屏蔽中断请求引脚,输入、高电平有效。

7.RD(Read)读信号,输出、三态、低电平有效。

8.CLK(Clock)时钟输入引脚。

9.RESET(Reset)复位引脚,输入、高电平有效。

至少需要4个时钟周期的高电平。

10.READY(Ready)准备好引脚,输入、高电平有效。

11.TEST(Test)测试引脚,输入、低电平有效,和WAIT指令结合使用。

12.MN/MX(Minimum/MaximumModeControl)最小/最大模式控制引脚,输入。

2.2.2可编程并行通信接口芯片8255A

1.8255的内部逻辑结构

图2-38255内部逻辑结构图

从图中可知,8255A由以下三部分组成:

(1)外设接口部分(数据端口A、B、C)

1)端口A。

端口A内部包含一个8位数据输入锁存器和一个8位数据输出锁存/缓冲器。

2)端口B。

端口B内部包含一个8位数据输入缓冲器和一个8位数据输出锁存/缓冲器。

3)端口C。

端口C内部包含一个8位数据输入缓冲器和一个8位数据输出锁存/缓冲器。

通过向芯片写入方式选择控制字,端口C可以被分成两个4位端口。

(2)内部逻辑(A组和B组控制电路)

这两组控制电路,根据芯片内部的控制寄存器内容(存放着CPU输出的方式选择控制字)和“读/写控制逻辑”发出的读/写命令,控制两组端口的工作方式和读/写操作。

A组控制电路控制端口A、端口C高4位(PC7~PC4)。

B组控制电路控制端口B、端口C低4位(PC3~PC0)。

(3)CPU接口部分

1)读/写控制逻辑电路地址线A1和A0、CS(片选)、RD(读控制)、WR(写控制)、RESET(复位)信号的组合,用来控制8255A进行数据信息、状态信息和控制信息的传输。

2)数据总线缓冲器它是一个8位的双向三态数据缓冲器,它是8255A与CPU数据总线的接口,所有数据的输入/输出,以及CPU用输出指令向8255A发出的控制字和用输入指令向8255A发出的控制字和用输入指令从8255A读入的外设状态信息,都是通过这个缓冲器传送的。

2.8255A的控制字

1)方式选择控制字

D7

D6

D5

D4

D3

D2

D1

D0

特征位

A组方式

00=方式0

01=方式1

10=方式2

11=不用

PA

0=输出

1=输入

PC4~7

0=输出

1=输入

B组方式

0=方式0

1=方式1

PB

0=输出

1=输入

PB

0=输出

1=输入

PC0~3

0=输出

1=输入

 

注:

8255A有三种工作方式

方式0——基本的输入/输出方式

特点:

a)两个8位端口A、B及两个4位端口(端口C的高4位、低4位)中的任一端口,均可以作为输入端口或输出端口,且各端口均是独立的。

b)四个端口的输入或输出,可以有16种不同的组合,故可以适用于多种用途。

c)各端口输入时无锁存,输出时有锁存。

方式1——选通的输入/输出方式

特点:

a)两个8位数据输入/输出端口(均带锁存功能)A和B,在端口C的配合下工作。

b)端口C中有3位用于端口A的输入/输出控制,另有三位用于端口B的输入/输出控制,并且均提供中断逻辑。

c)若只有一个数据端口工作在方式1,那么另一个数据端口及端口C余下的五位可工作于方式0;若两个数据端口都工作于方式1,那么端口C余下的两位仍可由程序指定作为输入或输出位,也可进行置位/复位操作。

方式2——双向传输方式

特点:

只有A口可以工作在双向方式

当A口工作在双向方式时,B口可以工作在基本型I/O(不需要联络线),也可以工作在选通型I/O(使用PC0、1、2做联络线)

2)端口C置位/复位控制字

0

D6

D5

D4

D3

D2

D1

D0

端口C置位、复位标志

任意值端口C位选择0复位,1置位

第三章软件设计

3.1设计流程图

图3-1交通灯设计流程图

3.2交通灯波形图

当南北方向绿灯亮时,东西方向红灯亮,当南北方向绿灯亮10秒后,南北方向黄灯亮,2秒后,转为东西方向绿灯亮,南北方向红灯亮,红灯亮12秒过程中,东西方向绿灯亮10秒后转为黄灯亮,黄灯亮2秒。

图3-3红绿灯工作波形图

 

3.3模块分析

3.3.18255A工作方式初始化及读取B端口的数据

通过PC端口初始化8255A芯片,使A,B,C三个端口都处于输出状态,读取端口B的工作状态,将东西方向和南北方向的黄灯都处于熄灭状态,红灯处于工作状态。

 

MOVAL,82H

MOVDX,IOCONPT;写8255的控制字

OUTDX,AL

MOVDX,IOBPT;读取B口的状态

INAL,DX

MOVBYTEPTRDS:

[0601H],AL

MOVDX,IOCONPT

MOVAL,80H;写8255的控制字为80H

OUTDX,AL

 

图3-18255A初始化

3.3.2南北方向红绿灯工作情况

点亮1,3口(南北方向)的绿灯,,2,4口的红灯继续点亮,经过一段时间后,熄灭1,3口的绿灯,黄灯开始闪烁。

MOVDX,IOCPT

MOVAL,10100101B;写端口C

MOVCX,8;起延时作用

OUTDX,AL

CALLDELAY1;延时

CALLDELAY1

ORAL,0F0H;AL高八位置1,熄灭1,3口绿灯

图3-2南北方向红绿灯工作

3.3.3东西方向红绿灯工作情况

2,4口(东西方向)的黄灯点亮,接着绿灯点亮,1,3口的红灯点亮,2,4口黄灯闪烁,

红灯全亮。

MOVDX,IOBPT

MOVAL,DS:

[0601H]

ANDAL,10101111B;写端口B,将B6,B4置0

OUTDX,AL

CALLDELAY2

ORAL,01010000B;PC7、PC5置0,即2、4路口黄灯亮

OUTDX,AL

LOOPIOLED1图3-3东西方向红绿灯的工作

MOVDX,IOCPT

MOVAL,0F0H

OUTDX,AL

CALLDELAY2

MOVAL,01011010B;C口为0F0H即红灯亮,绿灯灭

OUTDX,AL

第四章系统调试

4.1调试手段

软件调试:

调试工具:

dice8088

1.利用dice8088完成代码的编辑,编译与连接(执行菜单项:

“调试”,“编译程序”)。

2.编译连接通过的程序通过RS323串口装载置实验硬件系统中(执行菜单项:

“调试”-“编译程序”)。

此操作必须在PC机与实验箱通信正常连接的前提下进行(在dice8088应用程序中状态栏中有联机信息);造成联机时报的原因有:

串口线未连接(重新连接串口线);通信数据出错(关闭试验箱电源和dice8088应用程序,然后先打开实验箱电源,再执行dice8088应用程序);硬件系统哦那个处于非接收状态(只有在实验箱上的第一位数码管显示P.时方可装载程序,可通过按实验箱上的复位按钮使其恢复到P.状态);

3.运用程序:

方法一、通过dice8088应用程序控制实验箱中得程序运用(执行菜单项;”调试”-“连续运行”);方法二、通过实验箱的小键盘运行程序,先在P.状态下输入代码起始地址(本程序的起始地址为:

11B0),后按小键盘上的执行按钮(EX),此时数码管的最高位显示程序运行提示符“”。

在“”提示符下,PC机时无法实现对实验箱进行程序装载的,只有使实验箱恢复到“P.”方可装载;

4.2调试过程中的问题

1)A,B,C三个端口如何分配红绿灯

2)如何读取8255A三个端口的内容

3)8255A的B端口没有赋初始值,程序怎么运行

4)对于红绿灯的延时不清楚

4.3解决办法

1)问题一:

A,B,C三个端口如何分配红绿灯

解决方案:

PC端口的低四位(PC0-PC3)分别设置为1,2,3,4路口的红灯;PC端口

高四位(PC4-PC7)分别设置为1,2,3,4路口的绿灯;PB端口的高四位(PC4-PC7)分别

置为1,2,3,4路口的黄灯。

2)问题二:

如何读取8255A三个端口的内容

解决方案:

MOVDX,IOBPT;读取B口的数据

INAL,DX

3)问题三:

8255A的B端口没有赋初始值,程序怎么运行

解决方案:

我们只需要B端口的高四位,所以

MOVDX,IOBPT

MOVAL,DS:

[0601H]

ORAL,0F0H;黄灯全灭

OUTDX,AL

4)问题四:

对于红绿灯的延时不清楚

解决方案:

PUSHAX

PUSHCX

MOVCX,0030H

第五章总结

在微机原理实验考试结束后的一周时间里,我们进行了微机原理的课程设计。

以前从没有学过关于汇编语言的知识,到学习VB,C语言等汇编语言,再到这次的微型计算机原理,每次做课程设计,都充满着挑战和趣味。

微型计算机原理起初学起来就感觉很有难度,。

当知道要进行课程设计的时候,心里面感觉有些害怕和担心,担心自己不会或者做不好。

但是当选完题目并且听过老师讲解该课题设计思路的时候,空白的脑子里浮现出了种种思路,并不断的尝试,最终尽自己最大的努力,把该课程做到最好。

再该课程中有很多自己的感受,我相信有很多同学都会和我有一样的感受,那就是感觉汇编语言很神奇,充满着趣味。

我们从刚开始的害怕,到实验中看到一些实验现象后变的很高兴,到最后变成了享受,看着自己做出来的东西,心里面的感觉真的很好。

微机原理课程设计跟其他汇编语言课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己的动脑,动手能力。

在设计中,我们总是处于“学会了一些新知识,弄清了一些原来保留的问题”的循环中,直到课程结束时,才把保留的问题都弄清楚。

这次实验并不是很难,主要的困难来自于对程序的理解,经过我们小组四个人的不懈努力,以及老师的耐心指导,我们最后对实验的原理有了清晰的认识。

虽然我们没有把实验箱上的每个模块都用到,但是大体了解了各模块的作用和用法。

虽然实验箱只是一个小型的模拟平台,但是通过对它的学习和操作,我们对有关接口的知识将会有一个更广泛的认识,而且它对我们以后的学习也会有帮助的。

而且实验也教会我们在团队中要善于与人相处,与人共事,为以后出去工作与人合作打下一定的基础。

 

参考文献

[1]汤书森主编,《微机原理接口技术实验与实践教程》清华大学出版社2008.7

[2]刘红玲,赵梅主编,《微机原理与接口技术实用教程》电子工业出版社2008.1

[3]彭虎主编,《微机原理与接口技术学习指导》第二版电子工业出版社2008.4

[4]朱金钧,麻新旗主编,《微型计算机原理及应用技术》第二版机械工业出版城2011.7

[5]陈立元,范逸之,廖锦棋.VisualBasic2005与自动化系统监控[M].北京:

清华大学出版社.2008

课程设计独创性声明:

本课程设计是经小组查阅资料,结合所学内容,小组讨论独立完成。

 

学生签名:

指导教师评语:

 

课程设计成绩:

指导教师签名:

教研室意见:

 

教研室主任签名:

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

当前位置:首页 > 工程科技 > 能源化工

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

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