微机原理实验交通灯控制实验
交通灯控制实验(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是置位。
微机原理实验交通灯控制实验(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口类推。
微机原理红绿灯设计
微机原理课程设计报告书课题名称 红绿灯设计姓 名学 号 院、系、部 电气系 专 业 电子信息工程 指导教师孙秀婷、马丽2011年 1 月12日红绿灯设计一、设计目的※※※※※※※※※ ※※※※ ※※ ※※※※※※※※※2008级微机原理 课程设计查阅可编程并行芯片8255或其他相关资料,用简单的输入输出端口等硬件,配合延时和控制程序控制灯的亮灭。
通过对红、绿、黄LED(发光二极管)的控制熟练掌握8255A可编程并行接口的编程方法。
二、设计要求编写程序控制8255A可编程并行接口芯片,使红、绿、黄发光二极管按照十字路口交通信号灯的规律交替发光。
当按下任意键则停止运行,返回DOS。
1、红绿灯亮灭规律:a:初态为东西南北4个红灯全亮,禁止通行;b:经过一定时间南北路口绿灯亮东西路口红灯亮;c:经过一定时间,南北路口绿灯灭;d:南北路口黄灯闪烁;e:经过一定时间,4个路口红灯全亮。
f:经过一定时间,东西路口绿灯亮,南北路口红灯亮;g:东西路口绿灯灭;h:东西路口黄灯闪烁.i:转向步骤a循环执行。
三、电路及连线设计四、使用说明本次微机原理设计的题目为交通灯,它是通过对8255芯片和LED发光二极管的连接设计来模拟交通信号灯的控制,使红黄绿三色灯按照正常交通规则亮灭;十字路口交通信号灯的工作原理是在正常情况下以8086/8088的CPU与8255芯片相连接来实现的。
8255芯片包括四个口,即A口、B口、C口和控制口。
通过对其控制端口写入控制字,来设定8255的工作方式,在本设计中,使8255工作于方式0,将B口和C口都设计为输出,A口设计成输入。
其中B口控制东西方向的交通灯,C口控制南北方向的交通灯。
当程序正常运行时,依次为东西南北方向都是红灯,延时后,南北方向的绿灯和东西方向红灯亮,延时后南北方向的黄灯闪3次,随后南北方向的红灯和东西方向的绿灯亮,延时后,东西方向的黄灯闪3次,之后同理进行循环。
五、流程图设计六、程序设计如下:SSTACK SEGMENT STACK ;定义堆栈段DW 32 DUP(?)SSTACK ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,SS:SSTACKSTART:MOV AL,90HMOV DX,9003HOUT DX,AL ;将8255控制字设置为10010000; B、C口输出 A口输入 工作方式0 RED: MOV AL,22HMOV DX,9001HOUT DX,AL ;东西方向红灯亮MOV DX,9002HOUT DX,AL ;南北方向红灯亮CALL DELAY ;调用延时程序DELAY NORMAL:STIMOV AL,88HMOV DX,9002HOUT DX,AL ;南北方向绿灯亮MOV AL,22HMOV DX,9001HOUT DX,AL ;东西方向红灯亮CALL DELAY ;调用演示程序DELAYMOV AL,00HMOV DX,9002HOUT DX,AL ;南北方向绿灯灭CALL DELAY1 ;调用演示程序DELAY1MOV CX,0005H ;将黄灯闪烁次数设为5 RECALL1:MOV AL,44HMOV DX,9002HOUT DX,AL ;南北方向黄灯亮CALL DELAY2XOR AL,ALOUT DX,AL ;南北方向黄灯灭CALL DELAY2 ;调用演示程序DELAY2LOOP RECALL1MOV AL,88HMOV DX,9001HOUT DX,AL ;东西方向绿灯亮MOV AL,22HMOV DX,9002HOUT DX,AL ;南北方向红灯亮CALL DELAYCALL DELAY ;两次调用演示程序DELAY,东西方向设为主干道 MOV AL,00HMOV DX,9001HOUT DX,AL ;东西方向绿灯灭CALL DELAY1 ;调用延时程序 DELAY1MOV CX,0005H ;将黄灯闪烁次数设为5RECALL2:MOV AL,44HMOV DX,9001HOUT DX,AL ;东西方向黄灯亮CALL DELAY2 ;调用延时程序DELAY2 XOR AL,ALOUT DX,AL ;东西方向黄灯灭CALL DELAY2 ;调用延时程序DELAY2LOOP RECALL2JMP NORMAL ;无条件跳转到NORMAL,实现循环 DELAY: PUSH CX ;延时程序 DELAYMOV BX,008FHT1:MOV CX,1000HT2:NOPNOPLOOP T2DEC BXCMP BX,0000HJNZ T1POP CXRETDELAY1: PUSH CX ;延时程序 DELAY1MOV CX,0FFFFHT3:NOPNOPLOOP T3POP CXRETDELAY2: PUSH CX ;延时程序 DELAY2MOV CX,0F900HT4:PUSH AXPOP AXLOOP T4POP 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. 理解交通灯控制系统的工作原理和基本组成。
2. 掌握PLC(可编程逻辑控制器)编程和调试方法。
3. 学习交通灯控制系统的硬件连接和电路设计。
4. 提高实际应用中解决复杂问题的能力。
二、实验原理交通灯控制系统是城市交通管理的重要组成部分,其基本原理是通过对交通信号灯进行控制,实现交通流量的有序疏导。
本实验采用PLC作为控制核心,通过编写程序实现对交通灯的定时控制。
三、实验器材1. PLC主机2. 交通灯控制模块3. 电源模块4. 交通灯模型5. 连接线四、实验步骤1. 硬件连接:- 将PLC主机与交通灯控制模块、电源模块和交通灯模型连接。
- 将PLC主机与计算机连接,以便进行程序编写和调试。
2. 程序编写:- 根据交通灯控制要求,编写PLC程序。
- 程序主要包括以下部分:- 启动信号处理:检测启动开关状态,控制交通灯开始工作。
- 定时控制:根据设定的时间,控制交通灯的红、黄、绿灯亮灭。
- 紧急处理:检测紧急处理开关状态,实现交通灯的紧急控制。
3. 程序调试:- 在计算机上运行PLC程序,观察程序运行效果。
- 根据实际情况,对程序进行调试和优化。
4. 实验验证:- 在实际硬件环境中运行程序,观察交通灯控制效果。
- 验证程序是否满足实验要求。
五、实验结果与分析1. 实验结果:- 在实验过程中,成功实现了交通灯的控制,实现了红、黄、绿灯的定时切换。
- 在紧急情况下,能够实现交通灯的紧急控制。
2. 结果分析:- 通过实验,掌握了PLC编程和调试方法,提高了实际应用中解决复杂问题的能力。
- 实验结果表明,所设计的交通灯控制系统具有良好的稳定性和可靠性。
六、实验总结本次实验成功实现了交通灯控制系统的设计与实现,达到了预期目标。
通过实验,我们掌握了以下知识点:1. 交通灯控制系统的工作原理和基本组成。
2. PLC编程和调试方法。
3. 交通灯控制系统的硬件连接和电路设计。
本次实验提高了我们的实际应用能力,为以后从事相关领域工作奠定了基础。
微机原理接口与技术实验四、控制交通灯
姓名
学号
实验组
实验时间
指导教师
成绩
实验名称
实验四、控制交通灯
实验目的
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
微机原理课程设计 8255控制交通灯
微机原理课程设计 8255控制交通灯微机原理课程设计-8255控制交通灯微机原理课程设计:8255模拟交通灯1、目的:自学8255采用方法,自学演示交通灯掌控的方法,自学双色灯的采用。
2、建议:掌控4个双色led灯(可以红肿,蓝,黄光),演示十字路口交通灯管理。
3、电路及连线pc0-pc3连dg1-dg4,pc4-pc7连dr1-dr4。
8255片选cs8255连138译码处210h。
4、说明(1)因为本实验就是演示交通灯掌控实验,所以必须先介绍实际交通灯的变化规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1南北绿灯通车,东西红灯。
过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。
最后循环至状态1。
(2)双色led就是由一个红色led管芯和一个绿色led管芯PCB在一起,公用负端。
当红色正端提高电平,绿色正端提低电平时,红灯暗;红色正端提低电平,绿色正端提高电平时,绿灯暗;两端都提高电平时,黄灯暗。
(3)74ls240为8输入输出的逆向驱动器。
5、顺利完成的任务(1)利用计算机和微机原理试验箱,将实验6的程序tlamp_88.asm在试验箱运行和调试。
全速运行,观察整体效果。
单步运行,观察程序每条语句额执行效果,理解语句含义。
(2)修正实验连线为,pc7-pc4连dg1-dg4,pc3-pc0连dr1-dr4。
8255片挑选cs8255连138译码处为210h孔。
将tlamp_88.asm另存为jiaotong.asm。
修正jiaotong.asm,同时实现交通灯旧有功能。
(3)修改实验连线为,pb7-pb4连dg1-dg4,pb3-pb0连dr1-dr4。
8255片选cs8255连138译码处210h孔。
将jiaotong.asm另存为jiaotong2.asm。
微机原理红绿灯实训报告
一、实训目的通过本次实训,使学生掌握微机原理的基本知识,了解微机原理在交通信号灯控制中的应用,提高学生动手实践能力,培养团队协作精神。
二、实训内容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)调试:根据测试结果,对软件进行调试,确保红绿灯控制系统正常运行。
交通灯控制实验(8255)
实验二
交通灯控制实验(8255) 交通灯控制实验(8255)
一、实验目的
掌握8255方式0的工作原理及使用方法。 掌握8255方式0的工作原理及使用方法。 8255方式
二、实验内容
微机接口实验
实验二
交通灯控制实验(8255) 交通灯控制实验(8255)
一、实验目的 掌握8255方式0的工作原理及使用方法。 掌握8255方式0的工作原理及使用方法。 8255方式 二、实验内容 通过并行接口8255 通过并行接口8255实现十字路口交通 8255实现十字路口交通 灯的模拟控制。如图,L7、L6、L5作为南 灯的模拟控制。如图,L7、L6、L5作为南 北路口的交通灯与PC7 PC6、PC5相连 PC7、 相连, 北路口的交通灯与PC7、PC6、PC5相连, L2、L1、L0作为东西路口的交通灯与 作为东西路口的交通灯与PC2 L2、L1、L0作为东西路口的交通灯与PC2 PC1、PC0相连 相连。 、PC1、PC0相连。编程使六个灯按交通灯 变化规律燃灭。 变化规律燃灭。
交通灯控制
二、实验内容
通过并行接口8255 通过并行接口8255实现十字路口交通 8255实现十字路口交通 灯的模拟控制。 L7、L6、L5作为 灯的模拟控制。如下图,L7、L6、L5作为 南北路口的交通灯与PC7 PC6、PC5相连 PC7、 南北路口的交通灯与PC7、PC6、PC5相连 L2、L1、L0作为东西路口的交通灯与 ,L2、L1、L0作为东西路口的交通灯与 PC2、PC1、PC0相连 相连。 PC2、PC1、PC0相连。编程使六个灯按交 通灯变化规律燃灭。 通灯变化规律燃灭。
交通灯控制
三、实验电路
8255 地址: 地址:
控制寄存器: 控制寄存器: C口地址: 口地址: 28BH 28BH 288H 288H
交通灯微机原理实验报告
交通灯微机原理实验报告交通灯微机原理实验报告一、引言交通灯是城市交通管理中不可或缺的一部分。
它们通过指示灯的变化来引导车辆和行人的通行,确保交通的有序进行。
在这个实验报告中,我们将探讨交通灯背后的微机原理,并介绍我们的实验过程和结果。
二、实验目的本次实验的目的是通过使用微机原理,设计和实现一个交通灯控制系统。
我们将使用微机芯片和相应的电路,以及适当的编程来模拟交通灯的工作原理。
通过这个实验,我们可以更好地理解交通灯的工作原理,并学习如何应用微机技术来实现交通管理。
三、实验设备和材料本次实验使用的设备和材料包括: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实验整体思路实验时,首先根据实验手册连线,待连好后检查无误时,打开电脑中的程序,修改其地址,然后运行程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理实验交通灯控制实验课程设计时间: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口类推。
8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。
8253的三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK2,OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30S定时到。
OUT2产生1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。
8255三个口全部工作在方式0既基本输入输出方式,红绿灯的转换由软件编程实现。
三:设计方案与硬件连接设8253各口地址分别为:设8253基地址即通道0地址为04A0H;通道1为04A2H;通道2为04A4H;命令控制口为04A6H。
黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波, 8255控制或门打开的时间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。
由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方式,理论设计输出周期为0.01s的方波。
1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1 s,因此通道0的计数初值为10000=2710H。
由此方波分别作为clock1和clock2的输入时钟脉冲,所以通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H既30s,计口,8255将A口数据输入到8086,8086数到则输出一个高电平到8255的PA7检测到高电平既完成30s定时。
通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8086共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态反馈到8055的端口PB7和PC7,同样输入到8086,8086通过两次检测端口状态可知黄灯的状态变化,计9次状态变化可完成5次闪烁。
三个通道的门控信号都未用,均接+5V即可。
四:程序流程图五:程序分析1:源程序设置8255A口南北路口绿灯长长南北路口黄灯南北路口红灯南北路口绿灯是否有返回data segmentio8255a equ28ahio8255b equ28bhportc1 db24h,44h,04h,44h,04h,44h,04h;六个灯可能db81h,82h,80h,82h,80h,82h,80h;的状态数据db0ffh;结束标志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,200;参数赋初值test al,21h;是否有绿灯亮jz de1 ;没有,短延时mov cx,2000;有,长延时de1: mov di,9000;di赋初值9000de0: dec di;减1计数jnz de0 ;di不为0loop de1push dxmov ah,06hmov dl,0ffhint21hpop dxjz on ;没有,转到onexit: mov ah,4ch;返回int21hcode endsend start可通过对cx的初始值设定来改变黄色灯亮的时间间隔来改变红灯亮的时间长度。
2:调用函数分析中断-中断函数简介1、EnableIntr;语法:BOOL EnableIntr();功能描述:将微机实验装置的中断输入设为有效,执行此函数后,PLX9054将接受微机实验装置上的中断请求,然后根据该请求申请一个PCI中断。
参数:无返回值:如果成功,则返回True,否则返回False备注:应用程序在调用该函数之前,必须先调用Startup函数。
2、DisableIntr;语法:BOOL DisableIntr();功能描述:将微机实验装置的中断输入设为无效,执行此函数后,PLX9054将不相应微机实验装置上的中断请求参数:无返回值:如果成功,则返回True,否则返回False备注:应用程序在调用该函数之前,必须先调用Startup函数。
3、RegisterISR;语法:BOOL RegisterISR(ISR_ROUTINE pfuncISR);功能描述:注册中断服务程序,当微机实验箱上的中断输入有效时,且实验箱上的中断输入使能,程序将会执行该中断服务程序。
参数:pfuncISR:该参数即为中断服务函数名返回值:如果成功,则返回True,否则返回False备注:应用程序在调用该函数之前,必须先调用Startup函数六:调试记录及结果分析1:本电路没有设置显示倒计时的七段LED数码管,如果应用到街道上,不利于司机、行人把握2:在上机调试中发现,由于此软件延时的时间均为估算时间,不是特别准确,对于交通要求特别高的地方不宜采用。
如果是放到一个大的交通灯系统中,会影响到各个交通灯的运行时间,可能整个系统对交通的指挥调度会大大偏离理论计算,不能有效地防止和消除交通堵塞现象;3:当出现紧急情况,在特种车(如消防车、救护车)正要通过时,这种编程方式就不能完成;但是,可以看到以上方案的一般性,只要将程序里的数据排列或规律稍加修改就可应用到任何一个路口的某一个方向上的交通灯上了,可移植性很强。
七:参考资料《微型计算机原理及运用》谭浩强清华大学出版社《16/32位微机原理、汇编语言及接口技术》陈涛机械工业出版社《微机接口技术应用》八:芯片资料1.82558255的内部结构8255A是一个40引脚的双列直插式集成电路芯片按功能可把8255A分为三个逻辑电路部分,即:口电路、总线接口电路和控制逻辑电路。
(1)口电路8255A共有三个8位口,其中A口和B口是单纯的数据口,供数据I/O使用。
而C口则既可以作数据口,又可以作控制口使用,用于实现A口和B口的控制功能。
数据传送中A口所需的控制信号由C口高位部分(PC7~PC4)提供,因此把A 口和C口高位部分合在一起称之为A组;同样理由把B口和C口低位部分(PC3~PC0)合在一起称之为B组。
(2)总线接口电路总线接口电路用于实现8255A和单片微机的信号连接。
其中包括:(a)数据总线缓冲器数据总线缓冲器为8位双向三态缓冲器,可直接和80C51的数据线相连,与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。
(b)读/写控制逻辑与读写有关的控制信号有CS—片选信号(低电平有效)RD—读信号(低电平有效)WR—写信号(低电平有效)A0、A1—端口选择信号。
8255A共有四个可寻址的端口(即A口、B口、C口和控制寄存器),用二位地址编码即可实现选择。
参见下表。
RESET—复位信号(高电平有效)。
复位之后,控制寄存器清除,各端口被置为输入方式。
读写控制逻辑用于实现8255A的硬件管理:芯片的选择,口的寻址以及规定各端口和单片微机之间的数据传送方向。
(c)控制逻辑电路控制逻辑电路包括A组控制和B组控制,合在一起构成8位控制寄存器。
用于存放各口的工作方式控制字8255A工作方式及数据I/O操作(1)8255A的工作方式8255A共有三种工作方式,即方式0、方式1、方式2.(a)方式0 基本输入/输出方式方式0下,可供使用的是两个8位口(A口和B口)及两个4位口(C口高4位部分和低4位部分)。
四个口可以是输入和输出的任何组合。
方式0适用于无条件数据传送,也可以把C口的某一位作为状态位,实现查询方式的数据传送。
(b)方式1 选通输入/输出方式A口和B口分别用于数据的输入/输出。
而C口则作为数据传送的联络信号。
具体定义见表7–2。
可见A口和B口的联络信号都是三个,如果A或B只有一个口按方式1使用,则剩下的另外13位口线仍然可按方式0使用。
如果两个口都按方式1使用,则还剩下2位口线,这两位口线仍然可以进行位状态的输入输出。
方式1适用于查询或中断方式的数据输入/输出。
(c)方式2 双向数据传送方式只有A口才能选择这种工作方式,这时A口既能输入数据又能输出数据。
在这种方式下需使用C口的五位线作控制线,信号定义如表7–2所示。
方式2适用于查询或中断方式的双向数据传送。
如果把A口置于方式2下,则B口只能工作于方式0.(2)数据输入操作用于输入操作的联络信号有:STB(StroBe)—选通脉冲,输入,低电平有效。