C51单片机(32路流水灯C语言程序)—蔡柏雄 点击:514 | 回复:1



caiboxiong1200

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 2回
  • 年度积分:9
  • 历史总积分:552
  • 注册:2011年2月23日
发表于:2020-03-06 13:57:19
楼主

#include <reg52.h> 

void delay(int t){ //时间延迟子函数 

unsigned int i,j; 

for(j=0;j<30;j++) 

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

void putOne(int n,char a){ //定义变量函数 

unsigned int m = n%8, k = n/8, b; 

if(k==0) b=P0; if(k==1) b=P1; if(k==2) b=P2; if(k==3) b=P3; 

if(a) b = b & (~(1<<m)); 

else b = b | (1<<m) ; 

if(k==0) P0=b; if(k==1) P1=b; if(k==2) P2=b; if(k==3) P3=b; 

void liu(int n1,int n2){ //流水灯子程序 

int i; 

for(i=n1; i<=n2; i++ ) { 

putOne(i,1); 

delay(2000); 

putOne(i,0); 

main() //流水灯主程序 

{

unsigned int k;

while(1)

P0 = P1 = P2 =P3 = 0; 

for(k=31;k>-1;k--)

{

liu(0, k); putOne(k,1); 


}


P0 = P1 = P2 =P3 =0; delay(2000); 

P0 = P1 = P2 =P3 =255; delay(2000); 

P0 = P1 = P2 =P3 =0; delay(2000); 

}

}



希望此帖能抛砖引玉.





陈元章

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 2回
  • 年度积分:71
  • 历史总积分:71
  • 注册:2020年4月21日
发表于:2020-04-22 14:13:36
1楼

好文章!值得学习


相关主题

官方公众号

智造工程师