单片机汇编语言实验及代码
以下内容为本人实验课亲自编写且通过51单片机运行实现的实验代码,有错误或者改进的地方请批评指正。
实验一:开发环境的应用
(1)将数据存储器的40H-4FH的内容复制成00H-0FH,并将40H-4FH的内容整体复制到外部数据存储器的1050H-105FH.
(2)P1口接八只二极管,使二极管逐个循环点亮
ORG 0000H
AJMP START
ORG 0100H
START:
MOV A,#00H
MOV R0,#40H
LOOP:
MOV @R0,A
INC A
INC R0
CJNE A,#10H,LOOP
SECOND:
MOV DPTR,#1050H
MOV R1,#40H
COPY:
MOV A,@R1
MOVX @DPTR,A
INC DPTR
INC R1
CJNE R1,#50H,COPY
SJMP $
END
实验二:外部中断
(1)用单脉冲信号申请中断,在中断服务程序中对输出信号进行翻转(可通过P1.0接一二极管观察)
ORG 0000H
LJMP START
ORG 0003H
LJMP INT
ORG 0100H
START:
SETB EX0
SETB PX0
SETB IT0
SETB EA
SJMP $
INT:
CPL P1.0
RETI
END
(2)用单脉冲信号申请中断,要求对中断进行累加计数,并将计数结果显示在二极管上
ORG 0000H
LJMP START
ORG 0003H
LJMP INT
ORG 0100H
START:
MOV A,#00H
MOV P1,A
SETB EX0
SETB PX0
SETB IT0
SETB EA
SJMP $
INT:
MOV P1,A
INC A
RETI
END
实验三:定时器实验
(1)用定时器1的方式1定时,P1.0节发光二极管,使二极管每秒闪烁五次
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP INT
ORG 0100H
MAIN:
MOV TMOD,#10H
MOV TH1,#3CH
MOV TL1,#0B0H
MOV R2,#2
SETB EA
SETB ET1
SETB TR1
SJMP $
INT:
DJNZ R2,NEXT
CPL P1.0
MOV R2,#2
NEXT:
MOV TH1,#3CH
MOV TL1,#0B0H
SETB TR1
RETI
END
(2)用定时器1的方式2计数,T1引脚接