微机原理课程设计-模拟交通灯

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

微机原理课程设计报告书湖南科技大学信息与电气工程学院《微机原理与接口技术》课程设计题目:模拟交通灯专业:通信工程班级:通信一班姓名:学号:指导老师:欧青立微机原理课程设计报告书目录前言……………………………………………………………………1第一章:模拟交通灯的功能与设计方案………………………………11.1功能规划…………………………………………………………………11.2设计思路…………………………………………………………………1第二章:模拟交通灯的硬件电路………………………………………12.18255A与8259A芯片原理………………………………………………12.2交通灯控制模块电路设计………………………………………………42.3倒计时显示模块电路设计………………………………………………52.4中断电路设计……………………………………………………………52.5PCB图……………………………………………………………………5第三章:模拟交通灯的软件设计………………………………………63.1程序流程图………………………………………………………………63.2程序代码…………………………………………………………………6第四章:模拟交通灯的调试……………………………………………104.1调试过程………………………………………………………………104.2调试中产生的问题以及解决办法……………………………………11第五章:设计体会与小结………………………………………………11参考文献………………………………………………………………12微机原理课程设计报告书1前言此次课程设计为模拟交通灯,是采用计算机通过编写汇编语言程序控制的。红灯停,绿灯行的交通规则。广泛用于十字路口,车站,码头等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯,交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。或者给红绿色盲声音警示的人性化设计。现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。因此,研究交通灯及扩大其应用,有着非常现实的意义。第一章:模拟交通灯的功能与设计方案1.1功能规划通过调研与资料搜寻,了解交通灯的工作过程。经过分析,该课程设计采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时。在运行的过程中要显示红绿灯等待时间,使程序顺利运行,交通灯持续工作。1.2设计思路1.南北方向车辆放行9秒钟。即东西方向红灯和南北方向的绿灯同时点亮9钟;2.9秒钟后,南北方向的绿灯闪烁三次,以警示车辆将切换红绿灯。此时东西方向仍维持红灯点亮。3.南北方向的绿灯闪烁三次后,转为东西方向放行9秒钟。即东西方向的绿灯和南北方向的红灯同时点亮9秒钟;4.东西方向放行9秒钟后,转为东西方向的绿灯闪烁三次,以警示将切换红绿灯。此时南北方向仍维持红灯点亮。5.东西方向的绿灯闪烁三次后转为南北方向放行9秒钟。如此循环重复。第二章:模拟交通灯的硬件电路2.18255A与8259A芯片原理2.1.18255A芯片介绍(1)芯片概述Intel8086/8088系列的可编程外设接口电路(ProgrammablePeripheralInterface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。全部输入输出均与TTL电平兼容。他有三个输出端(端口A、端口B、端口C),每侧端口都可以通过编程设定为输入端口或输出端口,芯片还有为输入输出端口提供的控制联络信号,端口寻址信号等。微机原理课程设计报告书2(2)8255A的内部结构8255A内部由PA、PB、PC三个8位可编程双向I/O口,A组控制器和B组控制器,数据缓冲器及读写控制逻辑四部分电路组成。(3)8255A的引脚功能数据总线(8条):D0~D7,用于传送CPU和8255A间的数据、命令和状态字。控制总线(6条):RESET:复位线,高电平有效。/CS:片选线,低电平有效。/RD、/WR:/RD为读命令线,/WR为写命令线,皆为低电平有效。A0、A1:地址输入线:用于选中PA、PB、PC口和控制寄存器中哪一个工作。并行I/O总线(24条):用于和外设相连,共分三组(4)8255A控制字和状态字8255A有两个控制字:方式控制字和C口置位/复位控制字。用户通过程序可以把这两个控制字送到8255A的控制寄存器,以设定8255A的工作方式和C口各位状态。方式控制字用于设定8255A三个端口工作于什么方式,是输入还是输出方式。方式控制字:方式控制字用于设定8255A三个端口工作于什么方式,是输入还是输出方式。图2.1.1(2)工作方式控制字图2.1.1(3)复位控制字微机原理课程设计报告书3C口置位/复位控制字本控制字可以使C口各位单独置位或复位,以实现某些控制功能。见图2.1.28259A芯片介绍(1)芯片概述8259A是专门为了对8085A和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。单个的8259A能管理8级向量优先级中断。在不增加其他电路的情况下,最多可以级联成64级的向量优级中断系统。8259A有多种工作方式,能用于各种系统。各种工作方式的设定是在初始化时通过软件进行的。在总线控制器的控制下,8259A芯片可以处于编程状态和操作状态,编程状态是CPU使用IN或OUT指令对8259A芯片进行初始化编程的状态。(2)8259A的内部结构结构如图2.1.21)中断请求寄存器(IRR),中断请求寄存器(IRR)为8位,接受来自IR0~IR7的中断请求信号,当IR0~IR7上出现某一中断请求信号时,IRR对应位被置1;2)中断屏蔽寄存器IMR,中断屏蔽寄存器IMR为8位(8个中断输入),若IRR(中断请求寄存器)中记录的8个中断请求中有任何一个需要屏蔽,只要将IMR的相应位置1即可,未被屏蔽的中断请求可以进入优先权判别器;它的内容由CPU通过对8259初始化时设置设定。3)中断服务寄存器ISR,8位,保存当前正在处理的中断请求,例如,如果ISR的D2=1,表示CPU正在为来自IR2的中断请求服务。4)优先权判别器PR,若某中断请求正在被处理,8259A外部又有新的中断请求,则由优先权判别器将新进入的中断请求和当前正在处理的中断进行比较,以决定哪一个优先级更高。若新的中断请求比正在处理的中断级别高,由PR通过控制逻辑向CPU发出中断申请INT,正在处理的中断自动被禁止,先处理级别高的中断。5)数据总线缓冲器,用于8259A与数据总线的接口,传输命令控制字、状态字和中断类型码。6)读/写控制逻辑,确定数据总线缓冲器中数据的传输方向,选择内部的各命令字寄存微机原理课程设计报告书4器。当CPU发读信号时将8259A的状态信息放到数据总线上;当CPU发写信号时,将CPU发来的命令字信息送入指定的命令字寄存器中。7)级联缓冲/比较器,用来存放和比较在系统中用到的所有8259A的级联地址。主控8259A通过CAS0、CAS1和CAS2发送级联地址,选中从控8259A。(3)8259A的功能功能:就是在有多个中断源的系统中,接受外部的中断请求,并进行判断,选中当前优先级最高的中断请求,再将此请求送到cpu的INTR端;当cpu响应中断并进入中断子程序的处理过程后,中断控制器仍负责对外部中断请求的管理。(4)8259A操作命令字操作命令字如下:2.2交通灯控制模块电路设计交通灯控制模块采用8255控制四个双色灯来实现,用8255的PC口连接实验板上的双色灯模块,PA0~PA7分别连接双色灯的DG0、DG1、DG2、DG3、DR0、DR1、DR2、DR3。8255片选端cs接74ls138译码电路模块的210H口。电路如图:微机原理课程设计报告书52.3倒计时显示模块电路设计计时模块电路采用实验板上的串—并转换模块来实现,用8255的PA0口连接到串—并转换模块的数据端,用PB0产生clk脉冲,连接到串—并转换模块的脉冲端口。电路如图:2.4中断模块电路电路如图:采用IR0作为中断源。CS片选接138译码器Y0。2.5PCB图微机原理课程设计报告书6第三章:模拟交通灯的软件设计3.1设计流程图3.2程序代码:程序代码如下:6.程序代码:;程序标识初始化PA0EQU0210H;将8255PA口地址标识为PA清LED四灯全红延时初始化设置8255各口为输出南北绿灯,东西红灯,延时绿灯闪三次南北黄灯,延时南北红灯,东西绿灯,延时绿灯闪三次东西黄灯,延时微机原理课程设计报告书7PB0EQU0211H;8255PB口地址PCEQU0212H;8255PC口地址PCTEQU0213H;8255控制口地址DATASEGMENTPBDB?DATAENDSSTACKSEGMENTSTACKSTADW50DUP(?);定义堆栈大小50wordDW类型TOPEQULENGTHSTA;指向栈顶STACKENDS;开始CODESEGMENT;代码段开始声明ASSUMECS:CODE,DS:CODE;假定伪指令,CODE为代码段START:MOVAL,13H;初始化8259AMOVDX,200HOUTDX,ALMOVAL,8MOVDX,201HOUTDX,ALMOVAL,01HOUTDX,ALMOVAX,0MOVDS,AXLEAAX,INT0MOVDS:[4*8],AXMOVAX,CSMOVDS:[4*8+2],AXINAL,DXANDAL,0FEHOUTDX,ALPUSHCS;压栈指令,将IP压栈,用于保存断点POPDS;出栈指令MOVDX,PCT;设置8255口为输出口MOVAL,10000000B;全输出模式OUTDX,ALMOVDX,PC;设置PC口为输出电平端口MOVAL,00H;四个双色LED都置低电平OUTDX,ALMOVDX,PCMOVAL,0FHOUTDX,ALMOVBX,7fH微机原理课程设计报告书8CALLDELAYBEGIN:MOVAL,96H;上下绿灯,左右红灯OUTDX,ALMOVBX,D2CALLTIME;倒计时9秒MOVDX,PC;上下左右灯均亮红灯MOVCX,03HJNZUPDOWNUPDOWN:MOVAL,9FH;上下绿灯灭OUTDX,ALMOVBX,D1CALLDELAYMOVAL,96H;上下绿灯亮OUTDX,ALMOVBX,D1CALLDDELAYLOOPUPDOWN;循环至UPDOWN,循环cx次,执行一次cx减一MOVAL,06H;上下灯黄色OUTDX,ALMOVBX,D1CALLDELAYMOVBX,D1CALLDELAYMOVAL,69H;上下灯红,左右灯绿OUTDX,ALMOVBX,D2CALLTIME;倒计时9秒MOVDX,PC;将PC口地址送dxMOVCX,03LEFTRT:MOVAL,6FH;左右绿灯灭OUTDX,ALMOVBX,D1CALLDELAYMOVAL,69H;左右绿灯亮OUTDX,ALMOVBX,D1CALLDELAYLOOPLEFTRT;循环至LEFTRT,循环cx次,执行一次cx减一MOVAL,09H;左右灯黄色OUTDX,ALMOVBX,D1CALLDELAY微机原理课程设计报告书9MOVBX,D1CALLDELAYSTI;开中断JMPBEGIN;无条件跳转至BG;【九秒计时程序】TIMEPROCNEARPUSHDX;压栈,用来保护原先各寄存器的值PUS

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功