- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
51 系列单片机
原理与应用实验
实验1 简单汇编语言实验
1
一、实验目的:掌握汇编语言设计和调试方法,熟悉键盘操作。熟悉汇编语言编程。二、实验内容:
查找相同数据个数:在2000H~200FH 的 N 个单元中填入零,运行本程序后检查2100H 中是否为N;
清零:把2000H~20FFH 的内容清零。三、实验程序框图:
查找相同数据个数程序实验框图 清零程序框图
四、实验步骤:
1、在2000H~200FH 的几个单元中填入零,运行查找相同数据个数程序后检查2100H 中是否是几个单元数。
2、用连续或单步方式运行清零程序,检查2000~20FF 中执行程序前后的内容变化。五.思考:
1、修改程序,查找其它内容。
2、修改清零程序,假使把2000H~20FFH 中的内容改成FF,如何修改程序。
1/ 查找相同数据个数程序程序清单:
ORG 0000H
2
LJMP L5800
ORG 0AA0H
L5800:
L5811:
MOV R0,#10H MOV R1,#00H MOV DPTR,#2000H
MOVX A,@DPTR
;查找16个字节
L5816:
CJNE A,#00H,L5816 INC R1
INC DPTR
;取出内容与00H 相等吗?
;取出个数加1
DJNZ R0,L5811 MOV DPTR,#2100H
MOV A,R1
;未完继续
MOVX @DPTR,A ;相同数的个数送2100H L581E: SJMP L581E
END
2/ 清零程序清单:
ORG 0000H
LJMP SE01 ORG 0640H
SE01: MOV R0,#00H
MOV DPTR,#2000H ;(0000H)送DPTR LOO1: CLR A
MOVX @DPTR,A ;0送(DPTR) INC DPTR ;DPTR+1
INC R0 ;字节数加1
CJNE R0,#00H,LOO1 ;不到 FF 个字节再清LOOP: SJMP LOOP
END
实验2 拆字和拼字程序
3
一、实验目的:掌握汇编语言设计和调试方法。二、实验内容:
1、把2000H 的内容拆开,高位送2001H 低位,低位送2002H 低位,2001H、2002H 高位清零,一般本程序用于把数据送显示缓冲区时用;
2、把2000H.2001H 的低位分别送入2002H 高低位,一般本程序用于把显示缓冲区的数据取出拼装成一字节。
三、实验程序框图:
拆字程序框图拼字程序框图
拆字程序框图
四、实验步骤:用连续或单步方式运行程序,检查2000H~2002H 中内容变化情况。五、思考:如何用断点方式调试本程序。
1/拆字程序清单:
ORG 0000H
4
LJMP SE02 ORG 0660H
SE02: MOV DPTR,#2000H
MOVX A,@DPTR
MOV B,A
;(2000)→A→B
SWAP A
;交换
ANL A,#0FH
;屏蔽高位
INC DPTR
MOVX @DPTR,A
;送2001H
INC DPTR
MOV A,B
ANL A,#0FH
;(2000)内容屏蔽高位
MOVX @DPTR,A
;送2002H
LOOP: SJMP LOOP END
2/拼字程序清单:
ORG 0000H LJMP START ORG 0680H
START: MOV DPTR,#2000H
MOVX A,@DPTR
ANL A,#0FH ;(2000H)内容屏蔽高位SWAP A ;交换
MOV B,A ;保存INC DPTR
MOVX A,@DPTR ;(2000H)内容送A ANL A,#0FH ;屏蔽高位
ORL A,B ;或INC DPTR
MOVX @DPTR,A ;送2002H SJMP $
END
实验3 数据排序实验
5
一、实验目的:熟悉51指令系统,掌握程序设计方法。
二、实验内容:编写并调试一个排序子程序,其功能为用冒泡法将数据存储单元中几个单字节无符号的正整数,按从小到大的次序重新排列。
三、程序框图:
开始
清标志位
DPTR取数送A
(DPTR+1)送DPTR
(A)<((DPTR))?
Y
N
置标志位,内容交换
N
长度-1=0?
Y
N
标志位=0?
Y
结束
四、实验步骤: 将RAM 1000H~100FH 中放入不等的数据,用断点方法运行本实验程序后检查1000H~100FH 中的内容是否按从小到大的次序排列。
五、思考:修改程序把1000H~100FH 中内容从大到小排列。
1/程序清单:
ORG 0000H
6
LJMP SE01 ORG 0640H
SE01: CLR 00H ;标志位
MOV DPTR,#1000H ;起始地址MOVX A,@DPTR
MOV R7,#04H ;要排
原创力文档


文档评论(0)