北京工业大学 微机原理 实验十二 交通灯控制实验 实验报告
微机原理交通灯控制实验及其详细

交通灯信号控制实验一、实验目的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、程序设计流程开始设置8255C口输出南北路口的绿灯、东西路口的红灯亮长延时南北路口的黄灯闪烁,东西路口红灯亮南北路口的红灯、东西路口的绿灯亮四、程序设计及实验调试程序设计的思想及注意事项: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.首先,实验出现的问题是在编程方面。
交通灯控制实验报告

交通灯控制实验报告交通灯控制实验报告引言:交通灯是城市交通管理的重要组成部分,通过对交通流量的控制,有效地维护交通秩序和安全。
本次实验旨在通过搭建一个简单的交通灯控制系统,探究不同交通流量下的信号灯变化规律,并分析其对交通流畅度和效率的影响。
实验装置:实验装置由红、黄、绿三种颜色的LED灯组成,分别代表红灯、黄灯和绿灯。
通过按键控制,可以切换不同灯光的显示状态。
在实验过程中,我们将模拟不同交通流量情况下的信号灯变化。
实验过程:1. 低交通流量情况下:首先,我们模拟低交通流量情况。
设置红灯时间为20秒,绿灯时间为30秒,黄灯时间为5秒。
在这种情况下,红灯的时间较长,确保道路上的车辆能够安全通过。
绿灯时间相对较短,以充分利用交通资源,提高交通效率。
黄灯时间较短,用于过渡信号灯变化。
2. 中等交通流量情况下:接下来,我们模拟中等交通流量情况。
设置红灯时间为30秒,绿灯时间为40秒,黄灯时间为5秒。
在这种情况下,红灯时间相对较长,确保道路上的车辆能够顺利通过。
绿灯时间适中,以保持交通的流畅性。
黄灯时间依然较短,用于过渡信号灯变化。
3. 高交通流量情况下:最后,我们模拟高交通流量情况。
设置红灯时间为40秒,绿灯时间为50秒,黄灯时间为5秒。
在这种情况下,红灯时间最长,确保道路上的车辆能够完全通过。
绿灯时间相对较长,以缓解交通压力,提高交通效率。
黄灯时间仍然较短,用于过渡信号灯变化。
实验结果:通过实验观察,我们发现不同交通流量下的信号灯变化对交通流畅度和效率有着明显的影响。
在低交通流量情况下,红灯时间较长,确保车辆安全通过,但可能导致交通效率稍有降低。
在中等交通流量情况下,信号灯的设置更加平衡,保证了交通的流畅性和效率。
而在高交通流量情况下,红灯时间最长,确保车辆完全通过,但也导致交通效率相对较低。
结论:通过本次实验,我们得出了以下结论:交通灯的设置应根据不同交通流量情况进行合理调整,以保证交通的流畅性和效率。
微机系统课程设计实验报告---交通信号灯自动控制模拟指示系统[13页].docx
![微机系统课程设计实验报告---交通信号灯自动控制模拟指示系统[13页].docx](https://img.taocdn.com/s3/m/21c2a99a227916888486d79a.png)
微机系统课程设计实验报告课题:交通信号灯自动控制模拟指示系统一、课程设计目的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。
交通灯控制实验(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。
北京工业大学-微机原理-实验十二-交通灯控制-实验报告-最终版!!!

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。
微机交通灯实验报告

微机交通灯实验报告微机交通灯实验报告摘要:本实验旨在通过设计和实现一个微机交通灯系统,探索微机控制在交通管理中的应用。
通过实验,我们成功地搭建了一个基于微机的交通灯控制系统,并对其进行了功能测试和性能评估。
实验结果表明,微机交通灯系统能够有效地提高交通流量的控制和管理效果,为城市交通运输提供了更高效、更安全的解决方案。
一、引言交通管理一直是城市发展中的重要问题之一。
为了提高交通效率和确保交通安全,交通灯作为一种重要的交通管理设施,被广泛应用于城市道路。
然而,传统的交通灯控制系统存在一些问题,如无法根据实际交通情况进行动态调整,容易导致交通堵塞和拥堵。
因此,设计一个基于微机的交通灯控制系统,能够更好地适应不同交通状况,提高交通流量的控制效果,具有重要的研究和应用价值。
二、实验设计本实验采用了基于微机的交通灯控制系统。
该系统由红灯、黄灯和绿灯三个信号灯组成,通过微机控制器实现对交通灯的控制。
系统根据预设的时间间隔,按照红-黄-绿的顺序进行信号灯切换。
同时,系统还可以根据交通流量和优先级设置进行动态调整,以提高交通效率。
三、实验过程1. 硬件搭建我们首先搭建了一个简单的电路,包括红灯、黄灯和绿灯的LED灯,以及与微机控制器相连的开关和传感器。
通过这些硬件设备,我们可以实现对交通灯的控制和监测。
2. 软件编程为了实现交通灯的控制,我们使用了C语言对微机控制器进行编程。
通过编写程序,我们可以根据预设的时间间隔和交通流量等参数,实现对交通灯的自动切换和调整。
同时,我们还可以通过传感器获取实时的交通流量数据,以便更好地进行交通管理。
3. 功能测试在完成硬件搭建和软件编程后,我们进行了功能测试。
通过模拟不同的交通情况,我们验证了交通灯系统的正常工作和切换效果。
实验结果表明,系统能够准确地按照预设的时间间隔进行信号灯切换,适应不同交通状况。
四、实验结果与讨论通过实验,我们得出了以下结论:1. 微机交通灯系统能够有效地提高交通流量的控制效果。
交通灯控制系统设计 实验报告

综合设计实验项目名称:交通灯控制系统设计适用年级: 2所属课程:微型计算机原理班级:2011级电通6C班姓名:林学号:**********x日期:2013/6/23一、实验目的:要求学生综合所学的软硬件知识,并应用基础实验所获得的实验设计技能,独立设计解决实际应用问题的系统。
二、设计要求:(1)东西方向和南北方向交替准行控制1)使东西方向准行时,东西方向上的绿灯亮,南北方向的红灯亮,经过15秒后,使南北方向准行时,南北方向上的绿灯亮,东西方向的红灯亮,如此交替。
2)假设东西方向是主要交通干道,当在南北方向准行15秒时间未到时,检测到东西方向已聚集了8辆车,则提前使东西方向准行,南北方向禁行。
(2)特殊控制1)当准行和禁行时间倒计时到最后3秒时,准行方向上绿灯亮的同时该方向的黄灯闪烁,而禁行方向上的红灯亮同时黄灯也闪烁。
2)在数码管上显示准行时间,并以秒倒计时。
说明:设实验箱发光二极管单元中的一个绿灯为东西方向上的绿灯,最后一个绿灯为南北方向上的绿灯;第一个红灯为东西方向上的红灯,最后一个红灯为南北方向上的红灯;第二个红灯为东西方向上的黄灯,第三个红灯为南北方向上的黄灯。
三、具体设计内容:8255初始化:A、B、C口方式0输出A口低4位输出位选,B口输出显示代码C口输出灯控信号8253初始化:T0定时20ms,方式2/3,IRQ0 中断T2计数,方式0,IRQ7中断时钟计数初始化:N1=25,N2=2,N3=15,0.5S 1S 15SK=0,(0前10S/FFH后15S)东西准行信号,南北准行信号黄灯亮,黄灯灭显示秒数的个位显示秒数的十位N3变为非压缩BCD 码存入显示缓冲区四、实验中的芯片及线路:1.实验系统中的8253芯片图1 系统中的8253单元系统中的8253芯片的0#通道输出线与8259的0#中断请求线相连,作为实时钟中断信号。
1#通道输入1.8253MHZ的信号源,输出接8251的收发时钟端,供串行通信用。
微机原理实验交通灯控制实验(DOC)

课程设计课程设计名称:交通灯控制实验专业班级:学生姓名:学号:指导教师:课程设计时间: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口类推。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理实验报告
——实验九交通灯控制实验
姓名:
学号:
一、实验要求
用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 SEGMENT
ASSUME CS:CODE
START: MOV AL, 00100101B ;设置8253用计数器0,只读高字节,方式2(自动重复),
10进制
MOV DX, IOPORT+293H
OUT DX, AL
MOV AL, 10H ;给计数器0置数1000(0001 0000 0000 0000)
MOV DX, IOPORT+290H
OUT DX, AL
MOV AL, 10010000B ;初始化8255,1--控制字,A口方式0输入,C口输出,
B口输出
MOV DX, IOPORT+28BH
OUT DX, AL
INOUT: MOV AL, 00100100B ;南北路口绿灯亮,东西路口红灯亮
MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电
平
OUT DX, AL
MOV AL, 01100001B ;设置8253通道1,只读高字节,方式0(不自动重复),
10进制
MOV DX, IOPORT+293H
OUT DX, AL
MOV AL, 50H ;置数5000,与计数器0串联即:延时5秒
MOV DX, IOPORT+291H
OUT DX, AL
LOP1: MOV DX, IOPORT+288H ;A口查询,判断延时是否结束
IN AL, DX
CMP AL, 0
JE LOP1 ;延时结束,顺序执行,否则继续查询
MOV AL, 01000100B ;南北路口黄灯亮,东西路口红灯亮
MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电
平
OUT DX, AL
MOV AL, 01100001B ;设置8253通道
MOV DX, IOPORT+293H
OUT DX, AL
MOV AL, 30H ;延时3秒(1000*3000),原理与延时5秒一致
MOV DX, IOPORT+291H
OUT DX, AL
LOP2: MOV DX, IOPORT+288H ;A口查询,判断延时是否结束
IN AL, DX
CMP AL, 0
JE LOP2 ;延时结束,顺序执行,否则继续查询
MOV AL, 10000001B ;南北路口红灯亮,东西路口绿灯亮
MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电
平
OUT DX, AL
MOV AL, 01100001B ;设置8253通道1
MOV DX, IOPORT+293H
OUT DX, AL
MOV AL, 50H ;延时5秒
MOV DX, IOPORT+291H
OUT DX, AL
LOP3: MOV DX, IOPORT+288H
IN AL, DX
CMP AL, 0
JE LOP3
MOV AL, 10000010B ;南北路口红灯亮,东西路口黄灯亮
MOV DX, IOPORT+28AH
OUT DX, AL
MOV AL, 01100001B ;设置8253通道1
MOV DX, IOPORT+293H
OUT DX, AL
MOV AL, 30H ;延时3秒
MOV DX, IOPORT+291H
OUT DX, AL
LOP4: MOV DX, IOPORT+288H
IN AL, DX
CMP AL, 0
JE LOP4
MOV AH, 0BH ;检查键盘状态(不等待),AL=FFH 表示有键入,AL=00H
表示无键入
INT 21H
CMP AL,0FFH ;有键入,程序退出
JNZ INOUT
MOV AH, 4CH
INT 21H
CODE ENDS
END START
四、实验中遇到的问题
地址书上要求定义的范围是从280H开始的,而我们在编写程序的时候是从288H开始使用的,再连线的时候,忘记了这一点,而致使结果一直出不来,后来再检查连线的时候发现了这个问题,即使进行了改正,出现了预计效果,试验成功。
五、心得体会
这个实验是与现实生活是比较接近,通过这个实验,我大概知道了交通灯的工作原理,也加深了以前学的知识,更进一步认识了8255、8253芯片,并且掌握了对并行接口的使用。