微机原理课程设计交通信号灯模拟控制系统.docx

上传人:b****6 文档编号:15727630 上传时间:2023-07-07 格式:DOCX 页数:13 大小:3.40MB
下载 相关 举报
微机原理课程设计交通信号灯模拟控制系统.docx_第1页
第1页 / 共13页
微机原理课程设计交通信号灯模拟控制系统.docx_第2页
第2页 / 共13页
微机原理课程设计交通信号灯模拟控制系统.docx_第3页
第3页 / 共13页
微机原理课程设计交通信号灯模拟控制系统.docx_第4页
第4页 / 共13页
微机原理课程设计交通信号灯模拟控制系统.docx_第5页
第5页 / 共13页
微机原理课程设计交通信号灯模拟控制系统.docx_第6页
第6页 / 共13页
微机原理课程设计交通信号灯模拟控制系统.docx_第7页
第7页 / 共13页
微机原理课程设计交通信号灯模拟控制系统.docx_第8页
第8页 / 共13页
微机原理课程设计交通信号灯模拟控制系统.docx_第9页
第9页 / 共13页
微机原理课程设计交通信号灯模拟控制系统.docx_第10页
第10页 / 共13页
微机原理课程设计交通信号灯模拟控制系统.docx_第11页
第11页 / 共13页
微机原理课程设计交通信号灯模拟控制系统.docx_第12页
第12页 / 共13页
微机原理课程设计交通信号灯模拟控制系统.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理课程设计交通信号灯模拟控制系统.docx

《微机原理课程设计交通信号灯模拟控制系统.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计交通信号灯模拟控制系统.docx(13页珍藏版)》请在冰点文库上搜索。

微机原理课程设计交通信号灯模拟控制系统.docx

微机原理课程设计交通信号灯模拟控制系统

南京工程学院

通信工程学院

课程设计报告(论文)

 

题目交通信号灯模拟控制系统

课程名称微型计算机原理与接口技术

专业

班级

学生姓名

学号

设计地点

指导教师

 

设计起止时间:

2013年12月23日至2013年12月27日

 

第一章概述

在实际生活中,交通信号灯控制着交通的秩序安全。

本次微机原理课程设计就是模拟实际十字路口交通灯的运行规则,用汇编语言来设计交通信号灯。

本次设计主要是实现对十字路口交通信号灯的控制而进行的编程,用8255A的A口控制东西方向的交通灯,用8255A的B口控制南北方向的交通灯。

当程序正常运行时,依次为东西方向的绿灯和南北方向的红灯闪烁25s,东西方向的绿灯灭后东西方向的黄灯亮5s,随后东西方向的红灯和南北方向的绿灯亮并闪烁15s,南北方向的黄灯亮5s,之后同理往复循环。

用8255A的C口控制紧急情况时东西、南北方向的红、黄、绿灯的亮灭,通过读C口输入的数据并进行测试查询,从而对紧急情况进行及时处理。

用LED(发光二极管)模拟信号灯,8255A实现对信号灯的控制(PC0~PC6分别接D0~D6),8253的计数器2实现基本单位定时(如10ms)信号的输出;再用8255A的PA口查询定时信号的变化,并统计脉冲数,以实现25s、15s和5s的定时。

十字路口交通信号灯设计充分利用了可编程的并行接口芯片8255A各引脚的功能,选定工作方式0,通过改变控制字来实现交通信号灯的状态转换。

另外,通过调用延时子程序来实现交通信号灯某一状态的持续,调用循环子程序来实现对交通信号灯状态循环的控制,通过控制开关来实现紧急情况下各路口红灯全亮的功能。

综合各部分功能来实现较为完善的程序,运行程序来模拟十字路口交通信号灯。

第二章设计介绍

2.1功能描述

当东西方向(A道)和南北方向(B道)均有车辆要求通过时,A道和B道轮流放行。

A道放行25S,B道放行15S,依次轮流。

绿灯转换红灯时黄灯亮5S。

一道有车,另一道无车时(用开关K5、K6状态模拟),控制系统能立即让有车道放行。

遇有紧急车辆要求通过时(用开关K7状态模拟),系统能禁止普通车辆通过(A道、B道均为红灯),同时代表“紧急车辆通过”的另一个红灯闪烁。

2.2流程图

第三章程序实现

.MODELTINY

COM_ADDEQU0F003H;8255A片选地址

PA_ADDEQU0F000H

PB_ADDEQU0F001H

PC_ADDEQU0F002H

COM_ADDREQU0B003H

T0_ADDREQU0B000H

T1_ADDREQU0B001H

T2_ADDREQU0B002H

.STACK200

.DATA

SHU_DATADB00111111B

DB00000110B

DB01011011B

DB01001111B

DB01100110B

DB01101101B

DB01111101B

DB00000111B

DB01111111B

DB01101111B

CNT0DB?

CNT3DB?

.CODE

START:

MOVDX,COM_ADD;8255初始化

MOVAL,88H;PA、PB、PCL输出方式0,PCH输入

OUTDX,AL

MOVDX,PA_ADD

MOVAL,0FFH;检测让所有灯亮

OUTDX,AL

MOVDX,PC_ADD

INAL,DX

ANDAL,0F0H;保留高位,低位为0

ORAL,01H;保留高位,低位全部为1

OUTDX,AL

MOVDX,COM_ADDR;8253初始化

MOVAL,0B0H;10110000B

OUTDX,AL

MOVCNT0,0;状态0:

A,B交替

MOVCNT3,0;状态3:

紧急时

LEABX,SHU_DATA

LP:

CALLDL500MS

MOVDX,PC_ADD

INAL,DX

TESTAL,80H;ALAND10000000B,检测K7

JNZK7;如果PC7=0,结果为0,ZF=1,不执行K7。

如果PC7=1,ZF=1,执行K7,为特殊情况

TESTAL,20H;00100000B,检测PC5

JNZK51;如果PC5=0,结果为0,ZF=1,不执行K51。

如果相反,则执行K51

TESTAL,40H;01000000B,检测PC6

JNZK61

MOVCNT3,0

MOVCH,CNT0

SHRCH,1;CNT3=0,CH右移1位相当于CH/2

CMPCH,25

JSGR

CMPCH,30

JSYR

CMPCH,45

JNSRY

MOVDX,PA_ADD

MOVAL,0D7H;11010111B

OUTDX,AL;A红B绿

MOVDX,PB_ADD

MOVAL,50;启动数码管

SUBAL,CH;AL-CH/2

XLAT;AL=AL+BX

OUTDX,AL;显示倒计时。

LAST:

INCCNT0;CNT0=CNT0+1

CMPCNT0,100;CNT0-100

JNZLP

MOVCNT0,0

JMPLP

RY:

MOVDX,PA_ADD

MOVAL,0DBH;11011011B

OUTDX,AL;A红B黄

CALLDL200MS

MOVDX,PA_ADD

MOVAL,0DFH

OUTDX,AL

JMPLAST

K51:

JMPK5

K61:

JMPK6

GR:

MOVDX,PA_ADD

MOVAL,7DH;01111101

OUTDX,AL;A绿B红

MOVDX,PB_ADD;输出倒计时数字

MOVAL,30

SUBAL,CH;AL=AL-CH/2=30-CH/2

XLAT;AL=AL+BX

OUTDX,AL

JMPLAST

YR:

MOVDX,PA_ADD

MOVAL,0BDH

OUTDX,AL

CALLDL200MS

MOVDX,PA_ADD

MOVAL,0FDH;11011100B,K8亮0.5s

OUTDX,AL

JMPLAST

K7:

MOVCH,CNT3;CNT3=0,CH=0

CMPCH,0

JZK71

MOVDX,PA_ADD

MOVAL,0DDH

K81:

MOVDX,PA_ADD

MOVAL,0DBH;11011100B,K8亮0.5s

OUTDX,AL

CALLDL200MS

MOVDX,PA_ADD

MOVAL,0DFH;11011101B,K8灭0.5s

OUTDX,AL

K82:

MOVDX,PA_ADD

MOVAL,0BDH;11011100B,K8亮0.5s

OUTDX,AL

CALLDL200MS

MOVDX,PA_ADD

MOVAL,0FDH;11011101B,K8灭0.5s

OUTDX,AL

K72:

MOVDX,PB_ADD

MOVAL,00H

OUTDX,AL

NEGCH;CH=1

MOVCNT3,CH;CNT3=1,K7灭

MOVCNT0,0

JMPLP

K71:

MOVDX,PA_ADD

MOVAL,0DCH;11011100B,K8亮0.5s

OUTDX,AL

CALLDL200MS

MOVDX,PA_ADD

MOVAL,0DDH;11011101B,K8灭0.5s

OUTDX,AL

JMPK72

K5:

MOVDX,PA_ADD

MOVAL,7DH;AL=01111101B

OUTDX,AL;亮A绿B红

JMPK55

K6:

MOVDX,PA_ADD

MOVAL,0D7H;11010111B

OUTDX,AL;亮A红B绿

K55:

MOVDX,PB_ADD

MOVAL,00H

OUTDX,AL

MOVCNT0,0

MOVCNT3,0

JMPLP

DL500MSPROCNEAR

MOVDX,T2_ADDR

MOVAX,62500;频率125KHz,62500*(1/125)=0.5s

OUTDX,AL

MOVAL,AH

OUTDX,AL

DELAY1:

MOVDX,PC_ADD

INAL,DX

TESTAL,10H;设置“准备就绪”信息在D4位到PC4,TEST为ALAND10H

JEDELAY1;AND后PC4为0时,JE=1,执行DELAY。

AND后为1,JE=0,不执行DELAY

RET

DL500MSENDP

DL200MSPROCNEAR

MOVDX,T2_ADDR

MOVAX,25000;频率125KHz,25000*(1/125)=0.2s

OUTDX,AL

MOVAL,AH

OUTDX,AL

DELAY2:

MOVDX,PC_ADD

INAL,DX

TESTAL,10H

JEDELAY2

RET

DL200MSENDP

ENDSTART

 

第四章功能演示

4.1正常运行

4.2只有A道通行

4.3只有B道通行

4.4紧急情况

第五章总结与展望

5.1实验总结

通过这次的课程设计,我对汇编语言的基本知识的使用更加熟练,同时也增加了我对汇编语言的一些认识,在“交通信号模拟系统”的完成过程中通过和同学的交流,也增加了合作的技巧。

通过查阅以下资料也学到了一些课本上没有的东西,拓宽了自己的知识面,增加了学好汇编语言的信心。

虽然这不是第一次用汇编语言来设计一个小程序,平时做了很多实验,写了很多小程序,但这次是一个综合的程序,平时的很多程序都用到了。

很多子程序的设计是固定的,因此可以直接从指导资料中调用,大多只需要修改几个参数就可以,这大大方便了我们的设计,为我们节省了很多的时间。

在这次课程设计中,我真正体会到了合作的重要性,遇到很多问题时,当我看书查资料不能解决时,这是去找同学讨论一下,收获很大,可以使很多问题迎刃而解,直到问题最终解决。

不可否认,本程序存在不少缺点和不足,但通过这次课程设计的却找出了自己在学习上的不足,对以后的工作也有指导作用。

我相信在以后的学习中会克服这些不足,达到熟练掌握汇编语言的目的!

第六章参考文献

[1]李干林.微机原理及接口技术实验指导书.北京:

北京大学出版社.2010年8月

[2]周荷琴.微型计算机原理与接口技术(第4版)中国科学技术大学出版社.2008年1月

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2