《流水灯实验报告(2020年10月整理).pptx》由会员分享,可在线阅读,更多相关《流水灯实验报告(2020年10月整理).pptx(4页珍藏版)》请在金锄头文库上搜索。
1、单片机流水灯试验 一、实验目的: 1、进一步熟悉Keil C51 集成开发环境调试功能的使用 2、学会自己编写程序,进行编译、仿真调试 3、学会使用单片机的 P0 口作为I/O 口去控制外围电路,实现 LED 灯以固定 的频率进行闪烁。 二、实验设备: 1、PC 机 2、SW-51PROC 单片机综合实验平台 三、实验内容: 1、编写一段程序,用单片机 P0 口的 8 个输出去控制 8 个 LED 灯,实现如下 功能: 先使 8 个 LED 灯轮流点亮,从左向右移动,时间间隔 0.5s。以上过程循环实 现。 四、实验步骤: 1、实验原理: 单片机流水的实质是单片机各引脚在规定的时间逐个上电,使
2、 LED 灯能逐个 亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的 P2 端口,对 8 个 LED 灯进行控制,要实现逐个亮灯即将 P2 的各端口逐一置 零,中间使用时间间隔隔开各灯的亮灭。使用 rl 或rra 实现位的转换。 A 寄存器的位经过rr a 之后转换如下所示:,然后将A 寄存器转换一次便送给P2 即MOV P2,A 便将转换后的数送到了P2 口,不断循环下去,便实现了逐位置一操作。 2、实验电路图,1,5 6 7 8,6,7,8,1,2 3 4 1 2 3 4 1 2 3 4,5,6 7 8 5,a1Vcc1 P2.0 a2P2.1 a3P2.2 a4P2.3
3、a1P2.4 a2P2.5 a3P2.6 a4P2.7 a1b1 a2b2 a3b3 a4GNDb4 0,0,+5 v,80C51,3 通过仿真实验正确性,代码如下:ORG 0,2,3,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:M
4、OV 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,0FD H END 5、实验结果:,五、实验总结 这次试验我通过Proteus 仿真实现对流水灯功能的实现。受益匪浅,对 80c51 的功能和结构有了深层次的了解,我深刻的明白,要想完全了解 c51 还有一 定距离,但我会一如既往的同困难作斗争。在实验中,我遇到了不少困难, 比如不知道怎么将程序写进单片机中,写好程序的却总出错,不知道什么原 因,原来没有生成hex 文件。这些错误令我明白以后在试验中要步步细心, 避免出错。,4,