北京交通大学微机原理实验报告 联系客服

发布时间 : 星期六 文章北京交通大学微机原理实验报告更新完毕开始阅读

MOV AL,80H OUT DX,AL

L3: MOV DX,0ce0AH

CALL DELAY CALL DELAY

;长延时,3s左右

MOV AL,24H OUT DX,AL

;南北绿灯,东西红灯亮

CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY

MOV BL,8 MOV AL,04H

L0: XOR AL,40H ;南北黄灯闪,东西红灯亮

MOV AL,81H OUT DX,AL

;南北红灯亮,东西绿灯亮

CALL DELAY OUT DX,AL CALL DELAY

;延时

CALL DELAY

DEC BL ;闪烁几次 JNZ L0

CALL DELAY

CALL DELAY

CALL DELAY ;长延时,3s左右

CALL DELAY CALL DELAY CALL DELAY CALL DELAY

MOV BL,9

MOV AL,80H

L1: XOR AL,02H ;南北红灯亮,东西黄灯闪

OUT DX,AL CALL DELAY DEC BL

5

;延时

CALL DELAY

JNZ L1 ;闪烁几次

CALL DELAY

;------------------------------

;-----------延时函数------------ DELAY : PUSH CX PUSH DX MOV CX,1FFFH LOP1: MOV DX,0FFFFH LOP2: DEC DX

LOOP LOP1 POP DX POP CX RET

JNZ LOP2 MOV AH,4CH INT 21H MOV DL,0FFH MOV AH,06H INT 21H JZ L3

;六号功能判断若无字符输入ZF=1继续循环

CODE ENDS END START

四.实验遇到的问题和解决方法

问题:绿灯灭后黄灯没有出现闪烁的效果,一直保持常亮

解决方法:修改程序,通过利用异或和循环指令使绿灯灭、红灯亮后,黄灯口的状态从0到1循环变换,并通过调用延迟子程序,从而实现人眼可辨的黄灯闪的效果。

6

二、可编程定时时钟/计数器(8253)

一、实验目的

掌握8253的基本工作原理和编程方法。

二、实验内容

1. 按图5-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。

图 5-1

2. 按图5-2连接电图,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。

图5-2

7

三.实验原理

8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。作计数器时, 要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。

8253中各通道可有6种可供选择的工作方式, 以完成定时、计数或脉冲发生器等多种功能。本实验用到的是方式0—计数结束中断。在写入计数值N之后的第一个CLK的下降沿将N装入计数执行单元,待下一个CLK的下降沿到来且门控信号GATE为高电平时,通道开始启动计数。在计数过程中,OUT一直保持低电平,直到计数达“0”时,OUT输出由低电平变为高电平,并且保持高电平。 8253动态分配地址: 控制寄存器: 0C403H

计数器0地址: 0C400H 计数器1地址: 0C401H

四.程序流程图和程序清单 1)

8