单片机实验

  • 格式:doc
  • 大小:115.00 KB
  • 文档页数:7

实验一清零程序
1,实验目的:掌握汇编语言设计和调试方法,熟悉键盘操作。

2,实验内容:把2000H~20FFH的内容清零。

3,实验程序框图:
4,实验步骤:用连续或单步方式运行程序,检查2000~20FF中执行程序前后的内容变化。

5,思考:假使把2000H~20FFH中的内容改成FF,,如何修改程序。

ORG 00H
AJMP MAIN
ORG 30H
MAIN:MOV SP,#5FH
MOV R0,#OOH
MOV DPTR,#2000H
LOOP:CLR A
MOVX @DPTR,A
INC DPTR
INC R0
CJNE R0,#0FFH,LOOP
MOV DPTR,#2000H
MOV R0,#00H
SJMP $
END
实验二拆字程序
l,实验目的:掌握汇编语言设计和调试方法。

2,实验内容:把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。

3,实验程序框图:
4,实验步骤:用连续或单步方式运行程序,检查2000H~2002H中内容变化情况。

5,思考:如何用断点方式调试本程序。

ORG 0000H
LJMP SE02
ORG 0660H
SE02:MOV DPTR,#2000H
MOV A,#0A5H
MOVX @DPTR,A
MOVX A,@DPTR
MOV B,A
SWAP A
ANL A,#0FH
INC DPTR
MOVX @DPTR,A
INC DPTR
MOV A,B
ANL A,#0FH
MOVX @DPTR,A
LOOP:SJMP LOOP
END
实验三拼字程序
1,实验目的:进一步掌握汇编语言设计和调试方法。

.
2,实验内容:把2000H.2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成一字节。

3,实验程序框图:
4,实验步骤:单步或用断点方式运行程序,检查2002H内容变化情况。

ORG 0000H
LJMP START
ORG 0680H
START:MOV DPTR,#2000H
MOV A,#0AAH
MOVX @DPTR,A
MOV DPTR,#2000H
MOVX A,@DPTR
ANL A,#0FH
SWAP A
MOV B,A
INC DPTR
MOVX A,@DPTR
ANL A,#0FH
ORL A,B
INC DPTR
MOVX @DPTR,A
SJMP $
END
实验四数据区传送子程序
1,实验目的:掌握RAM中的数据操作。

2,实验内容:把R2.R3源RAM区首址内的R6.R7字节数据传送到R4.R5目的RAM区。

3,实验程序框图:
4,实验步骤:在R2.R3中输入源首址(例如0000H),R4.R5中输入目的地址(例如2000H),R6.R7中输入字节数(例如lFFFH),运行程序,检查0000H~lFFFH 中内容是否和2000H~3FFFH中内容完全一致。

ORG 07B0H
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 ;源地址加1
CJNE R5,#0FFH,LO43
INC R4
LO43: INC R5 ;目地址加1
CJNE R7,#00H,LO44
CJNE R6,#00H,LO45 ;字节数减1
SJMP $
NOP
LO44: DEC R7
SJMP SE22
LO45: DEC R7
DEC R6
SJMP SE22
END
实验五P1口亮灯实验
1,实验目的:(l)学习P1口的使用方法;
(2)学习延时子程序的编写。

2,实验顶备知识:(l),Pl口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。

(2),本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。

3,实验内容:P1口输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

4,实验程序框图:
5,实验接线图:
6,实验步骤:P1.0~P1.7用插针连至L1~L8,运行程序后,观察发光二极管闪亮移位情况。

7,思考:改变延时常数,使发光二极管闪亮时间改变。

(改变R7,R6的值)修改程序,使发光二极管闪亮移位方向改变。

(将RL A改成RR A)
ORG 0000H
MOV P1,#0FFH ;送P1口
MOV A,#0FEH ;L1(L0?)发光二极管点亮
LOOP: MOV P1,A
LCALL DELAY ;调用延时子程序
RL A ;左移位
SJMP LOOP ;循环
DELAY: MOV R7,#0FFH ;延时子程序LOOP1: MOV R6,#0FFH
LOOP2: NOP
NOP
DJNZ R7,LOOP2
DJNZ R6,LOOP1
RET ;返回
END。