微机原理 交通灯_第1页
微机原理 交通灯_第2页
微机原理 交通灯_第3页
微机原理 交通灯_第4页
微机原理 交通灯_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

三峡大学微机原理及接口技术课程设计(交通灯设计)姓名:封泉吉学号:2007142129微机原理及接口技术课程设计 摘要:十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯绿灯”转换间隔,并自动切换。从而来保障城市交通能畅通无阻,并减少交通事故的频发。 设计要求:要求发光二级管按照十字路口交通灯的变化规律进行变化:首先南北路口的绿灯、东西路口的红灯同时亮30秒左右,接着南北路口的黄灯闪烁3次,同时东西路口的红灯继续亮,再接着南北路口的红灯、东西路口的绿灯同时亮30秒左右,最后是南北路口的红灯继续亮,东西路口的黄灯闪烁3次。设计思想:交通灯一共分为东西南北的红黄绿一共12个led灯,但是东西方向的灯以及南北方向的灯的变化是一样的所以只要控制6个io口就行了,其中每个io口管控两个灯。本文中使用8255A芯片,只是使用PA这一个端口。每个io口的控制灯管如表显示:PA7PA6PA5PA4PA3PA2PA1PA0无东,西红灯东,西黄灯东,西绿灯无南,北红灯南,北黄灯南,北绿灯 程序流程:最开始是东西绿灯亮,南北红灯亮,PA=00010100B,持续30s 然后是东西黄灯闪烁,南北红灯亮,PA=00100100B,PA=00000100B交替出现,持续3s 然后是南北绿灯亮,东西红灯亮,PA=01000001B,持续30s 最后是南北黄灯闪烁,东西红灯亮,PA=01000010B,PA=01000000B交替出现,持续3s 延时程序通过利用8086程序执行的时间进行延时 也就是说通过不停的用8086cpu向8255A写入以上的数据就是要求的交通灯了。 误差分析: 由于我们用的cpu为8086,所以起主频为5MH,时钟周期为100ns,所以根据软件延时程序我们可以进行适当的缩小误差、由于长延时是根据调用短延时程序,因此我们只能满足缩小一部分误差,在此为了使时间更为精确,我们选用调整短延时来调整,这样更为有利于使误差更小。根据程序和实验现象我们想假设del2为050000h,从而我们得到算式:16384.5+8+5+4+11.X.100(ns)=0.5(s)所以解出X=304.655;当然这个结果在一定程度上也成在一定的误差,但其值相对于其他值该值以接近理想,因此我们可已经过不断的尝试来尽量的减小误差 。 设计电路图:电路图说明:PA0口接北面和南面的绿灯,PA1口接北面和南面的黄灯,PA2口接北面和南面的红灯,PA4口接东面和西面的绿灯,PA5口接东面和西面的黄灯,PA6口接东面和西面的红灯。一旦PA口被赋值则灯就亮。 程序开始软件流程图: 向8255A写入控制字使PA是工作方式1且输出向8255写入数据使东西绿灯亮南北红灯亮 延时3s 延时3s向8255写入数据使南北黄灯闪烁东西红灯亮 延时30s向8255写入数据使南北绿灯亮东西红灯亮向8255写入数据使东西黄灯闪烁南北红灯亮 延时30s2.测试结果 1即东西方向的绿灯和南北方向的红灯同时点亮25秒;225秒后,东西方向的黄灯闪烁3次,。此时南北方向仍维持红灯点亮。3东西方向的黄灯闪烁5秒钟后,转为东西方向的红灯和南北方向的绿灯同时点亮25秒钟;425秒钟后,转为南北方向的黄灯闪烁5秒钟,此时东西方向仍维持红灯点亮。5南北方向的黄灯闪烁1.5秒钟后,东西方向的绿灯和南北方向的红灯同时点亮30秒。如此循环重复。参考书目:西安电子科技大学出版社出版的微型计算机原理(姚燕南,薛钧义编著, 西安电子科技大学出版社2000修订版), 32位微型计算机原理与接口技术(仇玉章等编著,清华大学出版社2000 年出版), 微型计算机原理(重庆出版集团,2006年出版)datas segment iomode equ 0dc0bhioa equ 0dc08hdatas endsstacks segment db 100 dup(?)stacks ends codes segment assume cs:codes,ss:stacks,ds:datasstart :mov ax,datas mov ds,ax mov dx,iomode mov al,80h out dx,al mov dx,ioa mov al,00010100b out dx,al call delayl mov cx,03hsan1 : mov al,00100100b out dx,al call delays mov al,00000100b out dx,al call delays dec cx jnz san1mov al,01000001b out dx,al call delayl mov cx,03hsan2: mov al,01000010bout dx,alcall delays mov al,01000000bout dx,alcall delaysdec cxjnz san2jmp startdelayl proc near push axpush cxmov cx,3ch;循环60次来产生30sdelay3: call delays dec cx jnz delay3pop cx pop axretdelayl endpdelays proc neardelay1: push axpush cxmov cx,04000h;move为4个时钟周期delay2: push cx;push为11个时钟周期

温馨提示

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

最新文档

评论

0/150

提交评论