微机原理实验Word文件下载.docx

上传人:b****4 文档编号:18449854 上传时间:2022-12-16 格式:DOCX 页数:39 大小:1,000.47KB
下载 相关 举报
微机原理实验Word文件下载.docx_第1页
第1页 / 共39页
微机原理实验Word文件下载.docx_第2页
第2页 / 共39页
微机原理实验Word文件下载.docx_第3页
第3页 / 共39页
微机原理实验Word文件下载.docx_第4页
第4页 / 共39页
微机原理实验Word文件下载.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

微机原理实验Word文件下载.docx

《微机原理实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理实验Word文件下载.docx(39页珍藏版)》请在冰豆网上搜索。

微机原理实验Word文件下载.docx

ENDSTART

四、实验结果

1、输入五次t后得到:

初始化ds段后,做好做加法前准备

2、做完第一次加法后得到结果:

09h

si中

3、全部数加完后得到所有结果存入ds段中的si偏移地址中

实验4统计学生成绩实验

通过对学生成绩统计程序的编写,掌握多重分支程序的基本设计方法。

将十个学生的成绩按不同分数档进行统计,并将结果存入相应单元中。

三、参考程序框完成下列程序

Y

N

GRADEDB56,69,84,83,75,87,98,64,100,71

S5DB0

S6DB0

S7DB0

S8DB0

S9DB0

S10DB0

DATA

MOVCX,10

MOVSI,OFFSETGRADE

COMP:

MOVAL,[SI]

CMPAL,60

JLFIVE

CMPAL,70

JLSIX

CMPAL,80

JLSEVEN

CMPAL,90

JLEIGHT

CMPAL,100

JLNINE

INCS10

JMPADDR

NINE:

INCS9

EIGHT:

INCS8

SEVEN:

INCS7

SIX:

INCS6

FIVE:

INCS5

ADDR:

LOOPCOMP

HLT

ENDSTART

1、输入四次t后,完成ds段的装载

2、输入五次t后,输入dds:

0查看寄存器内容,完成第一个成绩的统计。

3、进行若干次t后完成所有成绩的统计。

输入dds:

0查看寄存器内容

掌握码制转换的基本原理及相应的转换程序的编写方法。

将ASCII数据转换为二进制数据;

要求将内存中以ASCII码表示的十进制整数(范围0--32767),转换为二进制格式存储。

三、

参考框图完成下列程序

Y

DATA1DB33H,39H,36H,34H,31H

GESDB5

RESULTDW(?

MOVAX,0

MOVBL,GES

ASC:

MOVDX,10

MULDX

MOVDH,0

MOVDL,[SI]

ANDDL,0FH

ADDAX,DX

DECBL

JNZASC

MOVRESULT,AX

1、输入5次t后,初始化完ds段、BL、DX,查看ds段寄存器,得到如下结果

2、输入若干次t后做完第一个ASCII码字符转换后,查看ds段寄存器,得到如下结果:

注意看此时的AX寄存器值(AX=0003),表明ASCII第一个字符已分离出来。

3、输入若干次t后完成所有循环,输入dds:

0查看ds段寄存器,得到如下结果:

转换完的二进制数为:

9AD9,变换为十进制后为39641,与ASCII码表示的数相同,则转换正确。

进一步掌握码制转换的基本原理及相应的转换程序的编写方法。

将内存变量中的16位二进制数,转换成相应的ASCII码,存入相应的串变量中。

三、参考框图完成程序

RESULTDB10DUP(?

DATA1DW0F7CH

MOVAX,DATA1

MOVDL,OFFSETRESULT

MOVSI,10

DDD:

MOVDX,0

DIVSI

ADDDX,30H

MOV[DI],DL

CMPAX,0

JNZDDD

CODEENDS

1、输入3次t后,初始化完ds段、AX,查看ds段寄存器,得到如下结果

2、输入10次t后,转换成功第一个ASCII字符后,得到如下结果:

3、输入若干次t后,做完所有循环,得到最终结果如下:

经过转换后的ASCII码为34H,36H,39H,33H,经验证结果正确。

实验9将键盘输入的大小写字母相互进行转换

1、了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换。

2、掌握DOS功能调用的方法。

接收键盘字符,并将其中的大小写字母相互转换。

然后将转换结果显示在屏幕上。

三、参考程序框图完成程序。

CRLFMACRO

MOVDL,0DH

MOVAH,02H

INT21H

MOVDL,0AH

ENDM

DATABUFDB30DUP(?

MOVBX,OFFSETDATABUF

MOVSI,0H

CHR:

MOVAH,01H

CMPAL,0DH

JZDISP

CMPAL,'

Z'

JGSML

ADDAL,20H

MOV[BX+SI],AL

JMPCHR

SML:

SUBAL,20H

DISP:

CRLF

MOVCX,SI

DISP1:

MOVDL,[BX]

INCBX

LOOPDISP1

MOVAH,4CH

1、输入5次t后,初始化完ds段,得到如下数据(预留30个字节空间)如下图所示:

2、输入g后,输入字符串‘dhiengDGHDKSG’,得到转换后的字符串,如下图所示:

由此可以看出,输入的大小写正常转换,则程序正确能实现转换功能。

1、掌握表处理程序设计的基本方法。

2、掌握XLAT语句的用法。

3、掌握DOS功能调用的方法。

1、编写程序,用查表法求一给定值X的平方,X的取值范围为0~9;

2、要求X从键盘输入,当输入值不为0~9时给出提示信息,并重新输入,按“*”键退出。

三、程序设计部分

程序代码:

CRLFMACRO//定义回车、换行和显示字符

DATASEGMENT//定义数据段内容

DATA1DB0,1,4,9,16,25,36,49,64,81//表内容

DATA2DB30DUP(?

)//存放从表中取出的数据

)//存放转换后的ASCII码数据

DATA3DB'

error!

$'

//要显示的错误信息字符

CODESEGMENT//定义代码段内容

MOVBX,OFFSETDATA1

AGAIN:

MOVAH,1//接收输入字符,并存入AL中

*'

//判断是否为“*”字符

JZEXIT//若是“*”则退出DOS

CMPAL,30H//判断是否小于0

JBERROR//若是则跳至错误信息

CMPAL,39H//判断是否大于9

JAERROR//若是则跳至错误信息

SUBAL,30H

XLAT//查表,将对应内容存入AL中

MOVDATA2,AL//将AL中的数据存入DATA2中

JMPDISP//跳至显示字符

CRLF//显示查出的内容

CALLDDD//调用转换ASCII的子程序

JMPEXIT

ERROR:

CRLF//显示错误信息

MOVDX,OFFSETDATA3

MOVAH,9

JMPAGAIN

DDDPROCNEAR//转换ASCII码的子程序

MOVAX,DATA2

MOVDI,OFFSETRESULT

MOVSI,10

ZHU:

MOVDX,0//转换为ASCII码输出

JNZZHU

MOVDX,[DI+1]

MOVDX,[DI]

RET

DDDENDP

EXIT:

MOVAH,4CH//退出DOS

五、实验结果

1、运行程序,输入g后,输入6,则得到如下结果:

从上图可看出,结果正确

3、输入g后,输入‘d’,则得到如下结果:

从结果看出,对输入错误的信息处理能正确,直到输入正确数字为至

3、输入g后,输入‘*’后,得到如下结果:

从结果可以看出,当输入“*”后,直接退出DOS,与要求相符。

(1)掌握8259中断控制器的接口方法。

(2)掌握8259中断控制器的应用编程。

编制程序,利用8259芯片的IR7作为中断源,产生单一中断,系统显示中断号“7”。

三、程序框图

主程序IR7中断服务程序

四、实验电路

五、编程提示

(1)8259芯片介绍

中断控制器8259A是专为控制优先级中断而设计的芯片。

它将中断源优先级排队,辨别中断源以及提供中断矢量的电路集于一片中。

因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。

同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。

中断序号

1

2

3

4

5

6

7

变量地址

20H

~23H

24H

~27H

28H

~2BH

2CH

~2FH

30H

~33H

34H

~37H

38H

~3BH

3CH

~3FH

(2)本实验中使用7号中断源IR7,"

"

插孔和IR7相连,中断方式为边沿触发方式,每按二次AN按钮产生一次中断,编写程序,使系统每次响应外部中断IR7时,显示1个字符“7”,满7次后显示“P.”继续等待中断。

六、实验步骤

(1)按实验电路图连接线路:

①“”插扎和82597号中断IR7插孔相连,“”端初始为低电平

②8259的CS端连138译码器的FFE0孔

(2)运行实验程序

在系统处于命令提示符“P.”状态下,输入3400,按EXEC键,系统显示“P.”

(3)按AN按钮,每按2次,LED数码管从最高位开始依次显示1个“7”,按满14次后显示“P.”继续等待中断。

(4)按复位键RESET返回“P.”或按暂停键STOP+MON键返回“P.”。

实验一8255A并行口实验

(一)LED显示

(1)掌握8255A的工作原理及使用方法。

(2)通过8255实验,掌握I/O设备与CUP接口的基本原理和编程方法。

用8255并行口控制LED发光二极管的亮灭,使12个LED循环一次点亮。

三、实验电路

四、编程提示

8255A可编程接口芯片具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:

方式0:

基本输入/输出方式

方式1:

选通输入/输出方式

方式2:

双向选通工作方式

设置8255A端口A、B工作在方式0并处于输出方式,由于LED二极管共阳极连接,故8255端口输出为低电平即0时,LED发光二极管点亮。

五、实验步骤

8255A芯片A口的PA0—PA7依次L1—L8。

8255A芯片B口的PB0—PB3依次接L9—L12。

(2)编写实验程序运行。

实验框图如下:

程序如下:

PAEQU0FFD8H;

设置A口地址

PBEQU0FFD9H;

设置B口地址

PCEQU0FFDAH;

设置C口地址

PCTLEQU0FFDBH;

设置控制口地址

CODE

MOVDX,PCTL;

初始化8255,设置工作方式

MOVAL,80H;

工作在方式0,为输出

OUTDX,AL

MOVAL,73H对A口设置数据

DIS1:

MOVDX,PA;

让A口输出,使LED灯1—8按设定顺序亮灭

OUTDX,AL

INCDX;

使DX指向B口地址

DIS2:

MOVAL,05H;

让B口输出,使LED灯9—12按设定顺序亮灭

MOVCX,0FFFH;

设置延时时间

Loop$

JMPDIS1;

调至DIS1循环输出

CODEENDS

ENDSTART

实验三8255A并行口实验(三)控制交通灯

掌握通过8255A并行口传输数据的方法,以控制发光二接管的亮与灭。

用8255作输出口,控制十二个发光二极管然灭,模拟交通灯管理。

(1)通过8255A控制发光二极管PB3、PB0、PA5、PA2对应黄灯,PB1、PA6PA3、PA0对应红灯,PB2、PA7、PA4、PA1对应绿灯、以模拟交通灯的管理。

(2)要完成本实验,必须先了解交通灯的亮灭规律,设有一个十字路口1、3为南北方向,2、4为东西方向。

初始状态为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。

延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,在切换到1、3路口方向,之后,重复上述过程。

(3)程序设定好8255A的工作模式,及三个端口均工作在方式0,并处于输出状态。

(4)各发光二极管共阳极,使其点亮应使8255A相应端口的位清0。

(1)按实验电路图连接线路

8255A:

PA0-L15PA1-L14PA2-L13PA3-L11

PA4-L10PA5-L9PA6-L7PA7-L6

PB0-L5PB1-L3PB2-L2PB3-L1

(2)编写并运行试验程序

系统显示执行符同时L1-L12发光二极管模拟交通灯显示。

(3)按复位键RESET返回“P.”或按暂停键STOP+MON键返回“P.”。

实验框图如下:

MOVAL,80H;

初始化,定义8255A的工作方式

MOVDX,PCTL

OUTDX,AL;

初始化LED灯,使红灯全亮

MOVDX,PA

MOVAL,0B6H

INCDX

MOVAL,0DH

CALLDELAY1;

调用延时1子程序,实验延时

P30:

MOVAL,75H;

点亮1、3路口的绿灯和2、4的红灯

延时1

CALLDELAY1

MOVCX,08H

P31:

点亮1、3路口的黄灯和1、4路口的黄灯

MOVAL,0F3H

MOVAL,0CH

CALLDELAY2

MOVAL,0F7H

LOOPP31

MOVAL,0AEH

MOVAL,0BH

CALLDELAY1

MOVCX,08H

P32:

点亮1、3路口的红灯和2、4的绿灯

MOVAL,9EH

MOVAL,07H

MOVAL,0BEH

MOVAL,0FH

LOOPP32

JMPP30

DELAY1PROCNEAR;

延时1子程序,堆栈实现

PUSHAX

PUSHCX

MOVCX,0030H

DELY2:

LOOPDELY2

POPCX

POPAX

DELAY1ENDP

DELAY2PROCNEAR;

延时2子程序,堆栈实现

PUSHCX

MOVCX,8000H

LOOP$

DELAY2ENDP

CODEENDS

实验八定时/计数器8253方波

(1)学会8253芯片和微机接口原理和方法。

(2)掌握8253定时器/计数器的工作方式和编程原理。

8253的0通道工作在方式3,产生方波。

四.实验电路

五、编程提示

 

8253芯片介绍

8253是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz,

用+5V单电源供电。

8253的功能用途:

(1)延时中断 

(5)实时时钟

(2)可编程频率发生器(6)数字单稳

(3)事件计数器 

(7)复杂的电机控制器

(4)二进制倍频器

8253的六种工作方式:

(1)方式0:

计数结束中断 

(4)方式3:

方波频率发生器

(2)方式1:

可编程频率发生 

(5)方式4:

软件触发的选通信号

(3)方式2:

频率发生器 

(6)方式5:

硬件触发的选通信号

8253的0号通道工作在方式3,产生方波。

六、实验步骤

①8253的GATE0接+5V。

②8253的CLK0插孔接分频器74LS393(左上方)的T2插孔,分频器的频率源为:

4.9152MHz(已连好)。

③8253的CS孔与138译码器的FFE0孔相连。

(2)运行实验程序

在系统处于"

P."

状态下,输入3490,按EXEC键

(3)用示波器测量8253的OUT0输出插孔有方波产生。

实验程序如下:

PA0EQU0FFE0H;

设置0口地址

PA1EQU0FFE1H;

设置1口地址

PA2EQU0FFE2H;

设置2口地址

PA3EQU0FFE3H;

设置3口地址

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1