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

下载本文档

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

文档简介

设计任务及要求交通信号灯的亮灭规律。设有一个十字路口,1、3位南北方向,2、4位东西方向。初态为4个红灯全亮,禁止通行;随后交通灯亮灭规律按下列步骤进行:(1)1、3路口绿灯亮,2、4路口红灯亮;(2)延时10秒后,1、3路口绿灯灭;(3)1、3路口黄灯闪烁(闪烁3次);(4)2、4路口绿灯亮, 同时1、3路口红灯亮;(5)延时10秒后,2、4路口绿灯灭;(6)2、4路口黄灯闪烁(闪烁3次);(7)转向(1)循环执行。 要求:1通过8255A并口来控制LED发光二极管的亮灭,A口控制红灯,B口控制黄灯,C口控制绿灯。红灯(RLED),黄灯(YLED)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4路口的红灯,B,C口类推。 2.发光二极管通过电阻接+5V,输出为0则亮,输出为1则灭。 3.通过软件延时,设CPU晶振频率为8M。4.闪烁功能采用灯亮1秒后马上熄灭来实现。硬件连接图(可打印)、设计说明 8255共有40个引脚,其功能分别如下:D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 RD:读信号线,当这个输入引脚为低电平时,即RD=0且CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。CS:芯片选择信号线,当这个输入引脚为低电平时,即CS=0时,表示芯片被选中,允许8255与CPU进行通讯;CS=1时,8255无法与CPU做数据传输。PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 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时,控制寄存器被选择;在本次课程设计通过8255A并口来控制LED发光二极管的亮灭,因为灯光控制不需要联络信号,所以按照方式0输出。A口控制红灯,B口控制黄灯,C口控制绿灯。红灯(RLED),黄灯(YLED)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4路口的红灯,B,C口类推。发光二极管通过电阻接+5V电压,输出为0则亮,输出为1则灭。 主或子程序流程框图(可打印)主程序: 开始初始化红灯全亮1、3路口绿灯亮,2、4路口红灯亮延时10s,1、3路口绿灯灭1、3路口黄灯闪烁3次2、4路口绿灯亮,1、3路口红灯亮延时10s,2、4路口绿灯灭2、4路口黄灯闪烁3次是否有键盘输入Y结束 本实验采用软件延时。黄灯闪烁,即黄灯亮1s、灭1s。键盘输入任意值可结束程序。假设8255A的入口地址为304307H,即304H对应PA端,305H对应PB端,306H对应PC端,307H为方式控制字地址。程序代码按照分段结构书写,并加上必要的注释STACK SEGMENT STACK STACK DW 32 DUP(0)STACK ENDSCODE SEGMENTSTART PROC FAR ASSUME SS:STACK,CS:CODE PUSH DS SUB AX,AX PUSH AX MOV DX,307H ;写控制字 MOV AL,80H ;送方式字,选择0工作方式 OUT DX,AL MOV DX,304H MOV AL,O OUT DX,AL ;初始化,红灯全亮LOP: MOV DX,305H ;1,3路口绿灯亮 MOV AL,0AH OUT DX,AL XOR AL,0FH MOV DX,304H ;2,4路口红灯亮 OUT DX,AL MOV CX,10 ;延时10秒LOP1: CALL DELAY LOOP LOP1 MOV DX,306H ;1,3路口绿灯灭 MOV AL,0FH OUT DX,AL MOV CL,3 ;黄灯闪烁三次LOP2: MOV DX,305H ;1,3路口黄灯亮1秒 MOV AL,0AH OUT DX,AL CALL DELAY MOV DX,305H ;1,3路口黄灯灭1秒 MOV AL,0FH OUT DX,AL CALL DELAY LOOP LOP2 MOV DX,306H ;2,4路口绿灯亮 MOV AL,05H OUT DX,AL XOR AL,0FH MOV DX,304H ;1,3路口红灯亮 OUT DX,AL MOV CX,10 ;延时10秒LOP3: CALL DELAY LOOP LOP3 MOV DX,306H ;2,4路口绿灯灭 MOV AL,0FH OUT DX,AL MOV CL,3 ;设置闪烁次数LOP4: MOV DX,305H ;2,4路口黄灯亮1秒 MOV AL,05H OUT DX,AL CALL DELAY MOV DX,305H ;2,4路口黄灯灭1秒 MOV AL,0FH OUT DX,AL CALL DELAY LOOP LOP4 MOV AH,1 ;判断是否有按键按下,调用功能号1 INT 21H JZ LOP ;无按键则跳回继续循环,有则退出QUIT: XOR AL,AL OUT DX,AL ;关灯 MOV AX,4C00H ;结束程序退出 INT 21H DELAY PROC NEAR ;软件延时子程序 PUSH BX PUSH CXMOV BX,3E8H ; BX的值为1000LP2: MOV CX,176H ;设定循环次数(晶振为8MHZ)LP1: PUSHF POPF LOOP LP1 ;CX减1后若不等于0转LP1 DEC BX JNZ LP2 POP CX POP BX POPF RETDELAY ENDP CODE ENDS END START总结 本次微机原理课程设计是通过8255A并口控制LED发光二极管,使其按照一定规律亮灭,达到交通指挥灯的作用。通过查阅相关资料,复习课本知识,基本完成题目要求。在设计过程中我收获颇丰,巩固汇编语言的基础知识,如子函数的调用等,熟悉了可编程并行通信接口芯片8255A的初始化和端口使用,学习了软件延时。同时,在查阅资料的过程中,我了解到,使用8253、8259芯片实现硬件延时,能提高指示灯的精确控制,设计用于倒计时的七段LED数码管,增加紧急情况处理程序等,能丰富程序功能。本次程序设计中使用了一个1S延时DELAY子程序,在主程序中通过CALL调用完成延时和闪烁功能。如果将10S延时和闪烁分别写子程序,再在主程序中调用,能简化

温馨提示

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

评论

0/150

提交评论