




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武武汉汉理理工工大大学学华华夏夏学学院院 课课程程设设计计报报告告书书 课程名称:课程名称:微机原理与接口课程设计 题题 目目: 交通灯实时控制系统 系系 名:名: 信息工程系 专业班级:专业班级: 软件 2101 姓姓 名:名: XXX 学学 号:号: * 指导教师指导教师: 李朝纯 20122012 年年 1212 月月 2828 日日 1 课程设计任务书 学生姓名: XXX 专业班级: 软件 2101 指导教师: 李朝纯 工作单位: 信息工程系 设计题目:交通灯实时控制系统 初始条件: 1、某十字路口的车辆通行按步序参考表 A 进行 2、TDN86/88 型多功能微机实验平台 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 主要任务: 1画出硬件原理图(接口芯片和外设部分、交通灯与路口对应关系)和实验连线图; 2交通灯控制方式是南、北、东、西四个路口轮流通行(无交叉点通行控制方式,步 序见参考表 A) ;绿灯亮表示允许通车(20 秒) 、红灯亮表示不允许通车(15 秒) 。 各路口由允许通车到不允许通车黄灯亮(用红灯闪烁 5 秒钟表示) ; 3用 2 位 7 段 LED 数码管上显示路口当前通行时间的倒计时。 *4各路口允许通车时间内,若有异常事件发生(用开关模拟中断信号的产生) ,则所 有灯闪烁 10 秒钟,返回原处继续。 设计报告撰写格式要求设计报告撰写格式要求:(按提供的设计报告统一格式撰写) 设计报告应包含以下内容: 设计任务与要求 总体方案与说明 硬件原理图与说明 实验电路图与说明 软件主要模块流程图 源程序清单与注释 系统调式、问题分析与解决方案; 小结与体会 附录:附录: 源程序(必须有简单注释) 使用说明 参考资料 时间安排: 12 月 24 日布置题目,确定任务、查找相关资料 12 月 25 日12 月 27 日 功能分析,硬件设计,拟定实验电路,编写程序,调试 程序、运行系统; 12 月 28 日答辩后撰写设计报告。12 月 28 日下午 4:00 前交设计报告。 指 导 教 师 签 字: 2012 年 12 月 24 日 系 主 任 签 字: 年 月 日 2 目录目录 1 需求分析.1 1.1 课程设计题目.1 1.2 设计目的.1 1.3 设计任务.1 1.4 软硬件运行环境及开发工具.2 1.4.1 软硬件运行环境.2 1.4.2 开发工具.2 2. 概要设计.2 2.1 交通灯实时控制系统设计原理及方法.2 2.1.1 设计原理.2 2.1.2 系统原理图.3 2.1.3 电路原理.3 2.1.4 设计方法.4 3 三.详细设计.4 3.1 硬件设计与软件设计.4 3.1.1 8255A 芯片.4 3.1.2 8259 芯片.5 3.2 硬件电路的设计与实现.5 3.3 软件设计.6 3.3.1 红绿灯时间控制.6 3.3.2 本实验中的中断的运用.6 4 软件主要模块流程图.7 4.1 程序总设计流程图.7 4.2 延时 1s 子程序 DELLAY1S 流程图.8 4.3 IRQ7 中断子程序流程图.9 5. 系统调试.11 5.1 系统调试.11 5.2 操作说明及运行结果.11 5.2.1 操作说明.11 3 5.2.2 运行结果.11 6. 课程设计小结.12 附录:.13 参考文献.16 4 1 1 需求分析需求分析 1.1 课程设计题目课程设计题目 交通灯实时控制系统。 伴随着社会的发展以及人们生活水平的提高,汽车的数量在不断的增加,交通的问题日益 突出,单依靠人力来指挥交通已经不可行了,所以,设计交通灯来完成这个需求就显的越加 迫切了.为了确保十字路口的行人和车辆顺利、畅通地通过,往往采用电子控制的交通信号来 进行指挥。以下就是运用数字电子设计出的交通灯:用红灯来控制支路的交通通行,用绿 灯来控制主干道的交通通行 (说明:本设计不遵循红灯停,绿灯行的交通规则,只要灯亮 就表示可以通行) 。 1.2 设计目的设计目的 1) 巩固和加深课堂所学知识; 2) 学习掌握一般软硬件的设计方法和查询、运用资料的能力; 3) 通过在 TDN 集成开发环境中对交通灯实时控制系统的设计与制作,综合应用 8253、8259、8255 芯片,深入了解和掌握利用可编程 8255A 进行控制的原理与方法; 4) 通过这次课程设计,将课本上的理论知识和实际的应用有机的结合起来,以提高分析 和解决问题的实际能力,通过对汇编语言程序代码的设计,编写,修改以提高自己实际编 程能力。 1.3 设计任务设计任务 1)任务:设计一个交通灯控制系统 要求综合运用 8259、8253、8255 芯片设计十字路口的交通信号灯控制系统。支线与 主干线允许通车 15 秒,当支线允许通车时(15 秒)中,若主干线 15 秒内已有 10 辆车到来, 则申请中断,允许主干线通车,实现无交叉点通过。如图 1-1 所示。 图 1-1 模拟通行示意图 2) 设计任务要完成实验方案论证,进行十字路口的交通信号灯控制电路设计,画出电路 原理图及实验电路图;搭建实验电路,进行软件编程、调试、运行以及使用说明文档的 建立等一整套工作任务。进行十字路口的交通信号灯控制程序设计(采用汇编语言);系统 联调,提交一个符合上述功能要求的十字路口的交通信号灯控制系统设计。 5 1.4 软硬件运行环境及开发工具软硬件运行环境及开发工具 1.4.1 软硬件运行环境软硬件运行环境 TDN88 实验平台,PC 机,导线,汇编语言编译软件。 1.4.2 开发工具开发工具 TDN86/88 教学实验系统,PC 机。 2. 概要设计 2.1 交通灯实时控制系统设计原理及方法交通灯实时控制系统设计原理及方法 2.1.1 设计原理设计原理 通过并行接口芯片 8255 和计算机的硬件连接,通过软件计时,来实现十字路口交通灯 的模拟控制,用 8259 芯片,得到 CPU 的中断响应后,提供中断类型号,从而 快速寻找到该中断源的中断服务程序的入口地址,转去执行中断服务序。 通过并行接口芯片 8255 和计算机的硬件连接,通过软件延时计数,来实现十字路口交 通灯的模拟控制。即用 D5,D4,D1,D0 亮表示车辆允许东西方向通行,D7,D6,D3,D2 亮表示 车辆允许南北方向通行。用 8259 芯片,得到 CPU 的中断响应后,提供中断类型号,从而快 速寻找到该中断源的中断服务程序的入口地址,转去执行中断服务程序。实验中: 0表示灯亮, 1表示灯灭 通过课程设计要求找出灯亮的规律: 1.东西方向绿灯亮,南北方向红灯亮,延续 20 秒。 2.20 秒钟的最后 5 秒,东西方向绿灯以频率 1HZ 闪烁 5 次,南北方向红灯亮。 3.东西方向红灯亮,南北方向绿灯亮,延 20 秒。 4.20 秒钟的最后 5 秒,南北方向绿灯以频率 1HZ 闪烁 5 次,东西方向红灯亮。 5.循环以上步骤。 6 通过分析灯亮的规律,总结出如下的功能表: 表 2-1 交通灯亮灭功能表 2.1.2 系统原理图系统原理图 系统原理图如图 2-1 所示 图 2-1 系统原理图 2.1.3 电路原理电路原理 本课题的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经 连接,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。 灯 状态 南北 红 D7 南北 红 D6 东西 红 D5 东西 红 D4 南北 绿 D3 南北 绿 D2 东西 绿 D1 东西 绿 D0 状态 1 11 0 0 1 1 0 0 状态 2 1 1 0 0 1 1 0 10 1 状态 3001 1 0 0 1 1 状态 40 0 1 10 10 1 1 1 D0 D1 D2 D3 D4 D5 D6 D7 CUP A0 A1 A9 M/IO A8 A7 A6 A5 INT D0 PA0 D1 PA1 D2 PA2 D3 PA3 D4 PA4 D5 PA5 D6 PA6 D7 PA7 8255 PB0 A0 . A1 . PB7 PC0 CS . . PC7 G1 G2A G2B C Y4 B A D1 D2 D3 D4 D5 D6 D7 LED 七段 码显示器 LED 七段 码显示器 8259 INTA IRQ7 KK1 A2 7 硬件电路由 R-S 触发器电路、发光二极管模块、8255 可编程并行接口模块和紧急中断模块 8259 组成。 2.1.4 设计方法设计方法 通过分析 8255、8259 各端口地址,设计合理的地址译码电路。8259 的地址为 20H、21H, 8255 的端口地址为 60H、61H、62H、63H。红、绿灯分别接在 8255 的 A 口 的高四位和低四位端口,PA0PA7 分别连接到 D0D7 来控制 8 个灯的亮灭,用以模拟 交通灯。B 口和 C 口接两个两片数码管显示器进行倒计时。用开关模拟中断信号的产生, 则要用到 8259 芯片。8259 的中断请求输入管脚 IRQ7 与 KK1 相连。每按动一次 KK1,产 生一次中断请求信号。当 8259 接收到中断请求信号之后,便开始执行中断,实现 8 个灯的 闪烁。 系统的程序设计最关键的就是延时程序的编写,因为要在延时的同时用两个 LED 数码管 同步显示倒计数,这给程序设计带来了难题。现提出如下解决方案:在进入每个状态时, 给寄存器 CX 置初值表示要倒计时的时间,然后开始把 CX 循环减 1,直到 0 进入下一个状 态。在 CX 减 1 循环中每循环一次,调用延时 1s 的子程序 DELLAY1S,这样假如在状态 0 给 CX 置初值 20,则会延时 20s;如果在每次调用的延时 1s 的子程序 DELLAY1S 中,再调用显 示 CX 的值的子程序 LED1 给 2 个 LED 数码管显示,就实现了与延时同步的倒计数显示。这 样就实现了延时与倒计数的同步。 程序主要是由主程序、延时 1s 子程序 DELLAY1S、LED 显示 CX 子程序 LED1、中断服务 程序 IRQ7 组成。在主程序中包括对 8255 初始化、中断程序入口地址的填写、中断 IRQ7 开 放,各种状态的依次处理。 3. 详细设计详细设计 3.1 硬件设计硬件设计与软件设计与软件设计 3.1.1 8255A 芯片芯片 8255A 芯片是一种通用的可编程并行 I/O 接口芯片。它包含有 3 个 8 位端口,称为 A 口,B 口,C 口。其中 A 口包含 8 个 I/O 引脚(PA0PA7),B 口包含 8 个 I/O 引脚 (PB0PB7), C 口包含 8 个 I/O 引脚(PC0PC7) 。该芯片有 3 种工作方式,称为 0 方式, 1 方式,2 方式。 本实验选取 8259A 的 A 口、B 口、C 口都作为输出端口,工作方式选 0 方式。所以 8259A 的方式命令字为 B,即 80H。端口地址为 60H63H。 其初始化编程为: MOV AL,B .OUT 63H,AL 8 图 3-1 系统中的 8255A 芯片 3.1.2 8259 芯片芯片 8259A 芯片内部含有中断请求寄存器,用来存放由外部输入的中断请求信号 IR7IR0。当某个输入端为高电平时,该寄存器相应位置“1” 。本实验中需要从 IR7请求中 断,因此采用中断屏蔽方式,将 IR6IR0都设为高电平,即将寄存器 IR6IR0置“1” 。所 以其方式命令字为 B,即 7FH。端口地址为 20H21H 其初始化编程为: MOV AX,0000H MOV DS,AX ;数据段清零 MOV AX,OFFSET IRQ7 ;装入中断程序入口地址 MOV SI,003CH MOV SI,AX MOV AX,CS MOV SI,003EH MOV SI,AX POP DS IN AL,21H ;读中断屏蔽寄存器 IMR AND AL,7FH OUT 21H,AL ;开放 IRQ7 STI ;开中断 3.2 硬件电路的设计与实现硬件电路的设计与实现 9 图 3-2 控制中断实验图 图 3-3 硬件设计实验图 3.3 软件设计软件设计 3.3.1 红绿灯时间控制红绿灯时间控制 本实验中有 15 秒和 5 秒的延时,我们先编写一个一秒的延时程序,然后再 分别调用这个一秒的延时子程序,MOV CX,25 中的 cx 控制时间,延时一秒子程 序如下: DELLAY1S: PUSH AX POP AX PUSH BX LOOP D0 PUSH CX POP CX CALL LED1 POP BX MOV CX,0FFFFH POP AX D0:PUSH AX RET 3.3.2 本实验中的中断的运用本实验中的中断的运用 MOV AX,OFFSET IRQ7;取中断程序入口地址(相对地址) 本实验中使用的是中断请求输入 IRQ7,当你按 KK1 时,执行中断程序,灯 会闪烁,程序如下 IRQ7: OUT 60H,AL MOV AL,20H ;结束中断 CALL DELLAY1S OUT 20H,AL NOT AL IRET DEC BX JNZ IR7 POP CX POP BX POP AX 10 4 4 软件主要模块流程图软件主要模块流程图 4.1 程序总设计流程图程序总设计流程图 图 4-1 程序流程图 Y N Y N Y Y Y Y N N N 8255 初始化 装入中断向量 8259 初始化 D0、D1 绿灯亮,D4、D5 红灯亮 DDD D2、D3 绿灯亮,D6、D7 红灯亮 D0、D1 绿灯闪烁 延时 15S 是否 到 延时 5S 是否到 延时 15S 是否 到 D0、D1 绿灯闪烁 延时 5S 是否到 开始 结束 11 4.2 延时延时 1s 子程序子程序 DELLAY1S 流程图流程图 此延时子程序不光实现延时,还调用了 LED1 子程序显示了 CX 的内容, 实现延时的同时倒计数的显示。具体流程如下: 图 4-2 实验延时 1 秒流程图 子程序如下: LED1:PUSH CX ;数码管显示数字 PUSH AX MOV AX,CX MOV BL,0AH MOV AH,0 DIV BL ;商放在 AL,余数放在 AH MOV BX,OFFSET TAB1;取段码表首地址 XLAT OUT 61H,AL;输出显示 MOV CX,0600H ADD2:LOOP ADD2 MOV AL,AH MOV BX,OFFSET TAB1 XLAT OUT 62H,AL 开始 返回 AX,BX,CX,进栈 调用 LED1 子程序在 LED 中显示 CX 的内容 AX 进栈,AX 出栈,CX-1 CX=0FFFH CX= =0? AX,BX,CX 出栈 12 MOV CX,0600H ADD3:LOOP ADD3 POP AX POP CX RET 4.3 IRQ7 中断子程序流程图中断子程序流程图 IRQ7 中断子程序是实现所有灯闪烁 10s 就返回的功能。具体流程就如下。 图 4-3 中断服务程序流程图 中断实现代码如下: IRQ7:PUSH AX ;外中断服务子程序,所有灯闪 10 秒 PUSH BX PUSH CX MOV CX,0 MOV AL,0FFH MOV BX,0AH IR7: OUT 60H,AL 开始 中断结束、返 回 AX,BX,CX 进栈 CX 清零,调用 1s 延时子程序时 LED 数码管显 示 00 置 AL=0FFH,BX=0AH 从 C 口输出 AL 值,用于把 灯灭掉(AL=00H)或全点亮 (AL=0FFH) 调用 1s 延时子程序 AL 取反,BX-1 判断 BX 是否为 0 AX,BX,CX 出栈 否 是 13 CALL DELLAY1S NOT AL DEC BX JNZ IR7 POP CX POP BX POP AX MOV AL,20H ;结束中断 OUT 20H,AL IRET 14 5.5. 系统调试系统调试 5.1 系统调试系统调试 1.使用串行通讯现将实验系统与 PC 微机相连 2.正确搭接好相关实验电路 3.接通电源,双击试验系统快捷方式,开启试验系统如下图 4.点击菜单栏“文件”按钮,选择建新文件。即可开始输入源程序。输入程序后,点击保 存按钮,进行保存。 5.点击编译按钮,对源程序进行汇编,生成目标文件(*.obj) 。汇编信息显示与屏幕,若出 现错误,修改源程序,直至正确。 6.汇编无误后,对汇编生成的*.Obj 文件进行链接,链接信息显示于屏幕上,生成*。EXE 可执行文件。 7 点击加载按钮,加载*.EXE 程序。屏幕显示信息。 8.加载成功, RUN,运行程序。 9.开始时候东西方向绿灯亮,南北方向红灯亮 20 秒,最后 5 秒时候绿灯会闪烁。 南北方向绿灯亮,东西方向红灯亮 20 秒,最后 5 秒时候绿灯会闪烁。 10.在 9 过程中,若用户按下 KK1,则会出现 8 个灯一起闪烁 10 秒,然后回到按之前状态, 继续循环步骤 9 中过程。 5.2 操作说明及运行结果操作说明及运行结果 5.2.1 操作说明操作说明 1. 按实验接线图接线。 2. 输入程序并检查无误,经汇编,连接后装入系统。 3. 运行程序。观察灯的变化,将 KK1 按 1 下,会出现红绿灯交替闪烁 10 秒 5.2.2 运行结果运行结果 D0,D1 亮表示东西方向绿灯亮准行, D4,D5 亮表示南北方向红灯亮,持续 20 秒;当 准行时间到最后 5 秒时,准行方向绿灯闪烁。D2,D3 亮表示南北方向绿灯亮准行,D6,D7 表示东西方向红灯亮持续时间 20 秒,当准行时间到最后 5 秒时,准行方向绿灯闪烁。此过 程课程设计要求相符合。 15 6.6. 课程设计小结课程设计小结 通过这次课程设计,我对 8255、8259、8253 这三种芯片有了进一步的了解。知道了它 们在实际应用中的功能以及它们初始化的方法。 这次课程设计从需求分析到设计,是一个完整的体系,这提高了我分析问题的能力。 当遇到问题时,回到书本,查找实际问题所需的理论知识,将理论和实际结合起来,以得 到问题的解,这提高了我解决实际问题的能力。 其实课程设计和真正的实际需求还是有些差别的,比如我最开始就是以实际需求来分 析灯的编码的,但是花了很长时间,最后发现 8 个灯根本实现不了实际生活中的交通灯的 变化方式。所以最后用老师告诉的编码方式,才得到正确结果。 本设计还有一个缺陷就是在本设计中,那个 1 秒的时间间隔只是一个模拟的数字,并 不是准确的 1 秒。但是该是如何使用 8253 分频实现真正 1 秒的时间间隔,这还有待改进。 在本次课程设计中我深有感触的是上学期学的汇编指令都不怎么记得了,这对于接口 编程来说实在是个巨大的 Bug。指令不记得当然写程序就慢了!以后会复习一下 8086 汇编 指令的。 设计者:设计者: 日日 期:期: 2012 年年 12 月月 28 日日 16 附录:附录: DATA SEGMENT TAB1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX CLI MOV AL,80H;8255A 初始化,A,B,C 作为输出口 OUT 63H,AL PUSH DS MOV AX,0000H MOV DS,AX;数据段清零 MOV AX,OFFSET IRQ7;取中断程序入口地址(相对地址) MOV SI,003CH;填 8259 中断 7 中断矢量 MOV SI,AX;填偏移量矢量 MOV AX,CS;段地址 CS MOV SI,003EH MOV SI,AX POP DS IN AL,21H;读 IMR AND AL,7FH;允许 IR7 中断 OUT 21H,AL STI;开中断 S0:MOV AL,B;状态 0,东西方向通车 15s,南北方向禁止通行 OUT 60H,AL MOV CX,15 ;延时 25s T0:CALL DELLAY1S LOOP T0 S1:MOV AL,B ;状态 1,东西方向允许通车 5s 闪灯,南北方向禁止通行 MOV CX,05H OUT 60H,AL CALL DELLAY1S DEC CX T1:MOV AL,B ;东西方向 5s 闪灯,每秒亮灭一次 OUT 60H,AL CALL DELLAY1S 17 MOV AL,B OUT 60H,AL CALL DELLAY1S MOV AL,B OUT 60H,AL CALL DELLAY1S DEC CX MOV AL,B OUT 60H,AL CALL DELLAY1S DEC CX JNZ T1 S2:MOV AL,B ;状态 2,南北方向通车 15s,东西方向禁止通行 OUT 60H,AL MOV CX,15 ;延时 15s T2:CALL DELLAY1S LOOP T2 S3:MOV AL,B ;状态 3,南北方向允许通车 5s 闪灯,东西方向禁止通行 MOV CX,05H OUT 60H,AL CALL DELLAY1S DEC CX T3:MOV AL,B ;南北方向 5s 闪灯,每秒亮灭一次 OUT 60H,AL CALL DELLAY1S MOV AL,B OUT 60H,AL CALL DELLAY1S DEC CX MOV AL,B OUT 60H,AL CALL DELLAY1S MOV AL,B OUT 60H,AL CALL DELLAY1S DEC CX JNZ T3 JMP S0 DELLAY1S: ; 延时 1s 的子程序,实现延时 1s 并在数码管中显示 CX 中的内容 PUSH AX PUSH BX PUSH CX CAL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小区车位租赁合同15篇
- 汉字字谜课件
- 汉字基础知识培训方案课件
- T-GRM 114-2025 富油煤原位热解术语
- DB4403-T 369-2023 大型活动温室气体排放核算和报告指南
- 2024年秋新北师大版数学一年级上册教学课件 第一单元 生活中的数 1我上学啦
- 公路应急储备设备检修方案
- 消防安全培训实施方案
- 建筑工程项目基坑支护与加固方案
- 机电设备安装技术创新应用方案
- 全国托育职业技能竞赛理论考试题及答案
- HSK标准教程1-第一课lesson1
- 2022新能源光伏电站电力监控系统安全防护实施方案
- 新课标人教版七年级数学上册教案全册
- 人教版小学英语3-6年级单词(带音标)
- 酒店消防安全管理制度(2022版)
- 2024环氧磨石地坪施工技术规程
- 人教部编七年级语文全册专项知识点梳理归纳字词、文言文、古诗词
- 2022年版初中物理课程标准解读-课件
- 输配电绝缘子维护与更换
- 幼儿园教师读《让儿童的学习看得见》有感
评论
0/150
提交评论