交通灯微机课程设计Word格式文档下载.docx
- 文档编号:948876
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:19
- 大小:195.01KB
交通灯微机课程设计Word格式文档下载.docx
《交通灯微机课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《交通灯微机课程设计Word格式文档下载.docx(19页珍藏版)》请在冰点文库上搜索。
五、系统仿真过程与结
果 12
六、设计总
结 13
七、附
录 14
7.1附录一:
系统整体原理图 14
7.2附录二:
元器件清
单 15
7.3附录三:
源代
码 15
八、参考文
献 17
一、设计任务书
一、设计题目:
交通灯控制系统二、设计目的:
1.巩固和加深课堂所学知识;
2.学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;
3.通过对交通灯的控制进行设计与制作,深入了解与掌握利用可编程 8255A进行
开关量控制的原理与方法。
三、设计任务及要求:
(在规定的时间内完成下列任务)
(一)任务:
设计一个普通十字路口,交通灯的控制可分东西向和南北向两组,每组可用
红、黄、绿三个灯进行交通管理,所以本任务要点是对十二个交通灯进行控制。
(二)功能要求:
在十字路口交通信号灯有东西向和南北向。
信号灯受启动开关控制。
当启动开关接通时,信号灯系统开始工作,此时南北方向红灯亮,东西方向绿灯亮。
当
启动开关端开时,所有信号灯都熄灭。
交通灯的亮灭规律如下:
①南北向绿灯和东西向绿灯不能同时亮,如果同时亮则应关闭信号灯系统,并立刻报警。
②南北向红灯亮并持续25s,与此同时东西向绿灯持续20s,闪烁3s,熄灭。
③东西向黄灯亮并持续2s后熄灭,切换为东西向红灯,南北向绿灯亮。
④东西向红灯持续亮30s。
南北向绿灯维持25s,闪烁3s后熄灭,南北向黄灯亮维持2s后,切换成南北红灯亮,东西向绿灯亮。
⑤上述动作循环进行。
(三)具体要求:
课程设计报告撰写格式要求具体内容如下:
①设计任务与要求②总体方案与说明
③硬件原理图、与说明④实验电路图与说明
⑤软件主要模块流程图⑥源程序清单与注释
⑦proteus仿真(仿真结果及相关文档)
⑧问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要
问题、解决方法及改进设想)
⑨小结与体会
完成部分:
在这次课程设计中主要完成软件的设计。
附录:
①源程序(必须有简单注释)及元件清单②使用说明③参考资料
(四)课程设计成果提交纸本文档:
课程设计报告。
电子文档:
课程设计报告电子档protel电路原理图proteus仿真文档及源程序文档
二、总体方案设计与说明
2.1系统总体设计方案
本设计是基于Windows环境下的Proteus7.8软件,在其中进行硬件电路的的设计,汇编语言源程序的编写以及以上两部分工作完成后的软件系统的调试。
本设计的处理控制系统由Intel8086微处理器在最小模式下组成的单处理器系统构成,用来进行对外围硬件电路进行信息采集、数据处理和控制。
2.2系统整体框图如下
74273
74154
5
8086CPU
总线
红
8255A
黄
绿
图1:
系统整体框图
本次课程设计使用8086CPU控制8255A和74273锁存器控制LED交通灯。
其中译码器74154相当于片选作用,由于此次课程设计只用到了一片8255A,将其接IO1口即可。
同时8255A也要按程序设定点亮LED交通灯。
三、系统硬件部分设计
3.1Intel8086微处理器的简介
Intel8086是Intel公司于1978年推出的16位微处理器。
它采用HMOS工艺制造,片内有2.9万个晶体管,单一电源+5V供电,时钟频率4.77-10MHz,片内数据总线、寄存器和外部数据总线都为16位,最大可寻址的物理地址为
1M。
要掌握一个CPU的工作性能及使用方法,首先应该了解它的编程结构。
在
8086CPU的编程结构上,从功能上,分为两部分,即总线接口部件(BIU)和执行部件(EU)。
8086的逻辑地址为20位,物理地址为16位,,对于编程员来说,只需要考虑逻辑地址即可。
8086为40只引脚双列直插式封装。
Intel8086可以工作在最大和最小两种模式下,最小模式和最大模式的确定是通过一条MN/MN所接的逻辑电平是“1”还是“0”来完成。
在最小方式下,微处理器被用来构成一个小规模的单处理机系统,微处理器本身必须提供全部的的控制信号给外围电路。
微处理器被用来构成一个较大规模的多机系统。
在最小模式下的信号如下:
(1)AD15~AD0(addressdatabus)地址/数据复用引脚(双向工作)分时复用的地址/数据线。
14
(2)A19/S6~A16/S3(Address/Status)输出,是分时复用的地址/状态线。
用作地址线时,A19~A16与A15~A0一起构成访问存储器的20位物理地址。
(3)BHE/S7(BusHighEnabale/Status)总线高字节有效信号。
三态输出,低电平有效,用来表示当前高8位数据线上的数据有效。
(4)NMI(NonMaskableInterruptRequest)不可屏蔽中断请求信号。
由外部输入,上升沿触发,不受中断允许标志的限制。
(5)INTR(InterruptRequest)可屏蔽中断请求信号。
由外部输入,电平触发,高电平有效。
(6)RD(Read)读信号。
三态输出,低电平有效,表示当前CPU正在读存储器或IO端口。
(7)CLK(Clock)主时钟引脚(输入)。
由8284时钟发生器输入。
8286CPU可使用的最高时钟频率随芯片型号不同而异,8086为5MHz,8086-1为10MHz,8086-2为8MHz。
(8)RESET(reset)复位信号。
由外部输入,高电平有效。
(9)READY(ready)准备就绪信号。
由外部输入,高电平有效,表示CPU 访问的存储器或IO端口已准备好传送数据。
(10)TEST测试信号。
由外部输入,低电平有效。
CPU执行WAIT指令时,每隔5个时钟周期对TEST进行一次测试,若测试TEST无效,则CPU处于踏步等待状态,直到TEST有效,CPU才继续执行下一条指令。
(11)MN/MX工作模式选择信号。
由外部输入,MN/MX为高电平时,CPU工作在最小模式;
MN/MX为低电平时,CPU工作在最大模式。
(12)GND/VCC电源地和电源。
8086CPU只需要单一的+5V电源,由VCC引脚输入。
(13)INTA 中断响应信号。
向外部输出,低电平有效。
在中断响应周期,该信号表示CPU响应外部发来的INTR信号,用作读中断类型码的选通信号。
(14)ALE地址锁存允许信号。
向外部输出,高电平有效。
在最小模式系统中用作地址锁存器的片选信号。
(15)DEN数据允许信号,三态输出,低电平有效。
(16)DT/R数据发送/接收控制信号。
(17)M/IO存储器/IO端口访问信号。
(18)WR写信号。
三态输出,低电平有效,表示当前CPU正在写存储器或IO
端口。
(19)HOLD总线请求信号。
由外部输入、高电平有效。
表示有其他共享总线的处理器/控制器向CPU请求使用总线。
(20)HLDA总线请求响应信号。
CPU一旦测试到有HOLD 请求,就在当前总线周期结束后,使HLDA有效,表示响应这一总线请求,并立即让出总线使用权。
在不要求使用总线的情况下,CPU中指令执行部件可继续工作。
HOLD变为无效后,CPU也将HLDA置成无效,并收回对总线的使用权,继续操作。
3.28255A芯片的工作原理
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能
可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个
部分:
与CPU连接部分、与外设连接部分、控制部分。
1)与CPU连接部分
根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。
此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。
各信号的引脚编号如下:
(1)数据总线DB:
编号为D0~D7,用于8255与CPU传送8位数据。
(2)地址总线AB:
编号为A0~A1,用于选择A、B、C口与控制寄存器。
(3)控制总线CB:
片选信号、复位信号RST、写信号、读信号。
当CPU
要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然
后发读信号或写信号对8255进行读或写数据的操作。
2)与外设接口部分
根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则
8255可同时控制24路开关。
各通道的引脚编号如下:
(1)A口:
编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
(2)B口:
编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
(3)C口:
编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。
3)控制器部分
8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,
PB0~PB7与PC0~PC3组成B组。
如图7.5所示,相应的控制器也分为A
组控制器与B组控制器,各组控制器的作用如下:
(1)A组控制器:
控制A口与上C口的输入与输出。
(2)B组控制器:
控制B口与下C口的输入与输出。
引脚功能:
RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;
/CS=1时,8255无法与CPU做数据传输.
RD:
读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且
/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从
8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且
/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在以下三种方式下工作。
方式0————基本输入输出方式;
方式1————选通输入/出方式;
方式2————双向选通输入/输出方式;
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
工作于三种方式中的任何一种;
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
不能工作于方式二;
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
'
不能工作于方式一或二。
A1,A0:
地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.当A1=0,A0=0时,PA口被选择;
当A1=0,A0=1时,PB口被选择;
当A1=1,A0=0时,PC口被选择;
当A1=1.A0=1时,控制寄存器被选择。
3.374273芯片简介
74273是8位数据锁存器。
主要用于数码管、按键等等的控制
DN
LE
OE
ON
H
L
×
Q0
Z
其真值表如下:
表1:
74273真值表
芯片管脚图如下
图2:
74273管脚图
74273的功能是实现AD[0..7]的锁存,由于8086CPU的总线是地址/数据
复用总线,因此需要在传送地址信号的时候,将数据信号锁存起来,即将数据信号锁存在74273触发器中,待地址传送完毕后再按需要将数据信号输出。
四、系统电路图设计
4.18086最小系统电路图设计
图3:
8086最小系统原理图
8086最小系统由Intel8086微处理器、74273TTL带公共时钟复位八D触发器、以及74154TTL4线—16线译码器等组成。
8086有20位地址线,其中高4位A19-A16与状态线S6-S3分时复用,低
16位AD15-AD0与数据线分时复用。
在总线周期的T1时将地址送出后,就必须用锁存器将它们锁存起来,以便在T2及以后搞死位地址线改为状态输出,低16位地址线该做数据线使用。
另外,表明八位数据线是否起作用的数据总线允许信号是与状态线S7分时复用的,故也需要锁存。
21条线需采用3片8位地址锁存器,这里采用74273。
与外围硬件电路的连接的I/O部分由4线-16线译码器74154组成,用来分配I/O硬件地址。
4.2控制交通灯LED的外围电路
图4:
控制交通灯LED的外围电路
如上图,12个LED灯分别接到8255A的PA口,相对的3个LED灯接口顺序相反。
对于本电路的交通灯,低电平可以点亮LED灯,写入不同的数据就可以控制不同颜色的LED发光,达到控制目的。
8255A是专为INTEL公司的微处理器配套的接口芯片,8255A为可编程芯片,可用程序设定改变其工作状态,CPU通过它直接与外设相连接。
8255A各端口的正常工作需要事先写入控制寄存器的方式控制字即8255A的初始化编程。
本课程设计的8255A的工作方式如下:
初始化编程:
8255的工作方式如下
A方式0、输出,B方式1、输出,
控制字为80H即10000000B,初始化程序:
MOVAL,80H
OUTPART,AL
其中,PART为8255A方式控制寄存器的地址。
五、系统仿真过程与结果
六、设计总结
本次课程设计是要设计一个交通灯系统,主要功能如上已有细述。
在本次对交通灯的设计过程中以此来加深对微机接口技术的理解,提高了自己的动手能力。
首先着手对硬件电路的设计,本次课程设计主要采用了8255A接口电路。
由于对各个芯片不熟悉,通过课本了解到了它们的引脚及功能、工作方式、内部结构和控制字。
然后就是对程序的设计,想要设计出一个实用的控制系统需要了解程序流程,先画出了流程图,然后对代码进行编写,在编写过程中遇到了很多问题,对芯片的不了解也导致编程的很多的问题,要么灯都不显示,要么灯显示不全,再要么红灯,绿灯时间分配不合理。
最后经过一段时间的研究,查阅了很多资料并和同学讨论后终于一一解决。
经过为期一个星期的课程设计,我获益颇多。
将微机接口技术中的理论与实践相结合起来,对芯片的功能也有了进一步认识理解。
最后希望通过以后的学习,不断提升自身各方面的能力,如对专业知识的掌握程度,动手实践能力等。
经过此次的课程设计,我们学会了合作。
我们要形成自己的设计思想,以便在今后的专业课形成自己的风格。
同时在多多锻炼自己的动手能力,以便在以后的工作能独立完成一些设计项目。
附录一:
系统整体原理图
15
附录二:
元器件清单
器件名称
数量
1
8255A芯片
74273芯片
3
NOT门
LED(红、黄、绿)
12
74154芯片
电源
若干
附录三:
源代码
;
SAMPLE.ASM
.MODELSMALL
.8086
.stack
.code
.startup
movdx,0206hmovax,80houtdx,ax
movdx,0200hmovax,0ffhoutdx,ax
s1:
movax,0beh
19
outdx,axcalldelay5
movcx,6lp:
movax,0bfh
outdx,axcalldelay05movax,0behoutdx,axcalldelay05looplp
movax,0bdhoutdx,axcalldelay3movax,0ebhoutdx,axcalldelay5
movcx,6lp1:
movax,0fbh
outdx,axcalldelay05movax,0ebhoutdx,axcalldelay05looplp1
movax,0dbhoutdx,axcalldelay3jmps1
delay5procnearpushcxmovbx,250
dy1:
movcx,5882dy2:
loopdy2
decbxjnzdy1popcxret
delay5endp
delay05procnearpushcx
movbx,25dy3:
movcx,5882dy4:
loopdy4
decbxjnzdy3popcxret
delay05endp
delay3procnearpushcx
movbx,150dy5:
movcx,5882dy6:
loopdy6
decbxjnzdy5popcxret
delay3endp
.dataEND
八、参考文献
(1)许立梓.微型计算机原理及应用[M].北京:
机械工业出版社,2011.
(2)杨季文.80X86汇编语言程序设计教程[M].北京:
清华大学出版社,2009.
(3)许立梓.习题解答、实验指导及课程设计[M].北京:
机械工业出版社,
2004.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 微机 课程设计