第三组基于8253的交通信号控制器的设计.docx
- 文档编号:30541262
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:24
- 大小:224.27KB
第三组基于8253的交通信号控制器的设计.docx
《第三组基于8253的交通信号控制器的设计.docx》由会员分享,可在线阅读,更多相关《第三组基于8253的交通信号控制器的设计.docx(24页珍藏版)》请在冰豆网上搜索。
第三组基于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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 基于 8253 交通信号 控制器 设计