8盏灯流水点亮

C51单片机初学者

刚开始学习C51单片机

流水灯
流水灯图

流水灯代码
#include <reg51.h>

unsigned char led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void delay(unsigned int n);

void main()
{
   unsigned char i;
 while(1)
   {
	for(i=0;i<8;i++)//正向流水
     {
        P1=led[i]; 
        delay(200); //延时
     }

		 /*
		for(i=0;i<8;i++)//逆向流水
		{
		P1=led[7-i];
		delay(200);
		}
	 	 */
         for(i=8;i>0;i--)//第二种逆向流水
		 {
		 P1=led[i-1];
		 delay(200);
		 }
   }
}
void delay(unsigned int n)
{
    unsigned int i,j;
	for(i=0;i<n;i++)
	  for(j=0;j<255;j++);
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
花样最多 8 灯流水灯代码 #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include /******************************************************************/ /* 花样表格 */ /******************************************************************/ unsigned char code seg[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0x00,0,0x55,0x55,0xaa,0xaa};//rom允许情况可以无限添加 /******************************************************************/ /* 延时函数 */ /******************************************************************/ void delay(unsigned int cnt)//简易延时 { while(--cnt); } /******************************************************************/ /* 主函数 */ /******************************************************************/ main() { unsigned char i; while(1) { P2=0xFE; //第一个LED亮 for(i=0;i<8;i++) { delay(10000); P2 <<=1; } P2=0x7F; //第七个LED亮 for(i=0;i>=1; } P2=0xFE; //第一个LED亮 for(i=0;i<8;i++) { delay(10000); P2 <<=1; P2 |=0x01; } P2=0x7F; //第七个LED亮 for(i=0;i>=1; P2 |=0x80; } /*下面通过查表方法获得花样参数*/ for(i=0;i<16;i++)//查表可以简单的显示各种花样 实用性更强 { delay(20000); P2=seg[i]; } } } 补充: 再给你一个流星雨灯,这个程序有点暴力。。。 #include #include #define uint unsigned int void delay(uint n) { while(n--); } main() { mmm:P1=0xfe; delay(15000); while(1) { P1=P1<<1; delay(15000); if(P1==0x00) {P1=0x01;delay(15000);goto mm;} } mm: while(1) { P1=_crol_(P1,1)+1; delay(15000); if(P1==0xff) {delay(15000);goto mmm;} } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值