微机原理实验(4)

2020-06-18 20:26

微机原理实验指导书

参考代码:

STACK SEGMENT STACK

移位,最右边数位转换为ASCII DW 100 DUP(?)

STACK ENDS DATA SEGMENT N 是A~F? BUFF DW 3C6DH

DATA ENDS Y CODE SEGMENT 加上07H ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA 显示字符 MOV DS,AX LEA SI,BUFF

循环结束? MOV BX,[SI] ;从内存单元中取数据

MOV CH,4 A1: MOV CL,4

结束 ROL BX,CL MOV AL,BL 图4-1循环结构流程图 AND AL,0FH ;分离出要转换的4位二进制数 ADD AL,30H CMP AL,3AH JL A2 ADD AL,7H ;字符为A~F A2: MOV DL,AL ;显示十六进制数 MOV AH,2 INT 21H DEC CH JNZ A1 MOV AH,4CH ;返回DOS系统 INT 21H CODE ENDS END START

2. 题目:设计一个软件延时器,在屏幕上按9,8,7??0显示软件延时倒计时过程。(使用

子程序) 主程序解析:

1.20h是空格的ASCII码,使结果在屏幕中间显示,39h是数字9的ASCII码,在下面用data1+5进行调用,'$'是字符串结束标志,表示输出结束。 2.cx存放循环次数。

3.执行9号功能调用,输出字符串。 4.调用延时子程序。

5.使data1+5单元的数值减1,以改变输出数字。 6.循环10次。 延时程序解析:

16

开始 微机原理实验指导书

1.把cx压栈(因为主程序也使用了cx)。 2.给bx送第二时间常数,即外层循环次数。

3.给cx送0h,执行loop指令后cx减1,即0ffffh(内层循环次数)。

4.外层循环6ffffh次(由不同cpu主频决定,可以自由改变以适合不同的延时需要) 5.返回主程序。

参考代码: .MODEL SMALL .DATA

DATA1 DB 20H,20H,20H,20H,20H,39H,0DH,'$' .CODE .STARTUP

MOV CX,0AH ;设置循环次数 LOP: MOV AH,09H ;显示功能调用 LEA DX,DATA1 INT 21H

CALL NEAR PTR DELAY ;调用延时子程序 DEC DATA1+5 ;修改显示数字 LOOP LOP .EXIT

DELAY PROC NEAR USES CX ;延时子程序 MOV BX,05FFFH ;设第二时常数 DELAY1: MOV CX,0H

LOOP $ ;自身循环CX次 A: LOOP A

DEC BX ;第二时常数减1 JNZ DELAY1 ;不为零循环 RET DELAY ENDP END

四、 实验报告要求

1. 列出源程序,说明程序的基本结构,包括程序中各部分的功能。 2. 说明主要符号和所用到寄存器的功能。 3. 上机调试过程中遇到的问题是如何解决的。 4. 对调试源程序的结果进行分析。

17

微机原理实验指导书

硬件实验

实验五 8253电子音调实验

一、实验目的

1.掌握8253 的各种使用方法;

2.掌握8253 的各种模式的编程及其原理。 二、实验要求

对8253 进行编程,使其OUT0 上输出一定的频率,将它接到到喇叭上,演奏出不同的音节。计算机的数字键(1-8)作为电子音调的音调选择。 三、实验原理

(一)Intel 8253的主要性能和内部结构 1. Intel 8253的主要性能

Intel 8253-PIT有3个独立的16位计数器,每个计数器都可以按照二进制或BCD码进行计数,计数速率可达2MHz(8254为10MHZ),每个计数器有6种工作方式,可编程设置和改变。它可用在多种场合,如方波发生器、分频器、实时时钟、事件计数等方面。 2. Intel 8253的内部结构 ⑴数据总线缓冲器

它与CPU的数据总线相连,是8位双向三态缓冲器。CPU通过这个缓冲器对8253进行读/写操作。

⑵控制字寄存器

此寄存器只能写入而不能读出。在8253初始化时,由CPU写入控制字来设置计数器的工作方式。 ⑶计数器

计数器0、计数器1、计数器2是三个完全独立、结构相同的计数器,每一个都是由一个16位的可预置的减法计数器构成。下图为 8253的内部结构 CLK0数据总线计数器D~DGATE70 0缓冲器0OUT0

18

RDWRA0A1CS读/写逻辑计数器1CLK1GATE1OUT1CLK2GATE2OUT2控制字寄存器计数器2微机原理实验指导书

(二)Intel 8253的外部性能

D7D6D5D4D3D2D1D0CLK0OUT0GATE0GND1234567891011128253PIT242322212019181716151413VCCWRRDCSA1A0CLK2OTU2GATE2CLK1GATE1OTU1

图(a) Intel 8253的外部引脚图

(1)GATE:门控信号,当GATE为低电平时,禁止计数器工作; GATE为高电平时,才允许计数器工作。

(2)CLK:计数脉冲输入。

OUT:脉冲输出。当计数到“0”时,从OUT端输出信号,输出信号的波形取决于工作方式。

(3)CS、RD、WR、A0、A1共同结合,用于对8253进行端口操作,如表a所示。

表a 8253的端口选择

CSRDWRA1

0 0 1 1 0 0 1 1

A0

0 1 0 1 0 1 0 1

寄存器选择和操作

写计数器0 写计数器1 写计数器2 写控制字寄存器 读计数器0 读计数器1 读计数器2 无操作(三态) 禁止(三态) 无操作(三态)

0 0 0 0 0 0 0 0 1 0

1 1 1 1 0 0 0 0 × 1

0 0 0 0 1 1 1 1 × 1

×

19 ×

× ×

微机原理实验指导书

(三) Intel8253的控制字和编程

D7SC1D6SC0D5RL1D4RL0D3M2D2M1D1M0D0BCD(计数器选择) 00:选择计数器0 01:选择计数器1 10:选择计数器2 11:非法选择(数制选择) 0:二进制 1:BCD(读/写格式) 00:计数器锁存命令 01:读/写高8位 10:读/写低8位 11:先读/写低8位,再读/写高8位

图(b) 8253的控制字

(1)SC1、SC0: 这两位决定这个控制字是哪一个计数器的控制字。

(2)RL1、RL0:设置数据读/写格式。在读取计数值时,可令RL1、RL0=00,先将写控制字时的计数值锁存,然后再读取。

(3)M2、M1、M0:设置每个计数器的工作方式。

(4)BCD:用于选择每个计数器的计数制。在二进制计数时,计数初值的范围是0000H~FFFFH,其中0000H是最大值,代表65536。在BCD码计数时,计数初值的范围中0000—9999,其中,0000是最大值,代表10000。 (四)8253 的全部功能是由CPU 编程设定的。

CPU 通过输出指令给8253 装入控制字,从而设定其功能。8253 控制字格式如下:

D7 SC1 D6 SC0 D5 D4 D3 M2 D2 M1 D1 M0 D0 BCD RL1 RL0 (工作方式选择) 000: 方式0 001: 方式0 X10:方式2 X11:方式3 100 :方式4 101: 方式5各位的功能见表1~表4:

表1 SC1、SC0-计数器选择 SC1 0 0 1 1

SC0 0 1 0 1 20

选择计数器 选择0# 选择1# 选择2# 非法


微机原理实验(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:家长学校结业成绩 -

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: