第三组基于8253的交通信号控制器的设计.docx

上传人:b****8 文档编号:30541262 上传时间:2023-08-16 格式:DOCX 页数:24 大小:224.27KB
下载 相关 举报
第三组基于8253的交通信号控制器的设计.docx_第1页
第1页 / 共24页
第三组基于8253的交通信号控制器的设计.docx_第2页
第2页 / 共24页
第三组基于8253的交通信号控制器的设计.docx_第3页
第3页 / 共24页
第三组基于8253的交通信号控制器的设计.docx_第4页
第4页 / 共24页
第三组基于8253的交通信号控制器的设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

第三组基于8253的交通信号控制器的设计.docx

《第三组基于8253的交通信号控制器的设计.docx》由会员分享,可在线阅读,更多相关《第三组基于8253的交通信号控制器的设计.docx(24页珍藏版)》请在冰豆网上搜索。

第三组基于8253的交通信号控制器的设计.docx

第三组基于8253的交通信号控制器的设计

合肥学院自动化专业

微机原理课程设计报告

 

课题名称:

基于8253的交通信号控制器的设计

姓名:

符勇0705074027

耿在光0705074033

马典波0705074037

专业:

07自动化

(2)班

指导老师:

刘伟林泽坤

 

论文题目

基于8253的交通信号控制器的设计

指导教师

刘伟林泽坤

学生班级

07自动化2班

学生姓名

符勇耿在光

马典波

设计内容分析论证(可加附页)

见附页

设计条件要求

首先必须了解交通路灯的亮灭规律。

设有一个十字路口,1、3为南,北方向,2、4为东,西方向,初始态为4个路口的红灯全亮。

之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。

延迟一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁。

闪烁若干次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。

延迟一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。

闪烁若干次后,再切换到1、3路口方向。

之后,重复上述过程。

利用8253和74LS244完成.

设计进程安排

第一周设计任务:

(1):

明确课题对程序功能,运算精度等方面的要求及硬件条件

(2):

把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。

(3):

存储器资源分配

第二周设计任务:

(4):

编制程序,根据流程图精心选择合适的指令和寻址方式来编制源程序

(5):

对程序进行汇编,调试和修改,直到程序运行结果正确为止。

文献资料准备

《微型计算机原理及接口技术》中国科技大学出版社吴秀清周荷琴编著

《16-32位微型计算机技术及应用》清华大学出版社戴梅萼史嘉权编著

<<汇编语言程序设计》南京大学出版社姚君遗编著

《汇编语言程序设计教程》清华大学出版社杨记文编著

《微型计算机原理及接口技术》实验指导书

开题批注

 

摘要

此次微机原理与接口技术课程设计我们小组所选择的题目是基于8253的交通信号控制器的设计,主要是运用8253定时芯片以及学校给我们提供的实验箱去模拟交通信号的控制过程,实验中我们还用到了8255,用以检测以及驱动LED灯,实验硬件主要分为电源模块,定时模块,8255驱动模块以及LED灯显示,经过两个星期的小组合作,加上老师的辛勤指导,最终完成了此次设计,以下是这次设计的具体方案,可能设计中仍有一些缺陷和不足,望老师可以批评指出。

关键字:

设计交通控制82538255合作

 

目录

一绪论1

1.1本课题设计研究意义1

二课程设计的目的和要求2

2.1课程设计的目的2

2.1.1掌握微机系统的设计步骤2

2.1.2掌握8253、8255的用法2

1.8253的基本用法2

2.8255的基本用法2

2.1.3掌握汇编程序的设计2

2.2设计的任务与要求2

三总体设计3

3.1交通灯的工作过程3

3.2发光二极管的应用3

3.3定时/计数器的选择3

四硬件设计3

4.1硬件电路的模块构成3

4.2设计中所用到的8255、8253,其结构和功能如下4

4.2.1可编程8255的芯片结构及工作原理4

4.2.28255具有两类控制字5

1方式选择控制字5

2C口复位/置位控制寄存器5

4.2.38253定时器/计数器的结构及功能5

18253计数器的结构5

28253定时/计数器的功能6

38253定时/计数器的实现方法及其特点6

4.2.4设计中具体实现7

五软件设计8

5.1程序的主要组成8

5.1.1存储单元的分配、标志位的含义8

5.2程序的流程以及实现9

5.2.1主程序的流程图9

5.2.2延时子程序的实现10

六系统操作说明11

6.1连接8255并行口实验控制交通灯实验电路11

6.2连接8253定时/计数器实验电路11

6.3把上面几个实验电路全部连接起来,就是硬件控制的交通灯控制系统12

6.4写程序代码12

6.5装载程序12

6.6调试程序12

6.7调试成功,结束12

七结束语12

附录114

附录215

一绪论

1.1本课题设计研究意义

随着社会经济的发展,城市交通问题越来越引起人们的关注。

人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。

城市交通控制系统是用于城市交通数据检测、交通信号灯控制与交通疏通的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。

对于我们此次研究的目的,主要是:

1)研究交通灯的控制原理及控制过程,运用所学的知识,用8086,8253定时器芯片,8255芯片以及74LS244缓冲器来实现。

2)通过这次设计,我想可以加强我们理论与实际相结合的能力,也同时提高了我们的设计能力以及知识运用能力。

3)了解并掌握汇编语言开发的一般流程及方法。

 

二课程设计的目的和要求

2.1课程设计的目的

2.1.1掌握微机系统的设计步骤

本系统的设计步骤可以分为总体设计、硬件设计和软件设计。

2.1.2掌握8253、8255的用法

1.8253的基本用法

8253内部有三2个独立的16位减计数器(0#,1#,2#),每个均可单独设置工作方式。

每个计数器可用6种模式工作,在初始化时首先写控制字,选择工作方式,然后要正确地写入计数初值。

最常用的0、1、2、3四种方式。

2.8255的基本用法

8255作为并行接口芯片,有3种工作方式:

方式0,方式1,方式2,方式0相当于可作无条件输入/输出方式,方式1和方式2将PC口的一些线作为状态线使用,相当于工作在查询方式或中断方式。

8255的PC口具有位控制功能,可以用指令将某条线单独置1或清0,利用此功能也可串行接收或发送数据。

注意:

8255有2条单元选的地址线,有4个端口地址,要能正确地完成与CPU的地址线、数据线、控制线的连接。

2.1.3掌握汇编程序的设计

汇编语言是一门涉及硬件的程序设计语言,汇编语言程序设计是计算机专业的一门重要的专业基础课。

汇编语言一般与某一种CPU提供的机器指令相对应,人们可以用它直接控制硬件系统进行工作,可以直接访问计算机系统内部各资源,汇编语言程序具有实时性强、执行速度快、代码效率高等优点。

2.2设计的任务与要求

首先必须了解交通路灯的亮灭规律。

设有一个十字路口,1、3为南,北方向,2、4为东,西方向,初始态为4个路口的红灯全亮。

之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。

延迟一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁。

闪烁若干次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。

延迟一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。

闪烁若干次后,再切换到1、3路口方向。

之后,重复上述过程。

利用8253和8255完成。

三总体设计

3.1交通灯的工作过程

因在设计的任务与要求中已经阐述,故在此不再叙述。

3.2发光二极管的应用

在设计中采用8个发光二极管来模拟2个路口的黄红绿灯,其中为了方便控制,左边的四个模拟1、3路口,第一个为绿灯、第二个为黄灯、第三、四个为红灯。

右边四个模拟2、4路口,第五个为绿灯、第六个为黄灯、第七、八个为红灯。

3.3定时/计数器的选择

根据前面的介绍,本设计硬件由定时模块、发光二极管模块、电源模块组成,8255模块。

定时模块采用硬件定时和软件定时相结合的方法,用8253定时/计数器定时500ms,再用软件计时实现所需的定时。

发光二极管模块由8255控制发光二极管来实现。

四硬件设计

4.1硬件电路的模块构成

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

硬件电路由定时模块、发光二极管模块、驱动模块和电源模块组成。

系统硬件结构框图如下:

3.系统结构图如图3

图3

4.2设计中所用到的8255、8253,其结构和功能如下

4.2.1可编程8255的芯片结构及工作原理

4.2.28255具有两类控制字

1方式选择控制字

 

2C口复位/置位控制寄存器

4.2.38253定时器/计数器的结构及功能

18253计数器的结构

 

28253定时/计数器的功能

可编程定时器芯片可以产生精确的时间间隔,形成各种脉冲序列,灵活性强。

依所需时间间隔,设置计数器的时间常数,在一外部脉冲驱动下进行减1计数,计数值为0时,产生输出信号,供系统使用。

8253的每个通道均可以通过编程选择6种工作方式之一,这6种工作方式是:

方式0:

计数到零产生中断请求;方式1:

硬件可重复触发的单稳态触发器;方式2:

分频器;方式3:

方波发生器(用得最多的方式);方式4:

软件触发选通;方式5:

硬件触发选通;

在实际过程中我们采用的是方式0和方式2,通道0为方式2作为分频器,来作为通道1的clck1信号。

通道1为方式0产生高电平,作为定时结束的标志。

38253定时/计数器的实现方法及其特点

软件定时:

利用CPU执行某一指令需要一定机器周期的原理,在软件编程时循环执行一段指令,从而产生累积的定时。

优点是不需要增加硬件。

缺点是耗费CPU资源,故软件定时只适用于短时定时。

而且,不同CPU的时钟频率不同,同一段软件延时程序在不同的机器上运行,可能结果不同,即兼容性不强。

硬件定时和计数:

以硬件计数器构成,计数脉冲触发硬件计数器计数,如果计数脉冲的周期固定,则计数同时产生定时。

优点是不占用CPU资源,定时精确,定时范围大。

缺点是增加一些硬件开销。

4.2.4设计中具体实现

设计中我们主要是用试验箱实现的,用到的芯片和器件有PCI板,8253定时芯片,8255驱动芯片已经LED发光二极管。

它们之间的连接如下图所示:

说明:

1.试验中的数据缓冲器和PCI板未在图中显示,数据缓冲器74LS244接在8086数据总线的低八位。

2.8253的CLK0接入2MHZ的脉冲信号。

3.8253的通道0工作于方式2,输出OUT0作为通道CLK1的输入。

4.通道1的输出OUT1接8255的PC7作为检测信号,当8253通道1的内部寄存器减为0时。

此时OUT1的输出由低电平变为高电平,此时8255的PC7脚检测到高电平,表示此时计数结束即定时500ms结束。

5.其中GATE0和GATE1要接高电平触发。

6.片选信号的接法未在图中标出。

7.8255点亮LED灯。

各种不同情况时8255的PA的各输出电平为:

1、3,2、4路口红灯亮:

0CCH(11001100)

1、3路口的绿灯亮,2、4路口的红灯亮:

7CH(01111100)

1、3路口的黄灯亮,2、4路口的红灯亮:

0BCH(10111100)

1、3路口的黄灯灭,2、4路口的红灯亮:

0FCH(11111100)

1、3路口的红灯亮,2、4路口的绿灯亮:

0C7H(11000111)

1、3路口的红灯亮,2、4路口的黄灯亮:

0CBH(11001011)

1、3路口的红灯亮,2、4路口的黄灯灭:

0CFH(11001111)

五软件设计

5.1程序的主要组成

本程序由主程序和定时子程序组成。

主程序主要负责系统初始化和具体功能的实现。

定时子程序主要起延时作用。

8253计数结束时输出由低电平变为高电平,8255的PC7脚来检测此脚的输出,当输出为高电平时表示此时计时结束,程序转而去执行相应的操作,实行相应的功能。

5.1.1存储单元的分配、标志位的含义

8253有两条片内寄存器地址寻址线A0、A1

可寻4个片内寄存器。

u     控制(命令)字地址       A1=1、A0=1

u     计数器0的R/W地址       A1=0、A0=0

u     计数器1的R/W地址       A1=0、A0=1

u     计数器2的R/W地址       A1=1、A0=0

5.2程序的流程以及实现

5.2.1主程序的流程图

5.2.2延时子程序的实现

DL500msPROCNEAR

PUSHAX

PUSHDX

MOVAL,00110101B

MOVDX,COM_ADDR

OUTDX,AL;计数器T0设置在模式2状态,BCD码计数

MOVAL,00H

MOVDX,T0_ADDR

OUTDX,AL

MOVAL,20H

MOVDX,T0_ADDR

OUTDX,AL;CLK0/2000即输出周期为1ms

MOVAL,01110001B

MOVDX,COM_ADDR

OUTDX,AL;计数器T1为模式0状态,BCD码计数

MOVAL,00H

MOVDX,T1_ADDR

OUTDX,AL

MOVAL,5H

MOVDX,T1_ADDR

OUTDX,AL;CLK1/500即输出周期为500ms

J9:

MOVDX,PC_ADD;检测Pc口的状态

INAL,DX

MOVBL,AL

CMPBL,80H;若PC7为低电平,转移至J9处,若为高电平退出调用

JNEJ9

POPDX

POPAX

RET

DL500msENDP

六系统操作说明

6.1连接8255并行口实验控制交通灯实验电路

运行并使其成功能通过软件控制其交通灯控制系统

6.2连接8253定时/计数器实验电路

运行并使其能定时/计数器功能。

6.3把上面几个实验电路全部连接起来,就是硬件控制的交通灯控制系统

6.4写程序代码

6.5装载程序

6.6调试程序

6.7调试成功,结束

七结束语

本次课程设计是由我们小组三人共同完成,通过两个星期微机接口的课程设计,我们对微机接口芯片有了更进一步的了解。

这次实验通过使用了8253计数器、8255可编程并行接口实现了对南北、东西方向交通的分别计时、分别控制。

对于微机这门课程,本人个人认为有点难度,特别是程序的编写,在实验过程中,我们也遇到不少的问题,例如不能循环控制,难以实现中断。

所以在做这个设计时,我们还温习了8253计数器、8255可编程的实验,对这些芯片有了更进一步的理解。

然后通过网上查阅了一些资料,再加上老师的指导,总算了解了8253计数器、8255可编程等芯片的操作方式,通过我们自己反复的调试,修改,在我们小组的共同努力下,最后有了圆满的结果。

通过本次课程设计我们学到了很多课堂没有涉及到的知识,极大地拓宽了我们的知识面,锻炼了能力,综合素质得到较大提高,我们感到收获不小。

同时也发现了大量问题,有些在设计过程中已经解决,有些还要待今后慢慢学习,只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。

最后在此感谢我们小组的成员,我们的共同努力有了回报,也感谢在设计过程中给予我们帮助的老师!

同时也感谢学校给我们提供这样的学习平台。

谢谢!

 

参考文献

《微型计算机原理及接口技术》中国科技大学出版社吴秀清周荷琴编著

《16-32位微型计算机技术及应用》清华大学出版社戴梅萼史嘉权编著

《汇编语言程序设计》南京大学出版社姚君遗编著

《汇编语言程序设计教程》清华大学出版社杨记文编著

《微型计算机原理及接口技术》实验指导书

 

附录

附录1

 

硬件图

说明:

由于Protel学的有限,所以在绘图的过程中省略了一些,望老师可以见谅。

 

附录2

源程序:

.MODELTINY

PCIBAR3EQU1CH;8位I/O空间基地址(它就是实验仪的基地址,也为DMA&32BITRAM板卡上的8237提供基地址)

Vendor_IDEQU10EBH;厂商ID号

Device_IDEQU8376;设备ID号

.STACK100

.DATA

COM_ADDRDW00B3H

T0_ADDRDW00B0H

T1_ADDRDW00B1H

IO_Bit8_BaseAddressDW0000H

msg0DB'BIOS不支持访问PCI$'

msg1DB'找不到StarPCI9052板卡$'

msg2DB'读8位I/O空间基地址时出错$'

COM_ADDDW00F3H;控制口偏移量

PA_ADDDW00F0H;PA口偏移量

PB_ADDDW00F1H;PB口偏移量

PC_ADDDW00F2H;PC口偏移量

.CODE

START:

MOVAX,@DATA

MOVDS,AX

NOP

CALLInitPCI

CALLModifyAddress;根据PCI提供的基地址,将偏移地址转化为实地址

MOVAL,10001011B;PA、PB、PC为基本输出模式

MOVDX,COM_ADD

OUTDX,AL

MOVDX,PA_ADD

MOVAL,0CCH;1、3和2、4口的红灯亮

OUTDX,AL

CALLDL500ms;延时500ms

DAXUNHUAN:

MOVDX,PA_ADD

MOVAL,7CH;1/3口绿灯亮,2/4口红灯亮

OUTDX,AL

MOVCX,60;1/3口绿灯亮30s,2/4口红灯亮30s

J1:

CALLDL500ms;延时

DECCX

JNZJ1

MOVCX,8;1、3口的黄灯闪烁四次,每次间隔500s

JIANCE2:

MOVDX,PA_ADD

MOVAL,0BCH;记时30秒,1、3口的黄灯亮0.5秒,2、4口的红灯亮

OUTDX,AL

CALLDL500ms;延时

MOVDX,PA_ADD

MOVAL,0FCH;记时30秒,1、3的黄灯灭0.5秒,2、4口的红灯还亮

OUTDX,AL

DECCX

CALLDL500ms;延时

DECCX

JNZJIANCE2

MOVDX,PA_ADD

MOVAL,0C7H;1、3路口的红灯亮,2、4口的绿灯亮30s

OUTDX,AL

MOVCX,60

J2:

CALLDL600ms;延时

DECCX

JNZJ2

MOVCX,8;1、3的黄灯闪烁4次,2、4口的红灯还亮

EJIANCE2:

MOVDX,PA_ADD

MOVAL,0CBH;1、3的黄灯亮0.5秒,2、4口的红灯还亮

OUTDX,AL

CALLDL500ms;延时

MOVDX,PA_ADD

MOVAL,0CFH;1/3的黄灯灭0.5秒,2/4口的红灯还亮

OUTDX,AL

DECCX

CALLDL500ms;延时

DECCX

JNZEJIANCE2

JMPDAXUNHUAN

DL500msPROCNEAR

PUSHAX

PUSHDX

MOVAL,00110101B

MOVDX,COM_ADDR

OUTDX,AL;计数器T0设置在模式2状态,BCD码计数

MOVAL,00H

MOVDX,T0_ADDR

OUTDX,AL

MOVAL,20H

MOVDX,T0_ADDR

OUTDX,AL;CLK0/2000即输出周期为1ms

MOVAL,01110001B

MOVDX,COM_ADDR

OUTDX,AL;计数器T1为模式0状态,BCD码计数

MOVAL,00H

MOVDX,T1_ADDR

OUTDX,AL

MOVAL,5H

MOVDX,T1_ADDR

OUTDX,AL;CLK1/500即输出周期为500ms

J9:

MOVDX,PC_ADD;检测Pc口的状态

INAL,DX

MOVBL,AL

CMPBL,80H;若PC7为低电平,转移至J9处,若为高电平退出调用

JNEJ9

POPDX

POPAX

RET

DL500msENDP

InitPCIPROCNEAR

MOVAH,00H

MOVAL,03H

INT10H;清屏

MOVAH,0B1H

MOVAL,01H

INT1AH

CMPAH,0

JZInitPCI2

LEADX,msg0

InitPCI1:

MOVAH,09H

INT21H

JMPExit

InitPCI2:

MOVAH,0B1H

MOVAL,02H

MOVCX,Device_ID

MOVDX,Vendor_ID

MOVSI,0

INT1AH

JNCInitPCI3;是否存在StarPCI9052板卡

LEADX,msg1

JMPInitPCI1

InitPCI3:

MOVDI,PCIBAR3

MOVAH,0B1H

MOVAL,09H

INT1AH;读取该卡PCI9052基地址

JNCInitPCI4

LEADX,msg2

JMPInitPCI1

InitPCI4:

ANDCX,0FFFCH

MOVIO_Bit8_BaseAddress,CX

RET

InitPCIENDP

ModifyAddressPROCNEAR

ADDCOM_ADDR,CX

ADDT0_ADDR,CX

ADDT1_ADDR,CX

ADDCOM_ADD,CX

ADDPA_ADD,CX

ADDPB_ADD,CX

ADDPC_ADD,CX

RET

ModifyAddressENDP

RET

Exit:

MOVAH,4CH

INT21H

ENDSTART

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

当前位置:首页 > 小学教育

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

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