实验一 51单片机流水灯实验 实验报告

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

“流水灯”实验报告

一、实验目的

1.了解单片机I/O口的工作原理。

2.掌握51单片机的汇编指令。

3.熟悉汇编程序开发,调试以及仿真环境。

二、实验内容

通过汇编指令对单片机I/O进行编程(本实验使用P0口),以控制八个发光二极管以一定顺序亮灭。(即流水灯效果)

三、实验原理

通过更改P0口8位的高低电平,分别控制8个发光二极管的亮灭。具体的亮灭情况如下表:

要实现“流水灯”效果,也就是需要将P0口的输出值发生以下变化:

FE→FD→FB→F7→EF→DF→BF→7F→BF→DF→EF→F7→FB→FD→FE→......

可以使用一个循环,不断对数据进行移位运算实现。这里的移位指令采用RL和RR,即不带进位的位移运算指令。如果使用带进位的位移运算指令(RLC和RRC),则需要定期把CY置0,否则会出现同时亮起两个发光二极管的情况。

四、实验过程

1.在仿真系统中绘制好单片机的电路图

2.编写汇编程序,程序如下:

ORG 0000H Delay: MOV R0, #0FFH

SJMP Start Delay1: MOV R1, #0FFH Start: MOV A, #0FEH Delay2: NOP

MOV P0, A DJNZ R1, Delay2

CLR P2.7 DJNZ R0, Delay1

CLR P3.7 RET

Move: MOV R2, #7H END

MOV R3, #7H

RMove: RL A

MOV P0, A

CALL Delay

DJNZ R2, RMove

LMove: RR A

MOV P0, A

CALL Delay

DJNZ R3, LMove

SJMP Move

五、实验结果

为了便于实验结果的描述,下面分别把P0.0, P0.1…, P0.7对应的发光二极管编号为1, 2, …, 8号二极管。

在仿真系统中,先从1号二极管下面是在仿真系统中的实验结果:

1.只有1号二极管点亮

2.只有2号二极管点亮

3.只有3号二极管点亮

4.只有4号二极管点亮

5.只有5号二极管点亮

6.只有6号二极管点亮

7.只有7号二极管点亮8.只有8号二极管点亮

实验的结果:二极管的发光状态从1→2→3→4→5→6→7→8→7→…→1→2;如此往复循环。

六、实验总结与分析

1.经过这次实验,不难总结出开发单片机程序的方法。

第一步:根据需求连接好单片机;

第二步:在仿真系统中,使用汇编指令写好单片机的程序;

第三步:在仿真系统中对程序进行测试;

第四步:把程序下载到单片机中,并观察程序运行结果;如果程序运行不正确,则根据现象分析程序错误之处。改正以后重新下载观察运行结果。

2.对单片机的悬空针脚进行相应处理:悬空针脚接上高电平。

相关文档
最新文档