[疑难问答] 笨鸟先飞的递减法流水灯

[复制链接]
3053|8
 楼主| lpydidi 发表于 2010-4-26 21:44 | 显示全部楼层 |阅读模式
#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--);
  
  }
  
  }
}



不懂得用其他的函数来设计,所以只能递减实现。
wangwo 发表于 2010-4-26 22:20 | 显示全部楼层
这个是干什么
tiger2010 发表于 2010-4-26 23:01 | 显示全部楼层
那看出来是笨鸟先飞了:lol
寂寞男孩 发表于 2010-4-27 13:46 | 显示全部楼层
这个算法很简单
yidou 发表于 2010-4-28 23:10 | 显示全部楼层
还能用什么设计
OLIVERR 发表于 2010-4-29 08:29 | 显示全部楼层
呵呵,确实比较简单
五谷道场 发表于 2010-4-30 23:06 | 显示全部楼层
为何笨鸟先飞?
 楼主| lpydidi 发表于 2010-5-7 22:51 | 显示全部楼层
7# 五谷道场
想表达的是,用比较简单笨拙的办法解决问题
David_ming 发表于 2010-5-7 23:41 | 显示全部楼层
可以写个大循环来查表,要是有规律的话还可以用与或非异或之类的实现,代码会比较精简
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

319

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部