实验一:用C51实现流水灯实验 实验要求:完成亮流水,即LED从低位流向高位流动,每次流动一位,且每次只亮一个LED灯,其它LED灭。
实验原理:单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口, 对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零, 中间使用时间间隔隔开各灯的亮灭。使用r1或rr a实现位的转换。 实验内容:通过仿真来实现实验电路图
代码如下; for(x=0;x<8;x++) { P0=num[x]; delay(); } for(x=6;x>0;x--) { P0=num[x]; delay(); } P0=0xfe; 实验结果: 实验程序: #include <REG51.H>
void delay(); //延时函数声明
void main() //主函数
{ unsigned char x, num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
while(1)
{
for(x=0;x<8;x++)
{
P0=num[x];
delay();
}
for(x=6;x>0;x--)
{
P0=num[x];
delay();
}
P0=0xfe;
}
}
void delay() //延时函数,无符号字符型变量i为形式参数
{
unsigned int j,k; //定义无符号字符型变量j和k
for(k=0;k<500;k++) //双重for循环语句实现软件延时
for(j=0;j<100;j++);
} 实验总结: 这次试验通过仿真实验软件实现流水灯实验,充分学会了keil软件和Proteus电路仿真的联合调试,为后期的实验做足了功课。也认识到仿真实用性。
完整的Word格式文档51黑下载地址:
51单片机流水灯.docx
(66.22 KB, 下载次数: 43)
|