1203090单片机上机实验四精选
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及应用
实验(训)报告
实验编号004实验名称循环程序设计
实验目的和要求1、掌握循环构造编程
要求:请将本文件从头命名为“学号+姓名+单片机实验四”实验内容
1、求2+4+6+8+⋯+100 的值
代码:
ORG 0000H
MOV R1,#64H
MOV SUML,A ;SUML寄存结果低8 位;
MOV SIMH,A ;SIMH 寄存结果高8 位
L1: MOV A,R1
ADD A,SUML
MOV SUML,A
CLR A
ADDC A,SIMH
MOV SIMH,A
DEC R1
DEC R1
CJNE R1,#00H,L1
SUML EQU 30H
SIMH EQU 31H
SJMP $
END
2、请将8、1、2、
3、
4、
5、
6、7 八个数存于以30H为首地点的RAM中,并按从小到大的次序从头排列该数列,并放回原单元中。
代码:
ORG 0000H
MOV 30H, #08H
MOV 31H, #01H
MOV 32H, #02H
MOV 33H, #03H
MOV 34H, #04H
MOV 35H, #05H
MOV 36H, #06H
MOV 37H, #07H
CALL SORT6 ;调用排序子程序
NOP
NOP
SJMP $
;-------------------------------------
SORT6: ; 排序子程序
MOV R6, #7
S1:
MOV B, R6
MOV R7, B
MOV R0, #30H ; 开端地点
S2:
MOV B, @R0
INC R0
MOV A, @R0
CJNE A, B, S3
S3:
MOV @R0, B
DEC R0
MOV @R0, A
INC R0
N_JH:
DJNZ R7, S2 //(R2-1)为0?不是则跳转到S0 句
DJNZ R6, S1
RET
END
=========
CJNE A, B, S3
若(direct) <(A)则P C←(PC)+3+rel 且Cy←0;
若(direct) >(A)则P C←(PC)+3+rel 且Cy←1;
若(direct) =(A)则P C←(PC)+3
3、从内部储存器30H单元开始,有16 个数据,试编写一个程序,把此中的正数、负数分别存入40H 和50H开始的储存单元,并分别将正数、负数和零的个数存入R
4、R5 和R6。
代码:
ORG 0000H
MOV R0,#40H
MOV R1,#50H
MOV SP,#3FH
MOV R4,#00H
MOV R5,#00H
MOV R6,#00H
MOV R7,#10H
M1:POP ACC
JZ ZER0
JB ACC.7,M2
INC R4
MOV @R0,A
INC R0
M2:INC R5
MOV @R1,A
INC R1
AJMP DJ
ZER0: INC R6
DJ:DJNZ R7,M1
SJMP $
END
============================================= ORG 0000H
MOV R7,#10H
MOV A,#0
MOV R4,A
MOV R5,A
MOV R6,A
MOV R0,#40H
MOV R1,#50H
MOV SP,#2FH
NEXT :POP ACC
JZ ZERO
JB ACC.7,LP
INC R4
MOV @R0,A
INC R0
AJMP LOP
LP:INC R5
MOV @R1,A
INC R1
AJMP LOP。