“流水灯”实验报告
实验目的
了解单片机I/O口的工作原理。
掌握51单片机的汇编指令。
熟悉汇编程序开发,调试以及仿真环境。
实验内容
通过汇编指令对单片机I/O进行编程(本实验使用P0口),以控制八个发光二极管以一定顺序亮灭。(即流水灯效果)
实验原理
通过更改P0口8位的高低电平,:
P0口输出值十六进制
发光二极管亮灭情况
P0。2
P0。6
P0。7
0xFE
亮
灭
灭
灭
灭
灭
灭
灭
0xFD
灭
亮
灭
灭
灭
灭
灭
灭
0xFB
灭
灭
亮
灭
灭
灭
灭
灭
0xF7
灭
灭
灭
亮
灭
灭
灭
灭
0xEF
灭
灭
灭
灭
亮
灭
灭
灭
0xDF
灭
灭
灭
灭
灭
亮
灭
灭
0xBF
灭
灭
灭
灭
灭
灭
亮
灭
0x7F
灭
灭
灭
灭
灭
灭
灭
亮
要实现“流水灯”效果,也就是需要将P0口的输出值发生以下变化:
FE→FD→FB→F7→EF→DF→BF→7F→BF→DF→EF→F7→FB→FD→FE→.。。。。.
可以使用一个循环,不断对数据进行移位运算实现。这里的移位指令采用RL和RR,即不带进位的位移运算指令。如果使用带进位的位移运算指令(RLC和RRC),则需要定期把CY置0,否则会出现同时亮起两个发光二极管的情况。
ﻬ
实验过程
在仿真系统中绘制好单片机的电路图
编写汇编程序,程序如下:
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
D
实验一51单片机流水灯实验实验报告 来自淘豆网m.daumloan.com转载请标明出处.