交通信号控制器.docx
- 文档编号:30138911
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:15
- 大小:86.28KB
交通信号控制器.docx
《交通信号控制器.docx》由会员分享,可在线阅读,更多相关《交通信号控制器.docx(15页珍藏版)》请在冰豆网上搜索。
交通信号控制器
本科生课程实习
交通信号控制器
课程名称
微型计算机原理及接口技术
学生姓名
学生学号
所在专业
计算机科学与技术
所在班级
计科1111班
指导教师
彭小红
职称
副教授
成绩
目录
⏹交通信号控制器设计总说明2
1需求分析3
1.1需求说明3
1.2设计内容3
1.3设计平台3
2总体设计3
2.1芯片选择3
2.2设计思想3
2.3线路图设计3
2.4流程图设计4
3详细设计5
3.1设计源程序5
4调试与运行6
5设计结果6
6设计分析总结与体会6
7参考文献7
8附件7
交通信号控制器
(专业:
计算机科学与技术,学号:
,姓名:
)
指导教师:
彭小红)
⏹交通信号控制器设计总说明
摘要:
十字道口的自动红绿灯是交通法规的无声命令,是司机和行人的行为准则。
它具有固定的“红灯—绿灯”转换间隔,并自动切换。
它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。
在交通灯的通行与禁止时间控制显示中,如东西、南北两方向各30秒,最后还有3到5秒的闪烁缓冲时间。
关键字:
计算机接口汇编语言交通灯控制825982538255
1需求分析
.1需求说明
当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。
它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。
在交通灯的通行与禁止时间控制显示中,东西、南北两方向各30秒,闪烁时间3秒。
本次课程设计采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。
1.2设计内容
为交通信号灯的实时控制和管理。
利用并行接口8255A、中断接口8259A和定时器8253A,以及键盘和数码显示电路,设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30秒,准备时间3秒,在准备时间里黄灯闪烁3次,闪烁频率为0.5秒,周而复始。
用LED数码管倒计时显示时间。
1.3设计平台
TDN86/51(西安唐都科教仪器公司产品)试验仪硬件资源,PC机一台,导线若干
2总体设计
2.1芯片选择
1.用实验系统8255A实现对信号灯的控制;2位数码显示用8255A实现控制。
2.用实验系统8235的计数器2定时向实验系统主片8259A的IRQ7请求中断,以实现要求的30秒、3秒钟定时。
实验系统8253的计数器2的CLK2接OPCLK,频率为1.19318MHZ;GATE2已接+5V;定时采用软硬件相结合的方式实现。
⒊用实验系统的发光二极管模拟红绿灯。
注:
8259A的端口地址为:
20H、21H8255A的端口地址为:
端口A-60H、端口B-61H、端口C-62H、控制端口-63H8253的端口地址为:
计数器0-40H、计数器1-41H、计数器2-42H、控制寄存0-43H
2.2设计思想
设计数器2的计数初值为59520,由于CLK2接脉冲信号,频率为1.193MHZ,所以每50ms中断一次。
利用CX对不同的状态时间计数,用来实现计数器2对1秒,3秒钟定时。
中断子程序分为数码显示刷新部分和红绿黄灯,各种状态切换部分。
每20次中断即刷新LED显示。
交通灯由8255的C端口输出的数字量控制。
2.3线路图设计
2.4
流程图设计
3详细设计
3.1设计源程序
3.1.1数据段定义
T1DB00H
T2DB03H
LEDTALDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
用T1作为个位取数的指针
用T2作为十位取数的指针
3.1.2芯片及其端口的初始化
INAL,21H;
ANDAL,08H
OUT21H,AL
MOVAL,80H;初始化8255,A,B,C三口均工作在方式0
OUT63H,AL
MOVAL,0B6H;初始化8253,计数器#2工作在方式3,产生方波信号
OUT43H,AL
MOVAX,59500;
OUT42H,AL;C口传出数据,先传低4位,然后传高4位
MOVAL,AH
OUT42H,AL
3.1.3写IRQ6和IRQ7
PUSHDS
MOVAX,0000H
MOVDS,AX
MOVAX,OFFSETIRQ7
ADDAX,2000H
MOVSI,003CH
MOV[SI],AX
MOVAX,0000H
MOVSI,003EH
MOV[SI],AX
POPDS
CLI
PUSHAX
PUSHDS
MOVAX,0000H
MOVDS,AX
MOVAX,OFFSETIRQ6
ADDAX,2000H
MOVSI,0038H
MOV[SI],AX
MOVAX,0000H
MOVSI,003AH
MOV[SI],AX
POPDS
POPAX
3.1.4显示红绿灯主程序的设计
分别设了用于显示南北道和东西道的不同段,DEC_60表示在南北方向通向,DEC_45表示在东西方向同行,由于篇幅问题,代码查看下面源程序附件。
4调试与运行
程序是一开始几个人一起商量后实现的,无论是在语法上和逻辑上都没有大的问题。
在实验室用反汇编工具的D命令查看了数据段是否写入,和IRQ7的入口地址等都正确写入了,接着用G=0000:
2000运行程序,查看验证结果是否和预想的一样。
5设计结果
经装载入程序后,数码管开始显示30,代表交通灯的二极管,显示东西红灯,南北绿灯亮,每一秒数码管减一,减到3时,南北绿灯闪烁直到零换道显示,东西绿灯亮,南北红灯亮,直到数码管计数到3,绿灯闪烁,如此不断循环。
当按下KK+的时候,无论数码管计数到何数值都重新从30秒开始计数。
6设计分析总结与体会
通过两周的准备、查找、思考、整理总结,我终于完成我的课程设计——交通信号控制器。
通过这次课程设计,加强了我的动手、思考和解决实际问题的能力。
在整个设计过程中,经常经常出现这样那样的问题,但是最后还是都得以解决,这个过程是值得我回味的。
挫折是一份财富,经历是一份拥有。
这次实习必将成为我人生旅途上一个非常美好的回忆!
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
这次课程设计顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于游逆而解。
同时,在老师的身上我们学也到很多实用的知识,在此我们表示感谢!
此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后还要继续努力,争取做到更好。
7参考文献
1.《微型计算机原理与接口技术》中国矿业大学出版社李长青李泉溪主编
2.《微机原理及应用》机械工业出版社胡钢主编
3.《微型计算机原理与接口技术》机械工业出版社林志贵主编
8附件
源程序:
STACKSEGMENTSTACK
DB64DUP(0)
STACKENDS
DATASEGMENT
T1DB00H
T2DB03H
LEDTALDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,73H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
CLI
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETLEDTAL
PUSHDS
MOVAX,0000H
MOVDS,AX
MOVAX,OFFSETIRQ7
ADDAX,2000H
MOVSI,003CH
MOV[SI],AX
MOVAX,0000H
MOVSI,003EH
MOV[SI],AX
POPDS
CLI
PUSHAX
PUSHDS
MOVAX,0000H
MOVDS,AX
MOVAX,OFFSETIRQ6
ADDAX,2000H
MOVSI,0038H
MOV[SI],AX
MOVAX,0000H
MOVSI,003AH
MOV[SI],AX
POPDS
POPAX
INAL,21H;开IRQ7,IRQ6中断源
ANDAL,3FH
OUT21H,AL
MOVAL,80H;初始化8255,A,B,C三口均工作在方式0
OUT63H,AL
MOVAL,0B6H;初始化8253,计数器2工作在方式3,产生方波信号
OUT43H,AL
MOVAX,59500;传入50毫秒的初值
OUT42H,AL;C口传出数据,先传低4位,然后传高4位
MOVAL,AH
OUT42H,AL
MLOAD:
MOVT1,00H;初始值显示30秒,并开始倒计时
MOVT2,01H
COUNT_1:
MOVCX,14H;作为1秒的中断次数计数器,南北道倒计时程序
DEC_60:
STI;开中断
CALLDISP1
CMPT2,00H;判断十位是否减到0,如果不是则保持南北道绿灯亮
JNZK1
CMPT1,03H;判断各位是否为3秒,如果是则用全部的灯闪烁表示黄灯
JGK1
MOVAL,33H;此处灯显示状态不变
OUT62H,AL
CMPCX,0AH
JGK2
MOVAL,3FH;绿灯二极管灭
OUT62H,AL
JMPK2
K1:
MOVAL,33H;显示南北干道绿灯亮通行
OUT62H,AL
K2:
CMPCX,00H;判断是否到了一秒,然后倒计时减1
JNZDEC_60
CMPT1,03H;如果够1秒,且个位大于3秒
JGLIGHT_60
CMPT2,00H;小于3秒判断十位是否为零?
唔为零,则跳到判断各位是否为零
JNZN1
TESTT1,0FFH;判断是否个位、十位均减到0
JNZLIGHT_60;不是则继续倒计时
JMPSLOAD;是则(标志位ZF=0)跳转到东西干道程序
N1:
TESTT1,0FFH;此处的功能是判断个位是否为0,且十位不为0
JNZLIGHT_60
MOVT1,09H;个位为0则使个位为9
DECT2;十位减1
JMPCOUNT_1
LIGHT_60:
DECT1;个位减一秒
JMPCOUNT_1
SLOAD:
MOVT1,00H
MOVT2,01H
COUNT_2:
MOVCX,14H;东西干道倒计时程序
DEC_45:
STI;开中断
CALLDISP1
CMPT2,00H;判断十位是否减到0,如果不是东西道绿灯亮
JNZK3
CMPT1,03H;判断各位是否为3秒,如果是则用全部的灯闪烁表示黄灯
JGK3
MOVAL,0CCH;此处灯显示状态不变
OUT62H,AL
CMPCX,0AH
JGK4
MOVAL,0CFH;绿灯二极管灭
OUT62H,AL
JMPK4
K3:
MOVAL,0CCH;显示东西干道绿灯亮通行
OUT62H,AL
K4:
CMPCX,00H;判断是否到了一秒,然后倒计时减1
JNZDEC_45
CMPT1,03H
JNBELIGHT_45
TESTT2,0FFH
JNZN2
TESTT1,0FFH;判断是否个位、十位均减到0
JNZLIGHT_45;不是则继续倒计时
JMPMLOAD;是则(标志位ZF=0)跳转到南北道程序,依次循环
N2:
TESTT1,0FFH;此处的功能是判断个位是否为0,且十位不为0
JNZLIGHT_45
MOVT1,09H;是则使个位为9
DECT2;十位减1
JMPCOUNT_2
LIGHT_45:
DECT1
JMPCOUNT_2
IRQ7:
DECCX;确定是否为1秒的中断服务程序
MOVAL,20H
OUT20H,AL
IRET
IRQ6:
MOVT1,00H
MOVT2,03H
MOVAL,20H;从三十秒重新开始计数
OUT20H,AL
JMPCOUNT_1
IRET
DISP1PROCNEAR;显示子程序_1,用来显示8段数码管中0-9数字。
MOVDL,0FEH
MOVSI,OFFSETT1;显示内容首地址送SI
L1:
MOVAL,DL;点亮最左边的显示器,位码送AL
TESTAL,04H;判断是否点亮了从右往左的第二个LED
JZEND1;已经点亮了
OUT60H,AL;位码送A口
ROLAL,01H;改变位码
MOVDL,AL;位码送DL保存
MOVAL,[SI];去要显示的字符
XLAT;把显示字符换成相应的8断段码
OUT61H,AL;显示字符的8段码送端口B
CALLDELAY;延时,1位显示器点亮的时间
INCSI;地址加1
JMPL1
END1:
RET
DISP1ENDP
DELAYPROCNEAR;软件延时子程序_1:
延时5毫秒
PUSHDX
PUSHAX
MOVDX,20
LOOP1:
MOVAX,10
L4:
DECAX
JNZL4
DECDX
JNZLOOP1
POPAX
POPDX
RET
DELAYENDP
CODEENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通信号 控制器