微机原理与汇编语言交通灯
微机原理课程设计交通信号灯
设计任务及要求交通信号灯的亮灭规律。
设有一个十字路口,1、3位南北方向,2、4位东西方向。
初态为4个红灯全亮,禁止通行;随后交通灯亮灭规律按下列步骤进行:(1)1、3路口绿灯亮,2、4路口红灯亮;(2)延时10秒后,1、3路口绿灯灭;(3)1、3路口黄灯闪烁(闪烁3次);(4)2、4路口绿灯亮,同时1、3路口红灯亮;(5)延时10秒后,2、4路口绿灯灭;(6)2、4路口黄灯闪烁(闪烁3次);(7)转向(1)循环执行。
要求:1.通过8255A并口来控制LED发光二极管的亮灭,A口控制红灯,B口控制黄灯,C口控制绿灯。
红灯(RLED),黄灯(YLED)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4路口的红灯,B,C口类推。
2.发光二极管通过电阻接+5V,输出为0则亮,输出为1则灭。
3.通过软件延时,设CPU晶振频率为8M。
4.闪烁功能采用灯亮1秒后马上熄灭来实现。
硬件连接图(可打印)、设计说明8255共有40个引脚,其功能分别如下:D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
RD:读信号线,当这个输入引脚为低电平时,即RD=0且CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
CS:芯片选择信号线,当这个输入引脚为低电平时,即CS=0时,表示芯片被选中,允许8255与CPU进行通讯;CS=1时,8255无法与CPU做数据传输。
PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
《微机原理与接口技术》课程设计-交通灯
信息工程系计算机科学与技术12计本1班1214110214黄 福朱 茜 2015年06月29日院 系: 专 业: 年级班级: 学 号: 姓 名: 指导教师: 设计日期:目录一.课程设计目的 (3)二.课程设计任务 (3)三.总体设计方案 (3)五.程序设计流程图 (4)六. 程序连接图 (5)七.程序清单 (5)八.实验结果 (8)九.课程设计总结和体会 (8)一.课程设计目的用汇编语言和微机原理实验箱完成实现双方向交通信号灯控制系统,以达到熟练运用汇编语言编程以及实验箱上各个芯片的灵活运用。
⒈了解交通灯管理的基本工作原理⒉熟悉8253定时计数器的工作方式和编程应用⒊熟悉8255A并行接口的工作方式和编程应用二.课程设计任务本次课程设计的内容为双方向交通信号灯的控制和管理。
具体要求如下:1.东西方向车辆放行20秒钟。
即东西方向的绿灯和南北方向的红灯同时点亮25秒钟和黄灯点亮3秒钟。
2.南北方向车辆放行20秒钟后,转为南北方向的黄灯点亮3秒钟,以警示将切换红绿灯。
此时东西方向仍维持红灯点亮。
3.循环重复执行1和2两步骤。
三.总体设计方案1、用实验系统8255A实现对信号灯的控制(B端口),A端口的PA6、PA7口用来和8253共同控制信号灯点亮的时间。
2、实验中,8255选用(10010000)方式选择字,A组工作0方式,A端口输入,PC4-PC7输出,B组0方式,B端口输出,PC3-PC0输出3、实验中,8253采用两个计数器级联的方式达到定时的效果,8253计数器0的CLK0输入1MHZ的时钟脉冲,工作在模式3即方波发生器,理论设计OUT0 输出周期为0.01S的方波,则计数器0的初值为10000;OUT0输出的方波分别作为计数器1、计数器2的CLK1和CLK2的输入时钟脉冲,计数器1和计数器2工作方式为模式1,计数器1的初值为2500,即OUT1输出25秒,控制红绿灯的时间;计数器2初值为300,即OUT2输出3秒,控制黄灯的时间。
汇编语言与微型计算机技术课设十字交通灯
2024/6/10
7
七、时间安排:
➢ 时间:2013/12/23~2014/1/9
➢ 1.根据要求,设计出正确的电路原理图,并用 PROTEUS软件绘制电路图2天;
➢ 2.正确布线2天; ➢ 3.编制程序2天; ➢ 4.调试、排错、验收3天; ➢ 5.编写课设报告1天。 ➢ 注:具体时间可自己调整,上交报告为第10天17:
A7
B7
B6
A6
74LS245
A0 DIR
E
B0
2024/6/10
D7
PA7
D6
PA6
8255A
D0PA0Fra bibliotekD7 D6
8253
D0
15
(2)74LS06
2024/6/10
16
8255-RES-74LS06连线实例
2024/6/10
17
(3)74LS138
2024/6/10
18
地址译码电路表
2024/6/10
19
标准地址译码电路
8255CS对应的地址为300H~303H, 8253CS对应的地址为304H~307H。
8255CS 8253CS
2024/6/10
20
简化后的非标准地址译码电路 (本次课程设计采用)
8255CS 8253CS
2024/6/10
21
4.8253定时/计数器
2024/6/10
➢ 6.每个发光二极管的正极接排电阻的从2到9的一个引脚, 排电阻的1脚接VCC(+5V)。
2024/6/10
5
五、设计步骤
➢ 1.设计电路原理图,要求用PROTEUS绘图软件 绘制电路图,电路中应包括地址译码电路。
汇编语言设计交通灯控制系统
合肥学院电子系微机实验课程设计任务书摘要随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要的作用。
多媒体技术、网络技术、智能信息处理技术、自适用控制技术、数据挖掘与处理技术等都离不开计算机。
本课程设计是基于微机原理与接口技术的简单应用。
运用所学的微机原理和接口技术知识完成交通灯系统。
通过硬件与软件的结合,用我们刚刚学过的汇编语言编写程序模拟分析了现代城市交通控制与管理问题的现状,结合交通的实际情况阐述了交通灯控制系统的工作原理,给出了一种简单实用的交通灯控制系统的硬件、软件电路设计方案。
该系统适用于单主干道的十字路口,。
现假定其主干道为东西方向,次干道为南北方向。
可随意进行更改双向的通行时间,该功能能实现加中断控制和手动控制的方式进行,红绿灯切换时有闪烁功能以警示车辆和行人将进行红绿灯切换。
当有交通堵塞或紧急状况时可进行中断手动控制,使交通安全与交通流畅度得以保证。
关键词:延迟 8255 交通灯控制设计AbstractWith the development of electronic technology, computers in the development of modern science and technology play an increasingly importantEffect Multimedia technology, network technology, intelligent information processing technology, control technology from the applicationData Mining and processing and so can not do without the computer. The course design is based on Microcomputer Principle and Interface Technology for simple applications. The use of the computer science principles and technical knowledge to complete the interface traffic light system Through a combination of hardware and software, We have just learned to use the assembly language program to simulate the conditions of modern urban traffic control and management of the status quo,The actual situation with traffic light control system described working principle, A simple and practical given the traffic light control system hardware, software The system is suitable for a single main road intersection,. It is assumed that the direction of the east-west trunk road, secondary roads for the north-south direction. Two-way free passage of time changesThis feature can achieve plus interrupt control and manual control of the way, Flashing traffic light switching functions as a warning to vehicles and pedestrians will be traffic lights switch.When there is traffic congestion or an emergency manual control can be interrupted, so that the degree of traffic safety and traffic flow can be guaranteed.Key words: Delayed Traffic Light Control Design 8255目录第一部分引言.......................................第二部分交通灯设计的简介......................第三部分交通灯的设计案.......................第四部分交通灯系统的安装与调试.................第五部分程序流程图.................................第六部分设计过程与总结...........................第七部分附源程序..................................第八部分参考文献资料..............................第一部分引言电子课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。
汇编语言、微机原理、接口技术-实验六:交通灯实验
all_red equ 0000_0010_0100_1001b
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
验证了基本要求,实现了使用IO方式实现十字路口交通灯控制,分别实现南北向和东西向绿灯等时和不等时的控制
5.结论
完成了本次实验要求的实验内容。学会了使用IO方式实现十字路口交通灯控制,分别实现南北向和东西向绿灯等时和不等时的控制
mov dx, 9680h
jmp short jde ; break;
jd3: dec bl
jnz jd4 ; case 3: s3
; wait 5 seconds (5 million microseconds)
mov cx, 98h ; 00989680h = 10,000,000
mov dx, 9680h
计算机硬件实验室实验报告
课程名称:
姓名
学号
班级
成绩
设备名称及软件环境
Windows XP操作系统emu8086仿真器proteus仿真器
实验名称
[0006]8255交通灯实验
实验日期
2012/11/19
一.实验内容
1.使用IO方式实现十字路口交通灯控制
2.分别实现南北向和东西向绿灯等时和不等时的控制
; wait 1 seconds (1 million microseconds)
mov cx, 0fh ; 004f4240h = 1,000,000
mov dx, 4240h
jmp short jde ; break;
jd1: dec bl
jnz jd2 ; case 1: s1
微机原理课程设计说明(交通灯)
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、通过课程设计提高学生单片机的开发能力,
包括硬件设计和软件编程的能力。
二、课程设计的内容:
用单片机控制十字路口的交通灯,要求能
交通信号灯控制系统(汇编语言课程设计)
汇编语言课程设计交通信号灯控制系统初始界面:实现功能齐全。
思路清晰~~~~~~~~~~~~一、设计要求利用PC机键盘和屏幕实现交通灯信号灯,控制系统。
二、设计内容与要求基本要求:1、完成一个十字路口的红绿灯正常状态的控制:实现日常生活中正常的交通路口的控制功能,实现南北、东西方向的切换。
2、显示时间,精确到秒;灯亮时间长短可变。
3、具有自动和手动控制功能。
提高要求:1、完成夜间状态的控制:由于夜间车辆和行人很少,实现南北、东西方向的黄灯闪烁,进入夜间控制状态。
2、完成紧急状态的控制:南北双方向都设置为红灯,利于执行紧急公务。
3、完成交通堵塞状态的控制:由于交通事故等原因出现南北或东西某一方向堵塞,可人为地调整每个方向的红灯时间,进入手动控制状态。
附加要求:必要的辅助功能(设置、修改等)。
三、编程提示要求用汇编语言进行编程,下面是编写过程中主要涉及的知识点(其中举例只是实现方法之一,同学可根据自己对知识的掌握情况进行设计并调试):1、视频显示程序设计:一般由DOS 或BIOS调用来完成。
有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。
用INT 10H即可建立某种显示方式。
用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT 21H来实现调用,例:要输出多于一个字符时,利用DOS功能调用9。
2、键盘扫描程序设计:检测键盘状态,有无输入,并检测输入各值。
例:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器。
3、定时器中断处理程序:在此中断处理程序中,计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。
例:在系统定时中断处理程序中,有一条中断指令INT 1CH指令,在ROM BIOS中,1CH的处理仅一条IRET指令,实际上它并没有做任何工作而只是为用户提供了一个软中断类型号,所以INT 1CH指令每秒也将执行18.2次,设计中可用这个定时周期性工作的处理程序来代替原有的1CH程序,实现定时。
微机原理课程设计—交通灯控制
交通信号灯的控制一、设计目的巩固“微机原理”课程学过的知识,加强理论与实践的联系。
通过本课程设计,使学生初步了解微机系统的硬件设备,学会 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。
简易交通灯报告(附源程序——汇编语言)
题目:简易交通灯一、设计目的利用TDN微机原理试验箱及单元电路,实现对一道路交通灯的控制。
当通过车辆计数达到50时,绿灯灭,红灯亮,同时数码块倒计时若干秒(此次设计中设为9秒)。
此时,车辆停止,行人可以通过。
二、参加人员及分工李——试验报告霍——调试程序洪——编写程序三、技术要求1、设计完成交通灯的电路2、采用TDN试验箱上的8255、8259、8253完成3、程序设计中采用软件延时四、试验器材TDN-MD86/51实验箱一台,8253一片,8255一片,8259一片,数码管一组,发光二极管一组。
五、设计和调试环境TDN-MD86/51教学试验系统六、题目分析、工作原理、设计思想题目分析我们所做的交通灯是控制单路口处车辆和行人的通过及停止的简易交通灯。
因此需要两个灯和一块用于显示倒计时的数码块来控制车辆和行人的通行、停留问题。
其中两个灯分为红绿色,主要根据两只灯的亮灭情况来控制车辆,当红灯灭绿灯亮的时候车辆可以通过,而红灯亮绿灯灭时车辆就要停止通行。
数码块用于显示倒计时的时间以控制人,当倒计时开始时人通行,倒计时结束后行人就要等待。
根据题目分析得出以下设计思想及工作原理:设计思想在一开始启动交通灯时设置为红灯灭绿灯亮,让车辆先通行,行人等待,当通过50辆车后,红绿灯都同时灭然后红灯亮绿灯灭且数码快开始倒计时,此时为行人通行时间。
然后当数码块倒计时到0时行人通行的时间结束。
转而红灯灭绿灯亮又改为车辆通行时间。
红绿灯和数码块如此反复工作就构成的交通灯。
工作原理通过向8259写入程序来控制其他器件的工作。
在程序一开始写入中断向量和各芯片的控制方式字,以确保发生中断是正确的响应中断及芯片正确的工作状态。
接下来的程序就是控制8255和8253,8255选择工作方式1,A、B、C、口都做基本的输入输出。
通过8255A 口先让红灯灭绿灯亮。
8253选择工作方式2:计数停止中断,通过8253对车辆的计数达到50辆车是就发出中断请求。
微机原理与接口技术课程设计-----交通灯设计解析
中南大学微机课程设计报告题目交通灯设计专业班级姓名学号指导老师林立新老师目录1.课程设计题目、功能、目的 (2)2.系统分析与设计 (3)2.1系统所用芯片分析 (3)2.2所选用芯片的简要介绍 (4)2.3系统框图 (6)3.程序设计 (7)3.1十字路口交通灯状态转换表 (7)3.2主程序流程图 (7)3.3 中断子程序流程图 (8)3.4 数码管码表 (8)3.5 各芯片初始化说明 (9)4.运行情况 (10)5.具体源代码及注释 (11)6.心得体会 (16)一、课程设计题目、功能、目的1.课程设计题目--------------交通灯设计2.本设计所实现功能1)实现十字路口交通灯各种状态的转换;2)各种状态转换的时间可进行灵活设置;3)采用中断的方法对状态转换进行控制,提高处理器效率;4)在各个状态转换的同时实现倒计时提醒。
3.本次课程设计目的1)通过《微机原理与接口》课程设计,使学生能够进一步了解微型计算机工作原理, 微型计算机的硬件结构及微型计算机软件编程。
2)要求学生根据接口电路的硬件要求进行计算机的汇编语言程序设计,使学生的软件编程能力得到加强,对接口电路的综合应用能力有较大提高。
二、系统分析与设计1.系统所用芯片分析1)首先本个系统需要一个中央处理器来负责对整个系统进行控制管理,因为《微机原理与接口技术》这门课上介绍了8086芯片,所以可以采用8086作为本系统的中央处理器。
2)由于本次的课程设计的题目是交通灯,而根据十字路口处的交通灯南北和东西方向各有红、绿、黄三种颜色的灯,因此可用8255来控制6个LED灯的实现模拟的南北和东西方向上的交通灯。
3)而交通灯的状态转换时间要由中断方式来控制,所以很容易想到了可以用8259作为中断芯片,与8086芯片相连。
4)交通灯的状态转换时间可灵活设置,于是想到了可以采用一块8253或8254芯片和一个脉冲源相连,8253对脉冲源送来的脉冲进行分频,然后将输出送到8259作为中断源,而8253采用不用的计数初值其输出脉冲的频率就不一样,因此实现了交通类状态转换时间的灵活设置。
微机原理十字路口交通灯实验报告1
一、课程设计(论文)题目十字路口交通灯模拟二、本次课程设计(论文)应达到的目的通过本次课程设计,使学生不仅更加深刻领会微型计算机从硬件组成到软件编程的基本原理和知识,而且更要学会应用,务必做到理论和实践相结合,掌握硬件分析、软件设计的基本思想和方法,提高分析问题、解决问题和工程实践的能力。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)本课程设计题目的主要内容是模拟十字路口交通灯(红、黄、绿三色)的显示控制。
设计要求为:1.主干道计时60秒,次干道计时45秒,时间到则切换红绿灯;2.红绿灯不变期间,在七段数码管上显示每秒倒计时;3.计时到最后5秒时,两个方向的黄灯同时闪烁直至计时到0。
四、应收集的资料及主要参考文献:1.《微型计算机基本原理与接口技术》陈红卫,科学出版社 2003.22.《8086实验指导书》张维琪、张晓群,信控学院实验中心3.其他与本课程设计题目相关的资料五、审核批准意见教研室主任(签字)摘要本设计以TDN86/51实验箱为载体,结合中断控制器8259A、并行接口8255、中断定时器8253、七段数码显示管LED及八个发光二极管的功能,用汇编语言编程实现了十字路口交通灯模拟的实验。
8255A的两个端口在本次实验中均有用处,A口为方式0用作输出,与七段数码管LED连接,用于向七段数码管输入数据的。
B 口为方式0用作输出,与八个发光二极管连接,用于向发光二极管输入数据。
C口低四位在本实验中做输出与LED数码管相连,高四位没有用到,但在初始化中将C口均初始化为输出。
8253A芯片在本实验中用了计数器2工作在方式3下,计数初值赋为59500,工作箱的时钟频率为1.19MHz,即计时50ms,它的OUT2接到8259A的IRQ7上,让IRQ7每隔50ms发一次中断,这样就可以通过控制发中断的次数来得到想要的时间。
8259A芯片在本实验中被用到了5个中断,作为计时或在特殊情况下的特殊功能。
微机原理交通灯控制系统设计实验.
微机原理与汇编语言综合性实验交通灯控制系统设计学号姓名班级微机原理与汇编语言综合性实验任务书实验项目名称:交通灯控制系统设计课程名称:微机原理与汇编语言面向专业:信息与计算科学专业计划学时:4学时=实验课内2学时+实验课外2学时实验类型:√综合设计实验目的:掌握典型数字接口电路的应用技术原理,掌握常用接口芯片在应用系统中的硬件电路连接原理和软件编程方法。
实验要求:包括开发环境要求,技术文档要求两部分。
开发环境要求:软件环境:windows98/windowsXP/windows2000,emu8086环境硬件环境:计算机(Pen4CPU, 256MRAM,60G以上硬盘,输入输出设备)技术文档要求:按照实验报告编写要求进行。
要求流程图绘制规范,软、硬件功能描述清晰,实验总结深刻。
实验内容:1 熟悉并行接口、中断控制器、定时器的工作原理及相关芯片。
2 掌握数字接口电路设计应用原理,根据系统功能用汇编语言编写相关程序。
3 与单片机实验箱结合,选择合适的芯片,按照实验要求连接电路。
并在系统中输入程序,运行并观察结果。
也可在emu8086环境中运行编译好的的程序,通过系统模拟,在模拟窗口中观察交通信号灯的变化,得出相关结论。
实验方案(任务提示):按照时间控制原则,利用并行接口和定时器,采用时间中断方式设计电路。
按照系统板上硬件连线要求,在QTH-8086B16位微机教学实验仪上连好相关线路并将实验仪与PC机连好。
也可在proteus环境下设计硬件原理图,搭建硬件电路。
根据软件设计的程序流程编写源程序,可自行控制通行时间、禁止时间及准备时间,周而复始。
再将源程序在相应的环境中进行编译连接和运行,或者仿真调试,以实现控制交通灯的功能。
实验仪器设备:每个学生一台计算机、QTH-8086B 16位微机教学实验仪、或者emu8086实验模拟系统。
实验报告版式要求:A4纸张打印;上下页边距各2.5cm,左右页边距各3.0cm,页眉1.5cm页脚1.75cm;页码位于页脚居中打印;奇数页页眉“微机原理与汇编语言综合性实验”,偶数页页眉“交通灯控制系统设计”,页眉宋体小5号,一级标题:黑体三号粗体字;二级标题:黑体4号;三级标题黑体小4号,正文,宋体5号。
微机原理接口与技术实验四、控制交通灯
姓名
学号
实验组
实验时间
指导教师
成绩
实验名称
实验四、控制交通灯
实验目的
1.掌握通过8255A并行口传输数据的方法,以控制发光二级管的亮与灭。
实验内容
用8255A作输出口,控制十二个发光二级管然灭,模拟交通灯管理
实验环境
1.硬件:PC一台、8255A实验箱
2.软件:32位的Windows操作系统、Masm50、emu8086
OUT DX,AL
CALL DELAY1
MOV DX, 0ffd8h
MOV AL, 10101110b//1,3红灯,2、4绿灯
OUT DX,AL
INC DX
MOV AL,00001011b
OUT DX,AL
CALL DELAY1
CALL DELAY1
MOV CX,0008H
P2: MOV DX, 0ffd8h
MOV CX,0030H
DELAY2: CALL DELAY3
LOOP DELAY2
POP CX
POP AX
RET
DELAY3: PUSH CX
MOV CX,8000H
LOOP $
POP CX
RET
CODE ENDS
END START
实验总结
本次实验达到了实验目的,通过汇编语言模拟了交通灯的工作过程。对汇编语言有了更进一步的认识,基本掌握了通过8255A并行口传输数据的方法。
(3)按复位键RESET返回“P”或按暂停键STOP+MON键返回“P”
(4)代码
CODE SEGMENT
ASSUME CS:CODE
ORG 32F0H
汇编设计交通灯
微机交通灯控制系统 课程设计任务书一、课程设计目的微机原理课程设计是微机原理课程的一次综合性训练。
要求通过课程设计达到以下目的:1.掌握微机系统的硬件设计方法(以IBM-PC 机扩充插槽总线为基础)。
2.掌握定时/计数器、输入/输出接口电路设计方法。
3.掌握DOS 中断控制编程技术的方法和应用。
4.掌握8086汇编语言程序设计方法,初探编程技巧。
5.掌握微机控制系统的调试方法。
二、课程设计任务 …微机交通灯控制系统…微机交通灯实时控制系统用于城市十字路口的交通管理。
南北和东西路口各设红(R A 、R B )、黄(O A 、O B )、绿(G A 、G B )三个交通灯(用LED 模拟)。
交通灯的控制要求是:1.南北(A)向和东西(B)向的交通灯定时30秒交换一次。
每次交换前,绿灯闪烁4次共4秒,黄灯亮2秒。
其交换时序为:南北东西2.南、北、东、西向道口各有一个车辆检测器B2。
有车辆经B1 A2 G A O A R A G B O B R BJ A1B2 南东 西 北过时,检测器输出信号有效,输出低电平(如A2=0)。
在一个方向道口24秒期间,通过车后超过5秒无车继续通过时,若另一方向道口有车等待,则交通灯自动提前交换。
交换前,绿灯闪烁4次共4秒,黄灯亮2秒。
(在实验时,车辆检测器由开关模拟。
)3.道口设有紧急车辆检测器。
若紧急车辆检测器有效,J=0时,二个方向交通灯立即亮红灯,原有计时器暂时停止计时,直至J=1。
然后又自动继续恢复正常的交通管理。
关于微机交通灯控制系统课程设计的说明布置任务、背景介绍一、布置任务介绍设计任务书二、介绍设计过程1、理解任务要求(调查研究)2、总体方案论证、分析❶根据任务要求,五个输入信号(信号为0时有效)的可能组合状态,以及识别的方法分析。
用软件程序判断南北(A)有车,转SN;判断南北(A)无车,转PB2的方法分析。
❷根据任务要求,两组共六个输出信号(信号为1时LED点亮)的可能组合状态,以及用软件程序使某一种灯状态输出的方法分析。
微机原理课程设计交通灯
一、课程设计题目交通灯控制二、课程设计目的●综合运用《微机原理与应用》课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识,提高程序设计能力与实现系统、绘制系统电路图的能力,为实际应用奠定一定的根底。
●掌握8255A方式0的使用与编程方法●PC机与配套的接口电路实验装置●IC芯片:8255A应用和8253三、课程设计内容●采用8255A设计交通灯控制的接口方案●采用8253设计延时电路●插接电路●编写控制程序四、课程设计过程1、设计原理●82558255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片〔40引脚〕。
其内部与引脚图如下图:8255有三个端口A、B、C端口,3种不同的工作方式,在其控制字的作用下使某一个端口工作于某一种工作状态下。
8253intel8253是NMOS工艺制成的可编程计数器/定时器,其内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全一样,如下图:每个计数器的输入和输出都决定于设置在控制存放器中的控制字,互相之间工作完全独立,采用减1计数方式。
控制字如下图:在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。
当计数脉冲是周期的时钟信号时,计数就成为定时。
各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。
在这里我们主要采用方式0:计数完毕产生中断(由低电平变为高电平)。
其波形图如下图:a. 写CW后:OUT=0,直到计数到0b. 写N后:下1个CLK脉冲下降沿开始计数c. 计数过程中,可重写N,重写N后,同b.d. GATE的作用:GATE=1计数、=0暂停计数e. 计数到0:OUT=1,直到再写CW或N2、方案设计考虑普通十字路口,交通灯的控制可分东西向和南北向两组,每组可用红、黄、绿三个灯进展交通管理,所以本方案要点是至少对六个交通灯进展控制。
微机原理交通灯
摘要在实际生活中,交通信号灯控制着交通的秩序安全。
本微机原理课程设计就是模拟实际十字路口交通灯的运行规则,用汇编语言来设计交通信号灯。
本次设计主要是实现对十字路口交通信号灯的控制而进行的编程,用8255A 的A口控制东西方向的交通灯,用8255A的B口控制南北方向的交通灯。
当程序正常运行时,依次为东西方向的绿灯和南北方向的红灯亮,通过延时程序进行一段延时后,东西方向的绿灯灭后东西方向的黄灯闪3次,随后东西方向的红灯和南北方向的绿灯亮并进行延时,延时后,南北方向的黄灯闪3次,之后同理往复循环。
用8255A的C口控制紧急情况时东西、南北方向的红、黄、绿灯的亮灭,通过读C口输入的数据并进行测试查询,从而对紧急情况进行及时处理。
十字路口交通信号灯设计充分利用了可编程的并行接口芯片8255A各引脚的功能,选定工作方式0,通过改变控制字来实现交通信号灯的状态转换。
另外,通过调用延时子程序来实现交通信号灯某一状态的持续,调用循环子程序来实现对交通信号灯状态循环的控制,通过控制开关来实现紧急情况下各路口红灯全亮的功能。
综合各部分功能来实现较为完善的程序,运行程序来模拟十字路口交通信号灯。
关键词:可编程的并行接口8255A,延时,循环,测试,1 设计任务描述1.1 设计目的(1) 查阅可编程并行芯片8255或其他相关资料;(2)用简单的输入输出端口等硬件,配合延时和控制程序控制灯的亮灭。
1.2 设计要求(1) 利用微机原理试用箱,采用两组红,黄,绿发光二极管来模拟A,B两路交差路口的信号控制;(2) 按实际交通灯控制规程控制。
1.3 增加功能(1) 延时程序。
(2) 中断程序。
(3) 当路口发生事故时,强行A,B路口红灯全亮。
2 设计思路本次微机原理设计的题目是交通信号灯,它是通过对8255芯片和LED发光二极管的连接设置来模拟交通信号灯的控制,使红黄绿三色灯按照正常交通规则亮灭;并应用中断控制器8259对交通灯在发生事故情况下进行强制控制。
微机原理实训报告交通指示灯
一、设计目的学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、设计思路1、通过8255A控制发光二极管,PB4-PB7对应黄灯,PC0-PC3对应红灯,PC4-PC7对应绿灯,以模拟交通路灯的管理。
2、设有一个十字路口1、3路口为南北方向2、4为东西方向,初始状态为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。
延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口的方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后,重复上述过程。
三、实验原理在设计中采用的是软件定时实现的。
而灯的亮与灭以及闪烁是用8255的B口和C口控制的,工作方式0,B口和C口均为输出。
并行接口是以数据的字节的单位与I/O设备或控制对象之间传递信息。
CPU和接口之间的数据传送是并行的,即可以同时传递8位、16位、32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5单电源供电,能在以下三种方式下工作:方式0——基本输入/输出方式。
方式1——选通输入/输出方式。
方式2——双向选通工作方式。
由于实验中所用到的发光二级管是共阳极的,如图2-1所示,所以在为8255的B口和C口写数据时,对应的每一位有:0代表灯亮,1代表灯灭。
将8255A的RE和WR非信号端分别与8086的两个端口相对应连接起来,8255A的数据线和8086的数据端口相连接,RE和WR非信号都是8086发出的控制信号,当进行读数据时,从8255A传送到8086,如果为写信号时,由8086写向8255A。
8255微机原理交通灯
微机原理及汇编语言课程设计说明书学生姓名:学号:06060341X38 学院:专业: 计算机科学与技术题目: 交通灯成绩指导教师李顺增,井超2009 年 7月 10 日1. 引言十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。
十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。
它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。
在交通灯的通行与禁止时间控制显示中,通常东西、南北两方向各30秒。
交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。
2.需求分析使用了8255可编程并行接口实现了,对南北、东西方向交通的分别计时,设计采用定时控制的方式进行,对两个方向车辆的通行时间分别计时。
城市十字交叉路口红绿灯控制系统主要负责控制东西走向和南北走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时。
3.概要设计1.东西方向的绿灯和南北方向的红灯同时点亮29秒钟;2.29秒钟后,东西方向的左转灯点亮10秒钟,。
此时南北方向仍维持红灯点亮。
3.10秒钟后,东西方向黄灯闪烁8次,此时南北方向仍维持红灯点亮。
4.东西方向的黄灯闪烁8次后,转为红灯,此时南北方向转为绿灯29秒钟。
5.29秒钟后,南北方向转为左转灯点亮10秒钟,此时东西方向仍维持红灯点亮。
6.10秒钟后,南北方向黄灯闪烁8次,此时东西方向仍维持红灯点亮。
7.南北方向的黄灯闪烁8次后,转为红灯,此时东西方向绿灯点亮29秒钟。
如此循环下去。
4. 详细设计STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSDATA SEGMENTTABLE DB 6FH,7FH,07H,7CH,6DH,66H,4FH,5BH,06H,3FHTABLE DB 5BH,06H,3FHDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,80HOUT 63H,ALZH: CALL CPMOV DX,1MOV AL,01111110B OUT 63H,ALMOV CX,8 NEXT: CMP DX,1JE IHCMP DX,2JE HSCMP DX,3JE HZCMP DX,4JE HIJMP SHIH: MOV DX,2MOV AL,10111110BOUT 60H,ALJMP B1HS: MOV CX,8HS1: MOV AL,11011110BOUT 60H,ALCALL T2SMOV AL,11111110BOUT 60H,ALCALL T2SLOOP HS1MOV DX,3JMP HZHZ: MOV DX,4MOV AL,11100111BOUT 60H,ALCALL NUM4MOV CX,30JMP B1HI: MOV DX,4MOV AL,11100111BOUT 60H,ALCALL NUM4MOV CX,30JMP B1SH: MOV DX,5MOV AL,11101011BOUT 60H,ALJMP B1SH: MOV CX,8SH1: MOV AL,11101101B OUT 60H,ALCALL T2SLOOP SH1MOV CX,8MOV DX,6JMP ZHP1: JMP K1P2: JMP K2P3: JMP K3P4: JMP K4B1: CALL NUM5LOOP B1CALL CPMOV CX,30MOV AX,0009HCMP AX,BXJE B2CALL NUM2JMP B1B2: MOV BX,OFFSET TABLE MOV AL,3FHMOV AH,00HCMP AX,[SI]JE NEXTCALL NUM3JMP B1CP:IN AL,62HAND AL,0F0HCMP AL,10HJE P1CMP AL,20HJE P2CMP AL,40HJE P3CMP AL,80HJE P4RETK1:MOV CX,300K11: MOV AL,11101110B OUT 60H,ALMOV AL,OFHOUT 62H,ALLOOP K11MOV CX,300CALL ZHK2:MOV CX,2K22: MOV AL,0FHOUT 62H,ALMOV AL,11011101BOUT 60H,ALCALL T2SMOV 60H,ALCALL T2SMOV AL,11111111BOUT 60H,ALCALL T2SLOOP K22MOV CX,2CALL ZHK3:MOV CX,300K33: MOV AL,11111111BOUT 60H,ALMOV AL,0FHOUT 62H,ALLOOP K33MOV CX,300CALL ZHK4:MOV CX,300K44: MOV AL,00000000BOUT 60H,ALMOV AL,00HOUT 62H,ALMOV AL,7FHOUT 61H,ALLOOP K44MOV CX,300CALL ZHT1S PROC NEARPUSH CXMOV CX,4000T1S1: LOOP T1S1POP CXRETT1S ENDPT2S PROC NEARPUSH CXMOV CX,50T2S1: CALL T1SLOOP T2S1POP CXRETT2S ENDPNUM PROC NEAR MOV AL,ODH OUT 62H,AL MOV AL,[SI] OUT 61H,AL CALL T1SRETNUM ENDPNUM1 PROC NEAR MOV AL,0BH OUT 62H,AL MOV AL,[BX] OUT 61H,AL CALL T1SRETNUM1 ENDPNUM2 PROC NEAR INC BXRETNUM2 ENDPNUM3 PROC NEAR INC SIRETNUM3 ENDP NUM4 PROC NEARMOV SI,OFFSET TABLEAMOV BX,OFFSET TABLERETNUM4 ENDPNUM5 PROC NEARCALL NUMCALL NUM1RETNUM5 ENDPCODE ENDSEND START5. 软件测试系统上电,写好程序即可开始测试,观测一个周期(共计S1~S4四个状态,默认140秒)灯的显示状态是否正常,同时观察倒计的计数是否正常。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
欢迎下载我曾做过的微机原理与汇编语言课程设计:交通灯。
程序在MASM,唐都TDN86/88实验系统上运行通过。
指导老师对你这次编程的构想,这想法看问题出发点在哪问的很少,但是细节会问很多。
当时,他有问我:你每次运行程序时都敲入G=0000:2000这是什么意思。
程序中有“MOV[SI],AX”语句,你知道它干什么的(中断矢量初始化),那它现在内容是什么(看着程序,我也说了),那它为什么里面放的就是这个值,而不是其他值?(我不会了,只说是规定。
心里很生气,不问思想,问什么呢!)后面还有更气人的,你们这系统不符合实际,你一开始在几点启动的它,你怎么就知道过多长时间就进入夜间(0点以后)的?夏天白天长,冬天白天短,我家还睡觉可晚了。
(我当时都疯了,实在没话说。
不过也确实没考虑时间校准的问题,只觉得是个模拟,不用太当真,不过老师说的蛮对的。
)这只是给大家个思路,以时间作为出发点,去完成交通灯的工作时序图。
这份实验报告是不完整的,其中我们小组的流程图没画,同时程序没有语法错误,但是运行起来一个是灯显示不对,一个是绿灯倒记时只有一组(正常是两组)。
硬件连线图也没有。
希望大家多去动手实践,永远都别想着不劳而获。
要是按我这次的思路来,希望可以把时间开始,校准考虑进去。
这次试验我原想着用两8253级连隔1S引起一中断,结果一看实验箱只一个8253,才选用了软件编程加硬件结合起来,得到一固定时间的方法。
万事开头难,这个实验前两天都不知怎么办。
祝大家学习好,身体棒!末了,有什么问题,可以给我在下这个资源的评论区或我的CSDN个人主页上留言中北大学电子与计算机科学技术学院汇编语言课程设计题目:交通灯控制系统班级:04090402指导教师:完成日期:2007年7月13日学号姓名负责模块成绩组长04090402xx8255A成员04090402xx绿灯倒计时成员04090402xx8259中断成员04090402xx夜间控制成员04090402xx82531需求分析在当今社会里,交通越来越发达,车辆也越来越来多,由此也带来了大量交通问题。
在本次课程设计中,我们针对现实生活中常看到的红绿灯,运用汇编语言及接口技术来模拟十字路口的交通灯,对交通灯进行控制,并实现一定的功能。
我们通过一些接口芯片:定时/计数器8253,并行接口8255A,中断控制器8259A 和8086计算机的硬件连接,通过8253定时及编延时子程序的方法(设备条件有限,不能依靠纯硬件实现)、利用8259的中断功能及8255A并口输出数据功能做了一实时操作系统,来模拟对十字路口交通灯的控制。
具体如下:(1)用8253计时器来完成时间的设定;(3)用8259中断控制器来进行紧急情况处理,如警车执行任务等情况;(4)通过8255A并口来控制LED发光二极管的亮灭,输出为0则亮,输出为1则灭;(5)用8255来输出绿灯的倒计时间。
2设计方案及分工在这个方案里,我们将此设计分为5个模块,即:实现电路设计、连接电路以及各模块间整合的模块、实现交通灯循环的模块、对中断进行处理的模块、实现绿灯倒计时的显示模块、实现夜间控制模块。
具体分工如下:xx:实现8253、电路设计、连接电路以及各模块间整合的模块xx:实现夜间控制模块xx:实现交通灯循环的模块xx:对中断进行处理的模块xx:实现绿灯倒计时的显示模块我们想通过这次设计,具体实现以下功能:以8086CPU为核心设计一个交通灯控制系统,通过8255并口来控制LED发光二级管的亮灭,输出0为亮,输出一为灭;用8253来实现一个定时器(隔一定时间发生一边沿跳变,引发8259中断);用8259来实现对中断的处理;设有一个十字路口,东西方向与南北方向各有一个红绿灯,初始状态为东西路口的红灯亮南北路口的绿灯,南北方向的路口通车,并显示南北路口绿灯的倒计时间。
延迟一定时间之后,南北路口与东西路口都为黄灯亮,延迟一定的时间后,南北方向的红灯亮,东西路口的绿灯两,东西方向的路口通车,并显示东西路口的绿灯倒计时间。
延迟一定时间后直接跳变为东西方向的红灯亮,南北路口的绿灯亮。
如上所述循环一定次数后假设进入晚上,屏幕上显示Good Night!此时这两个路口的黄灯开始闪烁,数码管清零并且闪烁。
延迟一定时间后假设进入早晨并在屏幕上显示Good Night!并实现交通灯的循环。
如果遇到紧急情况,采取紧急中断并且两个方向路口的红灯全亮确保紧急情况得到妥善处理,并且不管。
在紧急情况中断处理模块里通过拨动按钮KK2来触发中断,使各个路口的灯全显示红灯,并在屏幕上输出Waring!中断完成后跳回原来的状态,继续运行。
3各个模块的实现3.1交通灯循环模块(XX)3.1.1设计思想十字路口分为南北方向和东西方向,各个方向有红黄绿三灯,其循环过程如下:1:东西方向路口的红灯亮,南北路口的绿灯亮;2:东西路口与南北路口都为黄灯亮;3:东西方向路口的绿灯亮,南北方向路口的红灯亮;4:不经过黄灯亮,直接跳变为状态1;5:按如上过程循环;3.1.2流程图图3-18255并口输出流程图3.1.3具体实现用8255控制交通灯的循环,具体状态如下(0:灯亮1:灯灭)表1交通灯循环状态表状态D7(东西红)D6(东西黄)D5(东西绿)D4(南北红)D3(南北黄)D2(南北绿)D1D0 101111011 210110111 311001111 4011110118255初始化:A口输出B口输出C口输出工作在方式08255控制字为:10000000,即80H3.2实现绿灯倒计时模块(XX)3.2.1设计思想十字路口在东西方向和南北方向各有一个绿灯倒计时显示,建一个Table存放字模。
当东西路口为绿灯时在第一个数码显示管上显示剩余时间。
首先让BX指向Table的首址,将计数器中当前DL中的值赋给AL,通过相应的加减然后在Table中找出相应的字模通过8255赋给数码显示管,本次课程设计用的是静态显示,当DL中的是发生变化时数码管上显示的数字也随着变化,以次来实现在数码管上显示绿灯的倒计时间。
当南北路口为绿灯时,过程与上面的描述类似。
3.3实现夜间控制模块(XX)3.3.1设计思想由于十字路口的交通灯是按一定的方式和固定时间进行循环的,并且每循环一次所需时间为一秒,所以,根据C=T/L(C为白天交通灯循环的次数,T为白天(6:00——24:00)的总时间长度,L为交通灯循环一次的时间长度)可计算出白天交通灯循环的次数,由白天交通灯循环的次数便可判断出是否让系统进入夜间控制,因此设计一个记录白天交通灯当前循环次数的变量加以记录,并将此变量与预设白天循环次数进行比较即可。
当系统判断出应进入夜间控制后,将四个方向的四部交通灯全部变为黄灯闪烁,并让四部计时器(LED)于黄灯交替闪烁。
黄灯闪烁的次数根据C’=T’/L’(C’为夜间交通灯黄灯闪烁的次数,T’为夜间(24:00——6:00)的总时间长度,L’为交通灯黄灯和计时器(LED)闪烁一次的时间长度)计算得出,并将此值作黄灯闪烁的设定值,当黄灯闪烁次数与设定值相等时,系统便转换为白天控制模式。
3.4中断处理模块(XX)3.4.1设计思想定时器8253连接着IRQ0,每当定时一定时间就可以触发IRQ0中断程序,也是主程序;同时IRQ7连接着一边沿触发,来处理应对紧急情况。
3.5实现计数器模块(XX)3.5.1设计思想由8253作为一定时器,每隔一定时间引发一次IRQ0中断,中断服务程序中有一变量记录着时间值,从30H开始,依次累加,直到3AH,该值再变为30H。
依据这个值,系统在每个值下会有着对应的状态。
如此往复,来实现对交通灯的模拟。
在这个值基础上,另有一变量,它在时间值走完一个时序循环,它自加一,当达到一定数值,就会进入夜间模式。
当该模式完成时,该变量清零,再次进入正常工作模式。
3.5.2流程图图3-2主程序流程图图3-3IRQ0中断服务程序流程图4源代码DATA SEGMENTWE DW?YK DB?ZLC DB?B2DB?TIME DW?STRING1DB0AH,0DH,'Good Night!',00HSTRING2DB0DH,'Good Morning!',0AH,00HSTRING3DB0DH,'WARNING!',0DH,00HTABLE DB66H,4FH,5BH,06HDATA ENDSSTACK SEGMENT STACKDW64DUP(?)STACK ENDSCODE SEGMENT;定义代码段ASSUME CS:CODE,DS:DATASTART:MOV AX,DA TAMOV DS,AXPUSH DS;DS:00压栈MOV AX,0000HMOV DS,AX;置数据段MOV AX,OFFSET IRQ0ADD AX,2000HMOV SI,0020HMOV[SI],AXMOV AX,0000HMOV SI,0022HMOV[SI],AXMOV AX,OFFSET IRQ7ADD AX,2000HMOV SI,003CHMOV[SI],AXMOV AX,0000HMOV SI,003EHMOV[SI],AXPOP DSMOV AL,80H;8255MOV DX,63HOUT DX,ALMOV AL,0FCH;8259OUT21H,ALMOV AL,15H;8253OUT43H,ALMOV AL,0FFHOUT40H,ALMOV DL,30HMOV ZLC,30HA1:STIJMP A1IRQ0:CALL WPMOV AH,01HMOV AL,DLCMP AL,3AHJNZ A2INC ZLCCMP ZLC,32H;与换行数比较JNZ N1CALL ZPP;调用子程序N1:MOV AL,0DH;换行INT10HMOV AL,30HA2:INT10HINC AXMOV YK,AL;YK=ALCMP DL,3AH;DL与3A比较JNZ W1;<>跳向W1MOV DL,30H;相等则令DL=30HW1:MOV AH,DLCALL WJJ;从B口输出MOV AL,YKMOV DL,ALMOV AX,0120HINT10HMOV TIME,0099H;变量TIME赋值,延时子程序起作用CALL DALLYMOV AL,20HOUT20H,ALIRETIRQ7:mov time,0660hMOV AL,01110111BOUT61H,ALMOV AH,06HMOV BX,OFFSET STRING3INT10Hcall DALLYmov al,20hout20h,almov time,0020hIRETWJJ:CMP AH,34HJL HONGCMP AH,35HMOV AL,1111BOUT60H,ALJL HUANGCMP AH,35HJG LVHONG:MOV AL,7DHMOV DX,61HOUT DX,ALMOV BX,OFFSET TABLEMOV B2,0111BCALL CHENXIJMP XXHUANG:MOV AL,0BBHMOV DX,61HOUT DX,ALJMP XXLV:MOV AL,0D7HMOV DX,61HOUT DX,ALMOV BX,OFFSET TABLEMOV B2,1110BCALL CHENXIADD AH,06HRETZPP:PUSH DXPUSH AXMOV AL,1111BOUT60H,ALMOV AH,06H;显示晚上提示信息MOV BX,OFFSET STRING1;取STRING1的地址INT10H;显示MOV CX,08HMOV TIME,0060H;变量TIME赋值,延时子程序起作用ZP:CALL WPMOV AL,0BBHMOV DX,61HOUT DX,ALCALL DALLYMOV AL,0FFHMOV DX,61HOUT DX,ALCALL DALLYLOOP ZPMOV AH,06H;显示早上提示信息MOV BX,OFFSET STRING2INT10H;显示POP AXPOP DXMOV ZLC,30HRETPUSH AXPUSH BXCLI;屏蔽IRQ0MOV AL,01HOUT21H,ALMOV AL,68HOUT20H,ALSTIMOV AL,48HOUT20H,ALMOV AL,00HOUT21H,ALPOP BXPOP AXRETCHENXI:PUSH AXPUSH BXMOV AL,B2OUT60H,ALSUB AH,30HMOV AL,AHXLATOUT62H,ALPOP BXPOP AXRETDALLY:PUSH AXMOV AX,TIMEMOV WE,AXA3:MOV AX,0560HA4:DEC AXJNZ A4DEC WEJNZ A3POP AXRETCODE ENDSEND START5设计心得通过本次课程设计,我们熟悉了芯片8253、8259、8255的功能和应用。