当前位置:文档之家› 哈尔滨工业大学微处理器原理与应用实验报告

哈尔滨工业大学微处理器原理与应用实验报告

微处理器原理与应用实验报告姓名:***同组人:张绍文、马文佳、孙蓦征学号:**********班级:0805204指导教师:***院系:电子信息工程1 实验一简单I/O口扩展实验(一)交通灯控制实验1.1实验要求扩展实验箱上的74LS273作为输出口,控制八个发光二极管燃灭,模拟交通灯管理。

1.2实验目的1.学习在单片机系统中扩展简单I/O接口的方法2.学习数据输出程序的设计方法3.学习模拟交通灯控制的实现方法1.3实验原理本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。

不妨将L1、L3、L5作为东西方向的指示灯,将L2、L4、L6作为南北方向的指示灯。

而交通灯的燃灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。

闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。

闪烁若干次后,再切换到东西路口方向,重复上述过程。

各发光二极管共阳极,阴极接有与非门,因此使其点亮应使相应输入端为高电平。

1.4 实验内容(包括实验电路和程序流程图)按指导书搭接电路,调试程序并运行。

图1实验电路图图2实验流程图1.5 实验结果实验现象与既定目标相符:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。

闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。

闪烁若干次后,再切换到东西路口方向,重复上述过程。

1.6 实验结果讨论分析实验中发现交通灯在黄灯和红绿灯切换的时候有抖动和延时,初步估计是单片机定时系统不稳定以及程序的延时冗余没有添加所导致。

1.7 实验程序代码PORT EQU 0CFA0H ;片选地址CS0ORG 0000HLJMP BEGINORG 4100HBEGIN: MOV A,#03H ;1、2亮,其余灭ACALL SHOW ;调用273显示单元ACALL T03 ;延时3秒EW: MOV A,#12H ;东西导通;南北截止ACALL SHOWACALL T10 ;延时10秒MOV A,#02H ;东西截止;南北截止ACALL SHOWSNBY: MOV A,#04H ;3亮,其余灭ACALL SHOW ;调用273显示单元ACALL T02 ;延时2秒MOV A,#00H ;ACALL SHOWACALL T02 ;延时2秒MOV A,#04H ;3亮ACALL SHOWACALL T02 ;延时2秒MOV A,#00H ;灭ACALL SHOWACALL T02 ;2秒MOV A,#04H ;3亮ACALL SHOWACALL T02 ;2秒MOV A,#00H ;灭ACALL SHOWACALL T02 ;2秒MOV A,#04H ;3亮ACALL SHOWACALL T02 ;2秒MOV A,#00H ;灭ACALL SHOWACALL T02 ;2秒MOV A,#04H ;3亮ACALL SHOWACALL T02 ;2秒MOV A,#00H ;东西黄灯闪烁程序ACALL SHOWACALL T02 ;延时0.2秒MOV A,#02H ;东西路口黄灯灭;南北路口红灯亮ACALL SHOWACALL T02 ;延时0.2秒MOV A,#03H ;东西南北都截止ACALL SHOWACALL T02 ;延时0.2秒MOV A,#21H ;东西截止;南北导通ACALL SHOWACALL T10 ;延时10秒MOV A,#01H ;东西截止;南北截止ACALL SHOWSN: MOV A,#08HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#08HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#08HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#08HACALL SHOWACALL T02MOV A,#00HACALL SHOWACALL T02MOV A,#08HACALL SHOWACALL T02MOV A,#00H ;南北黄灯闪烁程序ACALL SHOWACALL T02 ;延时0.2秒MOV A,#01H ;东西截止;南北截止ACALL SHOWACALL T02 ;延时0.2秒MOV A,#03H ;东西南北都截止ACALL SHOWACALL T02 ;延时0.2秒JMP EW ;转EW循环T10: MOV R1,#100 ;延时10秒JMP TU1T03: MOV R1,#30 ;延时3秒JMP TU1T02: MOV R1,#02 ;延时0.2秒TU1: MOV R2,#200TU2: MOV R3,#126TU3: DJNZ R3,TU3DJNZ R2,TU2DJNZ R1,TU1RETSHOW: MOV DPTR,#PORT ;273显示单元MOVX @DPTR,ARETEND2 实验二简单I/O口扩展实验(二)2.1实验要求利用74LS244作为输入口,读取开状态,并将此状态通过发光二极管显示出来。

2.2实验目的1.学习在单片机系统中扩展简单的I/O口的方法。

2.学习数据输入,输出程序的编制方法。

2.3实验原理MCS-51外部扩展空间很大,但数据总线口和控制信号线的负载能力是很有限的。

若需要扩展的芯片较多,则MCS-51总线口的负载过重,74LS244是一个扩展输入口,同时也是一个单向驱动器,以减轻总线口的负担。

程序中加了一段延时程序,以减少总线口读写的频繁程度,延时时间约为0.01秒,不会影响显示的稳定。

2.4 实验内容(包括实验电路和程序流程图)按指导书搭接电路,调试程序并运行。

图3实验电路图图4实验电路图图5实验流程图2.5 实验结果74LS244作为输入口,二极管按开关状态显示。

2.6 实验结果讨论分析在发光二极管显示的过程中,有抖动产生,通过消抖开关或者程序延时可以消除抖动。

2.7 实验程序代码ORG 0000HLJMP BEGINORG 4100HINPORT EQU 0CFA8H ;读入开关状态OUTPORT EQU 0CFB0H ;输出开关状态BEGIN: MOV DPTR,#INPORTDO: MOVX A,@DPTRMOV DPTR,#OUTPORTMOVX @DPTR,AMOV R1,#0AHX0: MOV R0,#7DHX1: DJNZ R0,X1DJNZ R1,X0 ;延迟0.1sLJMP BEGINEND3 实验三中断实验——有急救车的交通灯控制实验3.1实验要求在实验三的内容基础上增加允许急救车优先通过的要求。

当有急救车到达的时候,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。

本实验以单脉冲为中断申请,表示有急救车通过。

3.2实验目的1、学习外部中断技术的基本使用方法。

2、学习中断处理程序的编程方法。

3.3实验原理交通灯的燃灭规律见实验三。

本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。

要保护的地方,除了累加器ACC,标志寄存器PSW外,还要注意:一是主程序中的延时程序和中断处理程序中的延迟程序不能混用,本实验给出的程序中,主程序延迟用的是R5、R6、R7。

中断延迟用的是R3、R4和新的R5。

第二,主程序中每执行一步经74LS273的端口输出数据的操作时,应先将所输出的数据保存到一个单元中。

因为进入中断程序后也要执行往74LS273端口输出数据的操作,中断返回时如果没有恢复中断前74LS273端口锁存器的数据,则显示往往出错,回不到中断前的状态。

还要注意一点,主程序中往端口输出数据操作要先保存再输出,例如有如下操作:MOV A, #0F0H (0)MOVX R1, A (1)MOV SA VE, A (2)程序如果正好执行到(1)时发生中断,则转入中断程序,假设中断程序返回主程序前需要执行一句MOV A,SA VE指令,由于主程序中没有执行(2),故SA VE中的内容实际上是前一次放入的而不是(0)语句中给出的0F0H,显示出错,将(1)、(2)两句顺序颠倒一下则没有问题。

发生中断时两方向的红灯一起亮10秒,然后返回中断前的状态。

3.4 实验内容(包括实验电路和程序流程图)按电路图搭接电路,调试程序并运行。

实验电路图及程序流程图与实验一一样,下附中断程序流程图。

3.5 实验结果小灯泡按顺序发光。

由外部中断(应急处理),东西向南北向均为红灯亮。

3.6 实验结果讨论分析实验成功模拟了中断操作,需要注意的是中断钱需要对堆栈进行操作,同时如果不设置恢复程序中断前的数据会较容易丢失。

3.7 实验程序代码OUTPORT EQU 0CFB0H ;端口地址SA VE EQU 55H ;save保存从端口cfa0输出的数据ORG 0000HLJMP BEGINORG 4003H ;LJMP INTORG 4100HBEGIN: SETB IT0 ;跳沿触发SETB EX0 ;允许外部零中断SETB EA ;cpu开中断MOV A,#03H ;置首显示码,2红亮MOV SA VE,A ;保存ACALL SHOW ;显示输出ACALL T03 ;延时3秒EW: MOV A,#12H ;东西导通;南北截止MOV SA VE,AACALL SHOWACALL T10 ;延时10秒MOV A,#02H ;东西截止MOV SA VE,AACALL SHOWMOV R0,#05H ;东西黄灯闪烁5次SNBY: MOV A,#06HMOV SA VE,AACALL SHOWACALL T02MOV A,#02HMOV SA VE,AACALL SHOWACALL T02DJNZ R0,SNBYMOV A,#03H ;东西南北都截止MOV SA VE,AACALL SHOWACALL T02 ;延时0.2秒MOV A,#21H ;东西截止,南北导通MOV SA VE,AACALL SHOWACALL T10 ;延时10秒MOV A,#01H ;南北截止MOV SA VE,AACALL SHOWMOV R0,#05H ;南北黄灯闪烁5次SN: MOV A,#09HMOV SA VE,AACALL SHOWACALL T02MOV A,#01HMOV SA VE,AACALL SHOWACALL T02DJNZ R0,SNMOV A,#03H ;东西南北都截止MOV SA VE,AACALL SHOWACALL T02 ;延时0.2秒LJMP EW ;转EW循环T10: MOV R3,#100;延时10秒LJMP TU1T03: MOV R3,#30 ;延时3秒LJMP TU1T02: MOV R3,#02 ;延时0.2秒TU1: MOV R4,#200TU2: MOV R5,#126TU3: DJNZ R5,TU3DJNZ R4,TU2DJNZ R3,TU1RETINT: CLR EAPUSH ACC ;中断处理PUSH PSWMOV A,R3PUSH ACCMOV A,R0PUSH ACCMOV A,#03H ;东西南北都截止ACALL SHOWTT10: MOV R1,#100;延时10秒TT01: MOV R0,#200TT02: MOV R3,#126TT03: DJNZ R3,TT03DJNZ R2,TT02DJNZ R1,TT01MOV A,SA VE ;取SA VE中保存数据输出到cfa0端口ACALL SHOWPOP ACC ;出栈MOV R0,APOP ACC ;出栈MOV R3,APOP PSWPOP ACCSETB EA ;允许外部中断RETISHOW: MOV DPTR,#OUTPORTMOVX @DPTR,ARETEND4 实验四定时器实验----循环彩灯实验4.1实验要求由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。

相关主题