微机原理交通灯控制实验及其详细
3十字路口红绿灯闪烁实验(微机原理)
本科实验报告课程名称:微机原理及接口技术实验项目:十字路口红绿灯闪烁实验实验地点:微机原理实验室专业班级:电信1001 学号:2010001207 学生姓名:吴清涛指导教师:任光龙2013年6 月5 日一、实验目的通过对红,绿,黄灯的控制,熟练掌握掌握8255A接口芯片的变成方法。
二、实验内容对8255A接口芯片进行编辑,是红,绿,黄灯发光二极管按照十字路口交通灯的形式点亮或熄灭。
三、线路连接发光二极管共8个,其中两组红、黄、绿灯用6个,L1,L2,L3为一组,L4,L5,L6为一组,实验台连接如图。
低电平“1”时,点亮。
四、程序流程图五、参考程序程序列表DA TA SEGMENTIOPORT EQU 0D880H-280HIO8255C EQU IOPORT+282HIO8255T EQU IOPORT+283HPB DB ?MESS DB 'ENTER ANY KEY CAN EXIT TO DOS!',0DH,0AH,'$' DA TA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DA TA,SS:STACKSTART: MOV AX,DA TAMOV DS,AXMOV ES,AXMOV AH,09HMOV DX,OFFSET MESSINT 21HMOV DX,IO8255TMOV AL,81HOUT DX,ALMOV DX,IO8255CIN AL,DXMOV PB,ALMOV DX,IO8255TMOV AL,80HOUT DX,ALMOV DX,IO8255CMOV AL,PBOR AL,0CHOUT DX,ALMOV AL,30HOUT DX,ALCALL DELAY10LLL: MOV DX,IO8255CMOV AL,12HOUT DX,ALCALL DELAY10CALL DELAY10CALL DELAY10CALL DELAY10MOV AL,10HOUT DX,ALMOV CX,0040HTTT: MOV AL,0CH OUT DX,ALPUSH CXMOV CX,80HLOP1: CALL DELAY1 LOOP LOP1MOV AL,00HOUT DX,ALMOV CX,80HLOP2: CALL DELAY1 LOOP LOP2POP CXLOOP TTTMOV AL,30HOUT DX,ALCALL DELAY10MOV AL,21HCALL DELAY10CALL DELAY10CALL DELAY10CALL DELAY10MOV AL,20HOUT DX,ALMOV CX,0040HGGG: MOV AL,0CH OUT DX,ALPUSH CXMOV CX,80HLOP3: CALL DELAY1 LOOP LOP3MOV AL,00HOUT DX,ALMOV CX,80HLOP4: CALL DELAY1 LOOP LOP4POP CXLOOP GGGMOV AL,30HOUT DX,ALCALL DELAY10MOV AH,06HMOV DL,0FFHINT 21HJNZ PPPJMP LLLPPP: MOV AX,4C00HINT 21HDELAY1 PROC NEARPUSH CXMOV CX,0FFFFHCCC: LOOP CCCPOP CXRETDELAY1 ENDPDELAY10 PROC NEARPUSH AXPUSH CXMOV CX,0F00HUUU: CALL DELAY1LOOP UUUPOP CXPOP AXRETDELAY10 ENDPCODE ENDSEND START六、实验结果七、思考题程序中红,绿,黄灯点亮和熄灭的延时时间是如何设定的?答:通过用延时子程序CALL DELAY 10的次数来设定。
交通灯控制实验(TPC-USB 微机接口实验系统集成开发环境)
实验八 交通灯控制实验一、实验目的:1、学习并掌握并行接口8255A的内部结构,功能及编程。
2、通过并行接口8255A实现十字路口交通灯的模拟控制,进一步掌握对并行A、B、C端口能在以下三种方式下工作:方式0—基本输入/出方式方式1—选通输入/出方式方式2—双向选通输入/出方式8255A的工作方式控制字用来决定8255A端口的工作方式,方式控制字的格式如图2-2所示。
表2-1 8255端口地址L12、L11、L10作为东西路口的交通灯与PC0、PC1、PC2相连,编程使六个交通灯按如下变化规律燃灭。
十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮。
(2)南北路口的黄灯闪烁若干次,同时东西路口红灯继续亮。
(3)南北路口的红灯、东西路口的绿灯同时亮。
(4)南北路口的红灯继续亮,同时东西路口的黄灯亮闪烁若干次。
(5)转(1)重复。
四、实验步骤1、按图2-1连接实验线路,注意切断实验箱电源。
2、参考下面的实验流程编写实验程序。
实验流程如下:3、经汇编、链接后将程序装入系统。
4、运行程序,观察交通灯的变化。
交通灯控制实验程序1: data segmentprotc1 db 9bh,0bbh,0fbh,0bbh,0fbh,0bbh,0fbh db 7eh,7dh,7fh,7dh,7fh,7dh,7fhdb 0ffhdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,0e3hmov al,90hout dx,almov dx,0e2hloop1: mov bx,0000hloop2:mov al,protc1[bx]cmp al,0ffhjz loop1out dx,alcall delayinc bxjmp loop2delay:mov cx,01ffhde1: mov di,0ffhde0: dec dijnz de0loop de1retcode endsend start交通灯控制实验程序2:data segmentprotc1 db 0dbh,0bbh,0fbh,0bbh,0fbh,0bbh,0fbhdb 7eh,7dh,7fh,7dh,7fh,7dh,7fhdb 0ffhdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,0e3hmov al,90hout dx,almov dx,0e2hloop1: mov bx,0000hloop2:mov al,protc1[bx]cmp al,0ffhjz loop1out dx,aland al 21hcmp al,21hjz aamov cx,0effhjmp bbaa: mov cx,01dfhbb: call delayinc bxjmp loop2delay:de1: mov di,0ffhde0: dec dijnz de0loop de1retcode endsend startdata segmentportc1 db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能db 81h,82h,80h,82h,80h,82h,80h ;的状态数据 db 0ffh ;结束标志 data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255bmov al,90hout dx,al ;设置8255为C口输出mov dx,io8255are_on: mov bx,0on: mov al,portc1[bx]cmp al,0ffhjz re_onout dx,al ;点亮相应的灯inc bxmov cx,20 ;参数赋初值test al,21h ;是否有绿灯亮jz de1 ;没有,短延时mov cx,5000 ;有,长延时de1: mov di,9000 ;di赋初值5000de0: dec di ;减1计数jnz de0 ;di不为0loop de1push dxmov ah,06hmov dl,0ffhint 21hpop dxjz on ;没有,转到onexit: mov ah,4ch ;返回int 21hcode endsend start。
微机原理实验四实验报告控制交通灯实验
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是置位。
微机交通灯实验报告
微机交通灯实验报告微机交通灯实验报告摘要:本实验旨在通过设计和实现一个微机交通灯系统,探索微机控制在交通管理中的应用。
通过实验,我们成功地搭建了一个基于微机的交通灯控制系统,并对其进行了功能测试和性能评估。
实验结果表明,微机交通灯系统能够有效地提高交通流量的控制和管理效果,为城市交通运输提供了更高效、更安全的解决方案。
一、引言交通管理一直是城市发展中的重要问题之一。
为了提高交通效率和确保交通安全,交通灯作为一种重要的交通管理设施,被广泛应用于城市道路。
然而,传统的交通灯控制系统存在一些问题,如无法根据实际交通情况进行动态调整,容易导致交通堵塞和拥堵。
因此,设计一个基于微机的交通灯控制系统,能够更好地适应不同交通状况,提高交通流量的控制效果,具有重要的研究和应用价值。
二、实验设计本实验采用了基于微机的交通灯控制系统。
该系统由红灯、黄灯和绿灯三个信号灯组成,通过微机控制器实现对交通灯的控制。
系统根据预设的时间间隔,按照红-黄-绿的顺序进行信号灯切换。
同时,系统还可以根据交通流量和优先级设置进行动态调整,以提高交通效率。
三、实验过程1. 硬件搭建我们首先搭建了一个简单的电路,包括红灯、黄灯和绿灯的LED灯,以及与微机控制器相连的开关和传感器。
通过这些硬件设备,我们可以实现对交通灯的控制和监测。
2. 软件编程为了实现交通灯的控制,我们使用了C语言对微机控制器进行编程。
通过编写程序,我们可以根据预设的时间间隔和交通流量等参数,实现对交通灯的自动切换和调整。
同时,我们还可以通过传感器获取实时的交通流量数据,以便更好地进行交通管理。
3. 功能测试在完成硬件搭建和软件编程后,我们进行了功能测试。
通过模拟不同的交通情况,我们验证了交通灯系统的正常工作和切换效果。
实验结果表明,系统能够准确地按照预设的时间间隔进行信号灯切换,适应不同交通状况。
四、实验结果与讨论通过实验,我们得出了以下结论:1. 微机交通灯系统能够有效地提高交通流量的控制效果。
微型计算机原理实验 交通灯的设计实验
微型计算机原理与接口技术实验基于唐都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秒的时间间隔,模拟了真实交通灯的工作规律。
在实验过程中,我们观察到交通灯按照预设的时间间隔循环变化,红灯亮起时车辆停止,绿灯亮起时车辆可以通行。
这样的交通灯控制方式可以有效地维持交通的有序进行,减少交通事故的发生。
五、实验总结通过本次实验,我们深入了解了交通灯的工作原理和微机控制系统的应用。
微机控制系统作为一种高效、精确的控制手段,可以广泛应用于各个领域,提高设备的自动化程度和工作效率。
在今后的学习和工作中,我们将继续深入学习微机控制系统的原理和应用,掌握更多的编程技巧和控制方法,为实现更多实际问题的自动化解决方案做出贡献。
微机原理十字路口交通灯实验报告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个中断,作为计时或在特殊情况下的特殊功能。
北京工业大学-微机原理-实验十二-交通灯控制实验-实验报告
微机原理实验报告——实验九交通灯控制实验姓名:学号:一、实验要求用8255、8253芯片模拟实现交通灯控制,要求亮灯时间用8253控制二、延时置数设计提供的时钟频率为1MHz,而8253最大工作频率为2MHz,所以无需分频。
延时5秒对应的计数初值为N=5秒/1MHz=5000000,因为8253有3个16位计数器,每个计数器最大计数初值为:65535<5000000,所以将两个计数器串联使用。
计数器0计数初值为1000,计数器1计数初值为5000。
三、实验内容1.实验电路原理图2.实际电路图2.实验流程图3.实验代码IOPORT EQU 5400H-280H ;定义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, IOPORT+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四、实验中遇到的问题地址书上要求定义的范围是从280H开始的,而我们在编写程序的时候是从288H开始使用的,再连线的时候,忘记了这一点,而致使结果一直出不来,后来再检查连线的时候发现了这个问题,即使进行了改正,出现了预计效果,试验成功。
微机原理交通灯控制实验及其详细
开始设置8255C口输出南北路口的绿灯、东西路口的红灯亮长延时南北路口的黄灯闪烁,东西路口红灯亮南北路口的红灯、东西路口的绿灯亮长延时南北路口红灯亮、东西路口黄灯亮闪烁是否有键按下N交通灯信号控制实验一、实验目的1、掌握并行接口8253的基本原理2、掌握8253的编程方法二、实验内容如图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通变化规律亮灭。
三、编程提示1、8255控制寄存器地址:28BH—0C40BHA口地址:288H—04C408HC口地址:28AH—04C40AH2、十字路口交通灯的变化规律要求(1)南北路口的绿灯、东西路口的红灯同时亮三秒;(2)南北路口的黄灯闪烁三次,同时东西路口的红灯继续亮;(3)南北路口的红灯、东西路口的绿灯同时亮三秒;(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁三次;(5)转(1)重复。
3、程序设计流程四、程序设计及实验调试程序设计的思想及注意事项:1.首先是在选择程序时是选用软件延时还是硬件延时。
我采用的是C口方式0输入,所以选用了软件延时。
2.在选择循环的时间上,老师上课时说过,长延时可以采用双层嵌套,外层嵌套为0FFFFH,内层嵌套为4000H,我在编程时外层送进了0,相当于初值为65536,内层送进了4000H。
为了达到闪烁和延时的区别,我在编闪烁的程序时,给外层嵌套送入初值3000H,内层0100H (这是我通过实验的结果)。
人眼感觉闪烁的效果只是短延时的结果。
实验程序:CODE SEGMENTASSUME CS:CODESTART: MOV DX,0C40BHMOV AL,10010000B ;C口方式0输入OUT DX,ALFIRST: MOV DX,0C40AHMOV AL,00100100BOUT DX,AL ;南北绿,东西红写入C口MOV CX,0 ;送入初值65536MOV AX,4000H ;软件长延时,由经验值确定DELAY1: DEC AXJNZ DELAY1LOOP DELAY1MOV BL,4 ;控制黄灯亮的次数SECOND:MOV DX,0C40AHMOV AL,01000100BOUT DX,AL ;南北黄,东西红MOV CX,3000HMOV AX,0100HLI1:DEC AXJNZ LI1LOOP LI1MOV DX,0C40AH ;软件短延时MOV AL,00000100B ;南北黄灭OUT DX,ALMOV CX,3000HMOV AX,0100HWEN1:DEC AXJNZ WEN1 ;软件短延时LOOP WEN1DEC BLJNZ SECOND ;黄灯闪烁4次THIRD: MOV DX,0C40AH ;写入C口MOV AL,10000001BOUT DX,AL ;南北红,东西绿MOV CX,0MOV AX,4000HDELAY2: DEC AX ;软件长延时JNZ DELAY2LOOP DELAY2MOV BL,4 ;控制黄灯亮的次数FORTH: MOV DX,0C40AH ;写入C口MOV AL,10000010BOUT DX,AL ;南北红,东西黄MOV CX,3000HMOV AX,0100HLI2:DEC AXJNZ LI2 ;软件短延时LOOP LI2MOV DX,0C40AHMOV AL,10000000BOUT DX,AL ;东西黄灭MOV CX,3000HMOV AX,0100HWEN2:DEC AXJNZ WEN2LOOP WEN2DEC BLJNZ FORTH ;黄灯闪烁4次MOV DL,0FFHMOV AH,06HINT 21H ;执行键盘输入操作JZ FIRSTMOV AH,4CHINT 21H ;返回操作系统CODE ENDSEND START实验中遇到问题及分析:1.首先,实验出现的问题是在编程方面。
微机原理接口与技术实验四、控制交通灯
姓名
学号
实验组
实验时间
指导教师
成绩
实验名称
实验四、控制交通灯
实验目的
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. 红绿灯控制系统硬件设计(1)硬件组成红绿灯控制系统主要由微控制器、LED灯、传感器、按键、电源等组成。
(2)硬件连接将微控制器与LED灯、传感器、按键等通过相应的接口连接起来。
2. 红绿灯控制系统软件设计(1)软件组成红绿灯控制系统软件主要由主程序、中断服务程序、延时函数、按键扫描函数等组成。
(2)软件设计①主程序:负责初始化系统,设置定时器中断,进入主循环,检测按键输入,根据按键输入和传感器输入,控制LED灯的亮灭。
②中断服务程序:当定时器中断发生时,调用中断服务程序,更新LED灯的亮灭状态。
③延时函数:实现软件延时功能,用于控制LED灯的亮灭时间。
④按键扫描函数:扫描按键输入,实现红绿灯控制模式的切换。
3. 红绿灯控制系统测试与调试(1)测试①硬件测试:检查硬件连接是否正确,LED灯、传感器、按键等是否正常工作。
②软件测试:通过按键输入,观察LED灯的亮灭状态,确保软件设计符合预期。
(2)调试根据测试结果,对软件进行调试,确保红绿灯控制系统正常运行。
三、实训过程1. 硬件设计(1)选择合适的微控制器:根据实训要求,选择一款具有丰富外设接口的微控制器。
(2)设计电路原理图:根据微控制器和所需外设的连接关系,绘制电路原理图。
(3)制作PCB板:根据电路原理图,制作PCB板。
2. 软件设计(1)编写程序:使用C语言或汇编语言编写程序,实现红绿灯控制功能。
(2)编译程序:将编写好的程序编译成机器码。
(3)烧录程序:将编译好的程序烧录到微控制器中。
3. 测试与调试(1)硬件测试:检查硬件连接是否正确,LED灯、传感器、按键等是否正常工作。
(2)软件测试:通过按键输入,观察LED灯的亮灭状态,确保软件设计符合预期。
(3)调试:根据测试结果,对软件进行调试,确保红绿灯控制系统正常运行。
8086微机原理实验之十字路口交通灯
计算机硬件实验室实验报告课程名称:微机原理及应用
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
代码:
#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接口实现了,对南北、东西方向交通的分别计时延迟、分别控制等功能,将实验跟理论相结合,加深了对知识的理解。
报告提交日期。
微机原理8255A模拟交通信号灯
微机原理8255A模拟交通信号灯实验三 8255A模拟交通灯一、实验目的掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。
二、实验内容用8255做输出口,控制12个发光二极管亮灭,模拟交通灯管理三、实验要求1.通过8255A控制发光二极管,PB4-PB7对应黄灯,PC0-PC3对应红灯,PC4-PC7对应绿灯,模拟交通灯的管理。
2.交通灯的亮灭规律如下:设有一个十字路口,1、3为南北方向,2和4为东西方向。
初始状态为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3方向通车。
延时一段时间后,1、3路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次后1、3路口红灯亮,同时2、4路口的绿灯亮,2、4路口方向通车,延时一段时间后,2、4路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到1、3路口方向,之后,重复上述过程。
3.程序中设定8255A的工作模式及三个端口均工作在方式0,并处于输出状态。
8255A端口地址为0FF28H-0FF2BH。
4.各发光二极管共阳极,使其点亮应使8255A相应端口输出为0。
四、实验步骤1.根据实验要求连接好实验线路2.编写实验程序,编写的程序如下:;CODE SEGMENTASSUME CS:CODESTART:MOV DX,0FF2BHMOV AL,80HOUT DX,ALMOV DX,0FF2AHMOV AL,11110000BOUT DX,AL %初始化,红灯全亮,绿灯全亮MOV DX,0FF29HMOV AL,0FFHOUT DX,AL %初始化,黄灯全不亮AGAIN: MOV DX,0FF2AHMOV AL,10100101BOUT DX,AL %1、3路口绿灯亮,2、4路口红灯亮CALL DELAYX1:MOV DX,0FF29HMOV AL,01010000BOUT DX,ALMOV DX,0FF29HMOV AL,11110000BMOV CX,0FFFFHDEC CXJNZ X1MOV DX,0FF2AHMOV AL,01011010BOUT DX,AL %1、3路口红灯亮,2、4路口绿灯亮CALL DELAYX2:MOV DX,0FF29HMOV AL,10100000BOUT DX,ALMOV DX,0FF29HMOV AL,11110000BOUT DX,ALMOV CX,0FFFFHDEC CXJNZ X2JMP AGAINDELAY PROCMOV BX,0FFFFHX4: MOV CX,OFFFFHX3:DEC CXJNZ X3DEC BXJNZ X4DELAY ENDPHLTCODE ENDSEND START3.编译装载后运行程序,观察结果五、实验总结1、学会延迟程序的调用方式以及书写方式。
微机原理实训报告交通指示灯
一、设计目的学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、设计思路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. 微机芯片:我们选择了一款功能强大的微机芯片,具有高性能和稳定性。
2. 电路板:用于连接微机芯片和其他电子元件。
3. LED灯:用于模拟交通灯的红、黄、绿灯。
4. 电阻、电容和其他电子元件:用于构建电路和实现功能。
四、实验步骤1. 设计电路:我们首先根据交通灯的工作原理,设计了相应的电路。
电路包括微机芯片、LED灯、电阻和电容等元件。
我们根据电路图,将这些元件连接在一起,确保电路的正常工作。
2. 编程:接下来,我们使用C语言编写程序,实现交通灯的控制逻辑。
我们将编程代码烧录到微机芯片中,并通过连接电路板和计算机,将程序加载到芯片中。
3. 调试和测试:完成编程后,我们进行了一系列的调试和测试。
我们通过观察LED灯的亮灭情况,来验证程序的正确性。
如果灯光按照预期的顺序变化,我们就可以确认程序的正确性。
4. 优化和改进:在测试过程中,我们发现了一些问题和改进的空间。
我们根据实际情况,对程序进行了优化和改进,以提高交通灯系统的性能和稳定性。
五、实验结果经过一系列的实验和测试,我们成功地实现了一个交通灯控制系统。
我们的交通灯系统能够按照预定的时间间隔和顺序,控制红、黄、绿灯的变化。
通过观察LED灯的亮灭情况,我们可以清晰地看到交通灯的状态变化,模拟真实的交通场景。
六、实验总结通过这个实验,我们深入了解了交通灯背后的微机原理。
微机原理十字路口红绿灯闪烁实验
实验三 十字路口红绿灯闪烁实验实验目的通过对红绿黄灯的控制,熟练掌握 8255A 接口芯片的编程方法实验内容对8255A 接口芯片进行编程,使红黄绿发光二级管按照十字路口交通灯的 形式点亮或者熄灭。
三、线路连接发光二级管共8个,其中两组红黄绿灯用六个,L2、L3、L4为一组,L5、L7、为一组;试验台连接如图所示。
高电平时,灯点亮8255A四、编程提示1、 红、黄、绿灯变化规律设有一个十字路口,两组灯分别代表东西和南北两个方向,其红黄绿灯变化 规律为:(1) 两个路口红灯全亮(2) 南北路口绿灯亮,东西路口红灯亮(3) 南北路口绿灯灭,东西路口红灯亮(4) 两个路口黄灯闪烁(5) 两个路口红灯全亮(6) 东西路口绿灯亮,南北路口红灯亮(7) 东西路口绿灯灭,南北路口红灯亮 L6、 DO --- JD1 ---- —D2—計 D D5——— net 烦 D7——J IQR ——— IOT 孙A0 ---- ^― A1 ---- ^―RESET 坊280IT287H 一--亠 RESRTPGOPC1 PC2PC3 PC415(8)两个路口黄灯闪烁(9)转向(2)循环执行2.设置8255A方式控制字设置8255A的端口C工作在方式0,为输出。
DO、D1控制绿灯,D2、D3 控制黄灯,D4、D5控制红灯。
需要点亮哪一位指示灯时,8255A相应端口对应为就输出“ 1”。
五、流程图六、实验程序DATA SEGMENTIOPORT EQU 0D880H-280HIO8255C EQU IOPORT+282HIO8255T EQU IOPORT+283HPB DB ?MESS DB 'ENTER ANY KEY CAN EXIT TO DOS!',0DH,0AH,'$' DATA ENDS STACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AH,09HMOV DX,OFFSET MESSINT 21HMOV DX,IO8255TMOV AL,81HOUT DX,ALMOV DX,IO8255CIN AL,DXMOV PB,ALMOV DX,IO8255TMOV AL,80HOUT DX,ALMOV DX,IO8255CMOV AL,PBOR AL,0CHOUT DX,ALMOV AL,30HOUT DX,ALCALL DELAY10LLL: MOV DX,IO8255CMOV AL,12HOUT DX,ALCALL DELAY10CALL DELAY10CALL DELAY10CALL DELAY10MOV AL,10HOUT DX,ALMOV CX,0040H TTT: MOV AL,0CHOUT DX,ALPUSH CXMOV CX,80HLOP1: CALL DELAY1 LOOP LOP1MOV AL,00HOUT DX,ALMOV CX,80HLOP2: CALL DELAY1 LOOP LOP2POP CXLOOP TTTMOV AL,30HOUT DX,ALCALL DELAY10MOV AL,21HOUT DX,ALCALL DELAY10CALL DELAY10CALL DELAY10CALL DELAY10MOV AL,20HOUT DX,ALMOV CX,0040H GGG: MOV AL,0CH OUT DX,ALPUSH CXMOV CX,80HLOP3: CALL DELAY1 LOOP LOP3MOV AL,00HOUT DX,ALMOV CX,80HLOP4: CALL DELAY1 LOOP LOP4POP CXLOOP GGGMOV AL,30HOUT DX,ALCALL DELAY10 MOV AH,06HMOV DL,0FFHINT 21HJNZ PPPJMP LLLPPP: MOV AX,4C00HINT 21HDELAY1 PROC NEARPUSH CXMOV CX,0FFFFHCCC: LOOP CCCPOP CXRETDELAY1 ENDPDELAY10 PROC NEARPUSH AXPUSH CXMOV CX,0F00HUUU: CALL DELAY1LOOP UUUPOP CXPOP AXRETDELAY10 ENDPCODE ENDSEND START七、实验步骤1、在windows 环境下,打开“开始”菜单,选择“运行”项,然后输入” CMD” , 按“确定”进去DOS^境。
《微机原理与接口技术》交通灯控制实验
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实验整体思路实验时,首先根据实验手册连线,待连好后检查无误时,打开电脑中的程序,修改其地址,然后运行程序。
微机原理课程设计交通灯,温控系统实验报告
序号山东理工大学计算机学院课程设计(微机原理及接口技术)班级姓名学号指导教师二○一二年一月九日课程设计任务书及成绩评定课题名称直流电机速度控制器的设计,I、题目的目的和要求:学习和掌握计算机中常用接口电路的应用和设计技术,熟悉和掌握微机系统的软硬件的设计方法和步骤,熟悉微机汇编程序编写和应用软硬件调试的基本流程,进一步加强理论知识和应用相结合的实践和锻炼,加深对专业知识的学习和理解,掌握8253,,8259等芯片的连线及使用方式。
使自己的设计水平和对所学的知识的应用能力以及分析问题和解决问题的能力得到全面提高。
一、利用按键控制直流电动机的转速。
按键定义如下:0 停止,1 1/10转速,2 2/10转速……9 最高速(D/A输出满量程),键号每加1,D/A 输出增加0.5V 。
二、II、设计进度及完成情况III、主要参考资料及文献IV、成绩评定:设计成绩:(教师填写)指导老师:(签字)年月日目录一、电机速度控制器的设计 (2)(一) (2)(二) (3)(三) (4)(四) (5)(五) (9)二、 (10)(一) (10)(二) (11)(三) (15)(四) (16)(五) (20)三、设计总结 (21)1一、直流电机速度控制器的设计(一)系统概述(二)系统分析与设计芯片8255并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。
CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。
8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0:基本输入输出方式1:选通输入输出方式2:双线传送2芯片8255功能及引脚图三种工作方式由工作方式控制字决定,方式控制字由CPU通过输入/输出指令来提供。
三个端口中C口被分为两个部分,上半部分随A口称为A组,下半部分随B口称为B组.其中A口可工作与方式0、1和2,而B口只能工作在方式0和1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开始
设置8255C口输出
南北路口的绿灯、东西路口的红灯亮
长延时
南北路口的黄灯闪烁,东西路口红灯亮南北路口的红灯、东西路口的绿灯亮
长延时
南北路口红灯亮、东西路口黄灯亮闪烁
是否有键按下N
交通灯信号控制实验
一、实验目的
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、程序设计流程
四、程序设计及实验调试
程序设计的思想及注意事项:
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并行接口实验,这次实验在代码编写阶段一开始找到了入手点。
我在程序中使用了软件延时,时长取决与循环次数和计算机的速度,一开始编制的程序中短延时采用了两层循环,由于自己没有实践经验,所以最后通过实验结果确定了最后的数据。
通过此次程序设计,我认识到画软件流程图的重要性,画好流程图后可以很清晰的看清逻辑,不仅加快了编写过程,而且有利于出错时查找问题所在。
虽然这次实验我是一步一
步编程下来的,但是在调试结果时,仍发现了红灯错亮的问题,最后发现时写程序时的粗心所致。