微机原理及应用实验报告(中南大学2014年)..doc

微机原理及应用实验报告(中南大学2014年)..doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理及应用实验报告(中南大学2014年).

微机原理及应用实验报告 班级: 姓名: 学号: 中南大学 机电工程学院 精密测控实验室 实验二 软件程序设计 1.实验目的: 1、掌握MCS-51单片机指令系统及用汇编语言编程技巧; 2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。 2.实验内容: 1、编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。 2.、编写多字节加法程序并上机调试通过。 8031内部RAM20H~22H单元中,存放了3字节被加数(低字节在前),在2AH~2CH单元中存放3字节加数(低字节在前),求两数之和,并将结果存入以20H为起始地址的区域中(低字节在前)。 3.实验设备名称、型号: 台式微型计算机 MCS-51仿真开发机 THKSCM-2A 4.画出软件程序流程图,写出上机调试通过的汇编语言程序清单: 程序1、 编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。 解:本设计采用冒泡排序法,使用双重循环,并在内循环中进行比较如果合乎从大到小的顺序则不动,否则两两交换,这样比较下去,比较9次后,最小的那个数就会沉底,在下一次比较时将减少一次比较次数。如果一次比较完毕,没有发生交换,说明已经按照从大到小的顺序排列了。则可以退出循环,结束程序。 程序结构框图和程序代码如下: ORG 1000H TEM DATA 50H MOV R7 , #9 MOV 60H , #0FFH MOV 61H , #99H MOV 62H , #77H MOV 63H , #0CCH MOV 64H , #33H MOV 65H , #0DDH MOV 66H , #88H MOV 67H , #0BBH MOV 68H , #44H MOV 69H , #0EEH LOOP0: CLR F0 MOV A , R7 MOV R6, A MOV R0 , #60H MOV R1, #60H INC R1 LOOP1: MOV A , @R0 MOV TEM , A MOV A , @R1 CJNE A ,TEM , NEXT SJMP NOCHA NEXT: JC NOCHA SETB F0 MOV @R0 , A XCH A , TEM MOV @R1 , A NOCHA:INC R0 INC R1 DJNZ R6, LOOP1 JNB F0, HAL DJNZ R7, LOOP0 HAL: SJMP $ END 程序2:编写多字节加法程序并上机调试通过。 8031内部RAM20H~22H单元中,存放了3字节被加数(低字节在前),在2AH~2CH单元中存放3字节加数(低字节在前),求两数之和,并将结果存入以20H为起始地址的区域中(低字节在前)。 解:改程序由三个字节数相加,其结果不会超过4个字节,可以采用循环求和的办法,吧加数和被加数依次从低位带进位相加,当然加最低位时必须先对进位位清零。可以采用线性结构,也可以采用循环结构。我在设计该程序采用单重循环,结构简单,特别是当相加的数较长时,优势更加明显。 程序结构框图和源代码如下: ORG 1000H MOV 20H,#××H MOV 21H,#××H MOV 22H,#××H MOV 2AH,#××H MOV 2BH,#××H MOV 2CH,#××H MOV R0 #20H MOV R1 #2AH MOV R7 #03H CLR C LOOP0: MOV A ,@R0 MOV B ,@R1 ADDC A ,B MOV @R0 ,A INC R0 INC R1 DJNZ R7 ,LOOP0 NEXT : JNC HAL INC R0 MOV @R0 ,#01H HAL: SJMP $ END 5.思考题 1、如果题目1改为递增排序,如何修改程序,为什么? 答:将NEXT中的指令中的JC 指令换为JNC指令即可 2、如果题目1改为从30H单元开始的16个单元中无符号数排序,改哪几条指令? 答:改变R7的值为15,将值赋予30H到3FH上就可以了 3、如果题目2改为从50H开始的4字节数与60H开始的四

文档评论(0)

dbtx + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档