工作总结

交通灯实验报告

时间:2021-10-23 12:37:40  来源:网友投稿

 微机原理课程设计报告 新疆农业大学

 计算机与信息工程学院

 课程题目:

  微机原理与几口技术

 班级: 电科 112

 指导老师: 张婧婧

  姓名:

 刘建国

  学号:

 114633222

  基于 8086 的交通信号控制器的设计报告

 摘要: 这次课程设计,我们的任务就是:基于 8086 的交通信号控制器的设计 。8086系统就是我们这个学期学习的主线方向,我们将在 8086 系统的基础上完成交通信号控制器的设计,其具体功能就是:1、显示十字路口东西、南北 2 个方向的红、黄、绿的指示状态。2、实现正常的倒计时功能。用 2 组数码管作为东西与南北方向的倒计时显示,显示时间为红灯 30s,绿灯 50s,黄灯 5s。3、按 S1 键能实现特殊的功能,显示倒计时的 2 组数码管闪烁,计数器停止计数并保持在原来的状态;东西、南北路口均显示红灯状态;特殊状态解除后能继续计数。4、按 S2 键实现总体清零功能。计数器由初始状态计数,对应的指示灯亮。

 关键词: : 8086 系统

 74154

  74HC373 8255A

 LED 交通灯

 ( 一) 1)

 设计目的 交通信号控制灯就是日常交通不可缺少的工具,涉及到人们的人生与财产安全,在道路行驶上起了相当关键的作用,因而设计交通信号控制灯就是非常有意义的。同时我们这次设计的课题就就是“基于 8086 交通信号控制器的设计”,基于以上目的,我利用一周时间精心设计出课题要求的交通灯。

 2)

 设计思想 在此次设计过程中,我们选择了数码管、发光二极管、74LS138、74LS373、8255A 与 8086 来控制实现交通灯按设计要求工作。

 3) 硬件部分 1 、LED 设计说明: 用 LED 作为倒计时时间的显示器, LED 在亮度、功耗、可视角度与刷新速率等方面,都更具优势。LED 与 LCD 的功耗比大约为 10:1,利用 LED 技术,可以制造出比 LCD 更薄、更亮、更清晰的显示器,LED 就是发光二极管属于二极管的一种,LCD 就是液晶显示器,两者相差太多、但就是用 LED 的点阵也能组成显示器,适用于户外大屏幕显示,分辨率较低,LED 与 LCD 具体比较如下图 表 1-1:LCD 与 LED 的比较

 LCD

 液晶显示器,通过液晶与彩色过滤器过滤光源,在平面面板上产生图象,具有零辐射,低耗能,散热小,纤薄轻巧,精确还原图象,显示字符锐利,屏幕调节方便,可视角度小,响应时间过慢,亮度可对比度低等特点 LED 发光二极管,就是由发光二极管排列组成的显示器件,它采用低电压扫描技术,具有耗电少,使用寿命长,成本低,亮度高,故障少,视角大,视角大,可视距离远的特点 通过分析与对比,LED 显示器要较优于 LCD 显示器,因此本实验选择 LED 2 、8255 设计说明: 用 8255A 可编程并行接口芯片的 A、B、C 三口作为红、绿、黄交通灯的控制输入口。8255 有三个并行输入输出口,可以方便的对三种颜色的交通灯进行很好的控制。解决方案就是:PB0~PB7 接模拟灯二极管,PA0~PA7 接 7 段二极管的段选,PC0~PC3 接 7 段二极管的位选,PC4~PC7 与开关相连,处理器芯片集成芯片卡PCI 卡连接,用于完成硬件方面的实验正常通信。其芯片比较说明:如下表: 表 1-2:8255A 与 8251 芯片的比较 比较内容 8255A 芯片 8251A 芯片 通信方式 并行 串行 数据传送方式 数据的各位同时传送, 数据一位一位地顺序传送,, 内部组成 8155 内有 256 字节 RAM 与一个定时计数器。

 8255 没有 特点 通信线路较 8251 复杂 通信线路简单,利用电话或电报线路就可实现通信 输入/输出 编程较为灵活 编程较 8255 不够灵活 应用范围 使用十分方便,传输距离近,成本较高 传输距离远,使用不方便,但传输速度慢,降低成本 , 初始化特点 8255A 直接位清 0/置 1 功能简化了接口控制 8251 在初始化时,必须重新设置模式寄存器的格式、 4) 、软件部分 根据硬件需求采用 8255A 芯片,为实现对通信的控制,采用汇编语言,分别编程控制 8255 的工作方式,在编程时应考虑到状态的转换采用查询方式控制,根据需求分析可采用 8255 的方式 0 下工作,具体设置如下: 硬件连接说明:8255A 芯片的 PA、PB、PC 三口的工作方式为方式 0,将 8255的 PB0~PB5 接红绿灯用以模拟交通灯的变化,PA0~PA7 接 7 段 LED 灯的段选码,,完成 LED 显示器的段选,PC0~PC3 接 LED 显示器的位选码用以完成位选,PC4-PC7接开关,以完成初值接收。初始化 8255 后。利用汇编语言编写访问控制程序,控制绿灯的显示倒记时间,它与红灯的显示时间就是相同的,编写控制程序控制黄灯的闪烁时间,当绿灯的显示时间结束后切换到黄灯,再切换到红灯,如此循环下去。

  ( 二) 、选择芯片 8255A 1) 、8255A 在本实验中的作用: 通过 8255A 的三个 I/O 端口 A 口、B 口、C 口与红、绿、黄二极管连接起来控制交通灯的规律性变化。

 2) 、8255 A的功能分析: PA、PB、PC 三口均工作在方式0状态。:PB0~PB1 接红灯,PB2~PB3 接黄灯,PB4~PB5 接绿灯;PA0~PA7 作为段选码;PC0~PC3 作为位选码。我们采用的就是将 PC 口分成两部分使用,PC0-PC3 作为位选码,PC4-PC7 作为输入口,接收开关输入的初值信息。将在用 8255A前首先要对它进行初始化,设置它的方式选择控制字。

 3) 、8255 A工作方式0说明: 方式 0 的工作特点:这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。其功能为: (1)两个 8 位通道:通道 A、B。两个四位通道:通道 C 高 4 位与低四位; (2)任何一个通道可以作输入/输出;(3)输出就是锁存的; (4)输入就是不锁存的; (5)在方式 0 时各个通道的输入/输出可有 16 种不同的组合。

 方式0的使用场合:同步传送就是在外设控制过程的各种动作时间为固定,且已知的条件下使用的。因此,传送中不要应答信号。输入时,执行程序只要给出IN 指令;而输出时,也只给出 OUT 指令,就能实现数据的输入或输出。优点就是程序简单,接口的硬件开销小。

 查询式传输时,要先查询一个外设的状态,当该状态表示外设已准备好时,方能开始查询传输,否则 CPU 将继续查询。但在方式 0,没有规定固定的应答信号,所以,这时将通道 A、B 作为数据通道,把通道 C 的 4 个位(高 4 位或低 4 位)规定为输出口,用来输出一些控制信号,而把通道 C 的另外 4 个位规定为输入口,用来输入外设的状态。这样利用通道 C 来配合通道 A 与 B 的输入/输出操作。

 4) 、8255 A方式选择控制字说明: 控制字格式如图 1-2:

 图 1-2:8255A 芯片的控制字格式

 参数说明:D 7 =1工作方式控制标志。D 6 D 5 组合设定A口工作方式:00~方式0、01~方式1、10/11~方式2。D 4 设定A口的输入/输出,D 4 =1

 输入D 4 =0输出。D 3 C口高位输入/输出选择,D 3 =1输入D 3 =0输出。D 2B口工作方式选择,D 2 =1方式1;D 2 =0方式0。D 1 B口输入/输出选择D 1=1输入D 1 =0输出。D 0 设定C口低位输入/输出D 0 =1输入D 0 =0输出。

 5) 、 8255 A技术参数: :

 主要参数说明:8255A 工作最大电流为 120MA,VCC=-5V~+5V,I(DAR)工作电流最大为 4MA。8255 的输出电压不高,连接到 LED 时,最好加入一个驱动器起到电流放大的作用,其具体参数值说明如表 3-1。

 表 1-3:8255A 技术参数说明 8255A 技术参数 测试条件 规范值 单位 大 小 输入低电平电压V IL

  0、8 -0、5 V 输入高电平电压V IH

  V CC

 2、0 V 输出低电平电压V OL ( 数据端口 ) I OL =2、5MA

 0、45

 V 输出低电平电压V OL ( 外围端口 ) I OL =1、7MA

 0、45

 V 输出高电平电压V OH ( 数据端口 ) I OR =-400MA

  2、4 V 输出高电平电压V OH ( 外围端口 ) I OH =-200MA

  2、4 V 达林顿驱动电流I OAR

  -4、0 -1、0 mA 电源电流

  I CC

  120

 mA 输入负载电流 I IL

 I IN =0~V CC

 I/O

 mA 输出浮动电流 I OF

 V OR =0、45~V CC

 I/O

 mA 6)、 、A 8255A 的逻辑图

  图 1-3: 8255A 内部逻辑图 0 1 1 0 1 1 0 1 5 6dH 0 1 1 1 1 1 0 1 6 7dH 0 0 0 0 0 1 1 1 7 07H 0 1 1 1 1 1 1 1 8 7fH

 0 1 1 0 1 1 1 1 9 6fH ( 三) 、 硬件总逻辑图及其说明 1) 、硬件原理说明: 本设计以 PROTUES 实验仿真软件提供的最实用、新颖的实验系统与 EMU8086提供的汇编环境进行课程软件设计的,在课程设计中主要利用了 PROTUES 软件提供的 8255A 芯片、74LS138、74LS373、7 段 LED 显示器以及红绿灯 LED 显示二极管,课程设计时完成编程调试的就是 emu8086 环境。

 2) 、硬件连接说明: 8255A 芯片的 PA、PB、PC 三口的工作方式为方式 0,将 8255 的 PB0~PB7 接红绿灯用以模拟交通灯的变化,PA0~PA7 接 7 段 LED 灯的段选码完成 LED 显示器的段选,P74LC0~PC3 接 LED 显示器的位选码用以完成位选。将 8255A 芯片的片选信号 CS 与 74LS138 的 CS1 相连接来决定各端口的初始地址。8255A 芯片的 PB 口中PB0~PB7与红绿黄灯相连接,用来实现控制交通灯的变化规律;8255A的PC口中的PC0~PC3 与 7 段 LED 灯的位选码相连接,用来实现选择绿灯倒计时时的 7 段 LED灯的位置选择,8255A 芯片的 PA 口中的 PA0~PA7 与 7 段 LED 灯的段选码相连接,用来实现 7 段 LED 灯的段选码选择。LED 灯管的 a、b、c、d、e、f、g、dp 做为段选来显示倒计时数据。

 图 1-5: 硬件总连接图

 ( 四) 、控制程序设计 1) 控制程序设计思路说明: 首先,明确交通灯的变化规律,假设在一个十字路口,其中东西方向,南北方向,工作方式如下:将红黄绿灯按照红灯停,绿等行,黄灯闪烁为缓冲时间的原则进行通车。倒计时将可以由用户自由设定,用 8255 的 PB,PC 口来连接红黄绿灯电路板,而 PA 口连接 LED 显示管来计数倒计时。开始时初始化东西南北方向全为红灯,然后东西方向绿灯亮,进入倒计时默认值 50 秒,结束后东西方向绿灯闪烁 5次,变黄灯亮 5 秒,然后红灯亮;南北方向绿灯亮,此时南北方向进入倒计时,倒计时时间可以在开关口提前设定本次倒计时时间。结束后绿灯闪烁 5 秒后,变黄灯亮 5 秒,然后红灯亮,东西方向绿灯亮,如此循环下去。

 其次,主程序的设计思路:首先初始化 8255A 的芯片的控制字格式与状态字格式,其次设置交通灯开始运行的初始状态并做相应的延时便于观察,再次调用子程序对东西绿灯的倒计时时间,调用子程序显示绿灯的倒计时,后进行查表选择相应的 LED 灯的段选码,使相应的灯亮,显示东西绿灯交通灯变化,然后设置绿灯的闪烁,以及黄灯的亮持续,再次就就是查表设置转换成南北绿灯的亮,同时调用子程序设置南北绿灯的倒计时时间,后进行查表选择相应的 LED 灯的段选码,使相应的灯亮,显示南北绿灯交通灯变化,然后做南北绿灯的闪烁,与黄灯的亮持续,最后做主程序的循环,利用无条件跳转指令。

 2) 、 程序流程图

 

 图 1-6:主控制程序

 再次,也设计了一个到计时显示子程序,用来显示绿灯的到计时时间,设计思路: 首先要保存进入到计时子程序时的断点保存,以保证能够子程序结束能够正常返回主程序,其次设置 LED 灯的秒数跳的快慢,使其运行结果便于观察,再次设置程序分别显示到计时 LED 灯的秒数的个位与十位,在显示秒数的个位与十位时要做秒数的个位与十位计数就是否到零的判断,与此同时也要做秒数的个位与十位的断选码指示器的移动,最后做恢复断点与子程序的返回。其控制流程图:

  N

 N 图 1-7:倒计时显示程序

 最后,还设计了两个延时程序,一个就是绿灯闪烁 3 次时间的延时 DL500 子程序,一个就是延时黄灯亮的时间 DELAY 子程序;DL500 子程序的设计思路利用了设备提供的软中断实现的延时,其控制流程如(流程图:1-7);DELAY 子程序的设计利用的就是多次循环空操作实现,思路首先保存断点设置空操作的次数,做判断循环就是否该结束,然后恢复断点,返回主程序,其控制流程如下

 图 1-8:500ms 延时程

 N

 图 1-9:DELAY 延时程序

 3) 、控制程序 IO2 EQU 20H CODE SEGMENT "CODE"

 ASSUME CS:CODE,DS:CODE START:

 MOV AX,CODE

 MOV DS,AX

 MOV AL,10000000B

 MOV DX,IO2+6

 OUT DX,AL

 MOV DX,IO2+2

 MOV AL,00100100B

 ;黄灯亮

 OUT DX,AL

 MOV BX,100 WAIT1:

 MOV CX,882

 LOOP $

 DEC BX

 JNZ WAIT1

 MOV AL,00000000B

 ;黄灯灭

 OUT DX,AL

 MOV BX,100 WAIT2:

 MOV CX,882

 LOOP $

 DEC BX

 JNZ WAIT2

 MOV AL,00100100B ;黄灯亮

  OUT DX,AL

 MOV BX,200 WAIT3:

 MOV CX,882

 LOOP $

 DEC BX

 JNZ WAIT3 L: MOV AL,00010001B ;红灯,绿灯亮

 OUT DX,AL

 MOV BX,400 WAIT4:

 MOV CX,882

 LOOP $

 DEC BX

 JNZ WAIT4

 MOV AL,00010100B ;红灯,黄灯亮

 OUT DX,AL

 MOV BX,100 WAIT5:

 MOV CX,882

 LOOP $

 DEC BX

 JNZ WAIT5

  MOV AL,00010000B ;红灯亮

 OUT DX,AL

  MOV BX,100 WAIT6:

 MOV CX,882

 LOOP $

 DEC BX

 JNZ WAIT6

 MOV AL,00001010B ;红灯、绿灯亮

 OUT DX,AL

 MOV BX,100 WAIT7:

 MOV CX,882

 LOOP $

 DEC BX

 JNZ WAIT7

 MOV AL,00100010B ;绿灯、黄灯亮

 OUT DX,AL

 MOV BX,400 WAIT8:

 MOV CX,882

 LOOP $

 DEC BX

 JNZ WAIT8

 MOV AL,00000010B ;红灯亮

 OUT DX,AL

 MOV BX,100

 WAIT9:

 MOV CX,882

 LOOP $

 DEC BX

 JNZ WAIT9

 JMP L CODE ENDS

 END START ( 五) 、心得体会: 通过此次模拟实验设计,加深了对芯片、8086 以及 8255A 的理解,对 8255A芯片的 PA 口、PB 口、PC 口的初始化设计有了更好的了解,同时在对 8255A 芯片的工作方式选择,有了更好的认识。通过实验的硬件连接,使我认识到实验时独自动手能力的重要性,也使我们意识到我们的动手能力的欠缺,使我们认识到在以后的学习与其她工作时应对独自动手能力的培养。在课本上学得都就是些理论知识,通过本次的实际操作,更加锻炼了我们对所学知识的认知应用能力,对 8255A芯片的编程的更为直观的应用理解。

 经过两个星期的设计与调试,我们认为此程序段虽然说比较通俗易懂,但这也存着很多的不足,经过对程序与设计的认真思考,我们对控制程序做了如下的改进设想:对东西与南北的绿灯倒计时初值重装时可以采用同一个子程序,一个修改思想,就是在初值重装时可以利用小键盘来进行手动设置,另一个改进思想就是在控制程序中加入紧急情况的处理程序,既就是要在紧急情况发生时采用中断来完成,但就是由于我们的能力有限,在本次课程设计并没有实现这些功能。

 在设计结束之后,我们也对程序进行了认真的思考。我们认为此程序段虽然说比较通俗易懂,但这也存着很多的不足,经过对程序与设计的认真思考,我们对控制程序做了如下的改进设想:在控制程序中加入紧急情况的处理程序,既就是要在紧急情况发生时采用中断来完成,但就是由于我们的能力有限,在本次课程设计并没有实现这些功能。不过通过本次课程设计,我们对 8086 不再感觉就是那么难懂,与对程序控制硬件的理解,此次实验不但提高了我们的实践能力与理论水平,而且对于我们认识掌握各种操作技巧具有重大意义,使我们的综合动手能力得到了很大的提高!

 通过此次课程设计,发现自己很多地方不足。刚开始拿到题目时自认为与简单,可仔细想象都不能很明确的说出交通灯的具体变化规则,可见对周边那么常见事物的忽视,让我们认识到要想在各个方面做的更好必须用心对待身边的每一件事,我们认为做实验,首先实验态度要端正,正确对待任何一个小的程序,有耐心,一步一步做下去,不断完善,切不可冒进,编程更需要脚踏实地,逐个调试子程序。在这方面星研给我们提供了良好的条件,遇到程序问题时我们可以采用单步调试,查瞧寄存器里的数值,找出到底就是哪步出现了问题,继而解决问题,实现预期功能,从而圆满的完成此次实践活动、

推荐访问: 交通灯 实验 报告

版权所有:精诚范文网 2010-2024 未经授权禁止复制或建立镜像[精诚范文网]所有资源完全免费共享

Powered by 精诚范文网 © All Rights Reserved.。 蜀ICP备20022334号