微机原理交通信号灯课程设计.doc_第1页
微机原理交通信号灯课程设计.doc_第2页
微机原理交通信号灯课程设计.doc_第3页
微机原理交通信号灯课程设计.doc_第4页
微机原理交通信号灯课程设计.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计任务书课题名称: 基于8086/8088的交通信号灯设计 完成期限: 2015年06月22日 至 2015年06月28日 院系名称 机械工程与自动化学院 指导教师 专业班级 学生姓名 院系课程设计(论文)工作领导小组组长签字 一、课题训练内容设计一个基于8086/8088微型计算机的一个交通信号灯控制系统,要求能完成基本的交通灯控制,如红、绿、黄三种灯的定时交替点亮与熄灭;能提供行人通过时的临时信号修改;能提供当时当地的温度、湿度信息;提供基本的键盘输入。要求学生了解8086/8088微型计算机控制系统的基本设计方法与思路,能独立查阅资料并汇总,具备一定的控制系统设计能力,掌握绘制电路原理图的能力,能编写一定难度的汇编程序并调试。二、设计(论文)任务和要求(包括说明书、程序、图纸、等具体要求)1. 设计一个基于8086/8088微型计算机的一个交通信号灯控制系,要求使用如下器件:8086、8259、8253、8255、ADC0809、温度传感器(选择数字式或模拟式均可)和湿度传感器(选择数字式或模拟式均可)、健盘(5按键,包括4个路口紧急按键和1个复位按键);(20分)2. 交通灯的亮、灭情况如下:东、西两个相对路口红灯亮12s,南、北两个路口绿灯亮6s,后转为黄灯亮6s;南、北两个相对路口红灯亮12s,东、西两个路口绿灯亮6s,后转为黄灯亮6s;(10分)3. 每个路口设一个紧急按键,可以中断当前的交通灯状态,使当前路口为绿灯,经12s后恢复原来的工作状态;(20分)4. 使用8253提供时间定时,每6s读入1次温、湿度;(20分)5. 说明书正文不少于10页,小4号宋体,1.5倍行距,正文不包含程序;(30分)6. 提供完整的电路原理图并给出每个外设的地址(电路图必需是打印稿);(50分)7. 提供软件流程图与完整的程序;(50分)8. 按要求时间提交课程设计。微机原理课程设计报告一、分析课题基于8086/8088交通信号灯设计主要需要实现这几部分功能:第一、信号灯的通断延时;第二、紧急按键对交通信号灯的控制,则每一个路口有一个紧急按键,可以中断当前的交通状态,当前状态为绿灯,经过12秒后恢复;第三、环境湿度、温度的采集。2、 设计思路分析及步骤 (1)、设计内容分析: A、 0至6秒: 东西方向红灯亮,南北方向绿灯亮 B、 6至12秒:东西方向红灯亮,南北方向黄灯亮 C、12至18秒:东西方向绿灯亮,南北方向红灯亮 D、18至24秒:东西方向黄灯亮,南北方向红灯亮 通过分析信号灯的亮灭规律,可总结以下功能表:交通信号灯亮功能表状态时间段东西绿东西红东西黄南北绿南北红南北黄无效1无效2A0-601010000B6-1201000100C12-1810001000D18-2400101000(1表示灯亮,0表示灯灭)由此可比较东西,南北方向在一个周期内不同时间段的亮灯情况:0661212181824东西方向红红绿黄南北方向绿黄红红 将交通信号灯亮功能表信息转换成控制码十六进制二进制状态A09H00001010B状态B12H00010001B状态C11H00010001B状态D24H00010100B(2) 交通信号灯的组成 交通灯控制系统,主要是由控制器,定时器,译码器和秒脉冲信号发生器等部分组成。秒脉冲发生器是该系统中定时器和控制器的标准时钟信号源,译码器输出两组信号灯的控制信号,经驱动电路后驱动信号灯工作,控制器是系统的主要部分,由它控制定时器和译码器的工作。3、 电路设计及思路 1、延时功能实现逻辑:可编程计数/定时控制器器8253芯片具有定时、计数双功能。它由数据总线缓冲存储器、读/写控制器、控制字寄存器及3个计数通道组成,共有24条引脚。把8253计数器0设为1s定时中断,周期为24s,用8255的A、B口低12位控制东西,南北路口交通灯的状态,灯的亮灭可直接由8088输出0,1控制。用8259A管理可屏蔽中断及开机初始化。计数器0,累计时间与状态时间相比较,从而控制灯的状态改变,达到延时效果。采用两个计数器级联的方式,并且计数器0工作方式3用于产生方波信号,计数器1工作方式0,计数到时高电平信号,计数器1的输出端OUT1接入8255芯片的PC0口,通过查询8255的C口的值,以完成计时功能。将计数器0的输出OUT0接到计数器1的输入端CLK1,而CLK0的输入采用1.19MHZ的时钟频率,计数器0计数初值为59499=0E86BH,则OUT0=20HZ,即计数器1的时钟频率为20HZ。 2、译码电路设计通过分析8259、8253、8255各端口地址,设计合理的地址译码电路。8259的地址为20H、21H,8253的地址为40H、41H、42H、43H,8255的端口地址为0F0H、0F1H、0F2H、0F3H。故芯片的地址只与8086的地址的低8位有联系,不妨设高十二为全为1将它们相与后作为38译码器的始能信号E3。再分析发现8259、8253、8255各端口地址的低八位其中D2、D3均为0,将8086的地址总线的D2、D3作为38译码器的始能信号E1、E2。将8086的地址总线的D0、D1分别与8253和8255的A0、A1连接,利用D4、D5、D6、D7构成译码电路。将8086的地址总线的D0与8259的A0连接,利用D2、D4、D5、D6、D7通过38译码器构成译码电路。3、 可编程并行通信接口芯片 8255A它可为86系列CPU与外部设备之间提供并行输入/输出的通道。由于它是可编程的,可以通过软件来设置芯片的工作方式。本课题系统中,微机需要检测2键送来的主干道信号,并按一定的条件发出主、支干道6个信号灯的控制信号,以及LED显示器的控制信号。根据8255内部结构及引脚,易得,用一片8255A完全可以达到以上条件。对8255A作如下安排。PA0-PA7用来给信号灯在不同时刻发送不同状态的信号。PB0-PB7用来给LED发送LED驱动码。PC0-PC3用来发送LED的控制信号,PC4-PC7暂时不用。8255A的内部逻辑结构见下图:4、可编程中断控制器 8259A端口A工作方式与方式0的无条件数据传输方式,用以控制交通灯的亮灭;端口B工作方式与方式1的输入方式,并设置为允许中断;将端口C的PC2,PC3接到负脉冲源上,使得每按一下按钮时分别表示支干道有车过来。而将PC0接到中断请求线上,模拟当干道上有特殊情况是,中断请求线向CPU发出中断,CPU响应中断后控制各个交通灯变为状态。端口C的低4位用作输出接口,用来控制LED显示。8259A内部结构图5、ADC0809 A/D转换器ADC 0809是National半导体公司生产CMOS材料的A/D转换器。它是具有8个通道的模拟量输出线,可在程序控制下对任意通道进行A/D转换,得到8位二进制数字量。ADC0809各脚功能如下:D7-D0:8位数字量输出引脚。IN0-IN7:8位模拟量输入引脚。VCC:+5V工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。 (以上两种信号用于启动A/D转换). EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 OE:输出允许控制端,用以打开三态数据输出锁存器。 CLK:时钟信号输入端(一般为500KHz)。 A、B、C:地址输入线。6、8086/8088 CPU 8086 CPU从功能上可分为为两部分,即总线接口部分和执行部件。执行部件的功能就是负责指令的执行。将指令译码并利用内部的寄存器和ALU对数据进行所需的处理。总线接口部件的功能是负责与存储器、I/O端口传送数据,即BIU管理在存储器中存取程序和数据的实际处理过程。 执行部件的组成: (1)四个通用寄存器,即AX,BX,CX,DX; (2)四个专用寄存器,即基数指针寄存器BX,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI; (3)标准寄存器(FR); (4)算术逻辑部件(ALU) 总线部件的组成: (1)四个段地址寄存器 CS16位代码段寄存器; DS16位数据段寄存器; ES16位附加段寄存器; SS16位堆栈段寄存器; (2)16位指令指针寄存器IP (3)20位的地址加法器 (4)6字节的指令队列7、湿度传感器 湿度传感器是把相对湿度的变化转换成电信号的器件。 感湿特点:在基片涂覆材料形成感湿膜。空气中的水蒸气吸附于感湿材料后,原件的阻抗、介电常数发生很大的变化,从而制成湿敏原件。湿敏电阻器可分为:半导体陶瓷湿敏电阻器、元素材料湿敏电阻器、化合物湿敏电阻器、高分子湿敏电阻器。工作原理:水分子具有很强的电子亲和力,易于在多孔性半导体陶瓷表面附着,并俘获电子,在半导体陶瓷表面形成空穴积累,导致半导体陶瓷的电阻率降低。晶胞间界水分子的电离。芯片内部结构7、温度传感器 温度传感器是指能感受温度并转换成可用输出信号的传感器。温度传感器是温度测量仪表的核心部分,品种繁多。按测量方式可分为接触式和非接触式两大类,按照传感器材料及电子元件特性分为热电阻和热电偶两类。原理:感应温度的变化,使敏感元件(如:热敏电阻、热电偶等)的阻值发生变化,从而在电路中,使输出的电压发生变化。外空气温度传感器发光二极管8、总体设计框图可编程并行通信接口8255A键盘8086可编程中断控制器8259ADC0809A/D转换器PTC可编程计数/定时控制器8253温,湿度传感器 以上各种硬件相连接,组成整个系统的硬件系统。但是除了硬件系统外,还需要有软件来驱动硬件之间的相互配合执行。现给出其流程图如下:主程序流程图:开始东西绿=1 东西红=0 东西黄=0南北绿=0 南北红=1 南北黄=0Y时间总额小于等于18时间总额小于等于12Y东西绿=0 东西红=1 东西黄=0南北绿=0 南北红=0 南北黄=1YN东西绿=0 东西红=1 东西黄=0南北绿=1 南北红=0 南北黄=0时间总额小于等于6NN东西绿=0 东西红=0 东西黄=1南北绿=0 南北红=1 南北黄=0结束紧急处理程序流程图YN退出执行主程序SEGMENTMOV TIMESUM , 18AL0MOV DX,南北按钮地址IN AL, DXMOV TIMESUM ,0AL0MOV DX AL 东西按钮地址Int AL ,DX开始端口地址结果如下表:芯片A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A08255A0000000000000000B0000000000000001C0000000000000010控制000000000000001182530通道00100000000000001通道00100000000000012通道0010000000000010控制0010000000000011四、程序源代码STACKSEGMENTSTACK定义堆栈段DB64DUP()申请64个字节的空间STACKENDSDATASEGMENT定义数据段BUFFERDW5B6FH,5B7FH,5B07H,5B7DH,5B6DH,5B66H, 5B4FH,5B5BH,5B06H,5B3FH DW066FH,067FH,0607H,067DH,066DH,0666H, 064FH,065BH,0606H,063FH DW3F6FH,3F7FH,3F07H,3F7DH,3F6DH,3F66H, 3F4FH,3F5BH,3F06H,3F3FH定义从290的LED驱动码MAINDB00H ZHUANGTAIDW00H 用来存放交通灯的最近状态ZHONGDUANWD00H用来存放中断时倒计时的状态DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATA程序开始 MOVDS,AX;中断向量初始化PUSHDS保护DS现 场MOVAX,0000HMOVDS,AX将0至入DSMOVAX,OFFSETIRQ6MOVAX,2000HMOVSI,0038HMOVSI,AX将IRQ6的首地址偏移地址放入第16个中断向量字的低字中 MOVAX,0000HMOVSI,003AHMOVSI,AX将IRQ6的首地址段地址放入第16个中断向量字的高字中MOVAX,OFFSETIRQ7ADDAX,2000HMOVSI,003CHMOVSI,AX 将IRQ7的首地址偏移地址放入第16个中断向量字的低字MOVAX,0000HMOVSI,003EHMOVSI,AX 将IRQ7的首地址段地址放入第16个中断向量字的高字中POPDS中断向量初始化完毕MOVAL,80HOUT63H,AL8255初始化LEABX,BUFFERMOVDX,60HDX,SI两个寄存器的值用来控制LED显示的值AGAIN:MOVCX,4JUMP:MOVZHUANGTAI,CX记录最近交通灯的状态CMPCX,4JEAAA1CMPCX,3JEAAA2CMPCX,2JEAAAA3JUMPAAAA4根据CX确定的状态输出交通灯(二级管表示)AAAA:MOVAL,0MOVMAIN,ALPUSHCX每一个新的状态将阻塞车辆数清零;QIOANEXT3:MOVCX,23H根据CX值通过延时得出一秒的时间MOVAX,29CMPMAIN,ALJEZONGDNEXT2:CMPCX,25H根据CX的值,在黄灯时,闪烁JAESHAN2CMPCX,19HJAESHANCMPCX,0CHJAESHAN2JUMPSHANAAAS:PUSHCX CALLZDCSH中断初始化MOVAX,BX+SI XCHGAL,AH CALLLEDPOPCXLOOPNEXT2INCSIINCSIMOVZHONGDUAN,SICMPSI,DXJNENEXT3倒计时ZONGD:POPCXLOOPJUMPJUMPAGAIN状态循环转换主程序逻辑结束AAAAL:MOV SI,0调用第一种信号灯状态代码,SI=0表示从29开始倒计时 CALLLIGHT1 JUMPAAAAAAAA2:MOVSI,54调用第二种信号灯状态代码,SI=54表示从2开始倒计时CALLLIGHT2JUMPAAAAAAAA3:MOVSI,0调用第三种信号灯状态代码,SI=0表示从29开始倒计时CALLLIGHT3JUMPAAAAAAAA4:MOVSI,54 调用第四种信号灯状态代码,SI=54表示从2开始倒计时 CALLLIGHT4JUMPAAAASHAN:PUSHAX黄灯时闪烁代码中的灯灭 MOVAX,ZHUANGTAI 根据信当前状态判断是否是黄灯CMPAX,3JESHAN1状态三和一是黄灯,让灯灭CMPAX,1JESHAN1POPAXLUMPAAASELSE返回原程序SHAN1:CALLLIGHT6灯灭POPAXJMPAAAS SHAN2:PUSHAX 黄灯时闪烁代码中的黄灯亮MOVAX,ZHUANGTAI根据信当前状态判断是否是黄灯CMPAX,3JESHAN3状态三时,主干道黄灯,支干道红灯CMPAX,1JESHAN4JMPSHAN5状态一时,主干道红灯,支干道黄灯SHAN3:CALLLIGHT2主干道黄灯,支干道红灯JMPCHAN5SHAN4:CALLLIGHT4主干道红灯,支干道黄灯SHAN5:POPAXLMPAAAS;中断子程序IRQ6:STI当按键K1高电平触发时IRQ6时,开中断PUSHAXMOVAL,29CMPMAIN,ALJEZONINCMAINZON:POPAXIRETIRQ7:STI当按键K2高电平触发时IRQ7时,开中断PUSHAXPUSHBXPUSHCXCALLLIGHT5主,支干道灯都是红灯 MOVCX,00E0H开始延时3秒MOVBX,OFFSETBUFFERMOVSI,ZHONGDUAN1111:PUSHCXMOVAX,BX+SIXCHGAL,AHCALLLED根据中断时刻倒计时时间暂停的LED显示POPCXLOOP1111中断子程序逻辑完后,返回现场MOVAXZHUANGTAI根据不同的状态信号灯返回现场CMPAX,4JEZHUANGTAI1判断为状态一时CMPAX,3JEZHUANGTAI2判断为状态二时CMPAX,2JEZHUANGTAI3判断为状态三时JMPZHUANGTAI4判断为状态四时ZHUANGTAI1:CALLLIGHT1返回状态一的现场JMPEND2ZHUANGTAI2:CALLLIGHT2返回状态二的现场JMPEND2ZHUANGTAI3:CALLLIGHT3返回状态三的现场 JMPEND2ZHUANGTAI4:CALLLIGHT4返回状态四的现场END2:POPCX寄存器返回现场POPBXPOPAXIRET中断初始化 ZDCSHPROCPUSHAXMOVAL,13HOUT20H,AL给8259送入ICW1控制字MOVAL,08HOUT21H,AL给8259送入ICW2控制字MOVAL,09HOUT21H,AL给8259送入ICW3控制字MOVAL,ODHOUT21H,AL给8259送入ICW4控制字 STI开中断POPAX RET ZDCSHENDS LEDPROC 控制四个LED的显示 PUSHCX 保护父程序环境 CALLLED1 显示每一个LED MOVCX,0617H DELAY1:LOOPDELAY1MOVAL,AHCALLLED2 显示第二个LEDMOVCX,0617H DELAY2:LOOPDELAY2 CALLLED3 显示第三个LED MOVCX,0617H DELAY3:LOOPDELAY3 CALLLED4显示第四个LED MOVCX,0617H DELAY4:LOOPDELAY4 POPCX RET LEDENDPLED1:PROC控制第一个LED的显示 PUSHAX MOVAH,AL PUSHAX MOVAH,AL MOVAL,11111110B OUT62H,AL初始化第一个LEDMOVAL,AHOUT61H,AL 显示第一个LED的值(AL传来的)POPAXRETLED1ENDPLED2PROC 控制第二个LED的显示PUSHAXMOVAH,ALMOVAL,11111101bOUT62H,AL 初始化第一个LEDMOVAL,AHOUT61H,AL 显示第二个LED的值(AL传来的)POPAXRETLED2ENDPLED3PROC控制第三个LED的显示PUSHAXPUSHBXMOVAL11111011HOUT62H,AL初始化第一个LEDLEABX,BUFFERMOVAL,29SUBAL,mainADDAL,ALINCAL XLATOUT61H,AL POPBXPOPAXRETLED3ENDPLED4PROC 控制第四个LED的显示PUSHAXPUSHBXMOVAL,11110111bOUT62H,AL 初始化第一个LEDMOVAL,29SUBAL,mainADDAL,ALXLAT通过main计算出阻塞车辆数的个位LED驱动码OUT61H,AL显示第四个LEDPOPBXPOPAXRET;WULIGHT1PROC交通灯第一种状态下的二级管情况PUSHAXMOVAL,01111101b(主干道绿灯,次干道红灯)OUT60H,AL将要显示的灯对应的值通过PA07控制灯亮POPAXRETLIGHT1ENDPLIGHT2PROC交通灯第二种状态下的二级管情况PUSHAXMOVAL,01111011b (主干道黄灯,次干道红灯)OUT60H,AL将要显示的灯对应的值通过PA07控制灯亮POPAXRETLIGHT2ENDPLIGHT3PROC交通灯第三种状态下的二级管情况PUSHAXMOVAL,10111110b(主干道红灯,次干道绿灯)OUT60H,AL将要显示的灯对应的值通过PA07控制灯亮POPAXRET LIGHT3ENDP LIGHT4PROC交通灯第四种状态下的二级管情况PUSHAXMOVAL,11011110b (主干道红灯,次干道黄灯)OUT60H,AL将要显示的灯对应的值通过PA07控制灯亮POPAXRE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论