接口课程设计2交通灯.docx
《接口课程设计2交通灯.docx》由会员分享,可在线阅读,更多相关《接口课程设计2交通灯.docx(17页珍藏版)》请在冰豆网上搜索。
![接口课程设计2交通灯.docx](https://file1.bdocx.com/fileroot1/2022-11/16/1d00a48d-56dc-4b00-9c59-00b69c5f610b/1d00a48d-56dc-4b00-9c59-00b69c5f610b1.gif)
接口课程设计2交通灯
序言
随着科学技术迅速发展,理工科大学生不仅需要掌握计算机方面的基本理论知识,而且还需要掌握基本的实验技能及一定的科学研究能力。
微机原理和接口技术是一门实践性强的学科,不但要求有较高的理论水平,而且还要求有实际的动手能力,其中很多的原量、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。
本课程设计的主要目的是提高实践能力,包括提高汇编等语言的编程能力及对接口等硬件的理解分析能力和设计接口电路的能力,在进行课程设计的过程中,可以让学生体验分析问题、提出解决方案、通过编程等手段实现解决方案、不断调试最终达到设计要求的全过程,从而帮助学生系统地掌握微机原理的接口技术的相关知识,达到将知识融会贯通的目的。
本次课程设计是培养和锻炼在校学生综合应用所学理论知识解决实际问题能力、进行实际锻炼能力的重要环节,它具有动手、动脑,理论联系实际的特点,是培养在大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。
通过课程设计,使学生巩固和加深微型计算机原理理论知识,通过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。
通过设计实践,培养我们查阅专业资料、工具书或参考书,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。
通过设计,不但要培养和提高我们分析解决具体问题、动脑动手的技术工作能力,培养良好的设计习惯。
在此次课程设计之前老师大概就讲了一下课程设计一些内容和基本要求,要求我们可以做软件实验也可做硬件实验。
在课程的第一节课我们先练习做了一些里的硬件实验。
之后我们就开始自己选择计的内容,在综合考虑之下我选择了交通灯设计。
本次交通灯课程设计采用定时查询控制的方式进行,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。
一、设计目的
1、了解交通灯管理的基本工作原理
2、熟悉8255A并行接口的各种工作方式和应用
3、学习单板方式下扩展简单I/O接口的方法以双色灯的使用。
4、进一步学习微处理器的编程技术。
5、学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
6、通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
2、设计任务及要求
1、设计任务:
这次课程设计的题目是交通灯控制的设计与实现,主要是模拟十字路口的红绿灯。
按照时间控制原则,利用并行接口和定时器,采用时间中断方式设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30秒,准备时间3秒,在准备时间里黄灯闪烁3次,闪烁频率为0.5秒,周而复始。
可利用8255、8253、8259等接口电路。
2、设计内容:
城市十字交叉路口红绿灯控制系统主要负责控制东西走向和南北走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,采用如下设计,通过设计实现以下功能:
1.东西方向车辆放行30秒钟。
即东西方向的红灯和南北方向的绿灯同时点亮30秒钟;
2.30秒钟后,南北方向的黄灯闪烁3秒钟,以警示车辆将切换红绿灯。
此时南北方向仍维持红灯点亮。
3.南北方向的黄灯闪烁3秒钟后,转为东西方向放行30秒钟。
即南北方向的红灯和东西方向的绿灯同时点亮30秒钟;
4.东西方向放行30秒钟后,转为东西方向的黄灯闪烁3秒钟,以警示将切换红绿灯。
此时南北方向仍维持红灯点亮。
5.东西方向的黄灯闪烁3秒钟后,再转为南北方向车辆放行30秒钟。
如此循环重复。
3、设计器材:
超想HK—3000TC综合实验/仿真系统
导线若干
微机原理及接口技术试验箱
三、设计原理
1设计方案:
本次课程设计要求设计实现交通灯的功能,刚开始选择这个课题的时候曾认真思考研究过,要实现交通的功能首先要用芯片控制灯的亮灭、颜色控制;其次由于交通灯有计时,就必须要有计时或定时控制,还要有时间的倒计时时显示,这样才能符合交通灯的基本功能,经过认真的思考设计,根据自己所学到的知识制定了以下方案。
将8255A控制字设置为全输出,利用端口A输出控制交通灯东西、南北方向红绿灯的变换,利用延时程序控制各种状态显示的时间。
2系统原理
本次课程设计使用到得芯片有8255,8253和8279,使用这些芯片首先应该明白了解这些芯片的功能、工作方式以及初始化方式等。
2.1、8255的工作原理
2.1.1、8255的内部结构:
8255的内部结构及引脚
1)数据总线缓冲器:
这是一个双向三态的8位数据缓冲器,它是8255与微机系统数据总线的接口。
输入输出的数据、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.1.2、8255A的工作方式:
方式0---基本输入输出方式;
方式1---选通输入输出方式;
方式2---双向选通输入输出方式。
8255工作方式控制字和C口按位置位/复位控制字格式
2.1.3、引脚信号
8255A的引脚如图1所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。
D7~D0(databus):
三态、双向数据线,与CPU数据总线连接,用来传送数据。
CS(chipselect):
片选信号线,低电平有效时,芯片被选中。
A1,A0(portaddress):
地址线,用来选择内部端口。
RD(read):
读出信号线,低电平有效时,允许数据读出。
WR(write):
写入信号线,低电平有效时,允许数据写入。
RESET(reset):
复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。
PA7~PA0(portA):
A口输入/输出信号线。
PB7~PB0(portB):
B口输入/输出信号线。
PC7~PC0(portC):
C口输入/输出信号线。
VCC:
+5V电源。
GND:
电源地线。
2.2发光二极管显示原理:
发光二极管显示模块由8255的A口输的出来控制发光二极管的亮灭。
在实验设计中A口已经与发光二级管连接好了,根据双色灯实的结果可以知道,在A口中PA7PA6PA5PA4PA3PA2PA1PA0与发光二极管链接,各口控制的二极管以及各二极管的亮灭及颜色控制如下表所示:
东
南
西
北
PA7PA3
状态
PA6PA2
状态
PA5PA1
状态
PA4PA0
状态
00
黄
00
黄
00
黄
00
黄
01
绿
01
绿
01
绿
01
绿
10
红
10
红
10
红
10
红
11
灭
11
灭
11
灭
11
灭
设计时在向PA口输出时一定要根据上表所示的状态来写入各端口的值,如要想PA口输出灯的状态为东西红南北绿,则应向PA口写入10100101则可。
四、总体设计
根据设计任务的要求,要实现交通灯的功能。
1、初始状态0为东西红灯,南北红灯。
2、然后转状态1南北绿灯通车,东西红灯。
3、过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。
4、再转状态,东西绿灯通车,南北灯灯。
5、过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。
6、最后循环至状态1。
在设计过程中,交通灯会有一闪一灭的情况,亮灭的状态之间有一定时间的延时,调用延时程序,可以体现出交通灯的亮灭的效果。
整体实验设计思想如下图所示:
五、详细设计
1、电路设计
本课题的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经连接,因此在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。
完整系统的硬件连接如下图所示。
硬件电路由定时模块、发光二极管模块、数码管显示模块组成。
发光二极管双色灯
总的实验连线图
2、延时模块设计
在设计任务时,由于期间交通灯闪烁的情况,设计时先让交通灯亮,在采用软件延时的方法来让其亮一段时间,在设置让其灭,再延时后让其亮,这样交通灯就会出现一闪一闪的情况了。
在设计软件延时,利用执行一条指令所需要的指令周期来达到延长时间的目的。
其程序设计如下:
DLYPROCNEAR;延时
PUSHCX
DDD:
MOVCX,2FFFH
CCC:
LOOPCCC
DECBX
CMPBX,0
JNEDDD
POPCX
RET
DLYENDP
3、交通灯主程序设计
8255的初始化设置:
A口输出,C口输入,为工作方式0,8255的地址引脚为:
200H—208H。
接着向PA口写入初值将发光二极管全部变为红色,软件延时一段时间,向BX写入时间数值。
判断BX是否为0。
将8255A控制字设置为全输出,利用端口A输出控制交通灯东西、南北方向红绿灯的变换,利用延时程序控制各种状态显示的时间。
D1EQU10H
D2EQU200H
DATASEGMENT;数据段
PBDB?
DATAENDS
STACKSEGMENTSTACK;堆栈段
STADW50DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT;代码段
ASSUMECS:
CODE,DS:
DATA
START:
PUSHCS
POPDS;8255初始化
MOVDX,203H;设置为全输出
MOVAL,80H
OUTDX,AL
MOVDX,200H
MOVAL,00;清LED
OUTDX,AL
MOVDX,200H
MOVAL,0F0H;全红
OUTDX,AL
MOVBX,7FH
CALLDLY
BG:
MOVAL,01011010B;南北绿,东西红
OUTDX,AL
MOVBX,D2
CALLDLY
MOVCX,03H
XH1:
ANDAL,0F5H;绿灭
OUTDX,AL
MOVBX,D1
CALLDLY
ORAL,0AH;绿亮
OUTDX,AL
MOVBX,D1
CALLDLY
LOOPXH1
ORAL,0A0H;南北黄,东西红
OUTDX,AL
MOVBX,D1
CALLDLY
MOVBX,D1
CALLDLY
MOVAL,10100101