微机原理实验报告.docx
《微机原理实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告.docx(46页珍藏版)》请在冰豆网上搜索。
微机原理实验报告
大连理工大学
本科实验报告
课程名称:
计算机原理课程设计
学院(系):
电气工程学院
专业:
电气工程及其自动化
班级:
学号:
学生姓名:
2010年12月30日
大连理工大学实验报告
实验时间:
年月日星期四时间:
13:
00~15:
05
实验室(房间号):
实验台号码:
班级:
姓名:
指导教师签字:
成绩:
实验一运算类程序设计编程训练
一、实验目的和要求
1、掌握运算类指令编程及调试方法。
2、掌握运算类指令对各标志位的影响及控制条件转移的使用。
二、实验内容
用减奇数法开平方。
三、实验算法
N个连续自然数中的奇数和等于
,要做S的开平方运算,那么就可以从S数中逐次减去自然数中的奇数1,3,5,7……,直到结果为0,然后统计自然奇数的个数,它就是S数的平方根。
四、实验流程图
五、程序清单
DATASEGMENT
SUMDB49
NUMDB0
DATAENDS
STASEGMENT
STACKDB256DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
STA,DS:
DATA
MAINPROCFAR
PUSHDS
SUBAX,AX
PUSHAX;标准程序退出
MOVAX,DATA
MOVDS,AX
MOVAL,SUM;存放总数
MOVBL,1;存放总奇数的和
MOVCL,0;存放相减的结果
LOOP1:
INCCL
SUBAL,BL
JZOUT1;相等则跳出循环
INCBL;否则继续循环
INCBL
JMPLOOP1;循环
OUT1:
MOVNUM,CL;结果存放
MOVAL,CL;结果输出入口
CALLPUTC;调用输出函数
RET
MAINENDP
PUTCPROC
CBW;字节转换为字
MOVDL,10
DIVDL
MOVDH,AH;D保存个位上的数
ADDAL,30H;转换为ASCLL码
MOVAH,02H
MOVDL,AL
INT21H;显示十位数
MOVAL,DH
ADDAL,30H
MOVAH,02H
MOVDL,AL
INT21H;显示个位数
MOVAH,02H
MOVDL,'';显示空格
INT21H
RET
PUTCENDP
CODEENDS
ENDMAIN
六、实验结果与分析
运行程序,达到了设计要求,下图为程序运行结果:
程序运行结果
七、实验体会和建议
通过本次实验,掌握了汇编程序的上机调试过程,并学会了一些运算类指令的实用方法,对循环类程序的设计有了了解。
八、主要仪器设备
计算机DOS操作系统。
大连理工大学实验报告
实验时间:
年月日星期四时间:
13:
00~15:
05
实验室(房间号):
综420实验台号码:
19班级:
电气0801姓名:
刘伟民
指导教师签字:
成绩:
实验二排序程序设计编程训练
二、实验目的和要求
3、利用分支,循环,子程序调用等基本程序结构实现排序程序。
4、掌握综合程序的设计,编制及调试方法。
八、实验内容
在数据区中存放一组数,数据个数就是数据缓存区的长度,用气泡法,对该数据区中的数据按递增关系排序。
九、实验算法
1、从最后一二数开始,依次把相邻的恋歌数进行比较,即第N个数与第N-1个数比较,第N-1个数与第N-2个数比较……若第N-1个数大于第N个数,则两者交换,否则不交换,直到N个数的相邻两个数都比较完为止。
此时,N个数中的最小数将被排在N个数的最前列。
2、对剩下的N-1个数重读第一步,找到N-1个数中的最小数。
3、重复第二步,直到N个数全部排好序为止。
十、程序清单
DATASEGMENT
BUFFERDB31h,35h,37h,39h,33h,32h,34h,30h,38h,36h
COUNTEQU($-BUFFER)
DATAENDS
SS_SEGSEGMENTSTACK
DB256DUP(?
)
SS_SEGENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
SS_SEG
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
MOVSI,COUNT
SORT1:
MOVDI,1
MOVCX,DI
LEABX,BUFFER
CIRCLE:
MOVAL,[BX]
INCBX
CMPAL,[BX]
JLENEXT
XCHGAL,[BX]
MOV[BX-1],AL
MOVDI,CX
NEXT:
INCCX
CMPCX,SI
JLCIRCLE
DECSI
CMPDI,1
JNESORT1
MOVCX,COUNT
LEABX,BUFFER
DIS:
MOVAH,02H
MOVDL,[BX]
INT21H
INCBX
LOOPDIS
MOVAH,4CH
INT21H
MAINENDP
CODEENDS
ENDMAIN
十一、实验结果与分析
运行程序,达到了设计要求,下图为程序运行结果:
程序运行结果
十二、实验体会和建议
通过本次实验,掌握了分支,循环,子程序调用等基本程序的基本应用,并学会气泡法这一排序算法。
八、主要仪器设备
计算机DOS操作系统。
大连理工大学实验报告
实验时间:
年月日星期四时间:
13:
00~15:
05
实验室(房间号):
综420实验台号码:
19班级:
电气0801姓名:
刘伟民
指导教师签字:
成绩:
实验三DOS功能调用编程训练
三、实验目的和要求
5、熟悉汇编语言程序的使用。
6、掌握十进制的运算、设计显示程序运行结果的格式。
7、熟练掌握DOS功能调用。
十三、实验内容
编写程序,求30个同学成绩的平均分数,将结果显示在屏幕上。
显示格式要求如下:
第一行显示:
THE20SCORESARE:
以分号分隔的30个同学的分数。
第二行显示:
AVERAGESCOREIS=求得的平均分数。
十四、实验算法
1、将求出的二进制表示的平均分数,转换成十进制表示。
2、显示字符串信息用DOS功能调用INT21H,功能号为09H。
3、显示平均数结果时,用DOS功能调用INT21H,功能号为02H。
十五、实验流程图
十六、程序清单
datasegment
bufferdb98,83,88,94,90,84,77,84,93,88,89,95,84,93,98,86,86,87,98,96
sumdw0000h
string0db'THE20SCORESARE:
$'
string1db'AVERAGESCOREIS=$'
countequ20
dataends
stasegmentstack
db100dup(?
)
staends
codesegment
assumecs:
code,ss:
sta,ds:
data
mainprocfar
movax,data
movds,ax
movbx,offsetbuffer
movcx,count
callputs0
circle:
moval,[bx]
callput_dec;显示[bx]
moval,[bx]
movah,00h;先将AH清零
adcsum,ax;带进位加法,结果放在sum中
incbx
loopcircle
callputs1
movax,sum
movbl,count
divbl
callput_dec
movax,4c00h
int21h
mainendp
put_decproc
cbw
movdl,10
divdl;al中存商,ah中存余数
movdh,ah;余数转移到dh,
addal,30h;ASCⅡ转换
movah,02h
movdl,al
int21h
moval,dh
addal,30h
movah,02h
movdl,al
int21h
movah,02h
movdl,';'
int21h
ret
put_decendp
puts0proc
movah,02h
movdl,10;换行
int21h
movah,02h
movdl,13;回车
int21h
movah,09h
leadx,string0
int21h
ret
puts0endp
puts1proc
movah,02h
movdl,10;换行
int21h
movah,02h
movdl,13;回车
int21h
movah,09h
leadx,string1
int21h
ret
puts1endp
codeends
endmain
十七、实验结果与分析
运行程序,达到了设计要求,下图为程序运行结果:
十八、实验体会和建议
通过本次实验,熟悉汇编语言程序的使用,常用的DOS功能调用方法。
八、主要仪器设备
计算机DOS操作系统。
大连理工大学实验报告
实验时间:
年月日星期四时间:
13:
00~15:
05
实验室(房间号):
综420实验台号码:
19班级:
电气0801姓名:
刘伟民
指导教师签字:
成绩:
实验四8255并行接口实验
一、实验目的和要求
1、学习利用并行接口芯片8255构成并行接口电路的基本方法。
2、熟悉掌握并行接口芯片8255的基本性能及在实际应用中的硬件连接、初始化编程方法。
二、实验内容
编写程序,使8255的PB口位输出口,PA口将K0~K7作为一个字节读入,再从PB口输出这一反码字节。
三、实验电路图
8255并行接口实验电路图
四、程序清单
汇编程序代码如下:
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,21BH
MOVAL,90H
OUTDX,AL
BG:
MOVDX,218H
INAL,DX
MOVDX,219H
OUTDX,AL
JMPBG
CODEENDS
ENDSTART
五、实验结果与分析
改变PA口输入的数据,PB口输出的数据随之变化。
六、实验体会和建议
第一接口实验,掌握了并行接口芯片8255的基本性能及在实际应用中的硬件连接、初始化编程方法。
七、主要仪器设备
SAC-86S试验箱,计算机。
大连理工大学实验报告
实验时间:
年月日星期四时间:
13:
00~15:
05
实验室(房间号):
综420实验台号码:
19班级:
电气0801姓名:
刘伟民
指导教师签字:
成绩:
实验五8259中断实验
二、实验目的和要求
1.PC机的中断结构及8259中断控制器的初始化。
2.熟悉8259中断控制器的工作原理和硬件连线方法。
3.了解8259的应用和硬件编程方法。
4.了解8259中断屏蔽,以及优先级判别等特性。
八、实验内容
1.编写中断实验程序,主程序使8255的PB口为输出口,输入0FFH,L0~L7指示灯全亮,中断服务程序从PB口输出0FH,L0~L3亮,L4~L7灭,并延时一段时间后返回主程序。
2.编写中断实验程序,主程序使8255的PB口为输出口,输入0FFH,L0~L7指示灯全亮,IR0中断服务程序从PB口输出0FH,L0~L3亮,L4~L7灭,并延时一段时间后返回主程序。
IR1中断服务程序从PB口输出0F0H,L0~L3灭,L4~L7亮,并延时一段时间后返回主程序。
九、实验电路图
图5-18259(单片)中断实验电路图
图5-28259中断优先级实验电路图
十、程序清单
8259(单片)中断实验汇编程序代码如下:
INT0EQU220H
INT1EQU221H
INT10EQU228H
INT11EQU229H
STACKSEGMENT
STADB50DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
STACK
START:
CLI
MOVAX,TOP
MOVSP,AX
PUSHDS
MOVAX,0000H;SETIRQ0
MOVDS,AX
MOVAX,OFFSETIRQ0
ADDAX,0000H
MOVSI,20H
MOV[SI],AX
MOVAX,CS
MOVSI,22H
MOV[SI],AX
POPDS
MOVAL,13H;ICW1
MOVDX,INT0
OUTDX,AL
MOVAL,8;ICW2
MOVDX,INT1
OUTDX,AL
MOVCX,0FFFH
LOOP$
MOVAL,9;ICW4
MOVDX,INT1
OUTDX,AL
MOVCX,0FFFH
LOOP$
MOVDX,INT1
MOVAL,0FEH;OCW1
OUTDX,AL
MOVCX,0FFFH
STI
MOVDX,21BH
MOVAL,90H
OUTDX,AL
DSP:
MOVAL,0FFH
MOVDX,219H
OUTDX,AL
JMPDSP
IRQ0:
STI
MOVCX,0FFFFH
LOOP$
MOVAL,0FH
MOVDX,219H
OUTDX,AL
MOVDX,INT0
MOVAL,20H
OUTDX,AL
MOVCX,0FFFFH
LOOP$
MOVCX,0FFFFH
LOOP$
IRET
CODEENDS
ENDSTART
8259中断优先级实验汇编程序代码如下:
INT0EQU220H
INT1EQU221H
INT10EQU228H
INT11EQU229H
STACKSEGMENT
STADB50DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
STACK
START:
CLI
MOVAX,TOP
MOVSP,AX
PUSHDS
MOVAX,0000H;SETIRQ0
MOVDS,AX
MOVAX,OFFSETIRQ0
ADDAX,0000H
MOVSI,20H
MOV[SI],AX
MOVAX,CS
MOVSI,22H
MOV[SI],AX
MOVAX,0000H;SETIRQ1
MOVDS,AX
MOVAX,OFFSETIRQ1
ADDAX,0000H
MOVSI,24H
MOV[SI],AX
MOVAX,CS
MOVSI,26H
MOV[SI],AX
POPDS
MOVAL,13H;ICW1
MOVDX,INT0
OUTDX,AL
MOVAL,8;ICW2
MOVDX,INT1
OUTDX,AL
MOVCX,0FFFH
LOOP$
MOVAL,9;ICW4
MOVDX,INT1
OUTDX,AL
MOVCX,0FFFH
LOOP$
MOVDX,INT1
MOVAL,0FCH;OCW1
OUTDX,AL
MOVCX,0FFFH
STI
MOVDX,21BH
MOVAL,90H
OUTDX,AL
DSP:
MOVAL,0FFH
MOVDX,219H
OUTDX,AL
JMPDSP
IRQ0:
STI
MOVCX,0FFFFH
LOOP$
MOVAL,0FH
MOVDX,219H
OUTDX,AL
MOVDX,INT0
MOVAL,20H
OUTDX,AL
MOVCX,0FFFFH
LOOP$
MOVCX,0FFFFH
LOOP$
IRET
IRQ1:
STI
MOVCX,0FFFFH
LOOP$
MOVAL,0F0H
MOVDX,219H
OUTDX,AL
MOVDX,INT0
MOVAL,20H
OUTDX,AL
MOVCX,0FFFFH
LOOP$
MOVCX,0FFFFH
LOOP$
IRET
CODEENDS
ENDSTART
十一、实验结果与分析
单片8259实验中,L0~L7指示灯全亮,按下单脉冲按钮,L0~L3亮,L4~L7灭,延时一段时间后仍全亮。
8259中断优先级实验中,L0~L7指示灯全亮;按下左单脉冲按钮(接IR0),L0~L3亮,L4~L7灭,延时一段时间后仍全亮;按下右单脉冲按钮(接IR0),L0~L3灭,L4~L7亮,延时一段时间后仍全亮;同时按下两个单脉冲按钮,L4~L7先灭亮,L0~L3后灭亮,延时一段时间后仍全亮。
十二、实验体会和建议
通过本次实验,掌握了8259的初始化方法,了解了8259的应用和硬件编程方法,
8259中断屏蔽,以及优先级判别等特性。
十三、主要仪器设备
SAC-86S试验箱,计算机。
大连理工大学实验报告
实验时间:
年月日星期四时间:
13:
00~15:
05
实验室(房间号):
综420实验台号码:
19班级:
电气0801姓名:
刘伟民
指导教师签字:
成绩:
实验六定时计数器实验
三、实验目的和要求
1.了解定时器8253的初始化及用法。
2.会用逻辑笔或示波器观察8253的工作状态。
十四、实验内容
编写程序,使8253的定时/计数器2工作在方式3下。
会看到逻辑笔红绿灯来回反复变化。
十五、实验电路图
8253实验电路图
十六、程序清单
汇编程序代码如下:
TIM_CTLEQU203H
TIMER0EQU200H
TIMER1EQU201H
TIMER2EQU202H
MODE23EQU0B6H
MODE13EQU76H
CODESEGMENT
ASSUMECS:
CODE
START:
TT:
CLI
MOVDX,TIM_CTL
MOVAL,MODE23
OUTDX,AL
MOVDX,TIMER2
MOVAL,0FFH
OUTDX,AL
MOVAL,0FFH
OUTDX,AL
WT:
JMPWT
CODEENDS
ENDSTART
十七、实验结果与分析
K0向8253输入高电平时,可以看到逻辑笔红绿交替变化。
K0为低电平时观察不到此现象。
十八、实验体会和建议
通过本次实验,掌握了8253的使用方法。
若要产生周期较长的方波,如10s,可以采用多个定时器级联的方法,即通过一个定时器对原始时钟信号进行分频,其输出作为另一定时器的时钟信号。
十九、主要仪器设备
SAC-86S试验箱,计算机。
大连理工大学实验报告
实验时间:
年月日星期四时间:
13:
00~15:
05
实验室(房间号):
综420实验台号码:
19班级:
电气0801姓名:
刘伟民
指导教师签字:
成绩:
实验七A/D转换接口实验
四、实验目的和要求
1.了解模/数转换的工作原理。
2.掌握0809的使用方法。
二十、实验内容
编写程序,用0809的IN0通道采集数据并在数码管上显示。
调节电位器W1,以改变模拟电压值,显示器上会不断显示新的A/D转换结果。
二十一、实验电路图
0809实验电路图
二十二、程序清单
汇编程序代码如下:
B8279EQU212H
D8279EQU210H
LED0EQU00
LED1EQU38H
DATASEGMENT
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,
DB6FH,77H,7CH,39H5EH,79H,71H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVDX,B8279
MOVAL,0D0H
OUTDX,AL
MOVCX,0FFFFH
LOOP$
MOVDX,B8279
MOVAL,LED0
OUTDX,AL
MOVAL,LED1
OUTDX,AL
MOVDX,B8279
MOVAL,95H
OUTDX,AL
MOVDX,D8279
MOVAL,40H
OUTDX,AL
MOVDX,D8279
MOVAL,5EH
OUTDX,AL
MOVDX,D8279
MOVAL,77H
OUTDX,AL
TT:
MOVDX,230H
OUTDX,AL
MOVCX,0FFFFH
LOO