微机原理及应用实验报告(中南大学2014年).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《微机原理及应用实验报告(中南大学2014年).doc》由会员分享,可在线阅读,更多相关《微机原理及应用实验报告(中南大学2014年).doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理及应用实验报告班级: 姓名: 学号: 中南大学 机电工程学院 精密测控实验室实验一 单片机仿真开发机操作和MCS-51指令系统应用一、实验目的1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整;2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编;3、掌握程序的调试和运行的各种方法。二、实验说明1. 输入给定程序,配置选项,调试并运行程序,观察程序控制下寄存器的变化。2. 选中此项keil为纯软件仿真。三、实验设备名称、型号:台式微型计算机MCS-51仿真开发机THKSCM-2A四、实验内容及步骤(完成分值:60分)本实验秩序运行Keil uVersion2程序,设
2、置为keil为纯软件仿真(不需要连接仿真器就可以仿真)。1. 新建工程项目2. 设置工程文件参数3. 编写新程序事例4. 调试程序直至能够运行出结果。四、参考实验程序AJMP MAIN ORG 0030HMAIN: MOV R0,#20H MOV R2,#0FH MOV A,#00HA1: MOV R0,A INC R0 INC A DJNZ R2,A1 MOV R0,#20H;暂停,观察并记录! MOV DPTR,#7000H MOV R2,#0FHA2: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,A2 MOV R0,#030H;断点,观察并记
3、录! MOV DPTR,#7000H MOV R2,#0FHA3: MOVX A,DPTR MOVX R0,A INC R0 INC DPTR DJNZ R2,A3DO: LJMP DO END;内部存储器数据块赋值,搬运数据块到外部存储器,再搬运回内部数据存储器。五、附加题(完成分值:10分/单个附加题,附加题要求当场给指导老师检查结果,否则无效。其中1、2、3附加题要求写在实验报告上)1. 将光标移到想要暂停的地方,MOV R0,#20H所在行,选择 “执行到光标处”功能,程序快速执行到光标所在行。观察运行情况,并记录下表。R0R2A20H21H22H23H24H25H26H27H28H2
4、9H2AH2BH2CH2DH2EH2. 在MOV R0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元内容R0DPL7000H7001H7002H7003H7004H7005H7006H7007H7008H7009H700AH700BH700CH700DH700EH3.画出程序流程图4.修改程序,实现新功能(例如搬运数据时实现倒序,变成对应的BCD码,请自行考虑与别人不同的功能,同组同学已经实现过的功能不算新功能)实验二 软件程序设计1.实验目的:1、掌握MCS-51单片机指令系统及用汇编语言编程技巧;2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。2.实验内容:1、编写
5、排序程序并上机调试通过。已知8031内部RAM60H69H单元中,依次存放了FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。2.、编写多字节加法程序并上机调试通过。 8031内部RAM20H22H单元中,存放了3字节被加数(低字节在前),在2AH2CH单元中存放3字节加数(低字节在前),求两数之和,并将结果存入以20H为起始地址的区域中(低字节在前)。3.实验设备名称、型号:台式微型计算机MCS-51仿真开发机THKSCM-2A4.画出软件程序流程图,写出上机调试通过的汇编语言
6、程序清单:程序1、 编写排序程序并上机调试通过。已知8031内部RAM60H69H单元中,依次存放了FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。解:本设计采用冒泡排序法,使用双重循环,并在内循环中进行比较如果合乎从大到小的顺序则不动,否则两两交换,这样比较下去,比较9次后,最小的那个数就会沉底,在下一次比较时将减少一次比较次数。如果一次比较完毕,没有发生交换,说明已经按照从大到小的顺序排列了。则可以退出循环,结束程序。程序结构框图和程序代码如下:ORG 1000HTEM D
7、ATA 50HMOV R7 , #9MOV 60H , #0FFHMOV 61H , #99HMOV 62H , #77HMOV 63H , #0CCHMOV 64H , #33HMOV 65H , #0DDHMOV 66H , #88HMOV 67H , #0BBHMOV 68H , #44HMOV 69H , #0EEHLOOP0: CLR F0MOV A , R7MOV R6, AMOV R0 , #60HMOV R1, #60HINC R1LOOP1: MOV A , R0MOV TEM , AMOV A , R1CJNE A ,TEM , NEXTSJMP NOCHANEXT: JC
8、 NOCHASETB F0MOV R0 , AXCH A , TEMMOV R1 , ANOCHA:INC R0INC R1DJNZ R6, LOOP1JNB F0, HALDJNZ R7, LOOP0HAL: SJMP $END程序2:编写多字节加法程序并上机调试通过。8031内部RAM20H22H单元中,存放了3字节被加数(低字节在前),在2AH2CH单元中存放3字节加数(低字节在前),求两数之和,并将结果存入以20H为起始地址的区域中(低字节在前)。解:改程序由三个字节数相加,其结果不会超过4个字节,可以采用循环求和的办法,吧加数和被加数依次从低位带进位相加,当然加最低位时必须先对进位位
9、清零。可以采用线性结构,也可以采用循环结构。我在设计该程序采用单重循环,结构简单,特别是当相加的数较长时,优势更加明显。程序结构框图和源代码如下:ORG 1000HMOV 20H,#HMOV 21H,#HMOV 22H,#HMOV 2AH,#HMOV 2BH,#HMOV 2CH,#HMOV R0 #20HMOV R1 #2AHMOV R7 #03HCLR CLOOP0: MOV A ,R0MOV B ,R1ADDC A ,BMOV R0 ,AINC R0INC R1DJNZ R7 ,LOOP0NEXT : JNC HALINC R0MOV R0 ,#01HHAL: SJMP $END5.思考题
10、1、如果题目1改为递增排序,如何修改程序,为什么?答:将NEXT中的指令中的JC 指令换为JNC指令即可2、如果题目1改为从30H单元开始的16个单元中无符号数排序,改哪几条指令?答:改变R7的值为15,将值赋予30H到3FH上就可以了3、如果题目2改为从50H开始的4字节数与60H开始的四字节数相加,如何修改?答:MOV R0 #20H 改为MOV R0 #50HMOV R1 #2AH 改为MOV R1 #60HMOV R7 #03H 改为MOV R7 #04H4、写出题目2中你处理最高位进位的相应指令。答:NEXT : JNC HALINC R0MOV R0 ,#01HHAL: SJMP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 应用 实验 报告 中南 大学 2014
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内