- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
实验二3.3布尔运算类指令练习和数据排序实验
系别专业:电子系12级电信2班学号:3121003210
姓名:李书杰指导老师:刘志群老师
3.3.1实验要求
1.进一步熟悉KeilC51软件的使用。
2.复习布尔运算类指令及冒泡排序的思想方法。
3.3.2实验设备
PC机一台,TD-NMC+教学实验系统
3.3.3实验目的
1.了解布尔处理机在设计逻辑电路中的应用。
2.学会数据冒泡排序的方法。
3.体会8051单片机布尔运算类指令的功能,进一步掌握汇编语言设计和调试方法。
3.3.4实验内容
实验1程序:
ORG 0000H
SJMP START
ORG 0030H
XBIT00H
YBIT01H
ZBIT02H
FBIT03H
START:MOV C,Z
ANL C,/Y
MOV F,C
MOV C,Y
ANL C,/Z
ORL C,F
MOV F,C
MOV C,X
ANL C,Y
ORL C,/F
MOV F,C
SJMP$
END
(1)X、Y、Z和F代表内部RAM20H的00H、01H、02H和03H的位地址。按下表修改内RAM数据窗口的值,从00H开始直到07H(即取X、Y和Z的每种组合),调试结果填于下表。
(2)分析上述程序,并把分析(理论)结果和实验结果进行比较,二者结果应该相同。
实验1表
实验2
编写并调试一个排序程序,其功能为用冒泡法将内部RAM的50H~56H中几个单元字节的无符号正整数,按从小到大的次序重新排列。其实验参考流程图如图3.3.1所示。
ORG0000H
SJMPSTART
ORG0030H
START:
;------------------------下面先准备6个数字
MOV50H,#03H
MOV51H,#01H
MOV52H,#08H
MOV53H,#02H
MOV54H,#07H
MOV55H,#04H
CALLSORT6;调用排序子程序
SJMP$;停止,此时可以观察排序结果
;-------------------------------------
SORT6:;排序子程序
MOVR6,#5;6个数字,比较5次
S1:
MOVR0,#50H;起始地址
MOVB,R6
MOVR7,B
CLRPSW.5;交换标志清零
S2:
MOVB,@R0;取出前一个数
INCR0
MOVA,@R0;取出后一个数
CJNEA,B,S3;后-前
S3:
JNCN_JH;够减就不用交换
MOV@R0,B;交换存放
DECR0
MOV@R0,A
INCR0
SETBPSW.5;设立交换标志位
N_JH:
DJNZR7,S2
JNBPSW.5,S_END;没有交换过,就结束
DJNZR6,S1
S_END:
RET
;-------------------------------------
END
3.3.5思考题
分析实验程序1,写出F的表达式,并画出其逻辑电路图。简单分析布尔处理器在单片机中的作用。
答:可用于位数据传送,位清零,位清1,位取反,为逻辑“与”指令,为逻辑“或”指令,判布尔累加器C转移,判位变量转移,判位变量并清0转移。
简述冒泡排序的思想。
答:第一次:从一个数组的最后一个元素到该数组的第一个元素进行扫描,比较后一个元素与前一个元素的大小,如果后一个小于前一个,交换顺序。通过这样的交换,那么我们就可以把该数组的最小元素换位到该数组的第一个位置。
第二次:从该数组的最后一个元素到该数组的第二个元素进行扫描,比较后一个元素与前一个元素的大小,如果后一个小于前一个,
文档评论(0)