04流水灯

Way1,

 1 #include<reg52.h>
 2 sbit LED0=P1^0;
 3 void delay(float t)
 4 {
 5     unsigned int j,i;
 6     j=t*100;
 7     while(j--)     // 150400-1 
 8     {
 9       for(i=1505;i;i--);   //1505-1=1504   1504-1=1503 
10     }
11 }
12 void main()
13 {
14     while(1)
15     {
16     LED0=0;
17     delay(0.5);
18     LED0=1;
19     delay(0.5);
20     }
21 }

Way2,

 1 #include<reg52.h>
 2 sbit LED0=P1^0;
 3 sbit LED1=P1^1;
 4 sbit LED2=P1^2;
 5 sbit LED3=P1^3;
 6 sbit LED4=P1^4;
 7 sbit LED5=P1^5;
 8 sbit LED6=P1^6;
 9 sbit LED7=P1^7;
10 
11 void delay(float t)
12 {
13     unsigned int j,i;
14     j=t*100;
15     while(j--)     // 150400-1 
16     {
17       for(i=1505;i;i--);   //1505-1=1504   1504-1=1503 
18     }
19 }
20 void main()
21 {
22     while(1)
23     {
24     LED0=0;
25     delay(0.5);
26     LED0=1;
27     delay(0.5);
28 
29     LED1=0;
30     delay(0.5);
31     LED1=1;
32     delay(0.5);
33 
34     LED2=0;
35     delay(0.5);
36     LED2=1;
37     delay(0.5);
38 
39     LED3=0;
40     delay(0.5);
41     LED3=1;
42     delay(0.5);
43 
44     LED4=0;
45     delay(0.5);
46     LED4=1;
47     delay(0.5);
48 
49     LED5=0;
50     delay(0.5);
51     LED5=1;
52     delay(0.5);
53 
54     LED6=0;
55     delay(0.5);
56     LED6=1;
57     delay(0.5);
58 
59     LED7=0;
60     delay(0.5);
61     LED7=1;
62     delay(0.5);
63     }
64 }

Way 3,

 1 #include<reg52.h>
 2 void delay(unsigned int t) //0-65535
 3 {
 4 while(--t);
 5 }
 6 void main()
 7 {
 8     unsigned char q;//0-255
 9     P1=0xfe;//1111 1110  1111 1101  1111 1011
10     while(1)
11     {
12      for(q=0;q<8;q++)
13      {
14       delay(50000);
15       P1<<=1;
16       P1=P1|0X01; //0000 0001
17      } 
18     }
19 }

Way 4

 1 #include<reg52.h> //包含头文件,一般情况不需要改动,
 2                   //头文件包含特殊功能寄存器的定义
 3 /*-------------------------IO口定义----------------------------*/
 4 sbit P20 = P2^0;//这是为了关闭开发板上的数码管实际应用去掉
 5 sbit P21 = P2^1;//这是为了关闭开发板上的数码管实际应用去掉
 6 sbit CS88 = P2^2;//这是为了关闭开发板上的点阵实际应用去掉
 7 
 8 /*------------------------------------------------
 9                   花样表格
10 ------------------------------------------------*/
11 unsigned char code seg[]={0x7f,0xbf,0xdf,0xef,
12                           0xf7,0xfb,0xfd,0xfe,
13                           0xff,0xff,0x00,0x00,
14                           0x55,0x55,0xaa,0xaa
15                           };//rom允许情况可以无限添加
16 
17 void Delay(unsigned int t); //函数声明
18 /*------------------------------------------------
19                     主函数
20 ------------------------------------------------*/
21 main()
22 {
23  unsigned char i;                //定义一个无符号字符型
24                                  //局部变量 i 取值范围 0~255
25     P1=0x00;//这是为了关闭开发板上的数码管实际应用去掉
26     P20=0; //这是为了关闭开发板上的数码管实际应用去掉
27     P21=0; //这是为了关闭开发板上的数码管实际应用去掉
28     CS88=0; //这是为了关闭开发板上的点阵实际应用去掉
29     P1=0xFF;//P1口置1
30  while(1)
31       {
32       P1=0xFE;                   //第1个LED亮
33       for(i=0;i<8;i++)
34          {
35          Delay(20000);
36          P1 <<=1;
37          }
38 
39       P1=0x7F;                   //第8个LED亮
40       for(i=0;i<8;i++)
41          {
42          Delay(20000);
43          P1 >>=1;
44          }
45 
46       P1=0xFE;                  //第1个LED亮
47       for(i=0;i<8;i++)
48          {
49          Delay(20000);
50          P1 <<=1;
51          P1 |=0x01;
52          }
53 
54       P1=0x7F;                  //第8个LED亮
55       for(i=0;i<8;i++)
56          {
57          Delay(20000);
58          P1 >>=1;
59          P1 |=0x80;
60          }
61       //下面通过查表方法获得花样参数
62       for(i=0;i<16;i++)//查表可以简单的显示各种花样 实用性更强
63          {
64          Delay(20000);
65          P1=seg[i];
66          }
67       }
68 
69 }
70 
71 /*------------------------------------------------
72  延时函数,含有输入参数 unsigned int t,无返回值
73  unsigned int 是定义无符号整形变量,其值的范围是
74  0~65535
75 ------------------------------------------------*/
76 void Delay(unsigned int t)
77 {
78  while(--t);
79 }

先写自己目前进度,稍后补。。。

原文地址:https://www.cnblogs.com/Sweet-City/p/8322166.html