微机原理交通灯控制实验及其详细
- 格式:doc
- 大小:820.00 KB
- 文档页数:6
交通灯控制实验报告交通灯控制实验报告引言:交通灯是城市交通管理的重要组成部分,通过对交通流量的控制,有效地维护交通秩序和安全。
本次实验旨在通过搭建一个简单的交通灯控制系统,探究不同交通流量下的信号灯变化规律,并分析其对交通流畅度和效率的影响。
实验装置:实验装置由红、黄、绿三种颜色的LED灯组成,分别代表红灯、黄灯和绿灯。
通过按键控制,可以切换不同灯光的显示状态。
在实验过程中,我们将模拟不同交通流量情况下的信号灯变化。
实验过程:1. 低交通流量情况下:首先,我们模拟低交通流量情况。
设置红灯时间为20秒,绿灯时间为30秒,黄灯时间为5秒。
在这种情况下,红灯的时间较长,确保道路上的车辆能够安全通过。
绿灯时间相对较短,以充分利用交通资源,提高交通效率。
黄灯时间较短,用于过渡信号灯变化。
2. 中等交通流量情况下:接下来,我们模拟中等交通流量情况。
设置红灯时间为30秒,绿灯时间为40秒,黄灯时间为5秒。
在这种情况下,红灯时间相对较长,确保道路上的车辆能够顺利通过。
绿灯时间适中,以保持交通的流畅性。
黄灯时间依然较短,用于过渡信号灯变化。
3. 高交通流量情况下:最后,我们模拟高交通流量情况。
设置红灯时间为40秒,绿灯时间为50秒,黄灯时间为5秒。
在这种情况下,红灯时间最长,确保道路上的车辆能够完全通过。
绿灯时间相对较长,以缓解交通压力,提高交通效率。
黄灯时间仍然较短,用于过渡信号灯变化。
实验结果:通过实验观察,我们发现不同交通流量下的信号灯变化对交通流畅度和效率有着明显的影响。
在低交通流量情况下,红灯时间较长,确保车辆安全通过,但可能导致交通效率稍有降低。
在中等交通流量情况下,信号灯的设置更加平衡,保证了交通的流畅性和效率。
而在高交通流量情况下,红灯时间最长,确保车辆完全通过,但也导致交通效率相对较低。
结论:通过本次实验,我们得出了以下结论:交通灯的设置应根据不同交通流量情况进行合理调整,以保证交通的流畅性和效率。
D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD 5WR 36A09A18RESET 35CS68255U36D0D1D2D3D4D5D6D7WRRD RSTA0A1PC5PC6PC7PC2PC3PC4PC0PC1DS35DS36DS37DS38DS39DS40DS4112345678VCCDS42A0A1CSCS1(0F000H)510R111510R112510R113510R114510R115510R116510R117510R118.MODEL TINYCOM_ADD EQU 0F003HPA_ADD EQU 0F000HPB_ADD EQU 0F001HPC_ADD EQU 0F002H.STACK 100.DATALED_Data DB 01111101B ;东西绿灯,南北红灯DB 11111101B ;东西绿灯闪烁,南北红灯DB 10111101B ;东西黄灯亮,南北红灯DB 11010111B ;东西红灯,南北绿灯DB 11011111B ;东西红灯,南北绿灯闪烁DB 11011011B ;东西红灯,南北黄灯亮.CODESTART: MOV AX,@DATAMOV DS,AXNOPMOV DX,COM_ADDMOV AL,80H ;PA、PB、PC为基本输出模式OUT DX,ALMOV DX,PA_ADD ;灯全熄灭MOV AL,0FFHOUT DX,ALLEA BX,LED_DataSTART1: MOV AL,0XLATOUT DX,AL ;东西绿灯,南北红灯CALL DL5SMOV CX,6START2: MOV AL,1XLATOUT DX,AL ;东西绿灯闪烁,南北红灯CALL DL500msMOV AL,0XLATOUT DX,ALCALL DL500msLOOP START2MOV AL,2 ;东西黄灯亮,南北红灯XLATOUT DX,ALCALL DL3SMOV AL,3 ;东西红灯,南北绿灯XLATOUT DX,ALCALL DL5SMOV CX,6START3: MOV AL,4 ;东西红灯,南北绿灯闪烁XLATOUT DX,ALCALL DL500msMOV AL,3XLATOUT DX,ALCALL DL500msLOOP START3MOV AL,5 ;东西红灯,南北黄灯亮XLATOUT DX,ALCALL DL3SJMP START1DL500ms PROC NEARPUSH CXMOV CX,60000DL500ms1: LOOP DL500ms1POP CXRETDL500ms ENDPDL3S PROC NEARPUSH CXMOV CX,6DL3S1: CALL DL500msLOOP DL3S1POP CXRETENDPDL5S PROC NEARPUSH CXMOV CX,10DL5S1: CALL DL500msLOOP DL5S1POP CXRETENDPEND START七、实验扩展及思考1、如何对8255的PC口进行位操作?控制字最高位写0,中间三位无关取0,接着三位是编码了对应的C口哪几位,最低一位为0是复位,为1是置位。
课程设计课程设计名称:交通灯控制实验专业班级:学生姓名:学号:指导教师:课程设计时间:2014.12.22---2015.1.2微机原理专业课程设计任务书学生姓名专业班级学号题目交通灯控制实验课题性质工程设计课题来源自拟课题指导教师同组姓名主要内容L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连.L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律亮灭。
任务要求1:掌握并理解芯片8255和8253计时器工作原理2:掌握并理解源程序和程序中的函数3:熟悉8255内部结构和与单片机的接口逻辑,掌握8255芯片的3种工作方式。
4:了解单片机外围芯片8255的工作原理、初始化编程以及输入、输出程序设计方法参考文献《微型计算机原理及运用》谭浩强清华大学出版社《16/32位微机原理、汇编语言及接口技术》陈涛机械工业出版社《微机接口技术应用》审查意见指导教师签字:教研室主任签字:年月日一:设计的目的和内容1 目的:通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
2 内容:如图1.L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连.L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律亮灭。
图1二:设计思想:在选择循环的时间上.老师上课时说过.长延时可以采用双层嵌套.外层嵌套为0FFFFH.内层嵌套为4000H.我在编程时外层送进了0.相当于初值为65536.内层送进了4000H。
为了达到闪烁和延时的区别.我在编闪烁的程序时.给外层嵌套送入初值3000H.内层0100H(这是我通过实验的结果)。
人眼感觉闪烁的效果只是短延时的结果此方案是通过并行接口芯片8255A和8086计算机的硬件连接.以及通过8253延时的方法.来实现十字路口交通灯的模拟控制。
如上图所示.红灯(RLED).黄灯(YLEDD)和绿灯(GLED)分别接在8255的A.B.C口的低四位端口.PA0.PA1.PA2.PA3分别接南.东.北.西路口的红灯.B.C口类推。
微型计算机原理与接口技术实验基于唐都TD-PITE实验箱的交通灯实验【实验内容】用8255A和8253/8254设计一个交通信号灯,其中用D0~D3模拟红灯,D4~D7模拟绿灯,D8~D11模拟黄灯。
要求如下:(1)除上述出现的LED灯以外,其他LED灯不亮;(2)同组LED等要动作一致,同时亮起或同时熄灭;(3)交通灯的亮灭规律:开始时东西路口的绿灯亮,南北路口的红灯亮,此时东西路口方向通车。
等待5秒后,东西路口的绿灯熄灭,黄灯开始闪烁2秒。
然后东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时等待5秒后,南北路口的绿灯熄灭,黄灯开始闪烁两秒。
闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
【实验思路】本题虽然文字描述较多,但并不复杂,鉴于8254芯片并不好使用,在本次实验中使用8255芯片与由空循环组成的DELAY延时函数完成本题目。
基本思路是设立一个死循环,在一次循环中包含以下事件:东西路口通行,南北不通行→东西路口绿灯熄灭,黄灯闪烁→南北路口通行,东西不通行→南北路口绿灯熄灭,黄灯闪烁。
在每个事件伊始,只需要将正确的值传入8255的对应端口,则相应的LED等会亮起或熄灭。
合适执行这些指令则有DELAY延时函数指定。
【实验连线】本实验通过唐都公司TD-PITE实验装置与Wmd86联机集成开发调试软件完成。
如上图所示,本次实验中使用8255的A、B端口,其A、B端口均用方式0,皆作为输出端。
其中A端口用于红灯与绿灯,B端口低四位用于黄灯,高四位不使用。
【实验代码】;========================================================= IOY0 EQU 0600H ;片选IOY0对应的端口始地址MY8255_A EQU IOY0+00H*2 ;8255的A口地址MY8255_B EQU IOY0+01H*2 ;8255的B口地址MY8255_C EQU IOY0+02H*2 ;8255的C口地址MY8255_MODE EQU IOY0+03H*2 ;8255的控制寄存器地址SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX, MY8255_MODEMOV AL, 80HOUT DX, ALAA1: MOV BX, 3C00H;东西路口通行MOV DX, MY8255_AMOV AL, BHOUT DX, ALMOV DX, MY8255_BMOV AL, BLOUT DX, ALPUSH CXMOV CX, 0005HGO1: CALL DELAYCALL DELAYCALL DELAYCALL DELAYLOOP GO1POP CXMOV BX, 00C0FHMOV DX, MY8255_AMOV AL, BHOUT DX, ALMOV DX, MY8255_BMOV AL, BLOUT DX, ALPUSH CXMOV CX, 0002HGO2: CALL DELAYCALL DELAYCALL DELAYCALL DELAYLOOP GO2POP CX;东西路口黄灯警告MOV BX, 0C300H;南北通行MOV DX, MY8255_AMOV AL, BHOUT DX, ALMOV DX, MY8255_BMOV AL, BLOUT DX, ALPUSH CXMOV CX, 0005HGO3: CALL DELAYCALL DELAYCALL DELAYCALL DELAYLOOP GO3POP CX;东西路口黄灯警告MOV BX, 0030FH;南北通行MOV DX, MY8255_AMOV AL, BHOUT DX, ALMOV DX, MY8255_BMOV AL, BLOUT DX, ALPUSH CXMOV CX, 0002HGO4: CALL DELAYCALL DELAYCALL DELAYCALL DELAYLOOP GO4POP CX;东西路口黄灯警告JMP AA1DELAY: P USH CXMOV CX, 0FFFFHAA2: PUSH AXPUSH AXPOP AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START。
微机实验交通灯实验报告微机实验交通灯实验报告引言交通灯作为城市交通管理的重要组成部分,对于保障交通安全和顺畅起着至关重要的作用。
本次实验旨在通过微机控制,模拟交通灯的工作原理,并实现交通灯的自动控制。
一、实验目的本次实验的主要目的是通过搭建一套微机控制系统,实现交通灯的自动控制,并通过实验验证交通灯在不同道路情况下的工作原理和效果。
二、实验原理1. 交通灯的工作原理交通灯通常由红、黄、绿三个信号灯组成。
红灯表示停止,黄灯表示准备,绿灯表示可以通行。
交通灯通过不同颜色的灯光变化,指示车辆和行人何时可以通行,以保障交通的有序进行。
2. 微机控制系统微机控制系统是利用计算机和相应的软硬件实现对设备、机器等的控制和管理。
在交通灯实验中,我们可以通过编程控制计算机输出不同的信号,从而实现交通灯的自动控制。
三、实验器材和步骤1. 实验器材- 微机控制系统:包括计算机、编程软件和控制接口等。
- 交通灯模型:模拟真实的交通灯,包括红、黄、绿三个信号灯。
2. 实验步骤- 连接交通灯模型和微机控制系统。
- 编写程序,设置交通灯的工作时间和信号灯变化规律。
- 运行程序,观察交通灯的工作状态和变化过程。
四、实验结果和分析通过实验,我们成功地实现了交通灯的自动控制。
在程序中,我们设置了红灯亮10秒,黄灯亮3秒,绿灯亮15秒的时间间隔,模拟了真实交通灯的工作规律。
在实验过程中,我们观察到交通灯按照预设的时间间隔循环变化,红灯亮起时车辆停止,绿灯亮起时车辆可以通行。
这样的交通灯控制方式可以有效地维持交通的有序进行,减少交通事故的发生。
五、实验总结通过本次实验,我们深入了解了交通灯的工作原理和微机控制系统的应用。
微机控制系统作为一种高效、精确的控制手段,可以广泛应用于各个领域,提高设备的自动化程度和工作效率。
在今后的学习和工作中,我们将继续深入学习微机控制系统的原理和应用,掌握更多的编程技巧和控制方法,为实现更多实际问题的自动化解决方案做出贡献。
计算机硬件实验室实验报告课程名称:微机原理及应用
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
代码:
#start=Traffic_Lights.exe#
name "traffic"
mov ax, all_red
out 4, ax
mov si, offset situation
next: mov ax, [si]
out 4, ax
mov cx, 4Ch
mov dx, 4B40h
mov ah, 86h
int 15h
add si, 2
cmp si, sit_end
jb next
mov si, offset situation
jmp next
situation dw 0000_0011_0000_1100b
s1 dw 0000_0011_0000_1100b
s2 dw 0000_0110_1001_1010b
s3 dw 0000_1000_0110_0001b
s4 dw 0000_0100_1101_0011b
sit_end = $
all_red equ 0000_0010_0100_1001b
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)如图所示:即可实现对交通灯计时延时和控制。
循环此步骤即可。
五.结论
在本次实验中,使用了IO接口实现了,对南北、东西方向交通的分别计时延迟、分别控制等功能,将实验跟理论相结合,加深了对知识的理解。
报告提交日期。
实验二十字路口交通灯控制实验1. 实验目的(1)练习定时器、计数器的基本使用方法。
(2)掌握PLC的编程和调试方法。
(3)对应用PLC解决实际问题的全过程有个初步了解。
2. 实验设备(1)编程器1台(PC机)。
(2)实验装置1台(含S7-200 24点CPU)。
(3)交通灯实验模板一块。
(4)导线若干。
图1.12 交通灯模拟控制板3. 控制要求及参考交通路口红、黄、绿灯的基本控制要求如下:路口某方向绿灯显示(另一方向亮红灯)10秒后,黄灯以占空比为50%的一秒周期(0.5秒脉冲宽度)闪烁3次(另一方向亮红灯),然后变为红灯(另一方向绿灯亮、黄灯闪烁),如此循环工作。
PLC I/O端口分配:SB1 I0.0 起动按钮SB2 I0.1 停止按钮HL1(HL7)Q0.0 东西红灯HL2(HL8)Q0.1 东西黄灯HL3(HL9)Q0.2 东西绿灯HL4(HL10)Q0.4 南北红灯HL5(HL11)Q0.5 南北黄灯HL6(HL12)Q0.6 南北绿灯PLC 参考电路:图1.13 红绿灯控制PLC 电气原理图4. 实验内容及要求(1)按参考电路图完成PLC 电路接线(配合通用器件板开关元器件)。
(2)输入参考程序并编辑。
(3)编译、下载、调试应用程序。
功能表图如下:Q0.51L 1M+24V NL12L GND Q0.6SB2SB1Q0.1I0.1Q0.4Q0.2PLCI0.0Q0.0HL5220VACHL6+24VHL2HL4HL3HL1梯形图如下:指令代码程序如下:LD I0.0O M0.0AN I0.1= M0.0LD M0.0LPSAN Q0.3AN T41TON T37 , +250 LRDA T37TON T38 , +250 LRD A T38TON T39 , +30 LRDA T39TON T40 , +20 LRDA T37TON T41 , +300 LRDA T44TON T42 , +20 LRDAN Q0.3AN T37TON T43 , +200 LRDA T43TON T44 , +30 LRDAN T46TON T45 , +5 LRDA T45TON T46 , +5 LRDAN T37AN Q0.3= Q0.2 LRDLD Q0.6 AN T38LD T 38 AN T39A T45 OLDALD= Q0.0 LRD AN T38 AN T40 = Q0.1 LRDLD Q0.2 AN T43 LD T43 AN T44 A T45 OLDALD= Q0.4 LPPLPSA T44 AN T42 = Q0.5 LRDA T37 = Q0.6 LPPA Q0.0 A Q0.4 = Q0.35.思考练习(1)采用经验设计法应该如何实现?、。
交通灯微机原理实验报告交通灯微机原理实验报告一、引言交通灯是城市交通管理中不可或缺的一部分。
它们通过指示灯的变化来引导车辆和行人的通行,确保交通的有序进行。
在这个实验报告中,我们将探讨交通灯背后的微机原理,并介绍我们的实验过程和结果。
二、实验目的本次实验的目的是通过使用微机原理,设计和实现一个交通灯控制系统。
我们将使用微机芯片和相应的电路,以及适当的编程来模拟交通灯的工作原理。
通过这个实验,我们可以更好地理解交通灯的工作原理,并学习如何应用微机技术来实现交通管理。
三、实验设备和材料本次实验使用的设备和材料包括:1. 微机芯片:我们选择了一款功能强大的微机芯片,具有高性能和稳定性。
2. 电路板:用于连接微机芯片和其他电子元件。
3. LED灯:用于模拟交通灯的红、黄、绿灯。
4. 电阻、电容和其他电子元件:用于构建电路和实现功能。
四、实验步骤1. 设计电路:我们首先根据交通灯的工作原理,设计了相应的电路。
电路包括微机芯片、LED灯、电阻和电容等元件。
我们根据电路图,将这些元件连接在一起,确保电路的正常工作。
2. 编程:接下来,我们使用C语言编写程序,实现交通灯的控制逻辑。
我们将编程代码烧录到微机芯片中,并通过连接电路板和计算机,将程序加载到芯片中。
3. 调试和测试:完成编程后,我们进行了一系列的调试和测试。
我们通过观察LED灯的亮灭情况,来验证程序的正确性。
如果灯光按照预期的顺序变化,我们就可以确认程序的正确性。
4. 优化和改进:在测试过程中,我们发现了一些问题和改进的空间。
我们根据实际情况,对程序进行了优化和改进,以提高交通灯系统的性能和稳定性。
五、实验结果经过一系列的实验和测试,我们成功地实现了一个交通灯控制系统。
我们的交通灯系统能够按照预定的时间间隔和顺序,控制红、黄、绿灯的变化。
通过观察LED灯的亮灭情况,我们可以清晰地看到交通灯的状态变化,模拟真实的交通场景。
六、实验总结通过这个实验,我们深入了解了交通灯背后的微机原理。
2.4实验详细步骤首先接线,8255C口的0、1、2、5、6、7号管脚接LED显示电路L0、L1、L2、L5、L6、L7,D0~D7接JD1,RD*、WR*、A0、A1、RESET、CS*接IOR、IOW、A0、A1、RST、Y1,各模块接电。
然后运行DVCC软件,替换I/O基址,汇编、链接、运行,查看结果。
2.5实验结果LED显示电路的L0、L1、L2、L5、L6、L7按照十字路口交通灯的变化规律显示。
2.6实验过程遇到的问题与解决方案当出现红绿灯交换闪烁时,老师说体现不了交叉路口的灯的感觉(灯的排布的问题),后来我们把两个控制线叠加连接,使相同的灯闪烁。
江西理工大学《微机原理与接口技术》课实验报告实验二交通灯控制实验专业班级实验人学号实验日期同组人2.1 实验目的通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
2.2实验内容1.如图16-1,L8、L7、L6作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律亮灭。
2.L0对应东西路口绿灯,L1对应东西路口黄灯,L2对应东西路口红灯;L6对应南北路口绿灯,L7对应南北路口黄灯,L8 对应南北路口红灯。
D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710R D5W R36A09A18R ESET35C S6U18255D0D1D2D3D4D5D6D7/R D/W RA0A1R STPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7R14.7KVCCD0D1D2D3D4D5D6D7JD1IORIOWA0A1RST(288H)Y1L6L7L8L0L1L28255C S图2-12.3实验整体思路实验时,首先根据实验手册连线,待连好后检查无误时,打开电脑中的程序,修改其地址,然后运行程序。
辽宁工程技术大学实验报告课程名称:微机原理及接口技术试验项目:有急救车通过的交通灯控制实验实验室:微机原理与应用实验室姓名:李晓岩学号:0605010709 专业班级:自动06-7实验时间:2008/12/7同组学号:0605810103有急救车的交通灯控制实验一.实验目的1.学习掌握多个接口芯片综合应用方法。
2.学习中断技术的基本使用方法。
3.学习模拟交通灯控制的实现方法。
4.学习控制程序的编程方法。
二.实验条件和要求1.用业余时间进行调研,了解交通灯燃灭的规律,并写出调研报告,并在此基础上设计出硬件电路原理图。
2.在设计硬件电路时,要充分利用实验仪上的接口芯片,8086CPU,8255并行接口芯片、发光二极管(红、黄、绿各两个)。
设计或利用接口仪上已有的单脉冲发生器,但脉冲发生器产生的负脉冲来产生中断,进行模拟有急救车通过。
3.编制相应的软件应用程序,并运行调试。
4.写出规范的实验报告。
实验报告用A4纸写出。
调研报告调研时间:2008年11月09日调研地点:葫芦岛老区中心医院交通岗调查对象:王海川、刘国庆—葫芦岛市交警大队警员调研人员:白宁陈九坤调研内容:该十字路口东西方向和南北方向各有交通灯三盏,分别为红色绿色黄色。
经过我们的观察和询问,其亮灭变化规律为:1.东西南北两向起始状态为全红。
-----延续10秒2.东西向绿灯亮,南北向红灯亮。
-----延续30秒3.东西向绿灯灭,黄灯闪,南北向红灯亮。
-----闪烁5秒4.东西向红灯亮,南北向绿灯亮。
-----延续30秒5.东西向红灯亮,南北向绿灯灭,黄灯闪。
-----闪烁5秒6.循环以上步骤。
7.若有急救车通过等特殊情况,东西南北向均为红灯亮,延续十秒。
然后恢复之前状态。
调研分析交通灯历史:19世纪初,在英国中部的约克城,红、绿装分别代表女性的不同身份。
其中,着红装的女人表示我已结婚,而着绿装的女人则是未婚者。
后来,英国伦敦议会大厦前经常发生马车轧人的事故,于是人们受到红绿装启发,1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德·哈特设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯--煤气交通信号灯,这是城市街道的第一盏信号灯。
1.实验电路原理图2.实际电路图3.实验代码IOPORT EQU 0 ;定义CPU输出地址CODE SEGMENTASSUME CS:CODESTART:MOV AL, 00100101B ;设置8253用计数器0,只读高字节,方式2(自动重复),10进制MOV DX, IOPORT+293HOUT DX, ALMOV AL, 10H ;给计数器0置数1000(0001 0000 0000 0000)MOV DX, 290HOUT DX, ALMOV AL, 10010000B ;初始化8255,1--控制字,A口方式0输入,C口输出,B口输出MOV DX, IOPORT+28BHOUT DX, ALINOUT:MOV AL, 00100100B ;南北路口绿灯亮,东西路口红灯亮MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电平OUT DX, ALMOV AL, 01100001B ;设置8253通道1,只读高字节,方式0(不自动重复),10进制MOV DX, IOPORT+293HOUT DX, ALMOV AL, 50H ;置数5000,与计数器0串联即:延时5秒MOV DX, IOPORT+291HOUT DX, ALLOP1:MOV DX, IOPORT+288H ;A口查询,判断延时是否结束IN AL, DXCMP AL, 0JE LOP1 ;延时结束,顺序执行,否则继续查询MOV AL, 01000100B ;南北路口黄灯亮,东西路口红灯亮MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电平OUT DX, ALMOV AL, 01100001B ;设置8253通道MOV DX, IOPORT+293HOUT DX, ALMOV AL, 30H ;延时3秒(1000*3000),原理与延时5秒一致MOV DX, IOPORT+291HOUT DX, ALLOP2:MOV DX, IOPORT+288H ;A口查询,判断延时是否结束IN AL, DXCMP AL, 0JE LOP2 ;延时结束,顺序执行,否则继续查询MOV AL, 10000001B ;南北路口红灯亮,东西路口绿灯亮MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电平OUT DX, ALMOV AL, 01100001B ;设置8253通道1MOV DX, IOPORT+293HOUT DX, ALMOV AL, 50H ;延时5秒MOV DX, IOPORT+291HOUT DX, ALLOP3:MOV DX, IOPORT+288HIN AL, DXCMP AL, 0JE LOP3MOV AL, 10000010B ;南北路口红灯亮,东西路口黄灯亮MOV DX, IOPORT+28AHOUT DX, ALMOV AL, 01100001B ;设置8253通道1MOV DX, IOPORT+293HOUT DX, ALMOV AL, 30H ;延时3秒MOV DX, IOPORT+291HOUT DX, ALLOP4:MOV DX, IOPORT+288HIN AL, DXCMP AL, 0JE LOP4MOV AH, 0BH ;检查键盘状态(不等待),AL=FFH 表示有键入,AL=00H 表示无键入INT 21HCMP AL,0FFH ;有键入,程序退出JNZ INOUTMOV AH, 4CHINT 21HCODE ENDSEND START。
电子信息工程学系实验报告课程名称:微型计算机技术成绩:实验项目名称:交通灯实验实验时间:2011-12-16指导教师(签名):班级:通信091 姓名:Jxairy 学号:910705131实验目的:1、进一步熟悉掌握8255的控制。
2、进一步熟悉掌握8088/86对8259的控制方法。
3、进一步熟悉掌握8253的控制。
实验环境:Windows XP操作系统、ZY15MicInt12BB微机原理及接口实验箱一台、湖北众友微机原理与接口技术软件。
原理说明:本实验主要用到的实验模块:系统模块、8253模块、8255模块、8259模块、0-1指示模块、实验译码单元等。
(一)、8253模块简介:8253/8254是可编程的定时器芯片。
它们都是包含三个独立的16位通道。
每个通道可作定时器也可作计数器使用,可通过软件编程选定6种工作方式之任一种。
它们都用N沟道MOS工艺制成,只需要一组+5V电源。
8253的每个计数器通道都有6种工作方式可供选用。
区分这6种工作方式的主要标志有3点:一是输出波形不同;二是启动计数器的触发方式不同;三是计数过程中门控信号GA TE对计数操作的控制不同。
8253方式控制字设定,如图7.1所示。
图7.1 方式控制字设定8253和系统相连的信号线在实验箱内部都已经连好,实验过程中只需要连接信号到8253模块通道2的OUT2、CLK2和GATE2即可。
(二)、8255模块简介:8255是Intel公司生产的与Intel8080/8085系列的MPU配套的可编程外围接口电路,简称PPI。
它有A、B、C三个八位端口寄存器,通过24位端口线与外部设备相连,基中C口可分为上半部和下半部。
这24根端口线全部为双向三态。
三个端口可分二组来使用,可分别工作于三种不同的工作方式。
8255方式选择控制字分析,如图7.2所示:8255端口C置1/置0控制字分析(A1、A0 =11),如图7.3所示:8255基本操作与端口地址,如下表所示:图7.2 8255方式选择控制字图7.3 8255端口C置1/置0控制字表8255基本操作与端口地址图7.4 8259初始化流程(三)、8259模块简介:8086的INTR中断请求信号来自中断控制器8259A,可以是电平触发方式,也可以边沿触发。
一、设计目的学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、设计思路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。
交通灯信号控制实验
一、实验目的
1、掌握并行接口8253的基本原理
2、掌握8253的编程方法
二、实验内容
如图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通变化规律亮灭。
三、编程提示
1、8255控制寄存器地址:28BH—0C40BH
A口地址:288H—04C408H
C口地址:28AH—04C40AH
2、十字路口交通灯的变化规律要求
(1)南北路口的绿灯、东西路口的红灯同时亮三秒;
(2)南北路口的黄灯闪烁三次,同时东西路口的红灯继续亮;
(3)南北路口的红灯、东西路口的绿灯同时亮三秒;
(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁三次;
(5)转(1)重复。
3、程序设计流程
开始
设置8255C口输出
南北路口的绿灯、东西路口的红灯亮
长延时
南北路口的黄灯闪烁,东西路口红灯亮
南北路口的红灯、东西路口的绿灯亮
四、程序设计及实验调试
程序设计的思想及注意事项:
1.首先是在选择程序时是选用软件延时还是硬件延时。
我采用的是C口方式0输入,所以选用了软件延时。
2.在选择循环的时间上,老师上课时说过,长延时可以采用双层嵌套,外层嵌套为0FFFFH,内层嵌套为4000H,我在编程时外层送进了0,相当于初值为65536,内层送进了4000H。
为了达到闪烁和延时的区别,我在编闪烁的程序时,给外层嵌套送入初值3000H,内层0100H(这是我通过实验的结果)。
人眼感觉闪烁的效果只是短延时的结果。
实验程序:
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,0C40BH
MOV AL,10010000B ;C口方式0输入
OUT DX,AL
FIRST: MOV DX,0C40AH
MOV AL,00100100B
OUT DX,AL ;南北绿,东西红写入C口
MOV CX,0 ;送入初值65536
MOV AX,4000H ;软件长延时,由经验值确定DELAY1: DEC AX
JNZ DELAY1
LOOP DELAY1
MOV BL,4 ;控制黄灯亮的次数SECOND:MOV DX,0C40AH
MOV AL,01000100B
OUT DX,AL ;南北黄,东西红
MOV CX,3000H
MOV AX,0100H
LI1:
DEC AX
JNZ LI1
LOOP LI1
MOV DX,0C40AH ;软件短延时
MOV AL,00000100B ;南北黄灭
OUT DX,AL
MOV CX,3000H
MOV AX,0100H
WEN1:
DEC AX
JNZ WEN1 ;软件短延时
LOOP WEN1
DEC BL
JNZ SECOND ;黄灯闪烁4次THIRD: MOV DX,0C40AH ;写入C口
MOV AL,10000001B
OUT DX,AL ;南北红,东西绿
MOV CX,0
MOV AX,4000H
DELAY2: DEC AX ;软件长延时
JNZ DELAY2
LOOP DELAY2
MOV BL,4 ;控制黄灯亮的次数FORTH: MOV DX,0C40AH ;写入C口
MOV AL,10000010B
OUT DX,AL ;南北红,东西黄
MOV CX,3000H
MOV AX,0100H
LI2:
DEC AX
JNZ LI2 ;软件短延时
LOOP LI2
MOV DX,0C40AH
MOV AL,10000000B
OUT DX,AL ;东西黄灭
MOV CX,3000H
MOV AX,0100H
WEN2:
DEC AX
JNZ WEN2
LOOP WEN2
DEC BL
JNZ FORTH ;黄灯闪烁4次
MOV DL,0FFH
MOV AH,06H
INT 21H ;执行键盘输入操作
JZ FIRST
MOV AH,4CH
INT 21H ;返回操作系统CODE ENDS
END START
实验中遇到问题及分析:
1.首先,实验出现的问题是在编程方面。
由于自己使用了LOOP语句,而开始自己没有注意LOOP WEN2相当于DEC CX JNZ WEN2,而自己在赋值时,对CX赋值有点混乱。
编程时由于粗心,写如C口的初值有错,导致二极管没能按预定结果亮,通过硬件结果,我很快发现了问题所在。
2.实验课上,自己认真听老师说怎样对六个灯进行赋值达到控制的结果,所以在编程时没有将灯的顺序搞混,在写入8255的C口时比较顺利。
3.实验时遇到了一些问题,有一个是按键下去返回操作系统。
自己运行完执行文件,当按键下去返回操作系统时,却发现执行文件没有反应,而交通灯也在继续亮。
我查看了自己的程序,发现有MOV AH,06H INT 21H JZ FIRST MOV AH,4CH INT 21H 几条语句,后来又试验了几次,并增加了停留时间,我最后发现是电脑运行较的问题。
五、实验结果及分析:
程序执行后实验板上首先是南北绿灯和东西红灯亮,几秒后南北向的黄灯闪烁两次,东西向红灯亮,之后南北向的红灯和东西向的绿灯同时亮几秒钟,之后东西黄灯闪烁四次,南北红灯亮。
然后LED继续以上循环,若在执行文件中有按键按下,则结束程序。
本次编程中为了达到长延时的效果,我使用了双层嵌套的方法,通过嵌套编程,我熟悉了子程序的编写和调用。
在延时语句的编写时,可以使用执行指令和定时器定时两种方法,我采用了执行指令(即软件延时)的方法。
在处理黄灯闪烁的问题时,我令黄灯在短延时情况下交替亮灭,并可通过设置BL的值控制黄灯闪烁次数,达到了预期目的。
实验时遇到了按键很慢才返回操作系统的问题。
运行完执行文件,按键下去交通灯也在继续亮。
而程序中有MOV AH,06H INT 21H JZ FIRST MOV AH,4CH INT 21H 几条语句,感觉这就是对毅力的考验,通过反复实验,发现可以返回,只是电脑反应较慢。
六、实验总结:
本次实验为8255A并行接口实验,这次实验在代码编写阶段一开始找到了入手点。
我在程序中使用了软件延时,时长取决与循环次数和计算机的速度,一开始编制的程序中短延时采用了两层循环,由于自己没有实践经验,所以最后通过实验结果确定了最后的数据。
通过此次程序设计,我认识到画软件流程图的重要性,画好流程图后可以很清晰的看清逻辑,不仅加快了编写过程,而且有利于出错时查找问题所在。
虽然这次实验我是一步一步编程下来的,但是在调试结果时,仍发现了红灯错亮的问题,最后发现时写程序时的粗心所致。