【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《单片机上机》,欢迎阅读!

.
实验一 8051单片机简单编程与调试 实验内容:
1、存储块置全“1”源代码:
汇编语言源程序:
ORG 00H
START EQU 30H ;起始地址
MOV R1,#START
MOV R0,#32H ;Rn中设置32字节计数值
MOV A,#0FFH
LOOP: mov @R1,A
INC R1 ;指向下一个地址
DJNZ R0,LOOP ;计数值减1,不为零继续 SJMP $
END
在下划线处填入适当指令。
输入源程序,编译无误后,用单步执行的方法,观察各个相应存储单元和寄存器中内容的变化。
解释START EQU 30H。 答:START = 30H
(2) 二进制 ASCII 码转换源代码: 汇编语言源程序: RESULT EQU 30H ORG 00H START:
MOV A,#1AH
LCALL BINTOHEX ; 调用BINTOHEX子程序 LIMP $ BINTOHEX:
MOV DPTR,#ASCIITAB ; 表的首址ASCIITAB送DPTR MOV B,A SWAP A
ANL A,#0FH ; 取A的高四位 MOVC A,@A+DPTR ; 查ASCII表 MOV RESULT, A
MOV A,B ANL A,#0FH MOVC A,@A+DPTR MOV RESULT+1,A RET
ASCIITAB:
DB '0123456789ABCDEF' END
;.
.
答: 注释掉LJMP $ 执行到MOV A,#1AH
2、多路开关指示
OGR 00H
START: MOV A,PR1 ; 读取P1口数据
SWAP A ; 交换A中高四位与低四位的位置 ORL A,0F0H ; 与0F0H相或
MOV P1,A ; 将开关状态送LED显示 SJMP START ; 转移到START END
答:把上移后的高四位再全装为1,并且屏蔽掉低四位
3、程序调试
(1)程序 a.asm
ORG 0000H
MOV 30H,#87H MOV A,#69H ADD A,30H NOP END
答:CY=0 ,(A)=1 ,OV=0 ,P=0 将程序中的指令 NOP改为 指令 DA A后
答:CY=1 ,(A)=1 ,OV=0 ,P=0
(2)程序 b.asm
ORG 0000H
MOV SP,#60H
MOV DPTR,#0A679H PUSH DPH PUSH DPL MOV A,#80H PUSH ACC POP B POP 30H POP 31H NOP END
答:(SP)=60H ,(A)=80H ,(30H)=79H ,(31H)=0A6H (B)=80H ,(DPH)=0A6H ,(DPL)=79H
(3)程序 c.asm
;.
,
.
ORG 0000H
MOV A,#02H MOV B,A RL A ADD A,B
MOV DPTR,#TAB JMP @A+DPTR NOP
ORG 0800H TAB: LJMP 1000H LJMP 2000H LJMP 3000H LJMP 4000H END
答:执行完 JMP @A+DPTR以后,PC=0806H
;.
本文来源:https://www.wddqxz.cn/fdf44b07a78da0116c175f0e7cd184254a351be8.html