标题: 笨鸟先飞的递减法流水灯 [打印本页]

作者: hhdd    时间: 2010-4-23 20:01
标题: 笨鸟先飞的递减法流水灯

#include"AT89x52.h"
#include"intrins.h"
 
#define uint unsigned int
#define uchar unsigned char

sbit wei=P2^7;      //U2 74HC573的LE端    数码管的位选端
sbit pw=P1^4;       //LED发光管的使能端

unsigned int a;     //定义无符号整行a
void main()

 while(1)  //死循环
 {
  wei=0;   //锁存,让位选的74hc573保持现在的状态不变,也就是一直不显示,如果不写这3行,数码管上就会有干? 
  {
  pw=0;  //开LED总使能    
     P0=0xff; //让所有数码管不显示,防止数码管干扰   
  P0=0x7f; //P0口送2进制 01111111 8个二进制对应8个led灯,也就是让为0的数码管亮,为1的不亮
  a=55000;
     while(a--);
     pw=1;
  a=55000;
  while(a--);
  
     pw=0;   
     P0=0xff;
  P0=0xbf;
  a=55000;
     while(a--);
     pw=1;
  a=55000;
  while(a--);
 
  pw=0; 
     P0=0xff;
  P0=0xdf;
  a=55000;
     while(a--);
     pw=1;
  a=55000;
  while(a--);
  
  pw=0; 
     P0=0xff;
  wei=0;    
  P0=0xef;
  a=55000;
     while(a--);
     pw=1;
  a=55000;
  while(a--);
 
  pw=0; 
     P0=0xff;
  P0=0xf7;
  a=55000;
     while(a--);
     pw=1;
  a=55000;
  while(a--);
 
  pw=0; 
     P0=0xff;
  P0=0xfb;
  a=55000;
     while(a--);
     pw=1;
  a=55000;
  while(a--);
 
  pw=0; 
     P0=0xff;
  P0=0xfd;
  a=55000;
     while(a--);
     pw=1;
  a=55000;
  while(a--);
  
  pw=0; 
     P0=0xff;
  P0=0xfe;
  a=55000;
     while(a--);
     pw=1;
  a=55000;
  while(a--);
  
  }
  
  }
}

 

 

不懂得用其他的函数来设计,所以只能递减实现。还请老师弄个简单的程序带对比的说明指南。


作者: admin    时间: 2010-4-23 23:15

最好是通过移位来实现

看这个帖子 http://www.51hei.com/bbs/dpj-3009-1.html






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1