AT89C51单片机的P1口控制8盏LED流水灯

2024-11-02 20:34:14
推荐回答(1个)
回答(1):

# include "reg51.h"                   // 包含头文件

#define uchar unsigned char

void  delay02s(void)                 // 延时0.2s子程序

 {

 unsigned  char i,j,k;

    for ( i=2;i>0;i-- )

    for (j=200;j>0;j-- )

    for (k=250;k>0;k-- );

 }

 

void  main (void)                    // 主函数

{

 uchar i,j;

 while (1)                           // 死循环

 {

 j=0x01;                         // j初始化为0x01,左移初始值

 for(i=0;i<8;i++)                 // for循环语句,完成8个循环

  {

    P1= ~ j;                       // 对变量j 中的值按位取反后,从P1口输出

    delay02s( );                    // 延时0.2s

    j= j<<1;                       // 左移1位

  }

   j=0x80;                          // 设置右移初始值j为0x80

 for (i=0;i<8;i++)

  {

    P1= ~ j;

    delay02s( );

          j= j>>1;                       // 右移1位

          }

        }

     }

这只是延时的方法实现的。