微机原理课设交通信号灯模拟控制系统教材.docx
- 文档编号:487922
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:12
- 大小:3.43MB
微机原理课设交通信号灯模拟控制系统教材.docx
《微机原理课设交通信号灯模拟控制系统教材.docx》由会员分享,可在线阅读,更多相关《微机原理课设交通信号灯模拟控制系统教材.docx(12页珍藏版)》请在冰豆网上搜索。
微机原理课设交通信号灯模拟控制系统教材
南京工程学院
通信工程学院
课程设计说明书(论文)
题目交通信号灯模拟控制系统
课程名称微型计算机原理与接口技术
专业
班级
学生姓名
学号
设计地点
指导教师
设计起止时间:
2013年12月23日至2013年12月27日
目录
第一章概述3
第二章设计介绍3
2.1功能描述3
2.2流程图4
第三章程序实现5
第四章功能演示10
4.1正常运行10
4.2只有A道通行10
4.3只有B道通行11
4.4紧急情况11
第五章总结与展望12
5.1实验结论12
5.2实验总结12
第六章参考文献13
第一章概述
在实际生活中,交通信号灯控制着交通的秩序安全。
本次微机原理课程设计就是模拟实际十字路口交通灯的运行规则,用汇编语言来设计交通信号灯。
本次设计主要是实现对十字路口交通信号灯的控制而进行的编程,用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章设计介绍
2.1功能描述
当东西方向(A道)和南北方向(B道)均有车辆要求通过时,A道和B道轮流放行。
A道放行25S,B道放行15S,依次轮流。
绿灯转换红灯时黄灯亮5S。
一道有车,另一道无车时(用开关K5、K6状态模拟),控制系统能立即让有车道放行。
遇有紧急车辆要求通过时(用开关K7状态模拟),系统能禁止普通车辆通过(A道、B道均为红灯),同时代表“紧急车辆通过”的另一个红灯闪烁。
2.2流程图
第3章程序实现
.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章功能演示
4.1正常运行
4.2只有A道通行
4.3只有B道通行
4.4紧急情况
第5章总结与展望
5.1实验结论
①本设计基本完成了任务书中所要求的功能。
(1)采用循环程序软件延时的方法实现信号灯定时变化;
(2)采用8255A的C口输入模拟控制开关信号,A口控制信号灯的亮灭,B口控制数码管同时显示东西、南北方向的通信倒计时时间,实现功能要求。
②有待改进之处:
(1)数码管不能显示10以上的数字;
(2)在黄灯闪的时候不可以同时倒计时。
5.2实验总结
短短一周的微机原理课程设计已经过去了。
虽然时间短暂,但我学到了很多东西。
在实践中我更加深刻的理解了所学的知识,也使我体会到了什么叫做一分耕耘,一分收获!
在课程设计以前,可以说我对微机原理似懂非懂,有的时候拿来一个完整的程序都不能完全理解。
而现在,我已经完全掌握了以前老师所讲的芯片的主要功能和使用方法。
并能用自己的思路设计出想要的程序,这么大的反差就是源于此次课程设计。
可以这么说,此次课程设计使我获益匪浅!
一分耕耘,一分收获,没有认真的学习,当然不会掌握知识,没有认真了解芯片的功能,又如何在具体应用中发挥他们应有的作用呢?
在课堂上,老师的耐心细致地讲解使我掌握了这次设计中所选用的最重要芯片8255的主要功能。
在课程设计开始时,我首先对正常情况下的交通灯控制进行了编程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 交通 信号灯 模拟 控制系统 教材