微机原理实验报告Word文档下载推荐.docx
- 文档编号:22649398
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:31
- 大小:794.66KB
微机原理实验报告Word文档下载推荐.docx
《微机原理实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。
信息界面
5.连接PC与实验系统的通讯电缆,打开实验系统电源。
6.下载程序,查看内存3000H开始的连续16个存储单元中的内容,显示如下:
8.由于该内存段原始数据与实验数据相同,便于区分观察,将该内存段初始化,然后查看:
9.点击运行程序,在此查看该段内存:
10.设置断点,执行程序:
5操作练习
编写程序,将内存3500H单元开始的8个数据复制到3600H单元开始的数据区中。
通过调试验证程序功能,使用E命令修改3500H单元开始的数据,运行程序后使用D命令查看3600H单元开始的数据。
1、编写程序如下:
MOVSI,3500H
MOVDI,3600H
MOVCX,8
MOVAL,[SI]
MOV[DI],AL
INCDI
2、执行过程如上,内存变化如下:
程序执行前
程序执行后
实验二:
数制转换实验
1、实验目的
1.掌握不同进制数及编码相互转换的程序设计方法,加深对数制转换的理解;
2.熟悉程序调试的方法。
2、实验设备
3、实验内容
将ASCII码表示的十进制数转换为二进制数,将十进制数的ASCII码转换为BCD码
4、步骤
第一部分:
将十进制数的ASCII码转换为BCD码
1、画流程图如下:
2、根据流程图写出代码:
DW64DUP(?
)
ASSUMECS:
CODE
MOVAX,0000H
MOVDS,AX
MOVCX,0005H;
转换位数
MOVDI,3500H;
ASCII码首地址
A1:
MOVBL,0FFH;
将错误标志存入BL
MOVAL,[DI]
CMPAL,3AH
JNBA2;
不低于3AH则转A2
SUBAL,30H
JBA2;
低于30H则转A2
MOVBL,AL
A2:
MOVAL,BL;
结果或错误标志送入AL
MOV[DI+0AH],AL;
结果存入目标地址
INCDI
LOOPA1
A3:
JMPA3
ENDSTART
3、编译链接,下载运行程序:
第二部分:
将十六位二进制数转换为ASCII码表示的十进制数
十六位二进制数的值域为0~65535,最大可转换为五位十进制数。
五位十进制数可表示为:
N=D4⨯104+D3⨯103+D2⨯102+D1⨯10+D0
Di:
表示十进制数0~9
将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1~D4,并将它们转换为ASCII码。
自行绘制程序流程图,编写程序可参考例程。
例程中源数存放于3500H、3501H中,转换结果存放于3510H~3514H单元中。
实验步骤
(1)编写程序,经编译、链接无误后,装入系统;
CODESEGMENT
MOVSI,3500H;
源数据地址
MOVDX,[SI]
MOVSI,3515H;
目标数据地址
DECSI
MOVAX,DX
MOVDX,0000H
MOVCX,000AH;
除数10
DIVCX;
得商送AX,得余数送DX
XCHGAX,DX
ADDAL,30H;
得Di的ASCII码
MOV[SI],AL;
存入目标地址
CMPDX,0000H
JNEA1;
判断转换结束否,未结束则转A1
CMPSI,3510H;
与目标地址得首地址比较
JZA3;
等于首地址则转A3,否则将剩余地址中填30H
DECSI
MOVAL,30H
MOV[SI],AL
JMPA2
JMPA3
CODEENDS
(2)在3500H、3501H中存入0C00
(3)运行程序,然后停止运行;
(4)检查运行结果,键入D3510,结果应为:
3030303132;
(5)可反复测试几组数据,验证程序的正确性。
例如;
将3500h,3501H中存入0102,j结果如下:
第三部分:
十六进制数转换为ASCII码
由表1-2-1中十六进制数与ASCII码的对应关系可知:
将十六进制数0H~09H加上30H后得到相应的ASCII码,AH~FH加上37H可得到相应的ASCII码。
将四位十六进制数存放于起始地址为3500H的内存单元中,把它们转换为ASCII码后存入起始地址为350AH的内存单元中。
自行绘制流程图。
(1)编写程序,经编译、链接无误后装入系统;
SSTACKENDS
MOVCX,0004H
MOVDI,3500H;
十六进制数源地址
MOVDX,[DI]
MOVAX,DX
ANDAX,000FH;
取低4位
CMPAL,0AH
小于0AH则转A2
ADDAL,07H;
在A~FH之间,需多加上7H
ADDAL,30H;
转换为相应ASCII码
MOV[DI+0DH],AL;
DECDI
PUSHCX
MOVCL,04H
SHRDX,CL;
将十六进制数右移4位
POPCX
(2)在3500H、3501H中存入四位十六进制数203B,即键入E3500,然后输入3B20;
(3)先运行程序,然后再停止运行;
(4)键入D350A,显示结果为:
0000:
350A32303342CC…;
(5)反复输入几组数据,验证程序功能。
例如键入E3500,然后输入2D,46,显示结果如下:
实验三:
循环程序设计实验
1.加深对循环结构的理解;
2.掌握循环结构程序设计的方法以及调试方法。
计算S=1+2×
3+3×
4+4×
5+…+N(N+1),直到N(N+1)项大于200为止,求某数据区内负数的个数。
计算S=1+2×
5+…+N(N+1),直到N(N+1)项大于200为止
1、构思程序,画流程图:
2、写出程序:
SSTACKSEGMENTSTACK
MOVDX,0001H
MOVBL,02H
MOVAL,BL
INCBL
MULBL
ADDDX,AX;
结果存于DX中
CMPAX,00C8H;
判断N(N+1)与200的大小
JNAA1
JMPA2
3、编译连接,下载程序,运行:
4.修改数据后验证如下,其中将00C8H改为00D8:
第二部分:
求某数据区内负数的个数
1、构思程序结构,画出流程图:
MOVDI,3000H;
数据区首地址
MOVCL,[DI];
取数据个数
XORCH,CH
MOVBL,CH
INCDI;
指向第一个数据
MOVAL,[DI]
TESTAL,80H;
检查数据首位是否为1
JEA2
INCBL;
负数个数加1
MOV[DI],BL;
保存结果
3、编译、链接无误后装入系统,键入E3000,输入数据如下:
3000=06,3001=12,3002=88,3003=82,3004=90,3005=22,3006=33
4、查看内存检验结果如下:
5.修改数据,编译、链接无误后装入系统,键入E3000,输入数据如下:
3000=06,3001=82,3002=86,3003=88,3004=90,3005=11,3006=22
6.修改后检验的结果如下:
实验四:
8259中断控制实验
1.掌握8259中断控制器的工作原理;
2.学习8259的应用编程方法;
3.掌握8259级联方式的使用方法。
3、实验内容及步骤
1.中断控制器8259简介
在Intel386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。
该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。
从片的INT连接到主片的IR2信号上构成两片8259的级联。
在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。
2、按下图链接好实验电路:
3、写出实验程序如下:
DW32DUP(?
MOVAX,0000H
MOVDS,AX
MOVAX,OFFSETMIR7;
取中断入口地址
MOVSI,003CH;
中断矢量地址
MOV[SI],AX;
填IRQ7的偏移矢量
MOVAX,CS;
段地址
MOVSI,003EH
填IRQ7的段地址矢量
CLI
POPDS
;
初始化主片8259
MOVAL,11H
OUT20H,AL;
ICW1
MOVAL,08H
OUT21H,AL;
ICW2
MOVAL,04H
ICW3
MOVAL,01H
ICW4
MOVAL,6FH;
OCW1
OUT21H,AL
STI
NOP
JMPAA1
MIR7:
STI
CALLDELAY
MOVAX,0137H
INT10H;
显示字符7
MOVAX,0120H
INT10H
MOVAL,20H
中断结束命令
IRET
DELAY:
PUSHCX
MOVCX,0F00H
AA0:
PUSHAX
POPAX
LOOPAA0
RET
4、编译链接,下载程序运行:
实验五:
8255并行接口实验
1实验目的
1.学习并掌握8255的工作方式及其应用;
2.掌握8255典型应用电路的接法。
2实验设备
3实验内容
1.基本输入输出实验。
编写程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2.流水灯显示实验。
编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
4实验原理
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图2-6-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图
5实验步骤
本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。
用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。
具体实验步骤如下述:
1、按下图按图电路
2、编写程序:
MOVDX,0646H
MOVAL,90H
OUTDX,AL
MOVDX,0640H
INAL,DX
MOVDX,0642H
LOOPAA2
3、运行程序,改变拨动开关,同时观察LED显示,验证程序功能。
4.结果:
拨动K0...K7,以及D0...D7开关时,数据灯的显示就会对应的发光。
流水灯显示实验
使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
实验接线图如图2-6-5所示。
实验步骤如下所述:
1、按下图链接电路图:
2、编写实验程序,经编译、链接无误后装入系统
MOVAL,80H
MOVBX,8001H
MOVAL,BH
RORBH,1
MOVAL,BL
ROLBL,1
MOVCX,0F000H
3、运行程序,观察LED灯的显示,验证程序功能
4、结果:
数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示
5、4、改变循环寻址顺序,重新导入程序,编译连接,运行程序发现流水灯流向改变。
例如:
将程序中的RORBH1以及ROLBL1改成RORBH2以及ROLBL2.
6、结果:
数据灯D7~D0由左向右,每次仅亮一个灯且中间间隔一个灯不亮,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯且中间间隔一个灯不亮,循环显示
实验六:
电子发声设计实验
学习用8254定时/计数器使蜂鸣器发声的编程方法。
PC微机一台、TD-PITE实验箱一台。
根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。
4实验说明及步骤
一个音符对应一个频率,将对应一个音符频率的方波通到扬声器上,就可以发出这个音符的声音。
将一段乐曲的音符对应频率的方波依次送到扬声器,就可以演奏出这段乐曲。
利用8254的方式3——“方波发生器”,将相应一种频率的计数初值写入计数器,就可产生对应频率的方波。
计数初值的计算如下:
计数初值=输入时钟÷
输出频率
例如输入时钟采用1MHz,要得到800Hz的频率,计数初值即为1000000÷
800。
音符与频率对照关系如表2-11-1所示。
对于每一个音符的演奏时间,可以通过软件延时来处理。
首先确定单位延时时间程序(根据CPU的频率不同而有所变化)。
然后确定每个音符演奏需要几个单位时间,将这个值送入DL中,调用DALLY子程序即可。
1、链接下图链接电路
2、编写程序如下:
IOY0EQU06C0H
MY8254_COUNT0EQUIOY0+00H;
8254计数器0端口地址
MY8254_COUNT1EQUIOY0+02H;
8254计数器1端口地址
MY8254_COUNT2EQUIOY0+04H;
8254计数器2端口地址
MY8254_MODEEQUIOY0+06H;
8254控制寄存器端口地址
STACK1SEGMENTSTACK
DW256DUP(?
STACK1ENDS
DATASEGMENT
FREQ_LISTDW371,495,495,495,624,556,495,556,624;
频率表
DW495,495,624,742,833,833,833,742,624
DW624,495,556,495,556,624,495,416,416,371
DW495,833,742,624,624,495,556,495,556,833
DW742,624,624,742,833,990,742,624,624,495
DW556,495,556,624,495,416,416,371,495,0
TIME_LISTDB4,6,2,4,4,6,2,4,4;
时间表
DB6,2,4,4,12,1,3,6,2
DB4,4,6,2,4,4,6,2,4,4
DB12,4,6,2,4,4,6,2,4,4
DB6,2,4,4,12,4,6,2,4,4
DB6,2,4,4,6,2,4,4,12
DATAENDS
CODE,DS:
DATA
MOVAX,DATA
MOVDX,MY8254_MODE;
初始化8254工作方式
MOVAL,36H;
定时器0、方式3
BEGIN:
MOVSI,OFFSETFREQ_LIST;
装入频率表起始地址
MOVDI,OFFSETTIME_LIST;
装入时间表起始地址
PLAY:
MOVDX,0FH;
输入时钟为1MHz,1M=0F4240H
MOVAX,4240H
DIVWORDPTR[SI];
取出频率值计算计数初值,0F4240H/输出频率
MOVDX,MY8254_COUNT0
OUTDX,AL;
装入计数初值
MOVAL,AH
OUTDX,AL
MOVDL,[DI];
取出演奏相对时间,调用延时子程序
CALLDALLY
ADDSI,2
CMPWORDPTR[SI],0;
判断是否到曲末?
JEBEGIN
JMPPLAY
DALLYPROC;
延时子程序
D0:
MOVCX,0010H
D1:
MOVAX,0F00H
D2:
DECAX
JNZD2
LOOPD1
DECDL
JNZD0
DALLYENDP
CMPBL,00H
JNEAA4
CALLDELAYL
JMPAA0
MOVCX,0100H
DLAY1:
LOOPDLAY1
DELAYL:
MOVCX,0010H
DL1:
CALLDELAY
LOOPDL1
3、下载程序,编译连接执行程序,可以听到《友谊地久天长》的音乐.感觉很好听。
实验总结:
通过这次实验我们小组对汇编语言程序的运行,数组转换,中断的原理,定时器8254,并行接口8255的认识更加深刻,理解的也更透彻了。
对我们学习微机原理与接口技术这门课程有很大的帮助,不仅让我们从理论上学习到知识,而且还使我们在这次实践中收获到了很多。
深刻的体会到理论是离不开实践的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 报告