单片机实验二 循环程序与子程序设计(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
设:A1, A2, A3存放在内部RAM 20H 开始的存储区域内, 计算所得结果(设结果不超过8位)存放在R2中。要求:平 方运算编写成子程序 SORT,主程序通过调用SORT完成求 和运算。源程序如下: ORG 0000H SJMP MAIN ORG 0100H MAIN: MOV 20H,#4 MOV 21H,#8 MOV 22H,#6 ;置入数据 MOV R0,#20H ;置数据指针 MOV R7,#3 ;置计数初值 MOV R2,#0 ;结果单元清零
微机原理与接口技术(A)
实验二
循环程序与子程序设计
一、实验目的:
1、通过实验学会用汇编语言进行循环程序和 子程序的编写,掌握算术运算、代码转化等应用 程序的设计。 2、学会应用keil-uvision2集成调试软件对汇编 语言程序进行调试。掌握汇编语言程序的编辑、 编译、运行、单步调试的过程和通过寄存器、存 储器检查程序运行结果是否正确的方法。
MOV R7,#10 MOV R0,#20H MOV DPTR,#1000H L1: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,L1 SJMP $ END
2、子程序设计
2 y A 编写程序,计算: i , Ai为0-9中的任意数 。 i 1
五、实验报告要求:
(1)实验目的 (3)实验步骤 (2)实验内容 (4)实验结果(含收获体会)
Biblioteka Baidu
三、思考题:编写程序完成
(1)用循环程序实现:(要求精确计算,时钟12MHz) 1秒定时。(参考P.68 例3-30) (2)教材P.74,例3-38
四、实验要求:
(1)实验前必须编写好程序; (2)程序必须编译通过并运行正确; (3)完成一项,请指导教师检查。 (4)在每行指令的右侧填写执行此指令后,目的操作 数(如A,Rn,direct等)中的数据。
MOV SP,#30H ;设置SP指向30H LOOP: MOV A, @R0 ;取数 ,寄存器A作入口参数 ACALL SORT ;调用求平方子程序 ADD A,R2 ;累加平方和 MOV R2,A INC R0 ;修改指针 DJNZ R7,LOOP ;未完,继续 SJMP EN SORT: MOV DPTR,#TAB ;子程序查平方表 MOVC A,@A+DPTR RET ;返主程序 TAB: DB 0,1,4,9,16 DB 25,36,49,64,81 EN: SJMP $ END 要求观察子程序的调用过程和堆栈与指针SP的变化。
二、汇编语言程序设计
1、循环程序,下面程序完成将内存20H开始的10个8位 数传送到外存1000H开始的单元 (先将内存20H开始的 10个单元置入数据10)。 ORG 0000H AJMP S2 ORG 0100H S2: MOV R7,#10 MOV R0,#20H MOV A,#10 L0: MOV @R0,A INC R0 DJNZ R7,L0