收藏 分享(赏)

接口交通灯控制器课程设计报告.doc

上传人:精品资料 文档编号:10947750 上传时间:2020-01-26 格式:DOC 页数:11 大小:162.50KB
下载 相关 举报
接口交通灯控制器课程设计报告.doc_第1页
第1页 / 共11页
接口交通灯控制器课程设计报告.doc_第2页
第2页 / 共11页
接口交通灯控制器课程设计报告.doc_第3页
第3页 / 共11页
接口交通灯控制器课程设计报告.doc_第4页
第4页 / 共11页
接口交通灯控制器课程设计报告.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、 本科生课程实习交通灯控制器设计课程名称 微型计算机原理及接口技术学生姓名学生学号所在专业 计算机科学与技术所在班级日期 2011/12/23指导教师 职称成绩1目录 交通灯控制器设计 21 需求分析 21.1 需求说明 31.2 设计内容 31.3 设计平台 32 总体设计 32.1 芯片选择 32.2 设计思想 32.3 线路图设计 32.4 流程图设计 43 详细设计 53.1 设计源程序 54 调试与运行 65 设计结果 66 设计分析总结与体会 67 参考文献 68 附件 72 交通灯控制器设计摘要:十字道口的自动红绿灯是交通法规的无声命令,是司机和行人的行为准则。它具有固定的“红灯

2、绿灯”转换间隔,并自动切换。它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。在交通灯的通行与禁止时间控制显示中,如东西、南北两方向各 30 秒,最后还有 3 到 5 秒的闪烁缓冲时间。关键字:计算机接口 汇编语言 交通灯控制 8259 8253 8255 31 需求分析1.1 需求说明当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯绿灯”转换间隔,并自动切换。它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。在交通灯的通行与禁止时间控制显示中,东西、南北两方向各 30 秒,闪烁时间 3 秒。 本次课程设计采用定时加中断

3、控制的方式进行,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。 1.2 设计内容为交通信号灯的实时控制和管理。利用并行接口 8255A、中断接口 8259A和定时器 8253A,以及键盘和数码显示电路,设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30 秒,准备时间 3 秒,在准备时间里黄灯闪烁3 次,闪烁频率为 0.5 秒,周而复始。用 LED 数码管倒计时显示时间。个人增加内容:数码管重新计数1.3 设计平台TDN86/51(西安唐都科教仪器公司产品)试验仪的硬件资源,PC 机一台,导线若干2 总体设计2.1 芯片选择1用实验系统 8255A 实现对信号灯的控制

4、;2 位数码显 示用8255A 实现控制。 2. 用实验系统 8235 的计数器 2 定时向实验系统主片 8259A 的IRQ7 请求中断,以实现要求的 30 秒、3 秒钟定时。 实验系统 8235 的计数器 2的 CLK2 接 OPCLK,频率为 1.19318MHZ;GATE2 已接 +5V; 定时采用软硬件相结合的方式实现。 用实验系统的发光二极管模拟红绿灯。 注:8259A 的端口地址为:20H、21H 8255A 的端口地址为:端口 A-60H、端口 B-61H、端口 C-62H、控制端口-63H 8253 的端口地址为:计数器 0-40H、计数器 1-41H、计数器 2-42H、控

5、制寄存 0-43H。 2.2 设计思想设计数器 2 的计数初值为 59520,由于 CLK2 接脉冲信号,频率为1.193MHZ,所以每 50ms 中断一次。利用 CX 对不同的状态时间计数,用来实现计数器 2 对 1 秒,3 秒钟定时。中断子程序分为数码显示刷新部分和红绿黄灯,各种状态切换部分。每 20 次中断即刷新 LED 显示。交通灯由 8255 的 C 端口输出的数字量控制。42.3 线路图设计2.4 流程图设计CX=20开中断调用数码管显示显示东西绿灯最后 3 秒?绿灯 (黄灯) 绿灯闪烁CX=0?修改时间时间=0?显示南北绿灯最后 3 秒?CX=0?绿灯(黄灯) 绿灯闪烁修改时间时

6、间=0?8259,8253,8255初始化开始CX=20开中断调用数码管显示IRQ7 8259 IRQ6 8253OUT2 CLK GATE2OPCLK +5VPB0-PB7 PA0 PA1 8255PA2PA3PC0PC7AP东西 南北 东西 南北Kk+53 详细设计3.1 设计源程序1数据段定义T1 DB 00HT2 DB 03HLEDTAL DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH用 T1 作为个位取数的指针用 T2 作为十位取数的指针2.芯片及其端口的初始化IN AL,21H;AND AL,08H OUT 21H,AL MOV AL,80H;

7、初始化 8255 ,A,B,C 三口均工作在方式 0 OUT 63H,AL MOV AL,0B6H;初始化 8253,计数器#2 工作在方式 3,产生方波信号 OUT 43H,AL MOV AX,59500; OUT 42H,AL;C 口传出数据,先传低 4 位,然后传高 4 位 MOV AL,AH OUT 42H,AL3.写 IRQ6 和 IRQ7PUSH DSMOV AX,0000HMOV DS,AXMOV AX,OFFSET IRQ7ADD AX,2000H MOV SI,003CH MOV SI,AX MOV AX,0000H MOV SI,003EH MOV SI,AX POP DS

8、CLIPUSH AXPUSH DSMOV AX,0000HMOV DS,AXMOV AX,OFFSET IRQ6 ADD AX,2000H MOV SI,0038H 6MOV SI,AX MOV AX,0000H MOV SI,003AH MOV SI,AX POP DS POP AX 4.显示红绿灯主程序的设计分别设了用于显示南北道和东西道的不同段,DEC_60 表示在南北方向通向,DEC_45 表示在东西方向同行,由于篇幅问题,代码查看下面源程序附件。4 调试与运行程序是一开始几个人一起商量后实现的,无论是在语法上和逻辑上都没有大的问题。在实验室用反汇编工具的 D 命令查看了数据段是否写入

9、,和 IRQ7 的入口地址等都正确写入了,接着用 G=0000:2000 运行程序,查看验证结果是否和预想的一样。5 设计结果经装载入程序后,数码管开始显示 30,代表交通灯的二极管,显示东西红灯,南北绿灯亮,每一秒数码管减一,减到 3 时,南北绿灯闪烁直到零换道显示,东西绿灯亮,南北红灯亮,直到数码管计数到 3,绿灯闪烁,如此不断循环。当按下 KK+的时候,无论数码管计数到何数值都重新从 30 秒开始计数。6 设计分析总结与体会此次课程设计中,由于考试前对 8255,8253,8259 都弄得比较透了,所以,一开始和队友就有了思路该如何设计下去,应该是用那个 8253 来实现50ms 输出方

10、波,然后用 8259 申请中断,每 20 次中断就是一秒。8255 实现控制交通灯的红灯绿灯和闪烁。基本上没有遇到什么问题,唯一遇到的问题是,在连接线路图的时候,搞不懂 IRQ 应该接在机子上的哪个 IRQ 引脚。经尝试后才知道,另一片 8259 应该是作为从片的时候用的。因此,可以说是获益匪浅。了解了许多汇编程序的思想,扩展了自己的视野,不再仅仅局限于书本中几条简短的程序,而且更重要的是明白写程序的态度:仔细谨慎,精益求精。在原要求的基础上实现了计数的复位。另外针对一些问题,熟练掌握了根据原理分步测试,将错误之处缩小的最小范围内。而且在设计中,把死板的课本知识变得生动有趣,激发了学习的积极性

11、。把学过的计算机接口技术的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。同时,本次课程设计,是在队友的配合和黄超英老师和彭小红老师的指导下如此顺利地,一天完成了。体会到了团队精神的强大与不懂即问和查阅资料的重要性。以后会在实践中不断加强自己的团队精神意识!7 参考文献1.微型计算机原理与接口技术 中国矿业大学出版社 李长青 李泉溪主编2.微机原理及应用 机械工业出版社 胡钢 主编 73. 微型计算机原理与接口技术 机械工业出版社 林志贵主编8 附件源程序:STACK SEGMENT STACK DB 64 DUP(0) STACK ENDS DATA SEG

12、MENT T1 DB 00HT2 DB 03HLEDTAL DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,73H DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: CLIMOV AX,DATAMOV DS,AXMOV BX,OFFSET LEDTALPUSH DSMOV AX,0000HMOV DS,AXMOV AX,OFFSET IRQ7ADD AX,2000H MOV SI,003CH MOV SI,AX MOV AX,0000H MOV SI,003EH MOV SI,AX P

13、OP DSCLIPUSH AXPUSH DSMOV AX,0000HMOV DS,AXMOV AX,OFFSET IRQ6 ADD AX,2000H MOV SI,0038H MOV SI,AX MOV AX,0000H MOV SI,003AH MOV SI,AX POP DS 8POP AX IN AL,21H ;开 IRQ7,IRQ6 中断源AND AL,3FH OUT 21H,AL MOV AL,80H ;初始化 8255 ,A,B,C 三口均工作在方式 0 OUT 63H,AL MOV AL,0B6H ;初始化 8253,计数器 2 工作在方式 3,产生方波信号 OUT 43H,AL

14、 MOV AX,59500;传入 50 毫秒的初值 OUT 42H,AL ;C 口传出数据,先传低 4 位,然后传高 4 位 MOV AL,AH OUT 42H,ALMLOAD: MOV T1,00H ;初始值显示 30 秒,并开始倒计时 MOV T2,01H COUNT_1: MOV CX,14H;作为 1 秒的中断次数计数器 ,南北道倒计时程序 DEC_60: STI ;开中断 CALL DISP1 CMP T2,00H ;判断十位是否减到 0,如果不是则保持南北道绿灯亮 JNZ K1 CMP T1,03H ;判断各位是否为 3 秒,如果是则用全部的灯闪烁表示黄灯 JG K1 MOV AL

15、,33H ;此处灯显示状态不变OUT 62H,AL CMP CX,0AH JG K2 MOV AL,3FH ;绿灯二极管灭 OUT 62H,AL JMP K2 K1: MOV AL,33H ;显示南北干道绿灯亮通行 OUT 62H,AL K2: CMP CX,00H ;判断是否到了一秒,然后倒计时减 1 JNZ DEC_60 CMP T1,03H ;如果够 1 秒,且个位大于 3 秒JG LIGHT_60 CMP T2,00H ;小于 3 秒判断十位是否为零?唔为零,则跳到判断各位是否为零JNZ N1 TEST T1,0FFH;判断是否个位、十位均减到 0 JNZ LIGHT_60;不是则继续

16、倒计时 JMP SLOAD ;是则(标志位 ZF=0)跳转到东西干道程序 N1: TEST T1,0FFH ;此处的功能是判断个位是否为 0,且十位不为 0 JNZ LIGHT_60 MOV T1,09H ;个位为 0 则使个位为 9 DEC T2 ;十位减 1 9JMP COUNT_1 LIGHT_60:DEC T1 ;个位减一秒JMP COUNT_1 SLOAD: MOV T1,00H MOV T2,01H COUNT_2: MOV CX,14H;东西干道倒计时程序 DEC_45: STI ;开中断 CALL DISP1 CMP T2,00H ;判断十位是否减到 0,如果不是东西道绿灯亮

17、JNZ K3 CMP T1,03H ;判断各位是否为 3 秒,如果是则用全部的灯闪烁表示黄灯 JG K3 MOV AL,0CCH ;此处灯显示状态不变OUT 62H,AL CMP CX,0AH JG K4 MOV AL,0CFH ;绿灯二极管灭 OUT 62H,AL JMP K4 K3: MOV AL,0CCH ;显示东西干道绿灯亮通行 OUT 62H,AL K4: CMP CX,00H ;判断是否到了一秒,然后倒计时减 1 JNZ DEC_45 CMP T1,03H JNBE LIGHT_45 TEST T2,0FFH JNZ N2 TEST T1,0FFH;判断是否个位、十位均减到 0 J

18、NZ LIGHT_45;不是则继续倒计时 JMP MLOAD ;是则(标志位 ZF=0)跳转到南北道程序,依次循环 N2: TEST T1,0FFH ;此处的功能是判断个位是否为 0,且十位不为 0 JNZ LIGHT_45 MOV T1,09H ;是则使个位为 9 DEC T2 ;十位减 1 JMP COUNT_2 LIGHT_45:DEC T1 JMP COUNT_IRQ7: DEC CX ;确定是否为 1 秒的中断服务程序 MOV AL,20H OUT 20H,AL IRET IRQ6:MOV T1,00HMOV T2,03H10MOV AL,20H ;从三十秒重新开始计数 OUT 20

19、H,AL JMP COUNT_1 IRET DISP1 PROC NEAR ;显示子程序_1,用来显示 8 段数码管中 0-9 数字。MOV DL,0FEH MOV SI,OFFSET T1;显示内容首地址送 SI L1: MOV AL,DL ;点亮最左边的显示器,位码送 AL TEST AL,04H ;判断是否点亮了从右往左的第二个 LED JZ END1 ;已经点亮了 OUT 60H,AL ;位码送 A 口 ROL AL,01H ;改变位码 MOV DL,AL ;位码送 DL 保存 MOV AL,SI ;去要显示的字符 XLAT ;把显示字符换成相应的 8 断段码 OUT 61H,AL ;显示字符的 8 段码送端口 B CALL DELAY ;延时,1 位显示器点亮的时间 INC SI ;地址加 1JMP L1 END1: RET DISP1 ENDP DELAY PROC NEAR ;软件延时子程序_1:延时 5 毫秒 PUSH DX PUSH AX MOV DX,20 LOOP1: MOV AX,10 L4: DEC AX JNZ L4 DEC DX JNZ LOOP1 POP AX POP DX RET DELAY ENDP CODE ENDS END START

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报