交通信号灯的控制(微机原理课程设计)
微机原理交通信号灯课程设计

微机原理交通信号灯课程设计LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】课程设计任务书课题名称:基于8086/8088的交通信号灯设计完成期限:2015年06月22日至 2015年06月28日院系名称机械工程与自动化学院指导教师专业班级学生姓名院系课程设计(论文)工作领导小组组长签字一、课题训练内容设计一个基于8086/8088微型计算机的一个交通信号灯控制系统,要求能完成基本的交通灯控制,如红、绿、黄三种灯的定时交替点亮与熄灭;能提供行人通过时的临时信号修改;能提供当时当地的温度、湿度信息;提供基本的键盘输入。
要求学生了解8086/8088微型计算机控制系统的基本设计方法与思路,能独立查阅资料并汇总,具备一定的控制系统设计能力,掌握绘制电路原理图的能力,能编写一定难度的汇编程序并调试。
二、设计(论文)任务和要求(包括说明书、程序、图纸、等具体要求)1. 设计一个基于8086/8088微型计算机的一个交通信号灯控制系,要求使用如下器件:8086、8259、8253、8255、ADC0809、温度传感器(选择数字式或模拟式均可)和湿度传感器(选择数字式或模拟式均可)、健盘(5按键,包括4个路口紧急按键和1个复位按键);(20分)2. 交通灯的亮、灭情况如下:东、西两个相对路口红灯亮12s,南、北两个路口绿灯亮6s,后转为黄灯亮6s;南、北两个相对路口红灯亮12s,东、西两个路口绿灯亮6s,后转为黄灯亮6s;(10分)3. 每个路口设一个紧急按键,可以中断当前的交通灯状态,使当前路口为绿灯,经12s后恢复原来的工作状态;(20分)4. 使用8253提供时间定时,每6s读入1次温、湿度;(20分)5. 说明书正文不少于10页,小4号宋体,倍行距,正文不包含程序;(30分)6. 提供完整的电路原理图并给出每个外设的地址(电路图必需是打印稿);(50分)7. 提供软件流程图与完整的程序;(50分)8. 按要求时间提交课程设计。
微机型交通信号灯课程设计

微机型交通信号灯课程设计1序论:1.1引言当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
1.2、设计要求(1)要求设计一个十字路口的交通灯动作(2)增加昼夜功能;24:00~6:00所有黄灯闪烁。
1.3、此次设计研究的主要内容应解决的问题(1)进行硬件的设计,主要是整个系统的电路图的绘制;(2)根据电路图对电路板进行焊接;(3)进行软件设计,根据要求编写控制系统的控制程序和监控程序;2单片机及主要芯片简介2.1 芯片简介2.1.1 MSC-51芯片简介Intel 公司推出的80C51 是MCS-51 系列单片机中以CHMOS 为生产工艺的一个典型产品;其它厂商以8051 为基核开发出的CMOS 工艺单片机产品统称为80C51系列。
80C51单片机的结构框图如图下所示可以看出,在一块芯片上集成了一个微型计算机的主要部件,它包括以下几部分:(1)8 位CPU 1 个。
微机原理课程设计_十字路口交通灯控制器

一、设计题目:十字路口交通灯控制器二、设计要求:通过对红绿黄LED发光二极管的控制,熟练掌握8255A可编程并行接口的编程方法。
编写程序控制8255A可编程并行接口芯片,使实验台上的红、绿、黄发光二极管按照十字路口交通信号灯的燃灭规律发光。
三、硬件方案:(一)设计原理:通过8255A并口来控制LED发光二极管的亮灭。
A口控制红灯,B口控制黄灯,C口控制绿灯。
输出为0则亮,输出为1则灭。
用8253定时来控制变换时间。
设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始态为4个路口的红灯全亮。
之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。
延迟30秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁(1HZ)。
闪烁5次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。
延迟30秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。
闪烁5次后,再切换到1、3路口方向。
之后,重复上述过程。
要求使用可编程并行接口8255,8088CPU,双色灯,PC机等实现。
(二).部分所使用的芯片极其原理:(1)8255的基本功能:Intel公司生产的可编程并行接口芯片8255A已广泛应用于实际工程中,例如8255A与A/D、D/A配合构成数据采集系统,通过8255A连接的两个或多个系统构成相互之间的通信,系统与外设之间通过8255A交换信息,等等,所有这些系统都将8255A用作为并行接口。
8255A为一可编程的通用接口芯片。
它有三个数据端口A、B、C,每个端口为8位,并均可设成输入和输出方式,但各个端口仍有差异:端口A(PA0~PA7):8位数据输出锁存/缓冲器,8位数据输入锁存器;端口B(PB0~PB7):8位数据I/O锁存/缓冲器,8位数据输入缓冲器;端口C(PC0~PC7):8位输出锁存/缓冲器,8位输入缓冲器(输入时没有锁存);在模式控制下这个端口又可以分成两个4位的端口,它们可单独用作为输出控制和状态输入。
微机原理课程设计说明(交通灯)

2、有急救车通过时:(用中断实现)
两个方向的交通灯全为红(10S),急救车通过后恢 复正常信号。
3、 制作交通灯控制硬件电路板,编写软件
在XL1000-2000仿真仪实现交通信号灯控制。
(二)提高部分:实现智能交通灯控制
1、考虑左转灯控制
2、红绿灯点亮时间用键盘设定,用数码管
减“1”操作显示时间变化。。
附录:1、kerl-uvision集成调试软件的操作
操作步骤:
(1)双击桌面上的UV2快捷图标,启动软件。 (2)点击P工程 N新建工程 输入文件名并选择 存入的盘(如E:)点击保存。出现CPU屏幕,选Atmel AT89C51 点确定。屏幕左上方出现图标目标1, 原则上一个程序可建一个工程。 (3)点击文件 新建文件 出现汇编语言输入区。 输入汇编语言程序,点击文件中的保存,输入:程序 名.ASM 并选择存入的盘(如E:)点击保存。(输入的程 序名一般不超过6个字母数字,以字母打头)
③为了简化操作步骤,第一次使用时, 应当确认一 下软件的设置。首先点击下图的“设置”对话框在 自动编程的选项中选择: “擦除” “写入”“运 行目标板” (下图打钩的地方)然后点确定。由于 一般情况下,检测芯片,查空,校对,写加密等等 选项没有必要选择,会浪费编程时间。 ④在芯片类型的对话框中选择 MCU\ATMEL_51\AT89S52 然后点确定。 ⑤点击主界面的“打开”,找到要烧录的程序的 .HEX文件,然后点确定。
《微机原理机接口技术》课程设计
一、课程设计的目的: 1、加深对单片机的基本概念、基本原理、基 本结构的理解; 2、通过课程设计提高学生单片机的开发能力,
包括硬件设计和软件编程的能力。
二、课程设计的内容:
用单片机控制十字路口的交通灯,要求能
微机原理课程设计—交通灯控制

交通信号灯的控制一、设计目的巩固“微机原理”课程学过的知识,加强理论与实践的联系。
通过本课程设计,使学生初步了解微机系统的硬件设备,学会 8086 系列编程指令的基本功能。
二、设计要求1、通过 8255A 并口来控制 LED 发光二极管的亮灭。
2、A 口控制红灯,B 口控制黄灯,C 口控制绿灯。
3、输出为 0 则亮,输出为 1 则灭。
4、用8253 定时来控制变换时间。
要求:设有一个十字路口,1、3 为南,北方向,2、4 为东西方向,初始态为 4 个路口的红灯全亮。
之后,1、3 路口的绿灯亮,2、4 路口的红灯亮,1、3 路口方向通车。
延迟 30 秒后,1、3 路口的绿灯熄灭,而 1,3 路口的黄灯开始闪烁(1HZ)。
闪烁 5 次后,1、3 路口的红灯亮,同时 2、4 路口的绿灯亮,2、4 路口方向开始通车。
延迟 30 秒时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁。
闪烁 5 次后,再切换到 1、3 路口方向。
之后,重复上述过程。
三、流程图:四、真值表:五、电路图:电路图中地址线连接在 A2,A3 上,用 74HC139 译码,故地址范围为00H~03H,04H~07H,08H~0BH,每个芯片的 A0、A1 均与8086 的A0、A1 相连,RD、WR 与8086 的RD、WR 相连,以控制芯片的读写。
8253 使用定时器 0,输出接 8259 的IR0,故中断向量为08H。
13 方向的绿灯同 PC0 相连,24 方向的绿灯同 PC1 相连,红灯、黄灯接 PA、PB,方式同上。
六、源程序:;-------------------------------------------------------------;模块作用:交通灯控制;编程语言:汇编;编程:孙逸痕,本程序无版权,欢迎使用;日期:2011-12-11;-------------------------------------------------------------;---------STACK------------------------------------------STACK SEGMENT STACK 'STACK'DW 32 DUP(0)STACK ENDS;---------DATA--------------------------------------------DATA SEGMENTCOUNT_L EQU 0H ;计数器初值COUNT_H EQU 0HADD_8253_T0 EQU 00H ;芯片地址ADD_8255 EQU 04HADD_8259 EQU 08HRED_ADD EQU ADD_8255 ;PAYELLOW_ADD EQU ADD_8255+1 ;PBGREEN_ADD EQU ADD_8255+2 ;PCLIGHT_ON EQU 01H ;Pi1/Pi0=01 (i=A,B)LIGHT_OFF EQU 03H ;Pi1/Pi0=11SYS_COUNTER DB 18 ;系统频率GREEN_COUNTER DB 30 ;绿灯30 秒计数YELLOW_COUNTER DB 5 ;黄灯5 秒计数DATA ENDS;----------CODE------------------------------------------CODE SEGMENTMAIN PROC FARASSUME SS:STACK,CS:CODE,DS:DATA;----系统初始化--------PUSH DSMOV AX,0PUSH AXMOV ES,AXMOV AX,DATAMOV DS,AX;----中断向量----------MOV AX,OFFSET TIMER ;装入中断向量表MOV ES:20H,AXMOV AX,SEG TIMERMOV ES:22H,AX;----8253 定时器 0 初始化---MOV AL,36HOUT ADD_8253_T0,AL ;16 位,方式 3MOV AL,COUNT_L ;装入初值OUT MOV OUT ADD_8253_T0,AL AL,COUNT_H ADD_8253_T0,AL;----8255 初始化--------MOV AL,80H ;方式0OUT ADD_8255+3,AL;----8259 初始化--------MOV AL,13H ;单片,边沿触发OUT ADD_8259,ALMOV AL,8H ;中断类型码为 08H~0FHOUT ADD_8259+1,ALMOV AL,0DHOUT ADD_8259+1,AL;-----系统运行---------SYS_ON:IN AL,ADD_8259+1 ;开中断IRQ0AND AL,0FEHOUT ADD_8259+1,ALMOV AL,LIGHT_ON ;开13 方向绿灯,24 方向红灯,关黄灯OUT GREEN_ADD,ALNEG ALOUT RED_ADD,ALMOV AL,LIGHT_OFFOUT YELLOW_ADD,ALGRE_30:JMP $ ;等待计时中断DEC GREEN_COUNTER ;等待绿灯亮30 秒JNZ GRE_30MOV BX,OFFSET GREEN_COUNTER ;复位计数器MOV [BX],30MOV AL,LIGHT_OFF ;关绿灯,开黄灯OUT GREEN_ADD,ALMOV AL,LIGHT_ONOUT YELLOW_ADD,ALYEL_5: JMP $ ;等待计时中断MOV AL,LIGHT_ONMOV AH,03H ;取辅助值(用于黄灯状态取反)放在AH 中SUB AH,ALXOR AL,AH ;黄灯状态取反OUT YELLOW_ADD,ALDEC YELLOW_COUNTER ;计时值,每一秒改变一次状态,共5 秒JNZ YEL_5MOV BX,OFFSET YELLOW_COUNTER ;复位计数器MOV [BX],5MOV AL,LIGHT_ON ;点亮红灯OUT RED_ADD ,ALMOV BX,OFFSET LIGHT_ON ;将13 边换位 24 边MOV [BX],AHMOV AL,LIGHT_OFF ;熄灭黄灯OUT YELLOW_ADD,ALMOV AL,LIGHT_ON ;24 边绿灯亮UT GREEN_ADD,ALJMP SYS_ON ;循环RET;----中断函数------------TIMER: DEC SYS_COUNTER ; 是否计数18 次JNZ OVERMOV BX,OFFSET SYS_COUNTER ;复位计数器MOV [BX],18POP AXINC AXINC AXPUSH AXOVER: IRETMAIN ENDPCODE ENDSEND MAIN。
微机原理交通信号灯课程设计

课程设计任务书课题名称:基于8086/8088的交通信号灯设计完成期限:2015年06月22日至 2015年06月28日院系名称机械工程与自动化学院指导教师专业班级学生姓名院系课程设计(论文)工作领导小组组长签字一、课题训练内容设计一个基于8086/8088微型计算机的一个交通信号灯控制系统,要求能完成基本的交通灯控制,如红、绿、黄三种灯的定时交替点亮与熄灭;能提供行人通过时的临时信号修改;能提供当时当地的温度、湿度信息;提供基本的键盘输入。
要求学生了解8086/8088微型计算机控制系统的基本设计方法与思路,能独立查阅资料并汇总,具备一定的控制系统设计能力,掌握绘制电路原理图的能力,能编写一定难度的汇编程序并调试。
二、设计(论文)任务和要求(包括说明书、程序、图纸、等具体要求)1. 设计一个基于8086/8088微型计算机的一个交通信号灯控制系,要求使用如下器件:8086、8259、8253、8255、ADC0809、温度传感器(选择数字式或模拟式均可)和湿度传感器(选择数字式或模拟式均可)、健盘(5按键,包括4个路口紧急按键和1个复位按键);(20分)2. 交通灯的亮、灭情况如下:东、西两个相对路口红灯亮12s,南、北两个路口绿灯亮6s,后转为黄灯亮6s;南、北两个相对路口红灯亮12s,东、西两个路口绿灯亮6s,后转为黄灯亮6s;(10分)3. 每个路口设一个紧急按键,可以中断当前的交通灯状态,使当前路口为绿灯,经12s后恢复原来的工作状态;(20分)4. 使用8253提供时间定时,每6s读入1次温、湿度;(20分)5. 说明书正文不少于10页,小4号宋体,1.5倍行距,正文不包含程序;(30分)6. 提供完整的电路原理图并给出每个外设的地址(电路图必需是打印稿);(50分)7. 提供软件流程图与完整的程序;(50分)8. 按要求时间提交课程设计。
微机原理课程设计报告一、分析课题基于8086/8088交通信号灯设计主要需要实现这几部分功能:第一、信号灯的通断延时;第二、紧急按键对交通信号灯的控制,则每一个路口有一个紧急按键,可以中断当前的交通状态,当前状态为绿灯,经过12秒后恢复;第三、环境湿度、温度的采集。
微机原理课程设计交通信号灯正文3

1设计任务描述1.1设计题目:交通信号灯1.2设计内容利用微机原理试验箱,采两组红,黄,绿发光二极管来模拟A,B两路交差路口的信号灯控制。
1.2.1设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
1.2.2设计要求一、基本要求:1.(1)按实际交通灯控制规程控制;(2)当路口发生交通事故时,能强制A、B两路禁行;(3)K0-K7为开关,K7来模拟紧急情况,K1-K6来模拟车辆多少;D11-D8为黄灯;D7-D0分别为4红4绿。
2.也可以选择具有一定难度的其他题目,但要经过指导老师的同意。
3.认真查阅资料,理解题目要求。
4.按时上机,认真调试程序。
5.运行程序,检查结果是否和设计要求一致。
6.记录出现的问题及现象,并对问题进行分析,思考解决方法。
7.遵守课程设计时间安排。
8.独立思考,认真设计。
9.认真书写课程设计说明书,避免相互抄袭。
二、对设计说明书撰写内容、格式、字数的要求1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。
2.学生应撰写的内容为:目录、正文、参考文献等。
课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.说明书(论文)手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。
三、设计完成后应提交成果的种类、数量、质量等方面的要求提交课程设计说明书一份。
在说明书中要有设计原理、硬件电路接线图、设计的程序及必要注释等。
微机原理红绿灯设计

微机原理课程设计报告书课题名称 红绿灯设计姓 名学 号 院、系、部 电气系 专 业 电子信息工程 指导教师孙秀婷、马丽2011年 1 月12日红绿灯设计一、设计目的※※※※※※※※※ ※※※※ ※※ ※※※※※※※※※2008级微机原理 课程设计查阅可编程并行芯片8255或其他相关资料,用简单的输入输出端口等硬件,配合延时和控制程序控制灯的亮灭。
通过对红、绿、黄LED(发光二极管)的控制熟练掌握8255A可编程并行接口的编程方法。
二、设计要求编写程序控制8255A可编程并行接口芯片,使红、绿、黄发光二极管按照十字路口交通信号灯的规律交替发光。
当按下任意键则停止运行,返回DOS。
1、红绿灯亮灭规律:a:初态为东西南北4个红灯全亮,禁止通行;b:经过一定时间南北路口绿灯亮东西路口红灯亮;c:经过一定时间,南北路口绿灯灭;d:南北路口黄灯闪烁;e:经过一定时间,4个路口红灯全亮。
f:经过一定时间,东西路口绿灯亮,南北路口红灯亮;g:东西路口绿灯灭;h:东西路口黄灯闪烁.i:转向步骤a循环执行。
三、电路及连线设计四、使用说明本次微机原理设计的题目为交通灯,它是通过对8255芯片和LED发光二极管的连接设计来模拟交通信号灯的控制,使红黄绿三色灯按照正常交通规则亮灭;十字路口交通信号灯的工作原理是在正常情况下以8086/8088的CPU与8255芯片相连接来实现的。
8255芯片包括四个口,即A口、B口、C口和控制口。
通过对其控制端口写入控制字,来设定8255的工作方式,在本设计中,使8255工作于方式0,将B口和C口都设计为输出,A口设计成输入。
其中B口控制东西方向的交通灯,C口控制南北方向的交通灯。
当程序正常运行时,依次为东西南北方向都是红灯,延时后,南北方向的绿灯和东西方向红灯亮,延时后南北方向的黄灯闪3次,随后南北方向的红灯和东西方向的绿灯亮,延时后,东西方向的黄灯闪3次,之后同理进行循环。
五、流程图设计六、程序设计如下:SSTACK SEGMENT STACK ;定义堆栈段DW 32 DUP(?)SSTACK ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,SS:SSTACKSTART:MOV AL,90HMOV DX,9003HOUT DX,AL ;将8255控制字设置为10010000; B、C口输出 A口输入 工作方式0 RED: MOV AL,22HMOV DX,9001HOUT DX,AL ;东西方向红灯亮MOV DX,9002HOUT DX,AL ;南北方向红灯亮CALL DELAY ;调用延时程序DELAY NORMAL:STIMOV AL,88HMOV DX,9002HOUT DX,AL ;南北方向绿灯亮MOV AL,22HMOV DX,9001HOUT DX,AL ;东西方向红灯亮CALL DELAY ;调用演示程序DELAYMOV AL,00HMOV DX,9002HOUT DX,AL ;南北方向绿灯灭CALL DELAY1 ;调用演示程序DELAY1MOV CX,0005H ;将黄灯闪烁次数设为5 RECALL1:MOV AL,44HMOV DX,9002HOUT DX,AL ;南北方向黄灯亮CALL DELAY2XOR AL,ALOUT DX,AL ;南北方向黄灯灭CALL DELAY2 ;调用演示程序DELAY2LOOP RECALL1MOV AL,88HMOV DX,9001HOUT DX,AL ;东西方向绿灯亮MOV AL,22HMOV DX,9002HOUT DX,AL ;南北方向红灯亮CALL DELAYCALL DELAY ;两次调用演示程序DELAY,东西方向设为主干道 MOV AL,00HMOV DX,9001HOUT DX,AL ;东西方向绿灯灭CALL DELAY1 ;调用延时程序 DELAY1MOV CX,0005H ;将黄灯闪烁次数设为5RECALL2:MOV AL,44HMOV DX,9001HOUT DX,AL ;东西方向黄灯亮CALL DELAY2 ;调用延时程序DELAY2 XOR AL,ALOUT DX,AL ;东西方向黄灯灭CALL DELAY2 ;调用延时程序DELAY2LOOP RECALL2JMP NORMAL ;无条件跳转到NORMAL,实现循环 DELAY: PUSH CX ;延时程序 DELAYMOV BX,008FHT1:MOV CX,1000HT2:NOPNOPLOOP T2DEC BXCMP BX,0000HJNZ T1POP CXRETDELAY1: PUSH CX ;延时程序 DELAY1MOV CX,0FFFFHT3:NOPNOPLOOP T3POP CXRETDELAY2: PUSH CX ;延时程序 DELAY2MOV CX,0F900HT4:PUSH AXPOP AXLOOP T4POP CXRETCODE ENDSEND START七、设计总结:短短一周的微机原理课程设计已经过去了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理课程设计交通信号灯的控制1. 设计任务及要求:交通信号灯的控制:1. 通过8255A并口来控制LED发光二极管的亮灭。
2. A口控制红灯,B口控制黄灯,C口控制绿灯。
3. 输出为0则亮,输出为1则灭。
4. 用8253定时来控制变换时间 。
要求:设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始态为4个路口的红灯全亮。
之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。
延迟30秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁(1HZ)。
闪烁5次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。
延迟30秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。
闪烁5次后,再切换到1、3路口方向。
之后,重复上述过程。
二.方案比较及评估论证:分析题意,红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8086输出0,1控制。
30秒延时及闪烁由8253控制,由闪烁的实现方法可分为两种方案:方案一:设8253各口地址分别为:设8253基地址即通道0地址为04A0H;通道1为04A2H;通道2为04A4H;命令控制口为04A6H。
黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波, 8255控制或门打开的时间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。
由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式 3即方波发生器方式,理论设计输出 周期为0.01s的方波。
1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1s,因此通道0的计数初值为10000=2710H。
由此方波分别作为clock1和clock2的输入时钟脉冲,所以通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H既30s,计数到则输出一个高电平到8255的PA7口,8255将A口数据输入到8086,8086检测到高电平既完成30s定时。
通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8086共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态反馈到8055的端口PB7和PC7,同样输入到8086,8086通过两次检测端口状态可知黄灯的状态变化,计9次状态变化可完成5次闪烁。
三个通道的门控信号都未用,均接+5V即可。
方案二:考虑到题目要求黄灯闪烁的频率为1HZ,既每秒1次,那么前0.5秒黄灯亮,后0.5秒黄灯灭,所以最小的定时单位为0.5秒,频率为2HZ,30秒即为60个0.5秒。
显然如方案一一样一个计数器无法完成,所以采用两个计数器级联的方式,将计数器0的输出OUT0接到计数器1的输入端CLK1,CLK0=1MHZ,计数值为50000=C350H,OUT0=20HZ,CLK1=20HZ,记数值=10,OUT1=2HZ。
并且计数器0工作于方式3用于产生方波信号,计数器1工作方式2,产生负脉冲信号,计数器1的输出端OUT1接入8255芯片的PC5口,用于读取负脉冲个数,以完成计时功能。
8086及8255设置同方案一,8086则每隔0.5秒变换一次黄灯的状态,持续五次,完成闪烁的功能。
经比较,方案二8086在黄灯闪烁时需频繁发送数据到8255,加重了系统的负担,因此我决定采用方案一。
三.系统原理工作原理说明:此方案是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。
如硬件连接图所示,红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4路口的红灯,B,C口类推。
8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。
8253的三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK2,OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30S定时到。
OUT2产生1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。
8255三个口全部工作在方式0既基本输入输出方式,红绿灯的转换由软件编程实现。
四.硬件原理及电路图由于8255A与8086CPU是以低八位数据线相连接的,所以应该是8255A的、线分别与8086CPU的、线相连,而将8086的线作为选通信号。
如果是按8255A内部地址来看,则在图中它的地址是PA口地址即(CS+000H),PB口地址为(CS+001H),PC口地址为(CS+002H),命令控制口地址为(CS+003H),其中,CS为8255片选信号的首地址;若是按8086CPU地址来看,则8255A的地址是PA口地址即(CS+000H),PB口地址为(CS+002H),PC口地址为(CS+004H),命令控制口地址为(CS+006H)。
当CS=0288H,则PA口地址为0288H,PB口地址为028AH,PC口地址为028CH,命令控制口地址为028EH。
下面,分析8086各个引脚的连接方法。
(1)引脚:通常用此引线产生片选信号,当为=1,=0编码时,在数据总线低8位和偶地址之间进行字节传送(~)。
(2)CLK(Clock)时钟信号(输入):CLK为CPU和总线控制器提供基本的定时脉冲。
时钟周期是非对称的,当它为有效高电平的时间和时钟周期的比为33%时,提供最佳的内部定时。
由8284时钟发生器产生,8086CPU使用的时钟频率,因芯片型号不同,时钟频率不同。
这里采用5MHz。
(3)(+5V),GND(地):CPU所需电源=+5V。
GND为地线。
(4)QS0ALE(Address Latch Enable)地址锁存允许信号,输出高电平有效,作地址锁存器8282/8283的片选信号,在地址周期状态,ALE有效,表示AB、DB上传送的是地址信息,将它锁存。
这是由于AB、DB分时复用所需要的,ALE信号线不能悬空。
如图所示,加入2片地址锁存器8282。
(5)RESET:复位信号,输入,高电平有效。
8086接到复位信号后,停止现行操作,并初始化段寄存器DS,SS,ES,标志寄存器PSW,指令指针IP和指令队列,而使CS=FFFFH。
RESET信号至少保持四个周期以上的高电平,当它变为低电平时(一个下降沿),CPU执行重启过程,8086将从地址FFF0H开始执行指令。
通常FFFF0H单元开始的几个单元中存放一条JMP指令,将入口转到引导和装配程序中,从而实现对系统的初始化,引导监控程序或操作系统程序。
由于出现突然断电或其它情况时,8086可能正在执行交通灯程序,现有的地址丢失,应按下RESET键重新开始。
另外,应将8255A与8086的RESET线相连,保持同步。
(6)MN/(Minimun/Maximun): 最小、最大工作模式选择信号,输入。
此时MN/接+5V,构成单处理器系统,系统控制信号由CPU提供。
接下来,对8282芯片作一下说明:~:8位数据输入;~:8位数据输出;STB:选通信号;:输出允许信号,在不带DMA控制器的8086单处理器系统中,它接地。
其实,这就是8个D触发器。
由于只用~,所以用两片即可。
最后,对时钟发生器8284芯片按两部分进行说明:(1)时钟信号发生器:=0时,时钟信号输入由X1、X2端接上晶体,由晶体振荡器产生时钟信号;CLK:3分频OSC后的时钟,输出频率4.77MHz,占空比为1/3,大约满足8086CPU的输入频率5MHz、占空比33%的要求。
(2)复位生成电路:由输入的信号来触发内部同步触发器,由此产生信号RESET,送到CPU的RESET端,复位信号由CLK的下降沿同步。
此时,端接“电源好“信号,使系统上电后自动复位。
此为最小模式系统,除了8086CPU,I/O接口芯片8255A,定时计数芯片8353外,其它配置如下:1片8284A,作为时钟发生器;2片8282,作为地址锁存器;2片74LS138,作为地址选通译码器;1个二输入或非门;1个4输入或非门;1个二输入与非门;4个或门12个发光二极管;12个限流电阻;1个复位信号开关。
五.软件思想1.流程图.初始化8255,8253红灯全亮绿灯黄灯全灭1,3绿灯亮2,4红灯亮等待8253延时30s时间是否到?YN1,3绿灯灭2,4红灯不变1,3黄灯闪烁等待黄灯闪烁5次?YN1,3红灯亮2,4绿灯亮8253延时30s2,4绿灯灭黄灯闪烁5次2.源程序:DATA SEGMENT; 设置数据段,以及端口地址分配 PORTA EQU 218HPORTB EQU 219HPORTC EQU 21AHPTCON8255 EQU 21BHPORT0 EQU 238HPORT1 EQU 239HPORT2 EQU 240HPTCON8253 EQU 241HDATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODEINIT: MOV AX,DATAMOV DS,AXMOV DX, PTCON8253MOV AL,36HOUT DX,ALMOV DX,PORT0MOV AX,2710HOUT DX,ALMOV AL,AHOUT DX,AL;通道0工作方式3 周期0.01sMOV DX, PTCON8253MOV AL,71HOUT DX,AL;通道1工作方式1MOV DX, PTCON8253MOV AL,96HOUT DX,ALMOV DX,PORT2MOV AL,64HOUT DX,AL;通道2工作方式3 周期1s 8253初始化完成 MOV DX, PTCON8255MOV AL,80HOUT DX,AL;8255初始化 A,B,C口均工作在方式0MOV DX,PORTAMOV AL,0OUT DX,ALMOV DX,PORTBMOV AL,0FHOUT DX,ALMOV DX,PORTCMOV AL,0FHOUT DX,AL;灯初始化完成STA: MOV DX,PORTAMOV AL,0A0HOUT DX,ALMOV DX,PORTBMOV AL,0F0HOUT DX,ALMOV DX,PORTCMOV AL,50HOUT DX,AL;1,3绿灯亮,2,4红灯亮MOV DX,PORT1MOV AX,0BB8HOUT DX,ALMOV AL,AHOUT DX,AL;8253通道1赋值 开始计时SCAN1: MOV AL,0MOV DX,PTCON8255MOV AL,90HOUT DX,ALMOV DX,PORTAIN AL,DXAND AL,0FHCMP AL,1JNZ SCAN1;扫描PA7口FLA1: MOV DX, PTCON8255MOV AL,80HOUT DX,ALMOV DX,PORTCMOV AL,0F0HOUT DX,ALMOV DX,PORTBMOV AL,50HOUT DX,ALMOV CX,0TEST1: MOV DX,PTCON8255;检测PB7MOV AL,82HOUT DX,ALMOV DX,PORTBIN AL,DXAND AL,0FHMOV AH,ALMOV DX,PTCON8255MOV AL,82HOUT DX,ALMOV DX,PORTBIN AL,DXAND AL,0FHXOR AL,AHADD CL,ALCMP CL,9JNZ TEST1;闪烁5次MOV DX, PTCON8255MOV AL,80HOUT DX,ALMOV DX,PORTAMOV AL,50HOUT DX,ALMOV DX,PORTBMOV AL,0F0HOUT DX,ALMOV DX,PORTCMOV AL,0A0H;1,3红灯亮,2,4绿灯亮MOV DX,PORT1MOV AX,0BB8HOUT DX,ALMOV AL,AHOUT DX,AL;8253通道1赋值 开始计时SCAN2: MOV AL,0MOV DX,PTCON8255MOV AL,90HOUT DX,ALMOV DX,PORTAIN AL,DXAND AL,0FHCMP AL,1JNZ SCAN2FLA2: MOV DX, PTCON8255MOV AL,80HOUT DX,ALMOV DX,PORTCMOV AL,0F0HOUT DX,ALMOV DX,PORTBMOV AL,0A0HOUT DX,ALTEST2: MOV DX,PTCON8255MOV AL,88HOUT DX,ALMOV DX,PORTCIN AL,DXAND AL,0FHMOV AH,ALMOV DX,PTCON8255MOV AL,88HOUT DX,ALMOV DX,PORTCIN AL,DXAND AL,0FHXOR AL,AHADD CL,ALCMP CL,9JNZ TEST2;闪烁5次CODE ENDSEND STA六.调试记录及结果分析(1) 本电路没有设置显示倒计时的七段LED数码管,如果应用到街道上,不利于司机、行人把握(2)在上机调试中发现,由于此软件延时的时间均为估算时间,不是特别准确,对于交通要求特别高的地方不宜采用。