SE18: LO34: LO33: SE19: LO36: LO35:
ORG 0000H
MOV P1, #0FFH MOV A, #0FEH MOV P1, A LCALL SE19 RL A
SJMP LO33
MOV R6, #0A0H MOV R7, #0FEH DJNZ R7,LO35 DJNZ R6,LO36 RET END
实验四 定时流水灯实验(定时器简单应用)
一、实验目的
通过学习单片机定时器的简单定时操作,掌握单片机定时器使用的一般方法。 二、实验内容
利用查询方式,利用定时器T0(或T1),实现在8051单片机的P1.0引脚输出一个周期为1S的连续方波,并通过L1指示观察其输出。(fosc=6MHz)
三、实验原理图
+5V
R1
L1?
P1L1
四、实验步骤
用排线连接A2区P1口和D2区LED1—LED8,编写定时控制程序,观察LED发光情况
6MHz的晶振,采用50ms定时,工作方式1,循环10次来实现。
X=65536-500/2*10-3=40536=9E58H TH=9EH TL=58H 查询方式源代码:
ORG 0000H
MAIN: MOV TMOD, #10H ;T1工作方式1 MOV R3, #10 LOOP1: MOV TH1, #9EH MOV TL1, #58H SETB TR1 NOP
LOOP: JNB TF1, LOOP CLR TF1 CLR TR1 DJNZ R3, LOOP1 MOV R3, #10 CPL P1.1 SJMP LOOP1 END 中断方式源代码:
ORG 0000H
HERE: TF1INT:
LOOP:
LJMP MAIN ORG 001BH LJMP TF1INT ORG 0030H MOV TMOD, #10H MOV R3,#10 MOV TH1, #9EH MOV TL1, #58H SETB ET1 SETB TR1 SETB EA SJMP HERE CLR TR1 MOV TH1, #9EH MOV TL1, #58H SETB TR1 DJNZ R3, LOOP CPL P1.1 MOV R3, #10 RETI END
MAIN:
实验五 数据区传送程序
一、实验目的
(1)掌握RAM中的数据操作;
(2)熟悉8031(8051)指令系统,掌握程序设计方法。 二、实验内容
把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。 三、程序框图
数据区传送
四、实验步骤
在R2、R3中输入源首址(例如0000H),R4、R5中输入目的地址(例如2000H),R6、R7中输入字节数(例如1FFFH),运行程序,检查0000~1FFFH中内容是否和2000~3FFFH中内容完全一致。
ORG 0000H
SJMP MAIN MAIN: MOV R2,#00H MOV R3,#00H MOV R4,#20H MOV R5,#00H MOV R6,#1FH MOV R7,#0FFH SE22: MOV DPL, R3 MOV DPH, R2 MOVX A, @DPTR MOV DPL, R5 MOV DPH, R4 MOVX @DPTR, A CJNE R3, #0FFH, LO42 INC R2 LO42: INC R3 CJNE R5, #0FFH, LO43 INC R4 LO43: INC R5 CJNE R7, #00H, LO44 CJNE R6, #00H, LO45 SJMP $ NOP LO44: DEC R7 SJMP SE22 LO45: DEC R7 DEC R6 SJMP SE22
END