微机原理实验报告一.docx
《微机原理实验报告一.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告一.docx(14页珍藏版)》请在冰豆网上搜索。
微机原理实验报告一
实验报告
一、实验目的
1.熟悉80C51单片微机汇编语言设计及编程技巧。
2.掌握逻辑运算程序的设计方法。
3.掌握求最小数和最大数程序的设计方法。
4.掌握多字节无符号十进制数加、减法程序的设计
二、实验器材
1.Micetek仿真器一台
2.实验板一块
三、实验容
1.逻辑运算:
根据下列逻辑运算式,编写程序计算运算结果。
Y=A⊕B•C•D+A
设:
A=63H,B=82H,C=C5H,D=36H。
求Y=?
2.求最小数和最大数:
10个无符号数连续存放在以20H为起始地址的RAM中,找出其中的最小值存入30H单元中,找出其中的最大值存入31H单元中。
3.十进制加、减运算:
286729+652430-752196=?
在8051片RAM的20H~22H中放入3字节被加数(低位在先)、23H~25H放入加数(低位在先)、26H~28H放入减数,结果存入2DH~2FH单元(低位在先)。
四、实验数据记录和分析
1.逻辑运算:
A.实验程序:
ORG0000H
AJMPfx
ORG0080H
fx:
MOVA,#63H
MOVR0,#36H
ORLA,R0
CPLA
MOVR1,A
MOVA,#82H
MOVR0,#0C5H
ANLA,R0
CPLA
MOVR0,#63H
XRLA,R0
CPLA
ANLA,R1
End
B.程序list文件
符号值类型
AC=00D6HCONST常量
ACC=00E0HCONST常量
B=00F0HCONST常量
CY=00D7HCONST常量
DPH=0083HCONST常量
DPL=0082HCONST常量
EA=00AFHCONST常量
ES=00ACHCONST常量
ET0=00A9HCONST常量
ET1=00ABHCONST常量
EX0=00A8HCONST常量
EX1=00AAHCONST常量
F0=00D5HCONST常量
F1=00D1HCONST常量
FX=0080HCODE标号
IE=00A8HCONST常量
IE0=0089HCONST常量
IE1=008BHCONST常量
IP=00B8HCONST常量
IT0=0088HCONST常量
IT1=008AHCONST常量
OV=00D2HCONST常量
P=00D0HCONST常量
P0=0080HCONST常量
P1=0090HCONST常量
P2=00A0HCONST常量
P3=00B0HCONST常量
PCON=0087HCONST常量
PS=00BCHCONST常量
PSW=00D0HCONST常量
PT0=00B9HCONST常量
PT1=00BBHCONST常量
PX0=00B8HCONST常量
PX1=00BAHCONST常量
RB8=009AHCONST常量
REN=009CHCONST常量
RI=0098HCONST常量
RS0=00D3HCONST常量
RS1=00D4HCONST常量
SBUF=0099HCONST常量
SCON=0098HCONST常量
SM0=009FHCONST常量
SM1=009EHCONST常量
SM2=009DHCONST常量
SP=0081HCONST常量
TB8=009BHCONST常量
TCON=0088HCONST常量
TF0=008DHCONST常量
TF1=008FHCONST常量
TH0=008CHCONST常量
TH1=008DHCONST常量
TI=0099HCONST常量
TL0=008AHCONST常量
TL1=008BHCONST常量
TMOD=0089HCONST常量
TR0=008CHCONST常量
TR1=008EHCONST常量
公有符号:
57
私有符号:
0
C.实验思路:
1.将A值给累加器
2.将D值给R0
3.将A和D逻辑或,并把结果存入累加器A
4.A和D或以后取非
5.将A和D取非以后的结果存到R1中
6.将B值给累加器A
7.将C值给R0
8.B与C逻辑与
9.取反
10.将A值存到R0中
11.最后将逻辑运算前后的两个逻辑与
2.求最小数和最大数:
A.实验程序:
ORG0000H
AJMPMAIN
ORG0080H
MAIN:
MOVR0,#20H
MOVA,R0
MOVR7,#09H
MOVR2,A
MOVR3,A
LOOP:
INCR0
ACALLCOMP
DJNZR7,LOOP
AJMPDONE
COMP:
CLRC
MOVA,R0
SUBBA,R2
JCMIN
MOVA,R0
MOVR1,A
MOVA,R3
SUBBA,R1
JCMAX
RET
MIN:
MOVA,R0
MOVR2,A
RET
MAX:
MOVA,R1
MOVR3,A
RET
DONE:
MOV30H,R2
MOV31H,R3
END
B.实验生成list文件:
符号值类型
AC=00D6HCONST常量
ACC=00E0HCONST常量
B=00F0HCONST常量
COMP=008EHCODE标号
CY=00D7HCONST常量
DONE=00A0HCODE标号
DPH=0083HCONST常量
DPL=0082HCONST常量
EA=00AFHCONST常量
ES=00ACHCONST常量
ET0=00A9HCONST常量
ET1=00ABHCONST常量
EX0=00A8HCONST常量
EX1=00AAHCONST常量
F0=00D5HCONST常量
F1=00D1HCONST常量
IE=00A8HCONST常量
IE0=0089HCONST常量
IE1=008BHCONST常量
IP=00B8HCONST常量
IT0=0088HCONST常量
IT1=008AHCONST常量
LOOP=0087HCODE标号
MAIN=0080HCODE标号
MAX=009DHCODE标号
MIN=009AHCODE标号
OV=00D2HCONST常量
P=00D0HCONST常量
P0=0080HCONST常量
P1=0090HCONST常量
P2=00A0HCONST常量
P3=00B0HCONST常量
PCON=0087HCONST常量
PS=00BCHCONST常量
PSW=00D0HCONST常量
PT0=00B9HCONST常量
PT1=00BBHCONST常量
PX0=00B8HCONST常量
PX1=00BAHCONST常量
RB8=009AHCONST常量
REN=009CHCONST常量
RI=0098HCONST常量
RS0=00D3HCONST常量
RS1=00D4HCONST常量
SBUF=0099HCONST常量
SCON=0098HCONST常量
SM0=009FHCONST常量
SM1=009EHCONST常量
SM2=009DHCONST常量
SP=0081HCONST常量
TB8=009BHCONST常量
TCON=0088HCONST常量
TF0=008DHCONST常量
TF1=008FHCONST常量
TH0=008CHCONST常量
TH1=008DHCONST常量
TI=0099HCONST常量
TL0=008AHCONST常量
TL1=008BHCONST常量
TMOD=0089HCONST常量
TR0=008CHCONST常量
TR1=008EHCONST常量
公有符号:
62
私有符号:
0
C.实验思路
1.将数据录入程序中,程序分主程序和子程序1.2
2.程序1寻找数据中得最小值
3.程序2寻找数据中的最大值
4将最大值和最小值放到制定的地址
5.在比较大小环节采用冒泡法。
C.十进制加、减运算
A.实验程序:
ORG0000H
AJMPMAIN
ORG0080H
MAIN:
MOV20H,#09H
MOV21H,#60H
MOV22H,#04H
MOV23H,#8EH
MOV24H,#0F4H
MOV25H,#09H
MOV26H,#44H
MOV27H,#7AH
MOV28H,#0BH
MOVA,20H
ADDCA,23H
MOV32H,A
MOVA,21H
ADDCA,24H
MOV31H,A
MOVA,22H
ADDCA,25H
MOV30H,A
MOVA,32H
SUBBA,26H
MOV2DH,A
MOVA,31H
SUBBA,27H
MOV2EH,A
MOVA,30H
SUBBA,28H
MOV2FH,A
END
B.实验生成list文件:
符号值类型
AC=00D6HCONST常量
ACC=00E0HCONST常量
B=00F0HCONST常量
CY=00D7HCONST常量
DPH=0083HCONST常量
DPL=0082HCONST常量
EA=00AFHCONST常量
ES=00ACHCONST常量
ET0=00A9HCONST常量
ET1=00ABHCONST常量
EX0=00A8HCONST常量
EX1=00AAHCONST常量
F0=00D5HCONST常量
F1=00D1HCONST常量
IE=00A8HCONST常量
IE0=0089HCONST常量
IE1=008BHCONST常量
IP=00B8HCONST常量
IT0=0088HCONST常量
IT1=008AHCONST常量
MAIN=0080HCODE标号
OV=00D2HCONST常量
P=00D0HCONST常量
P0=0080HCONST常量
P1=0090HCONST常量
P2=00A0HCONST常量
P3=00B0HCONST常量
PCON=0087HCONST常量
PS=00BCHCONST常量
PSW=00D0HCONST常量
PT0=00B9HCONST常量
PT1=00BBHCONST常量
PX0=00B8HCONST常量
PX1=00BAHCONST常量
RB8=009AHCONST常量
REN=009CHCONST常量
RI=0098HCONST常量
RS0=00D3HCONST常量
RS1=00D4HCONST常量
SBUF=0099HCONST常量
SCON=0098HCONST常量
SM0=009FHCONST常量
SM1=009EHCONST常量
SM2=009DHCONST常量
SP=0081HCONST常量
TB8=009BHCONST常量
TCON=0088HCONST常量
TF0=008DHCONST常量
TF1=008FHCONST常量
TH0=008CHCONST常量
TH1=008DHCONST常量
TI=0099HCONST常量
TL0=008AHCONST常量
TL1=008BHCONST常量
TMOD=0089HCONST常量
TR0=008CHCONST常量
TR1=008EHCONST常量
公有符号:
57
私有符号:
0
C.实验思路:
1.将数据按照要求放入制定的地址
2将低字节相加。
3.将低字节相加。
4.将高字节相加。
5.将减数取补码。
6.核心就是减去一个数等于加上这个数的补码。
五、讨论和心得:
本次实验我熟悉了80C51单片微机汇编语言设计及编程技巧,掌握了逻辑运算程序的设计方法,同时了解了求最小数和最大数程序的设计方法和多字节无符号十进制数加、减法程序的设计。
收获很大。