安徽大学历次单片机实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机实验报告

学号:____________ 姓名:____________

一、实验目的:

1.实验一的目的:掌握汇编语言设计和调试方法,熟悉键盘操作;

2.实验二的目的:掌握汇编语言设计和调试方法;

3.实验三的目的:进一步掌握汇编语言设计和调试方法。

二、实验设备:装有Keil uVision的计算机1台(本人用的是装有Keil uVision2的

计算机)

三、实验内容:

实验一清零程序

1.实验内容:把2000H~20FFH的内容清零

2.我的流程图、源程序及调试结果:

流程图(用Edraw Mind Map 7.8制作):

源程序:

ORG 0000H

LJMP START

ORG 0100H

START: MOV R0,#0FFH

MOV DPTR,#2000H

MOV A,#00H

MAIN: MOVX @DPTR,A

INC DPTR

DJNZ R0,MAIN

SJMP $

END

调试结果:

将源程序中的MOV A,#00H改为MOV A,#0FFH,以便观察上述程序是否能够实现清零功能。

实验二拆字程序

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

2.我的流程图、源程序及调试结果:

流程图(用Edraw Mind Map 7.8制作):

源程序:

ORG 0000H

LJMP START

ORG 0100H

START: MOV DPTR,#2000H

MOV A,#0A3H ;给累加器A赋一个值

MOVX @DPTR,A ;将累加器A中的内容作为2000H的内容 MOV R0,A

ANL A,#0F0H

SWAP A

INC DPTR

MOVX @DPTR,A

MOV A,R0

ANL A,#0FH

INC DPTR

MOVX @DPTR,A

SJMP $

END

调试结果:

实验三拼字程序

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

2.我的流程图、源程序及调试结果:

流程图(用Edraw Mind Map 7.8制作):

源程序:

ORG 0000H

LJMP START

ORG 0100H

START: MOV DPTR,#2000H

MOV A,#0B2H ;给累加器A赋一个值

MOVX @DPTR,A ;将累加器A中的内容作为2000H的内容

ANL A,#0FH

SWAP A

MOV R0,A

INC DPTR

MOV A,#0E5H ;给累加器A赋一个值

MOVX @DPTR,A ;将累加器A中的内容作为2001H的内容

ANL A,#0FH

ORL A,R0

INC DPTR

MOVX @DPTR,A

SJMP $

END

调试结果:

四、实验小结

此次实验让我基本掌握了MOVX,SWAP这两条从未用过的指令的用法,理解了地址高位与低位的含义,16位地址与8位地址的记法,DPTR作为地址指针的重要作用,并让我注意到了DEC比INC少一种用法,即有INC DPTR,却没有DEC DPTR。

第二次单片机实验报告

学号:____________ 姓名:____________

一、实验目的:

(l)学习P1口的使用方法;

(2)学习延时子程序的编写。

二、实验必备知识:

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

(2)本实验中延时子程序采用指令循环来实现。

三、实验设备:

装有Keil uVision和STC_ISP的计算机1台

单片机芯片1片

单片机综合实验箱1个

杜邦线若干

四、实验内容:

P1口输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

五、我的电路原理图、流程图及源程序:

1.电路原理图:

因为没有用实验室的设备完成实验,所以我用的是自己的计算机和单片机完成实验的。其起作用的部分的电路图如下图用(Proteus 7.8绘制)所示:

2. 流程图(用Edraw Mind Map 7.8制作):

3.源程序:

ORG 0000H

MOV A,#01111111B

JMP START

ORG 0100H

START: MOV P1,A

CALL DEL100ms

RR A ;将A中的内容右移一位,相应地,发光二极管中低电平所处位置左移一位

JMP START

DEL100ms:MOV R7,#250

DEL1: MOV R6,#200

DEL2: DJNZ R6,DEL2

DJNZ R7,DEL1

RET

END

六、思考:

1.改变延时常数,使发光二极管闪亮时间改变。

答:如下两图所示,将晶振频率和时钟频率均选为12MHz,则一个机器周期为1us,执行一条DJNZ指令需要两个机器周期,即2us.用R6、R7分别表示其各自存储的立即数,则上述DEL100ms的延时子程序所延长的时间T=2*R6*R7us,故改变R6、R7中存储的立即数即可改变延时子程序延长的时间,从而使发光二极管闪亮时间改变。如:将DEL100ms的延时子程序中的MOV R7,#250改为MOV R7,#125,则DEL100ms的延时子程

相关文档
最新文档