《微机原理及应用实验报告》由会员分享,可在线阅读,更多相关《微机原理及应用实验报告(24页珍藏版)》请在金锄头文库上搜索。
1、.微机原理及应用实验报告班级:机械 1301 班姓名:黄佳清学号:0801130117座位号:中南大学机电工程学院.实验一单片机仿真开发机操作和MCS-51指令系统应用一实验目的1、熟悉 MCS-51 单片机仿真开发机和开发调试软件的操作使用和调整;2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编;3、掌握程序的调试和运行的各种方法。二实验设备台式微型计算机MCS-51 仿真开发机THKSCM-2A三实验内容及步骤(完成分值:60 分)本实验秩序运行 Keil uVersion2程序,设置为 keil 为纯软件仿真1. 新建工程项目2. 设置工程文件参数3. 编写新程序事例4. 调试程
2、序直至能够运行出结果。四实验程序AJMPMAININCR0ORG0030HINCDPTRMAIN:MOVR0,#20HDJNZR2,A2MOVR2,#0FHMOVR0,#030H;MOVA,#00H断点,观察并记录!A1:MOVR0,AMOVDPTR,#7000HINCR0MOVR2,#0FHA3:MOVXA,DPTRINCAMOVXR0,AINCR0DJNZR2,A1INCDPTRMOVR0,#20H;DJNZR2,A3暂停,观察并记录!DO:LJMPDOMOVDPTR,#7000HEND; 内部存储器数MOVR2,#0FH据块赋值, 搬运数据块到外部存储A2:MOVA,R0器,再搬运回内部
3、数据存储器。MOVXDPTR,A五、附加题1. 将光标移到想要暂停的地方, MOV R0,#20H 所在行,选择 “执行到光标处”功能,程序快速执行到光标所在行。观察运行情况,并记录下表。R0R2A20H21H22H23H24H25H0x2f0x000x0f00H01H02H03H04H05H26H27H28H29H2AH2BH2CH2DH2EH06H07H08H09H0AH0BH0CH0DH0EH.2. 在 MOV R0,#0A0H 行设置断点,全速执行,暂停后观察并记录以下单元内容R0DPL7000H7001H7002H7003H7004H7005H7006H0X2F0FH00H01H02
4、H03H04H05H06H7007H7008H7009H700AH700BH700CH700DH700EH07H08H09H0AH0BH0CH0DH0EH3. 画出程序流程图开始赋值R0 20HR2 0FHA 00H(R0) (A)R0 R0+1A A+1R2 R2-1NR2=0?Y赋值R0 20HDPTR 7000HR2 0FH(A) (R0) (DPTR) (A) R0 R0+1DPTR DPTR+1R2 R2-1R2=0?NY赋值R0 30HR2 0FHDPTR 7000H(A) (DPTR)(R0) (A)DPTR DPTR+1R0 R0+1R2 R2-1NR2=0?Y.结束4. 修改
5、程序,实现新功能实现倒序数据转移程序AJMPMAINORG0030HMAIN:MOVR0,#40HMOVR2,#0FHMOVA,#00HA1:MOVR0,ADECR0INCADJNZR2,A1MOVR0,#30HMOVDPTR,#7000HMOVR2,#0FHA2:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR2,A2MOVR0,#030HMOVDPTR,#7000HMOVR2,#0FHA3:MOVXA,DPTRMOVXR0,AINCR0INCDPTRDJNZR2,A3DO:LJMPDOEND.实验二程序设计一、实验目的1、掌握 MCS-51单片机指令系统及用汇编语言编程
6、技巧;2、了解和熟悉用 MCS-51单片机仿真开发机调试程序的方法。二、实验内容及步骤(完成分值:30 分 / 单个程序)题目 1、编写排序程序并上机调试通过。已 知 8031 内 部 RAM60H69H 单 元 中 , 依 次 存 放 了0FH,09H,07H,0CH,03H,0DH,08H,0BH,04H,01H共 10 个字节无符号数,编程将它们 规律 排序 , 最大 数放 在 60H 中, 最小 数 放在 69H 中 。 结 果应 该 是0FH,0DH,0CH,0BH,09H,08H,07H,04H,03H,01H。题目 2、编写多字节加法程序并上机调试通过。8031 内部 RAM22
7、H、21H、20H单元中,分别存放了 3 字节无符号被加数 0FFH、0FFH、0FFH(低字节在低地址),在 32H、31H、 30H单元中分别存放 3 字节无符号加数 22H、 22H、 22H(低字节在低地址) ,求两数之和,并将结果存入内部RAM23H、22H 、21H 、20H单元中(低字节在低地址) 。结果应该是 01H、22H、22H、 21H。四、参考实验程序题目 1ORG 0000HMOV A,R2LJMP mainMOV R4,AORG 0100HLOOP1: MOV A,R1main:. 将 10 个随机数送入内部 RAM的CLR C5059H 单元SUBB A,BNOP
8、;可在此处设置断点JC LOOP2; 改为 JNC即可逆ACALL SELSORT;调用排序子程序序排列MOV B,R1HERE:AJMP HERE; 可在此处设置断MOV A,R1点 , 观察每次排序结果MOV R3,ANOPLOOP2: INC R1DJNZ R4,LOOP1; 排序子程序MOV A,R3DAT EQU 60H;排序数据首地MOV R1,A址MOV A,R1N EQU 10;排序个数XCH A,R0SELSORT: MOV R0,#DATXCH A,R1MOV R2,#N-1INC R0LOOP: MOV B,R0DJNZ R2,LOOPMOV A,R0RETMOV R3,
9、AENDINC AMOV R1,A题目 2ORG 0000HLJMP main.ORG 0100H(R0+R1)=(R0)main:MOV R0,#20H; 入口:R0,R1,R2MOV R0,#0FFH; 占用资源 :ACC,BINC R0; 堆栈需求 :2 字节MOV R0,#0FFH; 出口:R0存放结果高地址INC R0MULTADD:MOV R0,#20H; 地址 1MOV R0,#0FFHMOV R1,#30H; 地址 2MOV R2,#03H; 加法字节数MOV R0,#30HNSUB:CLRCMOV R0,#22HNSUB1: MOVA,R0INC R0ADDCA,R1MOV
10、R0,#22HMOVR0,AINC R0INCR0MOV R0,#22HINCR1ACALL MULTADD;调用多字节加法子DJNZR2,NSUB1程序CLR AADDCA, #00H;把进位HERE:AJMP HERE ; 可在此处设置断位 C 加到高 8 位去点 , 观察结果MOVR0, ANOPRETEND;N 字节无符号数加法子程序五、附加题1. 画出题目 1 的程序流程图。开始存入数据到60H69HR060HN 10HR2 60HA (R0)R2 R2+1B (R2)AB?YN(R0) 和( R2)交N换NR2=69H?YR0 R0+1N R0=69H?Y结束.2. 将题目 1 的排序算法进行改变,采用另一种排序算法进行排序。ORG 0000HLOOP3: INC R1LJMP mainORG 0100HCJNE R1,#6AH,LOOP2;MAIN:.;将 10 个随机数送入INC R0L