实验一LED流水灯实验
一、实验目的:1、进一步熟悉KeilC51集成开发环境调试功能的使用2、学会自己编写程序,进行编译、仿真调试3、学会使用单片机的P0口作为IO口去控制外围电路,实现LED灯以固定的频率进行闪烁。二、实验设备:1、PC机2、SW51PROC单片机综合实验平台三、实验内容:1、编写一段程序,用单片机P0口的8个输出去控制8个LED灯,实现如下功能:先使8个LED灯轮流点亮,从左向右移动,时间间隔05s。以上过程循环实现。四、实验步骤:1、实验原理图:
2、硬件连线方式:用杜邦线将“MCU”区的P0口“P00P07”与“8LED”模块区的“L1L8”依次相连。编写程序思路:用单片机P0口的8位输出控制8个LED灯,每次只点亮一只LED,8只LED灯依次点亮,如此循环即可
形成流水灯。3、实验箱的时钟:晶振频率为110592MHzTose1(1105921000000)00904us1个机器周期为00904us121085us4、源程序:i
cludereg52hdefi
eucharu
sig
edchardefi
eui
tu
sig
edi
tdefi
ePORTP0ucharcodedis0xfe0xfd0xfb0xf70xef0xdf0xbf
f0x7f0xbf0xdf0xef0xf70xfb0xfd延时函数voiddelay_50msui
tt
ui
tifort0tfori6245i0i主函数voidmai
voiducharpdiswhile1
forpdispdis14p
PORTpdelay_50ms10结束5、运行程序:把编写好的程序输入PC机中,用Keil软件进行编译,编译无误的情况下,运行该程序,此时LED灯会依次轮流点亮。6、实验报告要求:1、实验名称2、实验目的3、实验设备4、实验内容5、实验原理(图要画完整)及控制方法合过程详细的说明6、实验编写的程序7、实验结果8、心得和建议
(1)首先知道LED的工作原理。共阴级共阳极,此实验板是共阳极,要亮,的加一个高电平。由于这8个LED灯与P0口相连,所以直接通过P0口控制其亮灭就可以。依次开启每个灯,同时开启时要亮一定的时间。时间可以自己定义,也可以利用定时器实现。具体的汇编程序如下:
ORG0000HLJMPMAINORG0050HMAIN:MOVR0,14MOVDPTR,TABLE
fL0MOVA,0L1MOVCA,DPTRA
MOVP0,AACALLDELAY1
INCADJNZR0,L1SJMPL0DELAY1:MOVR1,250LOOP1MOVR2,250LOOP2NOPNOPNOPNOPNOPDJNZR0LOOP2DJNZR1LOOP1RETTABLEDB
0FEH0FDH0FBH0F7H0EFH0DFH0BFH07FH0BFH0DFH0EFH0F7H0FBH0FDHEND大家可以换一种亮灭的方式,只是通过修改表中的相应的信息,同时将程r