微机原理课程设计-交通信号灯模拟控制系统(10页).doc

上传人:1595****071 文档编号:38560004 上传时间:2022-09-04 格式:DOC 页数:10 大小:304KB
返回 下载 相关 举报
微机原理课程设计-交通信号灯模拟控制系统(10页).doc_第1页
第1页 / 共10页
微机原理课程设计-交通信号灯模拟控制系统(10页).doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《微机原理课程设计-交通信号灯模拟控制系统(10页).doc》由会员分享,可在线阅读,更多相关《微机原理课程设计-交通信号灯模拟控制系统(10页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-微机原理课程设计-交通信号灯模拟控制系统-第 10 页南京工程学院通信工程学院课程设计说明书(论文)题 目 交通信号灯模拟控制系统 课 程 名 称 微型计算机原理与接口技术 专 业 班 级 学 生 姓 名 学 号 设 计 地 点 指 导 教 师 设计起止时间:2013年12月23日至2013年12月27日 目录第一章 概述3第二章 设计介绍32.1功能描述32.2流程图4第三章 程序实现5第四章 功能演示104.1正常运行104.2只有A道通行104.3只有B道通行114.4紧急情况11第五章 总结与展望125.1实验结论125.2实验总结12第六章 参考文献13第一章 概述在实际生活中,交

2、通信号灯控制着交通的秩序安全。本次微机原理课程设计就是模拟实际十字路口交通灯的运行规则,用汇编语言来设计交通信号灯。本次设计主要是实现对十字路口交通信号灯的控制而进行的编程,用8255A的A口控制东西方向的交通灯,用8255A的B口控制南北方向的交通灯。当程序正常运行时,依次为东西方向的绿灯和南北方向的红灯闪烁25s,东西方向的绿灯灭后东西方向的黄灯亮5s,随后东西方向的红灯和南北方向的绿灯亮并闪烁15s,南北方向的黄灯亮5s,之后同理往复循环。用8255A的C口控制紧急情况时东西、南北方向的红、黄、绿灯的亮灭,通过读C口输入的数据并进行测试查询,从而对紧急情况进行及时处理。用LED(发光二极

3、管)模拟信号灯,8255A实现对信号灯的控制(PC0PC6分别接D0D6),8253的计数器2实现基本单位定时(如10ms)信号的输出;再用8255A的PA口查询定时信号的变化,并统计脉冲数,以实现25s、15s和5s的定时。十字路口交通信号灯设计充分利用了可编程的并行接口芯片8255A各引脚的功能,选定工作方式0,通过改变控制字来实现交通信号灯的状态转换。另外,通过调用延时子程序来实现交通信号灯某一状态的持续,调用循环子程序来实现对交通信号灯状态循环的控制,通过控制开关来实现紧急情况下各路口红灯全亮的功能。综合各部分功能来实现较为完善的程序,运行程序来模拟十字路口交通信号灯。第二章 设计介绍

4、2.1功能描述当东西方向(A道)和南北方向(B道)均有车辆要求通过时,A道和B道轮流放行。A道放行25S,B道放行15S,依次轮流。绿灯转换红灯时黄灯亮5S。一道有车,另一道无车时(用开关K5、K6状态模拟),控制系统能立即让有车道放行。遇有紧急车辆要求通过时(用开关K7状态模拟),系统能禁止普通车辆通过(A道、B道均为红灯),同时代表“紧急车辆通过”的另一个红灯闪烁。2.2流程图第三章 程序实现.MODEL TINYCOM_ADD EQU 0F003H ;8255A片选地址PA_ADD EQU 0F000HPB_ADD EQU 0F001HPC_ADD EQU 0F002HCOM_ADDR

5、EQU 0B003HT0_ADDR EQU 0B000HT1_ADDR EQU 0B001HT2_ADDR EQU 0B002H.STACK 200.DATASHU_DATA DB 00111111B DB 00000110B DB 01011011B DB 01001111B DB 01100110B DB 01101101B DB 01111101B DB 00000111B DB 01111111B DB 01101111BCNT0 DB ?CNT3 DB ?.CODESTART: MOV DX,COM_ADD ;8255初始化 MOV AL,88H ;PA、PB、PCL输出方式0, P

6、CH输入 OUT DX,AL MOV DX,PA_ADD MOV AL,0FFH ;检测让所有灯亮 OUT DX,AL MOV DX,PC_ADD IN AL,DX AND AL,0F0H ;保留高位,低位为0 OR AL,01H ;保留高位,低位全部为1 OUT DX,AL MOV DX,COM_ADDR ;8253初始化 MOV AL,0B0H ;1011 0000B OUT DX,AL MOV CNT0,0 ;状态0: A,B交替 MOV CNT3,0 ;状态3: 紧急时 LEA BX,SHU_DATALP: CALL DL500MS MOV DX,PC_ADD IN AL,DX TES

7、T AL,80H ;AL AND 1000 0000B,检测K7 JNZ K7 ;如果PC7=0,结果为0,ZF=1,不执行K7。如果PC7=1,ZF=1,执行K7,为特殊情况 TEST AL,20H ;0010 0000B,检测PC5 JNZ K51 ;如果PC5=0,结果为0,ZF=1,不执行K51。如果相反,则执行K51 TEST AL,40H ;0100 0000B ,检测PC6 JNZ K61 MOV CNT3,0 MOV CH,CNT0 SHR CH,1 ;CNT3=0,CH右移1位相当于CH/2 CMP CH,25 JS GR CMP CH,30 JS YR CMP CH,45

8、JNS RY MOV DX,PA_ADD MOV AL,0D7H ;1101 0111B OUT DX,AL ;A红B绿 MOV DX,PB_ADD MOV AL,50 ;启动数码管 SUB AL,CH ;AL-CH/2 XLAT ;AL=AL+BX OUT DX,AL ;显示倒计时。LAST: INC CNT0 ;CNT0=CNT0+1 CMP CNT0,100 ;CNT0-100 JNZ LP MOV CNT0,0 JMP LPRY: MOV DX,PA_ADD MOV AL,0DBH ;1101 1011B OUT DX,AL ;A红B黄 CALL DL200MS MOV DX,PA_A

9、DD MOV AL,0DFH OUT DX,AL JMP LAST K51: JMP K5K61: JMP K6GR: MOV DX,PA_ADD MOV AL,7DH ;0111 1101 OUT DX,AL ;A绿B红 MOV DX,PB_ADD ;输出倒计时数字 MOV AL,30 SUB AL,CH ;AL=AL-CH/2=30-CH/2 XLAT ;AL=AL+BX OUT DX,AL JMP LASTYR: MOV DX,PA_ADD MOV AL,0BDH OUT DX,AL CALL DL200MS MOV DX,PA_ADD MOV AL,0FDH ;1101 1100B,

10、K8亮0.5s OUT DX,AL JMP LASTK7: MOV CH,CNT3 ;CNT3=0,CH=0 CMP CH,0 JZ K71 MOV DX,PA_ADD MOV AL,0DDHK81: MOV DX,PA_ADD MOV AL,0DBH ;1101 1100B, K8亮0.5s OUT DX,AL CALL DL200MS MOV DX,PA_ADD MOV AL,0DFH ;1101 1101B, K8灭0.5s OUT DX,ALK82: MOV DX,PA_ADD MOV AL,0BDH ;1101 1100B, K8亮0.5s OUT DX,AL CALL DL200M

11、S MOV DX,PA_ADD MOV AL,0FDH ;1101 1101B, K8灭0.5s OUT DX,ALK72: MOV DX,PB_ADD MOV AL,00H OUT DX,AL NEG CH ;CH=1 MOV CNT3,CH ;CNT3=1,K7灭 MOV CNT0,0 JMP LPK71: MOV DX,PA_ADD MOV AL,0DCH ;1101 1100B, K8亮0.5s OUT DX,AL CALL DL200MS MOV DX,PA_ADD MOV AL,0DDH ;1101 1101B, K8灭0.5s OUT DX,AL JMP K72K5: MOV D

12、X,PA_ADD MOV AL,7DH ;AL=0111 1101B OUT DX,AL ;亮A绿B红 JMP K55K6: MOV DX,PA_ADD MOV AL,0D7H ;1101 0111B OUT DX,AL ;亮A红B绿K55: MOV DX,PB_ADD MOV AL,00H OUT DX,AL MOV CNT0,0 MOV CNT3,0 JMP LPDL500MS PROC NEAR MOV DX,T2_ADDR MOV AX,62500 ;频率125KHz,62500*(1/125)=0.5s OUT DX,AL MOV AL,AH OUT DX,ALDELAY1: MOV

13、 DX,PC_ADD IN AL,DX TEST AL,10H ;设置“准备就绪”信息在D4位到PC4, TEST为AL AND 10H JE DELAY1 ;AND后PC4为0时,JE=1,执行DELAY。AND后为1, JE=0,不执行DELAY RETDL500MS ENDPDL200MS PROC NEAR MOV DX,T2_ADDR MOV AX,25000 ;频率125KHz,25000*(1/125)=0.2s OUT DX,AL MOV AL,AH OUT DX,ALDELAY2: MOV DX,PC_ADD IN AL,DX TEST AL,10H JE DELAY2 RE

14、TDL200MS ENDP END START第四章 功能演示4.1正常运行4.2只有A道通行4.3只有B道通行4.4紧急情况第五章 总结与展望5.1实验结论本设计基本完成了任务书中所要求的功能。(1) 采用循环程序软件延时的方法实现信号灯定时变化;(2) 采用8255A的C口输入模拟控制开关信号,A口控制信号灯的亮灭,B口控制数码管同时显示东西、南北方向的通信倒计时时间,实现功能要求。有待改进之处:(1) 数码管不能显示10以上的数字;(2) 在黄灯闪的时候不可以同时倒计时。5.2实验总结短短一周的微机原理课程设计已经过去了。虽然时间短暂,但我学到了很多东西。在实践中我更加深刻的理解了所学的

15、知识,也使我体会到了什么叫做一分耕耘,一分收获!在课程设计以前,可以说我对微机原理似懂非懂,有的时候拿来一个完整的程序都不能完全理解。而现在,我已经完全掌握了以前老师所讲的芯片的主要功能和使用方法。并能用自己的思路设计出想要的程序,这么大的反差就是源于此次课程设计。可以这么说,此次课程设计使我获益匪浅!一分耕耘,一分收获,没有认真的学习,当然不会掌握知识,没有认真了解芯片的功能,又如何在具体应用中发挥他们应有的作用呢?在课堂上,老师的耐心细致地讲解使我掌握了这次设计中所选用的最重要芯片8255的主要功能。在课程设计开始时,我首先对正常情况下的交通灯控制进行了编程。对其控制字的编写,根据程序的实

16、际需要,我将10001001赋值给8255控制口,对其工作方式进行了设定。根据实际交通灯的亮灭情况,我对8255进行了相关的编程。为了使交通灯的亮灭情况更接近实际,我利用延时程序通过对其中参数的设定,完成了对交通灯的控制及显示。为了方便,我将东西方向设为A道,南北方向设为B道。根据老师的提示,课程设计的扩展我考虑的是对于紧急事故是需要对交通灯进行强制控制,而要实现这个功能,可以选用中断控制器8259,因此我又对8259进行了相关编程控制。本来以为在课堂上学习的知识已经足够用,可在编写程序的时候才发现自己所学的知识掌握得很不扎实,经常在编写程序时漏掉一些细节或是记错了代码,导致程序在运行时出现了

17、很多低级错误,多亏了同学的检查和帮助,我才顺利的完成了本次设计程序的编程。在亲自编写了一个稍微长一点的程序之后,我才知道编一个程序真的很不容易,但同时不管是在自己的知识掌握程度上,还是在对自己耐心的考验上,我自己都有很大的收获!课程设计已经过去了,在这里我要感谢所有在课程设计中帮助过我的老师和同学们,没有你们的帮助,我就不能这么顺利地完成我的课程设计,感谢你们在我程序编写及调试过程中给予我的关心与帮助!而对于我自己来说,不仅学习了相关的微机原理知识,也从中明白了许多道理,更重要的是在课程设计中发现了自己存在的诸多不足,来激励我在以后的学习中更加的努力。实践,让我更加深入的掌握所学的知识,运用所学的知识。第六章 参考文献1 李干林. 微机原理及接口技术实验指导书.北京:北京大学出版社.2010年8月2 周荷琴.微型计算机原理与接口技术(第4版)中国科学技术大学出版社.2008年1月

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁