内容发布更新时间 : 2024/11/5 5:40:14星期一 下面是文章的全部内容请认真阅读。
单片机流水灯试验
一、实验目的:
1、进一步熟悉Keil C51集成开发环境调试功能的使用 2、学会自己编写程序,进行编译、仿真调试
3、学会使用单片机的P0口作为I/O口去控制外围电路,实现LED灯以固定的频率进行闪烁。 二、实验设备: 1、PC机
2、SW-51PROC单片机综合实验平台 三、实验内容:
1、编写一段程序,用单片机P0口的8个输出去控制8个LED灯,实现如下功能:
先使8个LED灯轮流点亮,从左向右移动,时间间隔0.5s。以上过程循环实现。
四、实验步骤: 1、实验原理:
单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用rl或rr a实现位的转换。 A寄存器的位经过rr a之后转换如下所示:
A0A1A2A3A4A5A6A7 然后将A寄存器转换一次便送给P2即MOV P2,A便将转换后的数送到了P2口,不断循环下去,便实现了逐位置一操作。 2、实验电路图
+5v1234123412340a1a2a3a4a1a2a3a4a1a2a3a4GND0Vcc1P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7b1b2b3b456785678567880C51
3通过仿真实验正确性
代码如下:ORG 0 MOV A,#00000001B LOOP:MOV P2,A RL A
ACALL DELAY SJMP LOOP
DELAY:MOV R1,#255 DEL2:MOV R2,#250 DEL1:DJNZ R2,DEL1 DJNZ R1,DEL2 RET End
ORG 0000H LJMP MAIN
4、实验程序 : ORG 0050H
MAIN:MOV R0,#14
MOV DPTR,#TABLE L0: MOV A,#0
L1: MOVC A,@DPTR+A MOV P0,A ACALL DELAY1 INC A41 DJNZ R0,L1 SJMP L0 DELAY1:
MOV R1,#250 LOOP1:
MOV R2,#250 LOOP2:
NOP NOP NOP NOP NOP
DJNZ R0,LOOP2 DJNZ R1,LOOP1 RET TABLE: DB
0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH
END