微机原理及应用实验报告课件Word格式.doc
《微机原理及应用实验报告课件Word格式.doc》由会员分享,可在线阅读,更多相关《微机原理及应用实验报告课件Word格式.doc(17页珍藏版)》请在冰豆网上搜索。
MAIN:
MOVR0,#20HDJNZR2,A2
MOVR2,#0FHMOVR0,#030H;
MOVA,#00H
断点,观察并记录!
A1:
MOV@R0,AMOVDPTR,#7000H
INCR0MOVR2,#0FH
A3:
MOVXA,@DPTR
INCAMOVX@R0,A
INCR0
DJNZR2,A1INCDPTR
MOVR0,#20H;
DJNZR2,A3
暂停,观察并记录!
DO:
LJMPDO
MOVDPTR,#7000HEND;
内部存储器数
MOVR2,#0FH
据块赋值,搬运数据块到外部存储
A2:
MOVA,@R0
器,再搬运回内部数据存储器。
MOVX@DPTR,A
五、附加题
1.将光标移到想要暂停的地方,MOVR0,#20H所在行,选择“执行到光
标处”功能,程序快速执行到光标所在行。
观察运行情况,并记录下表。
R0R2A20H21H22H23H24H25H
0x2f0x000x0f00H01H02H03H04H05H
26H27H28H29H2AH2BH2CH2DH2EH
06H07H08H09H0AH0BH0CH0DH0EH
2.在MOVR0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元
内容
R0DPL7000H7001H7002H7003H7004H7005H7006H
0X2F0FH00H01H02H03H04H05H06H
7007H7008H7009H700AH700BH700CH700DH700EH
07H08H09H0AH0BH0CH0DH0EH
3.画出程序流程图
开始
赋值R0←20HR2←0FHA←00H
(R0)←(A)
R0←R0+1
A←A+1
R2←R2-1
N
R2=0?
Y
赋值R0←20HDPTR←7000HR2←0FH
(A)←(R0)
(DPTR)←(A)
DPTR←DPTR+1R2←R2-1
NR2=0?
赋值R0←30HR2←0FHDPTR←7000H
(A)←(DPTR)
DPTR←DPTR+1R0←R0+1
结束
4.修改程序,实现新功能
实现倒序数据转移程序
AJMP
MAIN
ORG0030H
MOVR0,#40H
MOV@R0,A
DECR0
INCA
DJNZR2,A1
MOVR0,#30H
MOVDPTR,#7000H
INCDPTR
DJNZR2,A2
MOVR0,#030H
MOVX@R0,A
DJNZR2,A3
DO:
END
实验二程序设计
一、实验目的
1、掌握MCS-51单片机指令系统及用汇编语言编程技巧;
2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。
二、实验内容及步骤(完成分值:
30分/单个程序)
题目1、编写排序程序并上机调试通过。
已知8031内部RAM60H~69H单元中,依次存放了
0FH,09H,07H,0CH,03H,0DH,08H,0BH,04H,01H共10个字节无符号数,编程将它
们规律排序,最大数放在60H中,最小数放在69H中。
结果应该是
0FH,0DH,0CH,0BH,09H,08H,07H,04H,03H,01H。
题目2、编写多字节加法程序并上机调试通过。
8031内部RAM22、H21H、20H单元中,分别存放了3字节无符号被加数0FFH、
0FFH、0FFH(低字节在低地址),在32H、31H、30H单元中分别存放3字节无符
号加数22H、22H、22H(低字节在低地址),求两数之和,并将结果存入内部
RAM23H、22H、21H、20H单元中(低字节在低地址)。
结果应该是01H、22H、
22H、21H。
四、参考实验程序
题目1
ORG0000HMOVA,R2
LJMPmainMOVR4,A
ORG0100HLOOP1:
MOVA,@R1
main:
...将10个随机数送入内部RAM的CLRC
50~59H单元SUBBA,B
NOP可;
在此处设置断点JCLOOP2;
改为JNC即可逆
ACALLSELSORT调;
用排序子程序
序排列
MOVB,@R1
HERE:
AJMPHERE;
可在此处设置断MOVA,R1
点,观察每次排序结果MOVR3,A
NOPLOOP2:
INCR1
DJNZR4,LOOP1
;
排序子程序MOVA,R3
DATEQU60H;
排序数据首地MOVR1,A
址MOVA,@R1
NEQU10;
排序个数XCHA,@R0
SELSORT:
MOVR0,#DATXCHA,@R1
MOVR2,#N-1INCR0
LOOP:
MOVB,@R0DJNZR2,LOOP
MOVA,R0RET
MOVR3,AEND
MOVR1,A
题目2
ORG0000HLJMPmain
ORG0100H([R0]+[R1])=([R0])
MOVR0,#20H;
入口:
R0,R1,R2
MOV@R0,#0FFH;
占用资源:
ACC,B
INCR0;
堆栈需求:
2字节
出口:
R0存放结果高地址
INCR0MULTADD:
地址1
MOV@R0,#0FFHMOVR1,#30H;
地址2
MOVR2,#03H;
加法字节数
MOVR0,#30HNSUB:
CLRC
MOV@R0,#22HNSUB1:
INCR0ADDCA,@R1
MOV@R0,#22HMOV@R0,A
INCR0INCR0
MOV@R0,#22HINCR1
ACALLMULTADD调;
用多字节加法子DJNZR2,NSUB1
程序CLRA
ADDCA,#00H;
把进位
可在此处设置断位C加到高8位去
点,观察结果MOV@R0,A
NOPRET
N字节无符号数加法子程序
1.画出题目1的程序流程图。
存入数据到60H~69H
R0←60HN←10HR2←60H
A←(R0)
R2←R2+1
B←(R2)
A>
B?
(R0)和(R2)交换
R2=69H?
R0=69H?
2.将题目1的排序算法进行改变,采用另一种排序算法进行排序。
ORG0000H
LJMPmain
LOOP3:
ORG0100HCJNER1,#6AH,LOOP2;
...;
将10个随机数送入INCR0
LOOP2:
MOVA,@R0MOV51H,R0
MOV50H,@R1MOVR1,51H
CJNEA,50H,BIG;
做减法。
BIG:
JNCLESS;
是0则跳转CJNER0,#69H,LOOP2;
以此类推,直到剩最
LJMPLOOP3
后两个数比较完。
LESS:
XCHA,@R1;
交换60与61中的内SJMP$
容END
XCHA,@R0
3.画出题目2的程序流程图。
存入数据到20好
~22H,30H~32H
R0←20H
R1←30H
R2←3H
C清零
A←((R0))+((R1))
50
一
食
物
((R0))←A
R1←R1+1
R2R2-1←
A←A+C
4.改为编写多字节减法程序。
ORG0000H;
LJMPmain([R0]+[R1])=([R0])
ORG0100H;
MOV@R0,#0FFHMULTADD:
INCR0MOVR1,#30H;
MOV@R0,#0FFHMOVR2,#03H;
NSUB:
MOVR0,#30HNSUB1:
MOV@R0,#22HADDCA,@R1
INCR0MOV@R0,A
MOV@R0,#22HINCR0
INCR0INCR1
MOV@R0,#22HDJNZR2,NSUB1
用多字节加法子CLRA
程序ADDCA,#00H;
位C加到高8位去
可在此处设置断MOV@R0,A
点,观察结果RET
NOPEND
实验三定时/计数器实验
1、掌握MCS-51单片机内部定时/计数器的功能与特点,工作方式选择和编
程方法,中断功能的使用和中断服务程序的设计;
2、了解和熟悉MCS-51单片机实验板的功能。
60分/单个程序)
本实验需要用到单片机最小应用系统(F1区)和十六位逻辑电平显示模块
(I4区)。
用P1口做输出口,接十六位逻辑电平显示,程序功能使发光二极管
从右到左轮流循环点亮。
三、参考流程图、电路图、参考程序
VCCU1FVC