高级会员 
 
主题
回帖0
积分1988
阅读权限30
注册时间2012-2-14
最后登录1970-1-1
在线时间 小时
 
 
 
 
 | 
 
我认为俺学东西只学到一般会一般不会,自学的51单片机C语言编程;自己对程序的常用语句及关键字明白点了,内部硬件也明白点了;自己也能编写点很简单的程序;算是入门了吧;可就是一编程就不明白了该如何写,遇到要实现的功能,想去实现,但脑子里却一切空白,不知该怎么写才能实现所想的功能;看见论坛里比我强的学者们都能编写出来,俺就不行,编不出来;关键在于实战,可俺就是一编写就卡住了,就没思路,想不出来;程序写完编译没错;可就是没实现该功能啊!上程序了:   
 
/*具体要求如下: 
 1、流水彩灯设置8个发光二极管,两个按键K1和K2;  
 2、上电后,8个LED灯全亮;  
 3、两个按键一个用于控制“流水灯”的启动和停止, 
 另一个用于选择“流水”的花样;  
 2012年3月11号"酷爱diy"晚上编写*/ 
#include <reg52.h> 
//#include "KEY.H"  
typedef unsigned char uint8 ; 
typedef unsigned int  uint16; 
sbit Key_stop =P3^2; 
sbit Key_fe   =P3^3; 
void delay(uint16 a)   //12M  1ms 
{ 
 uint16 i,j; 
 for(i=0;i<a;i++) 
  for(j=0;j<125;j++); //j=110 
} 
void main() 
{ 
 uint8 m=0,n=0; 
 uint16 z,x,c,b; 
 while(1) 
 { 
   P1=0; 
   if(Key_stop==0) 
   { 
    delay(5); 
   if(Key_stop==0) 
   { 
    while(Key_stop==0); 
    m=m+1; 
    if(m>=2) 
     m=0; 
   } 
   if(m==1) 
   { 
    delay(5); 
    if(Key_fe==0) 
    { 
     while(Key_fe==0); 
     n=n+1; 
     if(n>=4) 
     n=0; 
    } 
    if(n==1) 
    { 
     P1=0xFE; 
     //z=0x01; 
     for(x=0;x<8;x++) //花样流水灯     临时的,后来在改 
     { 
       c=P1|0x01; 
       P1=c<<1; 
     } 
    } 
     if(n==2) 
    { 
      P1=0xF7; 
     //z=0x01; 
     for(z=8;z>0;z--) //花样流水灯  临时的,后来在改 
     { 
       b=P1|0x80; 
       P1=b>>1; 
     } 
    } 
     if(n==3) 
    { 
       P1=0;//花样流水灯  临时的,后来再改 
    } 
   } 
   if(m==2) P1=0xFF; 
   } 
 } 
} |   
 
 
 
 |