全球旧事资料 分类
微机原理及应用实验报告
班级:姓名:学号:
中南大学机电工程学院精密测控实验室
f
实验二
软件程序设计
1实验目的:1、掌握MCS51单片机指令系统及用汇编语言编程技巧;2、了解和熟悉用MCS51单片机仿真开发机调试程序的方法。2实验内容:1、编写排序程序并上机调试通过。已知8031内部RAM60H69H单元中,依次存放了FFH99H77HCCH33HDDH88HBBH44HEEH它们均为无符号数,编程将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。2、编写多字节加法程序并上机调试通过。8031内部RAM20H22H单元中,存放了3字节被加数(低字节在前),在2AH2CH单元中存放3字节加数(低字节在前),求两数之和,并将结果存入以20H为起始地址的区域中(低字节在前)。3实验设备名称、型号:台式微型计算机MCS51仿真开发机
THKSCM2A
4画出软件程序流程图,写出上机调试通过的汇编语言程序清单:程序1、编写排序程序并上机调试通过。已知8031内部RAM60H69H单元中,依次存放了FFH99H77HCCH33HDDH88HBBH44HEEH它们均为无符号数,编程将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。解:本设计采用冒泡排序法,使用双重循环,并在内循环中进行比较如果合乎从大到小的顺序则不动,否则两两交换,这样比较下去,比较9次后,最小的那个数就会沉底,在下一次比较时将减少一次比较次数。如果一次比较完毕,没有发生交换,说明已经按照从大到小的顺序排列了。则可以退出循环,结束程序。程序结构框图和程序代码如下:
f
f
ORG1000HTEMDATA50HMOVR79MOV60H0FFHMOV61H99HMOV62H77HMOV63H0CCHMOV64H33HMOV65H0DDHMOV66H88HMOV67H0BBHMOV68H44HMOV69H0EEHLOOP0CLRF0MOVAR7MOVR6AMOVR060HMOVR160HINCR1LOOP1MOVAR0MOVTEMAMOVAR1CJNEATEMNEXTSJMPNOCHANEXTJCNOCHASETBF0MOVR0AXCHATEMMOVR1ANOCHAINCR0INCR1DJNZR6LOOP1JNBF0HALDJNZR7LOOP0HALSJMPEND
程序2:编写多字节加法程序并上机调试通过。8031内部RAM20H22H单元中,存放了3字节被加数(低字节在前),在2AH2CH单元中存放3字节加数(低字节在前),求两数之和,并将结果存入以20H为起始地址的区域中(低字节在前)。
f
解:改程序由三个字节数相加,其结果不会超过4个字节,可以采用循环求和的办法,吧加数和被加数依次从低位带进位相加,当然加最低位时必须先对进位位清零。可以采用线性结构,也可以采用循环结构。我在设计该程序采用单重循环,结构简单,特别是当相加的数较长时,r
好听全球资料 返回顶部