- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机实验报告
孙洪悦 2011
实验1:汇编程序实验1
自我完成实验
(1)实验内容
将片内 RAM 30H 单元中的 8 位二进制数转换成 10 进制数。希望转换后的结果保存于 31H
和 32H,31H 低 4 位存放个位,高 4 位存放十位,32H 低 4 位存放百位,高 4 位为 0
自我完成实验程序
ORG 0000H
!
AJMP MAIN
ORG 0030H
MAIN:
MOV SP,#62H ;
MOV 30H,#0AFH ;先将30H写上100
MOV R0,#32H ;将百位地址送R0
MOV A,30H ;这句写错了,应该是将30H的内容送给A,而不是30H,我误写成了#30H
MOV B,#64H ;除数为100
DIV AB ;AB相除
…
MOV @R0,A ;将百位的数送给32H地址
MOV A,B ;将余数送给A
MOV B,#0AH ;将10送B
DIV AB ;AB相除
SWAP A ;高低四位交换
DEC R0 ;R0减1 到31H
MOV @R0,A ;将十位送31H的高四位
MOV A,B
ANL A,#0FH
ORL 31H,A ;31高低四位分别存十和百位
~
SJMP $
END
总结与提高:本程序用了一个小算法,一个三位数数X除以100,商a为百位,余数为:X-100*a
再用此余数除10,商为十位,余数为个位。
实验2:汇编程序实验2
自我完成实验
(1)实验内容
:
将片内 RAM 30H 开始的 32 个单元中分布着随机的有符号 8 位二进制数,请按从小到大
的顺序进行排序,排序后的数据仍然保存到 30H 开始的 32 个单元中(低地址存放小数据)。
程序及其注释
② 自我完成实验程序
第一种排序方法:
ORG 0000H
AJMP MAIN
ORG 0090H
:
MAIN:
MOV SP,#62H ;
MOV A,#0H
MOV R1,#30H
MOV R7,#20H
MOV DPTR,#TABLE
MOV R0,#1FH ;执行31次
LOOP1:
MOVC A,@A+DPTR
}
MOV @R1,A
INC R1
INC DPTR
MOV A,#0H
DJNZ R7,LOOP1 ;执行32次循环,在30-4F写表格数据
LOOP2: MOV R1,#30H ;将起始地址给R1
MOV A,R0 ;R0为执行31次
MOV R2,A ; 把进行一次冒泡的次数存到R2中
|
LOOP3:
CLR C ;清C
MOV A,@R1 ; ;比较开始,取第一个数
MOV R3,A ; 腾出累加器
INC R1 ;指向下一个地址
SUBB A,@R1 ;取后一个数 ,并与前一个数相减,看是否有CY位溢出,溢出则说明前一个数小,要换位
JC LOOP4 ;前一个数小的情况下,两个数交换位置 ,否则,继续执行
MOV A,R3 ; 把后一个数存到累加器下
XCH A,@R1 ;累加器的数与R1指向的数交换位置, 即 ;前一个数和后一个数交
【
DEC R1 ;R1自减,准备将后面的数存到前面
MOV @R1,A ;将后面的数存到前面
INC R1 ;R1自增,准备下次转换,以上五行为交换
LOOP4: DJNZ R2,LOOP3 ;R2自减,为下次冒泡准备
DJNZ R0,LOOP2 ;跳回去进行下一轮冒泡
SJMP $
·
ORG 30H
TABLE: DB 1,3,9,2,17,4,11,6
DB 5,20,100,64,21,14,79,35
DB 92,7,91,23,65,16,13,18
DB 18,73,65,101,27,19,62,69
END
第二种排序方法;
!
ORG 0000H
AJMP MAIN
ORG 0090H
MAIN:
MOV SP,#62H ;
MOV A,#0H
MOV R1,#30H
MOV R7,#20H
MOV DPTR,#TABLE
MOV R0,#1FH ;执行31次
(
LOOP1:
MOVC A,@A+DPTR
MOV @R1,A
INC R1
INC DPTR
MOV A,#0H
DJNZ R7,LOOP1 ;执行32次循环,在30-4F写表格数据
…
LOOP2: MOV R1,#30H ;将起始
原创力文档


文档评论(0)