学士学位论文微机原理课程设计交通信号灯模拟控制系统设计.docx
《学士学位论文微机原理课程设计交通信号灯模拟控制系统设计.docx》由会员分享,可在线阅读,更多相关《学士学位论文微机原理课程设计交通信号灯模拟控制系统设计.docx(20页珍藏版)》请在冰豆网上搜索。
学士学位论文微机原理课程设计交通信号灯模拟控制系统设计
成绩
南京工程学院
通信工程学院
课程设计说明书(论文)
题目交通信号灯模拟控制系统设计
课程名称微机原理及接口技术
专业
班级
学生姓名
学号
设计地点
指导教师
设计起止时间:
2013年12月23日至2013年12月27日
目录
1.概述3
1,1背景3
1.2设计目标3
2.设计分析4
2.1电路接线方案4
2.2模块分析4
2.3设计流程说明5
3.设计实现5
3.1硬件设计5
3.2软件设计8
4.调试结果13
5.心得体会15
6.参考文献15
1.概述
1,1背景
在实际生活中,交通信号灯控制着交通的秩序安全。
本次微机原理课程设计就是利用STARES598PCI实验仪的硬件资源设计一个“带时间显示的交通灯模拟控制系统”。
所有输入该装置的信号采用STARES598PCI实验仪上的状态输入开关输入,东西、南北方向的红绿黄灯采用实验仪上的LED发光二极管模拟,东西、南北方向的信号灯变化,通行倒计时时间用数码管显示。
1.2设计目标
本次设计主要是实现对十字路口交通信号灯的控制而进行的编程,用8255A的A口控制东西方向的交通灯,用8255A的B口控制南北方向的交通灯。
当程序正常运行时,依次为东西方向的绿灯亮25s和南北方向的红灯亮30s,东西方向的绿灯亮25s后东西方向的黄灯闪烁5s,随后东西方向的红灯亮20s和南北方向的绿灯亮15s,南北方向的绿灯亮15s后南北方向的黄灯闪烁5s,之后同理往复循环。
用8255A的C口控制紧急情况时东西、南北方向的红、黄、绿灯的亮灭,紧急情况下,东西、南北方向均为红灯,同时另有一红灯闪烁。
通过读C口输入的数据并进行测试查询,从而对紧急情况进行及时处理。
用LED(发光二极管)模拟信号灯,8255A实现对信号灯的控制(PC0~PC6分别接D0~D6),8253的计数器2实现基本单位定时(如10ms)信号的输出;再用8255A的PA口查询定时信号的变化,并统计脉冲数,以实现30s、20s和5s的定时。
交通信号灯设计充分利用了可编程的并行接口芯片8255A各引脚的功能,选定工作方式5,通过改变控制字来实现交通信号灯的状态转换。
另外,通过调用延时子程序来实现交通信号灯某一状态的持续,调用循环子程序来实现对交通信号灯状态循环的控制,通过控制开关来实现紧急情况下各路口红灯全亮的功能。
综合各部分功能来实现较为完善的程序,运行程序来模拟交通信号灯的控制。
2.设计分析
根据设计目标用A道代表东西方向,B道代表南北方向。
交通灯可自己循环,也可通过控制开关来固定控制其放行状态。
2.1电路接线方案
交通信号灯由实验仪的LED发光二极管模拟,由8255-PA输出控制:
见下表。
带时间显示的交通信号灯模拟控制系统8255A输入/输出信号一览表
8255-PB输出方式
PCH输入方式
8255-PA输出方式
PCL输出方式
引脚
输出信号
引脚
输入信号
引脚
输出信号
引脚
输出信号
PB7
驱动数码管字型
PC7
K7
PA7
紧急车辆闪光
PB6
PC6
K6
PA6
东西红灯
PB5
PC5
K5
PA5
东西黄灯
PB4
PC4
8253-OUT2
PA4
东西绿灯
PB3
PA3
PC3
PB2
PA2
南北红灯
PC2
PB1
PA1
南北黄灯
PC1
PB0
PA0
南北绿灯
PC0
数码管的位码选择
注:
①8255-PA输出方式可根据实验设备红绿黄灯具体位置改变。
2采用软件延时,则8255的PC4不用接8253-OUT2。
数码管的位码选择。
2.2模块分析
2.2.1定时模块
用8253#2工作方式0进行500ms定时,CLK2接125kHz时钟信号,GATE2接高电平,OUT2接8255-PC4。
主程序通过查询8255-PC4的状态,获知准确的定时信息。
2.2.2工作状态
根据设计任务功能要求,依K5、K6、K7的状态分为四种工作状态:
状态0:
K5、K6、K7均断开(1电平)或K5、K6均闭合K7断开,A、B道交替通行;状态1:
仅K5闭合,A道有车、B道无车;状态2:
仅K6闭合,A道无车,B道有车;K5和K6均闭合,A、B道都有车,A、B道交替通行;状态3:
K7闭合,有紧急车辆通行。
2.3设计流程说明
(1)主程序每0.5秒循环一次,每次查询三个开关状态,及时响应开关状态的变化。
其中CNT0和CNT3分别用于记录状态0和状态3工作进程的进程计数器,可以用寄存器或内存变量实现。
(2)常用的工作状态0是A、B道交替通行,一个周期用时50秒。
用CNT0以0.5秒为单位进行加1计数,从0到100循环计数,CNT0/2就可知本周期进行到第几秒了。
根据设计任务功能要求,第0秒,A道红灯、B道黄灯;第1~25秒,A道绿灯、B道红灯;第25~30秒,A道黄灯闪烁、B道红灯;第30~45秒,A道红灯、B道绿灯;第45~50秒,B道黄灯闪烁、A道红灯。
(3)工作状态3中,CNT3只有2种状态(0和0FFH),用于控制紧急车辆的灯光闪烁。
(4)时间显示采用实验仪的数码管显示。
只用一个数码显示器显示绿灯通行倒计时,A道显示数=30-CNT0/2,B道显示数=50-CNT0/2。
参考流程图2。
(5)如果用2个数码显示器分别显示A道、B道的倒计时,则需要用到动态显示扫描技术,难度较大,定为加分项目。
在500ms延时子程序中循环调用动态显示扫描子程序,定时器的定时周期应缩短到5ms。
2个数码管的位码选择(低电平有效)有8255的PC3、PC0来确定,接线到数码管选择脚接口JP41(注意JP41的接插方法:
JP41只接插一半,用PCL接JP41的1-4引脚。
如果PCL与JP41完全连接,PC4对应位会显示倒计时数码)。
显示内容由8255的B口接线到数码管段码接口JP42来确定。
3.设计实现
3.1硬件设计
相关外设原理及接线图:
3.1.1B2区:
逻辑笔
逻辑笔:
测试接口,输入测量信号
绿灯(DS13):
高电平点亮
红灯(DS14):
低电平点亮
两灯同时亮:
频率信号
3.1.2B2区:
频率发生器
频率发生器电路原理图
4M:
输出4MHZ频率信号,其他端口输出的信号频率与端口下标识的数值一致。
3.1.38255A电路
S:
片选信号,低电平有效;
A0、A1:
地址信号;
JP52:
PC口;JP53:
PB口;JP56:
PA口。
C
A
3.1.48253电路
CS:
片选信号,低电平有效;
A0、A1:
地址信号;
3.2软件设计
3.2.1程序流程图
3.2.1源程序清单
.MODELTINY
COM_ADDREQU0B003H
T0_ADDREQU0B000H
T1_ADDREQU0B001H
T2_ADDREQU0B002H
COM_ADDEQU0F003H
PA_ADDEQU0F000H
PB_ADDEQU0F001H
PC_ADDEQU0F002H
.STACK300
.DATA
LED_DATADB10111101B;东西红灯,南北黄亮
DB11101011B;东西绿灯,南北红灯
DB11011011B;东西黄亮,南北红灯
DB10111110B;东西红灯,南北绿灯
DB00111011B;东西红灯,南北红灯,紧急车辆闪光亮
DB10111011B;东西红灯,南北红灯,紧急车辆闪光灭
DB11111011B;东西红灯,南北黄灭
DB10111111B;东西黄灭,南北红灯
SHUMADB00111111B;数字0
DB00000110B;数字1
DB01011011B;数字2
DB01001111B;数字3
DB01100110B;数字4
DB01101101B;数字5
DB01111101B;数字6
DB00000111B;数字7
DB01111111B;数字8
DB01101111B;数字9
CNT0DB?
CNT3DB?
.CODE
START:
MOVAX,@DATA
MOVDS,AX
MOVDX,COM_ADD;8255A初始化
MOVAL,88H;写入控制字
OUTDX,AL
MOVDX,COM_ADDR;8253初始化
MOVAL,0B0H;写入控制字
OUTDX,AL
MOVDX,PC_ADD;位码选择
INAL,DX
ANDAL,0FEH
ORAL,01H
OUTDX,AL
MOVCNT0,0
MOVCNT3,0
LP:
CALLDL500ms
MOVDX,PC_ADD
INAL,DX
TESTAL,80H
JZK7
JMPJMP1
K7:
MOVCH,CNT3
CMPCH,0
JZRRS
RRM:
MOVAL,5;红红灭
XLAT
MOVDX,PA_ADD
OUTDX,AL
JMPLAST0
RRS:
MOVAL,4;红红亮
XLAT
MOVDX,PA_ADD
OUTDX,AL
CALLDL500ms
MOVAL,5
XLAT
MOVDX,PA_ADD
OUTDX,AL
LAST0:
MOVDX,PB_ADD;关数码管
MOVAL,00H
OUTDX,AL
XORCH,0FFH
MOVCNT3,CH
MOVCNT0,0
JMPLP
JMP1:
MOVDX,PC_ADD;00100000PC5
INAL,DX
TESTAL,20H
JNZJMP2
MOVDX,PC_ADD;01000000PC6
INAL,DX
TESTAL,40H
JNZK5
JMPJMP3
K5:
MOVAL,1;绿红固定
XLAT
MOVDX,PA_ADD
OUTDX,AL
MOVDX,PB_ADD
MOVAL,00H
OUTDX,AL
MOVCNT0,0
MOVCNT3,0
JMPLP
JMP2:
MOVDX,PC_ADD
INAL,DX
TESTAL,40H;01000000PC6
JZK6
JMPJMP3
K6:
MOVAL,3;红绿固定
XLAT
MOVDX,PA_ADD
OUTDX,AL
MOVDX,PB_ADD
MOVAL,00H
OUTDX,AL
MOVCNT0,0
MOVCNT3,0
JMPLP
LP1:
JMPLP
JMP3:
MOVCNT3,0
MOVCH,CNT0
SHRCH,1
LEABX,LED_Data
CMPCH,25
JBGR
CMPCH,30
JBYR
CMPCH,45
JBRG
CMPCH,50
JBRY
JMPRG
RG:
MOVAL,3
XLAT
MOVDX,PA_ADD
OUTDX,AL
PUSHBX
LEABX,SHUMA
MOVAL,50
SUBAL,CH
XLAT
MOVDX,PB_ADD
OUTDX,AL
POPBX
LAST:
INCCNT0
CMPCNT0,100
JNZLP1
MOVCNT0,0
JMPLP1
RY:
MOVAL,0
XLAT
MOVDX,PA_ADD
OUTDX,AL
CALLDL500MS
MOVAL,7
XLAT
MOVDX,PA_ADD
OUTDX,AL
MOVDX,PB_ADD
MOVAL,00H
OUTDX,AL
JMPLAST
GR:
MOVAL,1
XLAT
MOVDX,PA_ADD
OUTDX,AL
PUSHBX
LEABX,SHUMA
MOVDX,PB_ADD
MOVAL,8
SUBAL,CH
XLAT
MOVDX,PB_ADD
OUTDX,AL
POPBX
JMPLAST
YR:
MOVAL,2
XLAT
MOVDX,PA_ADD
OUTDX,AL
CALLDL500MS
MOVAL,6
XLAT
MOVDX,PA_ADD
OUTDX,AL
MOVDX,PB_ADD
MOVAL,00H
OUTDX,AL
JMPLAST
DL500msPROCNEAR
MOVDX,T2_ADDR
MOVAL,24H
OUTDX,AL
MOVAL,0F4H
OUTDX,AL
DELAY:
MOVDX,PC_ADD
INAL,DX
TESTAL,10H
JZDELAY
RET
DL500msENDP
ENDSTART
4.调试结果
1.全速运行显示
2.只有A道放行
3.只有B道放行
4.紧急情况
5.心得体会
一周的微机原理课程设计已经过去,虽说时间短暂,但在此课设中我学到了很多东西。
通过课程设计,我对于所学的知识有了更多的认识与更深刻的理解,同时体会到了态度的重要性以及实际动手的重要作用。
在课程设计以前,对微机原理的认识仅限于课堂上老师所讲的内容的听懂以及对于实验的似懂非懂,对于一个完整的程序只能大体理解。
课设后,我对于以前老师所讲的芯片的主要功能和使用方法有了进一步的理解与掌握,并能够根据自己的思路在已有程序上进行修改和设计。
此次课设让我在此课程上有了极大的进步。
俗语说:
“一分耕耘一分收获。
”没有用心的学习,怎么会掌握知识;没有认真了解芯片的功能,又怎么会对其进行灵活应用。
在课堂上,对于8253与8255A,只有大致的了解。
而在此次课程设计中,根据设计要求与设计目标,必须对8253与8255A有全面的认识与理解,因此通过看书和请教他人,我对于这两个芯片有了较为全面的理解,对其操作应用有了基本的掌握。
通过已做实验的程序的再次理解与深入思考,我对于该程序有了基本的编程思路,于是便开始在已有的基础上完成老师所加任务。
经过两天半的修改与调试,由于时间和知识的局限,完成了时间和闪烁的功能,对于数码管的倒计时显示不够完善。
当然,在最后的验收与答辩中,经过准备对于该交通信号灯控制系统有了更加系统的认识,在答辩中对自已的不足之处也有了认识,以便于进一步的改正与弥补。
在课设中我学会了无论做什么都要有一个端正的态度极为重要,很多时候态度决定一切,还有独立思考与动手实践结合的重要性。
多动手多动脑才能将知识理解消化并使之为自己所用。
因此,在以后的学习与生活中,必须手脑结合将知识吃透夯实,才能将所学的知识运用到实际中。
总而言之,微机原理课程设计令我受益匪浅。
6.参考文献
[1]李干林.微机原理及接口技术实验指导书.北京:
北京大学出版社.2010
[2]周荷琴.微型计算机原理与接口技术(第4版)中国科学技术大学出版社.2008