微机原理课设交通信号灯模拟控制系统的设计

合集下载

微机系统课程设计实验报告---交通信号灯自动控制模拟指示系统[13页].docx

微机系统课程设计实验报告---交通信号灯自动控制模拟指示系统[13页].docx

微机系统课程设计实验报告课题:交通信号灯自动控制模拟指示系统一、课程设计目的1.掌握CPU与各芯片管脚连接方法,提高借口扩展硬件电路的连接能力。

2.加深对定时器、计数器和并行借口芯片的工作方式和编程方法的理解。

3.掌握交通信号灯自动控制系统的设计思路和实现方法。

二、课程设计内容设计并实现十字路口通信号自动控制模拟指示系统。

设该路口由A、B两条通行相交而成,四个路口各设一组红、黄、绿三色信号灯,用两位数码管作倒计时显示。

三、应用系统设计方案交通信号灯的亮灭时间及数码管显示时间可以通过8253来控制,8253的时钟源采用时钟信号发生器与分频电路提供,通过计算获得计数初值为1000。

按照需要设定工作在方式3.交通信号灯及数码管可以采用系统提供的相应模块,控制可以通过8255可编程并行借口,PA口控制红黄绿交通灯的亮灭,PB口和PC口控制时间显示数码管的段和位。

PC0作为OUT1的输入。

四、系统测试结果1.基本功能实现(1)以秒为计时单位,两位数码管以十进制递减计数显示通行剩余时间,在递减计数为零瞬间转换。

即南北的绿灯、东西的红灯同时亮30秒,同时南北路口数码管递减显示绿灯剩余时间;为0时,南北的黄灯闪烁5秒钟,同时东西的红灯继续亮;南北的红灯、东西的绿灯同时亮30秒,同时东西路口数码管递减显示绿灯剩余时间;为0时,南北红灯继续亮,同时东西的黄灯闪烁5秒;若不结束,则开始循环。

(2)通过键盘可以对红、黄、绿三色信号灯所亮时间再0~99内任意设定。

(3)十字路口的通行气势状态可自行设定,系统启动后自动运行,按“Q”退出。

2、发挥部分实现(1)增加人工干预模式,在特殊情况下可通过人工干预,手动控制A、B交通灯的切换时间,并可以随时切换为自动运行模式。

(2)增加夜间控制功能,交通灯在进入夜间模式后,A、B干道上红、绿灯均不亮,黄灯信号灯闪烁。

(3)增加红灯倒计时显示。

五、课程设计中遇到的问题及解决办法1.8253的两个计时器的连接及工作方式选择,在查找相关资料后,将两个计时器串联,并工作在方式3下,初始值为1000。

#微机型交通信号灯实时控制系统的模拟设计

#微机型交通信号灯实时控制系统的模拟设计

微机型交通信号灯实时控制系统的模拟设计目录1.摘要 (1)2.引言 (1)3.单片机概述 (2)4.实验目的 (2)5.实验任务 (2)6.实验设备器材 (3)7.实验原理 (3)8.实验流程图 (5)9.实验主程序 (6)10.心得体会 (9)1.摘要:近年来随着科技的飞速发展,单片机的使用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的单片机使用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。

那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。

交通信号灯控制方式很多。

本系统采用MSC-51系列单片机ATSC51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、黄、绿灯燃亮时间的功能。

本系统实用性强、操作简单、扩展功能强。

2. 引言当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

但这一技术在19世纪就已出现了。

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。

这是世界上最早的交通信号灯。

1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。

它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。

1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。

电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。

红灯亮表示“停止”,绿灯亮表示“通行”。

1918年,又出现了带控制的红绿灯和红外线红绿灯。

带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。

《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计

《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计
7
微机课程设计——交通灯控制系统
中断子程序模块是通过扩充中断源实现的,主要是通过设置 8259 的工作模 式,开放 TR1 和 TR0 的中断,按上开关 K 后,TR0 就发生中断,在 TR0 中断没有 触发的情况下,从 OU1 口输出一个上升沿脉冲,TR1 就中断一次, 程序如下所示:
QUERY: MOV DX,MY8259_OCW3 MOV AL,0CH OUT DX,AL IN AL,DX ;读出查询字 ;判断中断是否已响应 ; 没有响应则继续查询 ; 向 8259 的 OCW3 发送查询命令
《微机原理与接口技术》 课程设计实验报告
题目:交通灯控制功能设计
指导老师:
专业:
班级:
目录
微机课程设计——交通灯控制系统
ห้องสมุดไป่ตู้
一、设计思想和实施方案论述,硬件原理图及分析 1.1、课程设计名称 1.2、课程设计要求 1.3、课程设计目的 二、设计思想和实施方案论述,硬件原理图及分析 2.1、设计思想和实施方案 2.2、硬件原理图 三、典型模块以及典型编程技巧分析 3.1、8086 典型模块分析 3.2、编程技巧分析 四、设计中遇到的问题及解决方法 五、程序清单和程序注释,相关流程图 5.1 程序清单和注释 5.2、实验室及流程图 六、收获与体会 七、参考文献
微机课程设计——交通灯控制系统
MOV OUT 器输出 1HZ 的方波
AL,2 DX,AL ;1.041667MHZ/2000/1000=1HZ, 即计数
数码管的显示是通过调用显示函数实现的, 通过设置 8255 的工作模式, 选择数码管的高位工作, 然后将计数的高位送到数码管, 再选择数码管的低位工 作,然后将计数的低位送到数码管,在 1s 钟内多次扫描就可以消除闪烁,从而 达到理想的计数效果,它的程序如下所示:

微机原理交通信号灯控制系统设计报告

微机原理交通信号灯控制系统设计报告

HEFEI UNIVERSITY微机原理设计报告题目交通信号灯的控制系别电子信息与电气工程系班级11级电子信息工程(2)班姓名钟文俊学号1105012012指导老师丁健完成时间2013年5月28日交通信号灯控制系统摘要:本文介绍了以8086微处理器为核心.利用可编程并行接口芯片8255A的软硬件功能,实现对交通灯控制,主要是模拟十字路口的红绿灯,介绍了交通灯控制器的原理以及电路接线。

在设计中所用到的编程语言是汇编语言,延时采用的是软件延时(即通过汇编指令)。

关键词:8086微处理器;交通灯;8255A一、课程设计任务1.1 设计目标利用ZY15MicInt12BB微机原理及接口实验箱上的8086微处理器模块、并行接口8255A 模块,地址译码单元以及0—1LED灯显示等模块,根据所学的微机原理知识,按照实际交通情况设定一种交通灯规则,设计一个简单的交通信号灯控制系统。

1.2 设计要求在一个十字路口,东西方向和南北方向各有两组交通指示灯,每组有红、黄绿三个灯。

东西方向同色灯连在一起,南北方向同色灯连在一起。

对各组的交通灯进行控制,以保证车辆在各道上通畅运行。

两组组的交通灯工作过程为:1.南北方向亮绿灯允许通行,东西方向亮红灯禁止通行2.当延时25秒后,南北方向的黄灯同时变亮,且延时5秒。

3.延时后,东西方向转为绿灯,南北方向转为红灯,且延时25秒。

4.25秒后,转为东西方向黄灯亮,延时5秒后,回到第一步,以次重复进行,不断循环。

5.当遇到道路障通,或紧急情况时,A、B道全为红灯。

二、原理说明与硬件设计2.1原理说明在本次课程设计当中,采用的是以8086微处理器为核心,以8255A芯片作为接口芯片,运用软件定时(即通过汇编指令)控制LDE灯(即交通灯)按照设定的交通规则显示。

2.2 8086简介8086微处理器是Intel系列的第三代微处理器,拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器,其主频为5MHz/10MHz,地址总线宽度为20位,可寻址的内存空间打1MB。

微机原理课程设计—交通灯控制

微机原理课程设计—交通灯控制

交通信号灯的控制一、设计目的巩固“微机原理”课程学过的知识,加强理论与实践的联系。

通过本课程设计,使学生初步了解微机系统的硬件设备,学会 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秒后恢复;第三、环境湿度、温度的采集。

微机原理与接口技术交通灯设计

微机原理与接口技术交通灯设计

《微机原理和接口技术》课程设计姓名:*******班级学号:*******任课老师:*******一、实验课题《交通信号灯控制系统》二、实验目的在熟悉8086/8088指令系统的基础上,掌握8086/8088汇编语言程序设计方法;掌握8259可编程中断控制器,8255可编程并行接口、8253可编程定时/计数器的使用三、实验要求1、模拟交通信号灯(分A、B两组)的红、黄、绿灯(实验箱中的发光二极管)交替变换的过程。

2、在实验箱的LED显示器上显示当前剩余时间(每秒更新一次,倒计时)。

A组、B组之间时间关系如下:A组B组绿灯26秒红灯30秒四、 实验设备机一台、PC实验箱一个(8086、8259、8255、8253芯片及相关电路、发光二极管六只)及导线若干。

五、 设计 1、 设计思路(1)分析问题——各端口使用——代码实现(2)具体使用(8255的B 口做灯信号的输出,A 口做位选码的输出,C 口做LED 的输出。

)(3)实验内容1、系统中,8259采用初始化命令字ICW1、ICW2、ICW4和操作命令字OCW1,允许内部中断IRQ0和外部中断IRQ1 2、系统中,8255选用(10000000)方式选择字,A 组工作0方式,A 端口输出,PC3-PC7输出,B 组0方式,B 端口输出,PC3-PC0输出3、系统中,8253选用(00110101)选择零号端口读写两个字节,工作方式2(频率发生器)二十进制2、程序流程黄灯 4秒 红灯 30秒 绿灯 26秒 黄灯 4秒3、电路原理图4、初始化8259 初始化8255设置中断向量显示时间启动计数器开始设置交通灯初态结束初始化8253STACK ENDSDATA SEGMENTTIMER DB 00H,30H;IRQ0中断次数,通行剩余时间(A道30秒,B道30秒)初始设为B道通行TAB DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;七段码,用于显示时间,顺序不可调换DISOFF DB 00H,00H,00H,00H;LED显示器缓冲区,数字(剩余时间)的个位和十位ROD DB 00H ;当前道路通行状态(00:为A通行道;01为B通行)LIGHT DB 0D7H ;信号灯的输出信号(11010111)KK1 DB 00H ;暂停开关KK1计数LIGHTZT DB 00HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,0000H ;数据段清零MOV DS,AX;填写中断向量表MOV AX,OFFSET IRQ0 ;提取IRQ0的中断处理程序的偏移地址ADD AX,2000H ;加载时IP=2000H(绝对地址) MOV SI,0020H ;中断号0的矢量地址为(20H-23H) MOV [SI],AX ;填写中断处理程序的偏移地址写进中断向量表MOV AX,0000HMOV SI,0022HMOV [SI],AX ;填写中断处理程序的段地址写进中断向量表MOV AX,OFFSET IRQ1ADD AX,2000HMOV SI,0024H ;中断号1的矢量地址为(24H-27H) MOV [SI],AXMOV AX,0000HMOV SI,0026HMOV [SI],AX;加载数据段MOV AX,DATAMOV DS,AX;8259初始化MOV AL,13H ;8259初始化ICW1(00010011)单片方式需写ICW4OUT 20H,AL ;端地址A0=0MOV AL,08H ;ICW2(00001000)中断向量号的高五位(000001)OUT 21H,ALMOV Al,01H ;ICW4(00000001)一般全嵌套,非缓冲,非自动中断结束,十六位机系统OUT 21H,AL ;特征位:D7-D5=000MOV AL,0FCH ;OCWl允许IRQ0、IRQ1中断OUT 21H,AL;8255初始化MOV AL,80H ;(10000000)方式选择字,A组工作0方式,A端口输出,PC3-PC7输出,B组0方式,B端口输出,PC3-PC0输出OUT 63H,AL;初始化8253MOV AL,35H ;(00110101)选择零号端口读写两个字节,工作方式2(频率发生器)二十进制OUT 43H,ALMOV AX,380 ;定时(频率乘以时间)OUT 40H,AL ;低字节MOV AL,AHOUT 40H,AL ;高字节STI ;开中断(允许CPU接收中断)M:CALL DISP2CMP KK1,1JZ ZT ;调用时间显示函数CMP TIMER+1,04H ;判断是否到了最后4秒,到了则跳转JZ R1CMP TIMER+1,00H ;判断通行时间是否结束,到了则跳转JZ R2JMP DISP1 ;如时间大于五秒,则直接按当前方式显示信号灯R1: CMP ROD,00H ;如到了最后五秒,则判断是A 道通行否? ROD=00H为A道JZ R12 ;如是A道通行,则改变状态R11:MOV LIGHT,7BH ;(01111110)改变为A道红,B道黄JMP DISP1 ;信号输出R12:MOV LIGHT,0B7H ;(10110111)改变为A道黄,B道红JMP DISP1R2: CMP ROD,00H ;改变通行状态JZ R22R21:MOV LIGHT,0D7H ;如果当前B道通行结束,则切换为A道MOV ROD,00HMOV TIMER+1,30H ;A道通行时间30秒JMP DISP1R22:MOV ROD,01H ;如果当前A道通行结束,则切换为B道ROD=01H为B道MOV LIGHT,7DHMOV TIMER+1,30HJMP DISP1 ;B道通行时间30秒ZT:JMP MDISP1: ;灯信号输出函数MOV AL,LIGHT ;将灯信号输出到8255的B口OUT 61H,ALSTIJMP MIRQ0:PUSH AX ;现场保护PUSH CXPUSHFMOV AL,TIMER ;取80次中断请求为一秒INC ALMOV TIMER,ALCMP AL40H ;1秒判断?JNE M1 ;不到则跳转MOV AL,00H ;毫秒数清零MOV TIMER,ALMOV AL,TIMER+1 ;剩余时间减1 SUB AL,01HDAS ;调整为压缩BCD码MOV TIMER+1,ALM1: MOV AL,20H ;中断复位OUT 20H,ALPOPFPOP CXPOP AXSTIIRETIRQ1: ;暂停(恢复)PUSH AXPUSHFMOV AL,KK1CMP AL,00H ;判断当前的状态:00为通行,01为暂停JNE M2INC AL ;改变当前状态MOV KK1,ALMOV AL,0FDH ;(11111101)关IRQ0中断,开IRQ1中断OUT 21H,ALMOV AL,LIGHTMOV LIGHTZT,AL;///////////////////////////////////////////////////////////MOV AL,77H ;(01110111)大、小道均为红灯OUT 61H,ALJMP M3M2: ;恢复MOV AL,00HMOV KK1,ALMOV AX,LIGHTZT;//////////////////////////////////////////////////////////////////OUT 61H,ALMOV AL,0FCH ;(11111100)开IRQ0、IRQ1中断OUT 21H,ALSTIM3:MOV AL,20HOUT 20H,ALPOPFPOP AXSTIIRETDISP2: ;时间显示函数MOV AL,TIMER+1 ;AL=30H AX=?30HAND AL,0FH ;AX=0000HMOV DISOFF+3,AL ;DISOFF+3=00HDISOFF DB 03H,00H,03H,00HMOV DISOFF+1,AL ;DISOFF+1=00HMOV AL,TIMER+1 ;AL=30HMOV CL,04H ;CL=04HSHR AL,CL ;AL=03HMOV DISOFF+2,AL ;DISOFF+2=03HMOV DISOFF,AL ;DISOFF=03HMOV SI,OFFSET DISOFF ;缓冲区的偏移地址MOV DL,0F7H ;(11110111)将位选码初值送DLMOV AL,DL ;AL=0F7HAGAIN:OUT 60H,AL ;从A口输出位选码MOV AL,[SI]MOV BX,OFFSET TAB ;七段码的偏移地址AX=0003H BX=TABAND AX,00FFHXLAT ;MOV AL,BX+[AX] ;将显示七段码送ALOUT 62H,AL ;将AL转换成七段码从B口输出CALL DALLY ;调用延时1ms子程序INC SI ;SI=SI+1MOV AL,DLTEST AL,01H ;4位显示完否?JZ M4ROR AL,01H ;DL循环右移一位MOV DL,ALJMP AGAINM4: RETDALLY: ;循环256次MOV CX,0010H ;延时子程序T1: MOV AX,0010HT2: DEC AXJNZ T2LOOP T1RETCODE E NDSEND START六、心得体会这周关于交通灯的设计是对我来说就是一次挑战,虽然说代码并非是我自己写的,可以说我是参考别人的,但是理解所有的设计代码我确实也花了不少时间,我除了要熟悉8259、8255、8253这些芯片,还得将它们合理的利用起来,由于之前对汇编知识的掌握相当差,理解起来是相当的困难,但是庆幸的事,我向同学和老师咨询中吸收了不少知识。

微机系统课程设计实验报告交通信号灯自动控制模拟指示系统

微机系统课程设计实验报告交通信号灯自动控制模拟指示系统

微机系统课程设计实验敷陈课题:交通信号灯自动控制模拟指示系统一、课程设计目的1.掌握CPU与各芯片管脚连接方式,提高借口扩展硬件电路的连接能力。

2.加深对按时器、计数器和并行借口芯片的工作方式和程方式的理解。

3.掌握交通信号灯自动控制系统的设计思路和实现方式。

二、课程设计内容设计并实现十字路口通信号自动控制模拟指示系统。

设该路口由A、B两条通行相交而成,四个路口各设一组红、黄、绿三色信号灯,用两位数码管作倒计时显示。

三、应用系统设计方案交通信号灯的亮灭时间及数码管显示时间可以通过8253来控制,8253的时钟源采用时钟信号发生器与分频电路提供,通过计算获得计数初值为1000。

按照需要设定工作在方式3.交通信号灯及数码管可以采用系统提供的相应模块,控制可以通过8255可程并行借口,PA口控制红黄绿交通灯的亮灭,PB口和PC口控制时间显示数码管的段和位。

PC0作为OUT1的输入。

四、系统测试结果1.根本功能实现(1)以秒为计时单位,两位数码管以十进制递减计数显示通行剩余时间,在递减计数为零瞬间转换。

即南北的绿灯、东西的红灯同时亮30秒,同时南北路口数码管递减显示绿灯剩余时间;为0时,南北的黄灯闪烁5秒钟,同时东西的红灯继续亮;南北的红灯、东西的绿灯同时亮30秒,同时东西路口数码管递减显示绿灯剩余时间;为0时,南北红灯继续亮,同时东西的黄灯闪烁5秒;假设不完毕,那么开场循环。

(2)通过键盘可以对红、黄、绿三色信号灯所亮时间再0~99内任意设定。

(3)十字路口的通行气势状态可自行设定,系统启动后自动运行,按“Q〞退出。

2、发挥局部实现〔1〕增加人工干预干与模式,在特殊情况下可通过人工干预干与,手动控制A、B交通灯的切换时间,并可以随时切换为自动运行模式。

〔2〕增加夜间控制功能,交通灯在进入夜间模式后,A、B干道上红、绿灯均不亮,黄灯信号灯闪烁。

〔3〕增加红灯倒计时显示。

五、课程设计中遇到的问题及解决法子1.8253的两个计时器的连接及工作方式选择,在查找相关资料后,将两个计时器串联,并工作在方式3下,初始值为1000。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京工程学院Array通信工程学院课程设计说明书(论文)题目交通信号灯模拟控制系统的设计课程名称微机原理与接口技术专业班级学生姓名学号设计地点指导教师设计起止时间:2013年12月23日至2013年12月27日目录1、设计目的 (2)2、设计内容及要求 (2)3、设计原理 (2)、电路接线方案 (2)、定时问题 (3)、工作状态 (3)4、实验元件解释 (3)、可编程并行通信接口8255A................................................................. (3)、可编程计数器/定时器8253 (4)5、程序流程图及说明 (5)、基本和中级要求的流程图 (5)、高级要求的流程图 (6)、流程图说明 (7)6、实验源代码及解释 (7)7、实际接线图 (13)8、运行结果 (13)9、设计心得与体会 (16)10、主要参考文献 (16)1、设计目的通过课程设计加深理解课堂教学内容,掌握微机原理的基本应用方法。

通过实验熟悉微机基本接口芯片的外型、引脚、编程结构,掌握汇编语言程序设计和微机基本接口电路的设计、应用方法,做到理论联系实际。

2、设计内容及要求1)假设在一个A道(东西方向)和B道(南北方向)交叉的十字路口安装有自动信号灯。

当A道和B道均有车辆要求通过时,A道和B道轮流放行。

A道放行7秒钟,B道再放行5秒钟,依次轮流。

绿灯转换红灯时黄灯亮1秒钟。

2)一道有车,另一道无车时(实验时用开关K5和K6控制),交通控制系统能立即让有车道放行。

3)有紧急车辆要求通过时,系统要能禁止普通车辆通过,A、B道均为红灯,紧急车由K7开关模拟,有紧急车时另有一红灯闪烁。

4)基本要求:采用8255输出控制信号灯,8255输入K5、K6、K7控制开关信号,用循环程序软件定时实现功能要求;(60分)5)中级要求:采用8255输出控制信号灯,8255输入K5、K6、K7控制开关信号,用8253硬件定时,软件查询方式实现功能要求;(80分)6)高级要求:在中级要求的基础上,增加用8255输出驱动LED数码显示器显示绿灯倒计时秒数,黄灯时不显示时间。

(100分)3、设计原理设计任务中的A道代表东西方向,B道代表南北方向。

、电路接线方案:交通信号灯由实验仪的LED发光二极管模拟,由8255-PA输出控制:见下表。

带时间显示的交通信号灯模拟控制系统8255A输入/输出信号一览表(供参考)注:1)、8255-PA输出方式可根据实验设备红绿黄灯具体位置改变2)、采用软件延时,则8255的PC4不用接8253-OUT2。

数码管的位码选择、定时问题用8253#2工作方式0进行500ms定时,CLK2接125kHz时钟信号,GATE2接高电平,OUT2接8255-PC4。

主程序通过查询8255-PC4的状态,获知准确的定时信息。

也可以采用软件延时,500ms延时子程序参见实验一。

、工作状态根据设计任务功能要求,依K5、K6、K7的状态分为四种工作状态:状态0:K5、K6、K7均断开(1电平)或K5、K6均闭合K7断开,A、B道交替通行;状态1:仅K5闭合,A道有车、B道无车;状态2:仅K6闭合,A道无车,B道有车;K5和K6均闭合,A、B道都有车,A、B道交替通行;状态3:K7闭合,有紧急车辆通行。

4、实验元件及解释、可编程并行通信接口8255A8255A的端口地址设为A口—0F000H,B口—0F001H,C口—0F002H,寄存器端口—0F003H将LED 灯的D0~D7分别与8255A的PC0~PC7相连,具体连接如下:D0—1路口绿灯,D4—1路口红灯。

D1—2路口绿灯,D5—2路口红灯。

D2—3路口绿灯,D6—3路口红灯。

D3—4路口绿灯,D7—4路口红灯。

其中:1、3路口魏东西方向,2,4路口为南北方向。

系统中的8255A电路如图(B4区:8255A电路)、可编程计数器/定时器8253用LED(发光二极管)模拟信号灯,8255A实现对信号灯的控制(PC0~PC6分别接D0~ D6),8253的计数器2实现基本单位定时(如10ms)信号的输出;再用8255A的PA口查询定时信号的变化,并统计脉冲数,以实现3min、5s和1s的定时实验系统中8253计数器2的CLK2可接OPCLK,频率为,GATE2接+VCC,OUT2接8255A的PA0。

定时可采用软硬件香结合的方式实现。

系统中8253电路如图(C5区:8253电路)8253端口地址:0#计数器—0B000H,1#计数器—0B001H,2#计数器—0B002H,控制寄存器—0B003H。

5、程序流程图及说明、基本和中级要求的流程图:、高级要求的流程图、流程图说明流程图1设计思想:1、主程序每秒循环一次,每次查询三个开关状态,及时响应开关状态的变化。

其中CNT0和CNT3分别用于记录状态0和状态3工作进程的进程计数器,可以用寄存器或内存变量实现。

2、常用的工作状态0是A、B道交替通行,一个周期用时14秒。

用CNT0以秒为单位进行加1计数,从0到27循环计数,CNT0/2就可知本周期进行到第几秒了。

根据设计任务功能要求,第0秒,A道红灯、B道黄灯;第1~7秒,A道绿灯、B道红灯;第8秒,A道黄灯、B道红灯;第9~13秒,A道红灯、B道绿灯。

3、工作状态3中,CNT3只有2种状态(0和0FFH),用于控制紧急车辆的灯光闪烁。

4、时间显示采用实验仪的数码管显示。

只用一个数码显示器显示绿灯通行倒计时,A道显示数=8-CNT0/2,B道显示数=14-CNT0/2。

参考流程图2。

如果用2个数码显示器分别显示A道、B道的倒计时,则需要用到动态显示扫描技术,难度较大,定为加分项目。

在500ms延时子程序中循环调用动态显示扫描子程序,定时器的定时周期应缩短到5ms。

参考流程图3。

此功能难度较大,定为加分项目。

2个数码管的位码选择(低电平有效)有8255的PC3、PC0来确定,接线到数码管选择脚接口JP41(注意JP41的接插方法:JP41只接插一半,用PCL接JP41的1-4引脚。

如果PCL与JP41完全连接,PC4对应位会显示倒计时数码)。

显示内容由8255的B口接线到数码管段码接口JP42。

6、实验源代码及解释源程序如下:.MODEL TINYCOM_ADDR EQU 0B003H ;8253控制寄存器端口地址T0_ADDR EQU 0B000H ;计数器0T1_ADDR EQU 0B001H ;计数器1T2_ADDR EQU 0B002H ;计数器2COM_ADD EQU 0F003H ;8255控制寄存器端口地址PA_ADD EQU 0F000H ;PA口PB_ADD EQU 0F001H ;PB口PC_ADD EQU 0F002H ;PC口.STACK 300.DATALED_DATADB 00111011B ;东西红灯,南北黄灯,紧急车辆闪光亮SHUMA DB 01111111B ;0DB 00000110B ;1DB 01011011B ;2DB 01001111B ;3DB 01100110B ;4DB 01101101B ;5DB 01111101B ;6DB 00000111B ;7DB 01111111B ;8CNT0 DB ? ;定义一个字节变量,初始值不定CNT3 DB ?.CODESTART: MOV AX,@DATA ;AX=0040HMOV DS,AXMOV DX,COM_ADD ;8255初始化MOV AL,88H ;AL=1000 1000,A口方式0输出,B口方式0输出,C口高四位输入,低四位输出OUT DX,AL ;把AL中的内容送入DX端口MOV DX,COM_ADDR ;8253初始化MOV AL,0B0H ;AL=1011 0000,通道2,先读/写寄存器低字节,后读/写高字节OUT DX,AL ;把AL中的内容送入DX端口MOV DX,PC_ADD ;位码选择IN AL,DX ;把DX端口的数据送入ALAND AL,0FEH ;逻辑与指令,使最低位清零OR AL,01H ;逻辑或指令,使最低位置1OUT DX,AL ;把AL中的内容送入DX端口MOV CNT0,0 ;CNT0=0MOV CNT3,0 ;CNT3=0LP: CALL DL500ms ;调用DL500ms的指令MOV DX,PC_ADD ;将PC端口地址送给DXIN AL,DX ;把DX端口的数据送入ALTEST AL,80H ;1000 0000 PC7 检查AL的D7=1?JZ K7 ;ZF=1,转移JMP JMP1 ;无条件转JMP1K7: MOV CH,CNT3 ;紧急情况CMP CH,0 ;比较CH-0JZ RRS ;ZF=1则转移RRM: MOV AL,5 ;AL=0005HXLAT ;AX=BBH ;Red Red DarkMOV DX,PA_ADD ;DX=0F000HOUT DX,AL ;将AL的值写入DX端口JMP LAST0 ;跳转到JMP1RRS: MOV AL,4 ;AL=0004HXLAT ;AX=3BH ;Red Red LightMOV DX,PA_ADD ;DX=0F000HOUT DX,AL ;将AL的值送入DX端口CALL DL500ms ;调用DL500ms指令MOV AL,5 ;AL=0005HXLAT ;AX=BBH ;Red Red DarkMOV DX,PA_ADD ;DX=0F000HOUT DX,AL ;将AL的值送入DX端口LAST0: MOV DX,PB_ADD ;DX=0F001HMOV AL,00H ;AL=00HOUT DX,AL ;将AL的值写入DX端口XOR CH,0FFH ;异或指令,使操作数的某些位保留(与“0异或”)使某些位取反(与“1异或”)MOV CNT3,CH ;CH=0FFHMOV CNT0,0 ;CNT0=0JMP LP ;跳转到LP指令JMP1: MOV DX,PC_ADD ;DX=0F002HIN AL,DX ;将DX端口的内容赋值给ALTEST AL,20H ;检测(0010 0000) PC5JNZ JMP2 ;ZF=0,转移MOV DX,PC_ADD ;DX=0F002HIN AL,DX ;将DX端口的内容赋值给ALTEST AL,40H ;检测(0100 0000) PC6JNZ K5 ;ZF=0,转移JMP JMP3 ;无条件跳转JMP3指令K5: MOV AL,1 ;AL=0001XLAT ;00EBHMOV DX,PA_ADD ;DX=0F000HOUT DX,AL ;将AL的值送入DX端口MOV DX,PB_ADD ;DX=0F001HMOV AL,00H ;AL=00HOUT DX,AL ;将AL的值送入DX端口MOV CNT0,0 ;CNT0=0MOV CNT3,0 ;CNT3=0JMP LP ;无条件跳转LPJMP2: MOV DX,PC_ADD ;DX=0F002HIN AL,DX ;将DX端口中的内容赋值给ALTEST AL,40H ;检测(0100 0000) PC6JZ K6 ;ZF=1,则转移JMP JMP3 ;无条件转移JMP3K6: MOV AL,3 ;AL=0003XLAT ;DBHMOV DX,PA_ADD ;DX=0F000HOUT DX,AL ;将AL的值送入DX端口MOV DX,PB_ADD ;DX=0F001HMOV AL,00H ;AL=00HOUT DX,AL ;将AL的值送入DX端口MOV CNT0,0 ;CNT0=0MOV CNT3,0 ;CNT3=0JMP LP ;无条件跳转LP指令LP1: JMP LP ;无条件跳转LP指令JMP3: MOV CNT3,0 ;CNT3=0MOV CH,CNT0 ;CH=CNT0SHR CH,1 ;CH=CNT0/2 ,CH右移一位LEA BX,LED_Data ;取源操作地址的偏移量,并把它送到目的操作数所在单元CMP CH,0 ;比较CH-0JZ RY ;ZF=1,相等则转移CMP CH,8 ;定时8sJB GR ;CF=1,低于则转移CMP CH,8 ;定时8sJZ YR ;ZF=1,相等则转移JMP RG ;无条件转移RGRG: MOV AL,3 ;AL=0003 Red GreenXLAT ;BEHMOV DX,PA_ADD ;DX=0F000HOUT DX,AL ;将AL的值送入DX端口PUSH BX ;5~1S倒计时LEA BX,SHUMA ;转换字形码MOV AL,14SUB AL,CH ;AL=AL-CH/2XLAT ;表转换MOV DX,PB_ADDOUT DX,ALPOP BX ;显示倒计时LAST: INC CNT0 ;指向下一个元素CMP CNT0,28 ;一个计时周期28sJNZ LP1 ;ZF=0,则转移MOV CNT0,0 ;CNT0=0JMP LP1 ;无条件转移LP1RY: MOV AL,0 ;AL=0000 Red YellowXLAT ;表转换MOV DX,PA_ADD ;DX=0F000HOUT DX,AL ;将AL的值送入DX端口MOV DX,PB_ADD ;DX=0F001HMOV AL,00H ;AL=00HOUT DX,AL ;将AL的值送入DX端口JMP LAST ;无条件转LAST指令GR: MOV AL,1 ;AL=0001 Green Red XLAT ;表转换MOV DX,PA_ADD ;AX=0F000HOUT DX,AL ;将AL的值送入DX端口PUSH BX ;7~1s倒计时LEA BX,SHUMA ;转换字形码MOV DX,PB_ADD ;DX=OF001HMOV AL,8 ;AL=0008SUB AL,CH ;AL=AL-CH/2XLAT ;表转换BDHMOV DX,PB_ADD ;DX=0F001HOUT DX,AL ;将AL的值送入DX端口POP BX ;显示计时JMP LAST ;无条件转移LAST指令YR: MOV AL,2 ;AL=0002XLAT ;表转换EBH Yello RedMOV DX,PA_ADD ;DX=0F000HOUT DX,AL ;将AL的值送入DX端口MOV DX,PB_ADD ;DX=0F001HMOV AL,00H ;AL=0000OUT DX,AL ;将AL的值送入DX端口JMP LAST ;无条件转移LAST指令DL500ms: PROC NEARMOV DX,T2_ADDRMOV AL,24H ;62500=F424HOUT DX,AL ;将AL的值送入DX端口MOV AL,0F4H ;AL=0F4HOUT DX,AL ;将AL的值送入DX端口DELAY: MOV DX,PC_ADD ;DX=0F002HIN AL,DX ;0001 0000 PC4~OUT2TEST AL,10H ;查AL=10H?JZ DELAY ;ZF=1 ,则转移RETDL500ms ENDPEND START ;汇编结束7、实际接线图8、运行结果当系统工作于状态1时,A、B道交替通行当系统工作于状态2时,仅K5闭合,A道有车,B道无车:当系统工作于状态3时,仅K6闭合,A道无车,B道有车:当系统工作于状态4时,K7闭合,有紧急车辆通行:9、设计心得及体会为期一周的课程设计在不知不觉中已经结束了,短短的几天,让我重拾课本中关于并行通信接口8255A和8253计数器/定时器的原理及其应用,抛开我们应该掌握的知识和技能,我还明白了一些做人的道理,让我受益匪浅。

相关文档
最新文档