久久久国产精品视频袁燕,99re久久精品国产,亚洲欧美日韩国产综合v,天天躁夜夜躁狠狠久久,激情五月婷婷激情五月婷婷

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

單片機(jī)師傅幫忙看看,為什么按鍵按下燈燈閃一下才正常輸出CASE2呢?如何解決?謝謝!

#include
#define uchar unsigned char
#define uint unsigned int
void scan_k1();
unsigned char set;
void delay(uint z);
void delay1(uint z);
unsigned int i;
sbit led0=P1^0;
sbit led1=P1^1;
sbit sw1=P3^4;
 
void main()
{  


  while(1)
{

    if(sw1==0) scan_k1();
 
     {   
  switch(set)
{
 
 case 1: led0=0x00;
      delay(15);

      led0=0xff;
      delay(3);
          break;
  
////////////////////////////////
case 2: led1=0x00;
     delay1(20);
     led1=0xff ;
    delay1(10);
   break;

   default:P1=0Xfc;
   break;

////////////////////////////////

/* case 3:led0=0x00;
 
        break;
    default:led0=0X00;
  break;
 
 case 4:P1=0x00;
        break;
  default: P1=0Xff;
  break;*/
}
     }

 }
 }
 //////////////////////////////
  void scan_k1()

 {
   if(sw1==0) set++;
 
  if(set>=4)set=0;

  F0:if(sw1==0)goto F0;

  for(i=0;i<30000;i++);
 
 }
////////////////////////////////////

void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=45;y>0;y--); 
}

 void delay1(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=26;y>0;y--); 
}

全部回復(fù)(5)
正序查看
倒序查看
yuzixuan
LV.8
2
2011-12-11 15:17
不會(huì)是硬件問題吧,拿示波器截波形看看!
0
回復(fù)
2011-12-11 21:59
  這個(gè)找本51的書就可以解決啦。
0
回復(fù)
2011-12-16 21:54

sbit sw1=P3^4;  if(sw1==0) scan_k1();

看這兩句,你一開始定義的時(shí)候sw1=1;這個(gè)時(shí)候如果你不按鍵,set是一直等于1的,他就不會(huì)執(zhí)行scan_k1();語句的,知道你按下按鍵后才支持,這個(gè)時(shí)候switch里面的set才會(huì)改變,才會(huì)執(zhí)行相應(yīng)的case的。

0
回復(fù)
cheng111
LV.11
5
2012-01-08 13:33
@fifasanguo
sbitsw1=P3^4; if(sw1==0)scan_k1();看這兩句,你一開始定義的時(shí)候sw1=1;這個(gè)時(shí)候如果你不按鍵,set是一直等于1的,他就不會(huì)執(zhí)行scan_k1();語句的,知道你按下按鍵后才支持,這個(gè)時(shí)候switch里面的set才會(huì)改變,才會(huì)執(zhí)行相應(yīng)的case的。

太強(qiáng)大了,51很久沒有玩了。

應(yīng)該是初始值設(shè)置的問題。

0
回復(fù)
770223835
LV.1
6
2012-07-12 22:07

很久沒看程序了,不好意思,你的程序我沒看。

不過我記得,按鍵有抖動(dòng),要加延時(shí)。找一下這個(gè):新概念51單片機(jī)C語言教程.入門、提高、開發(fā).pdf,因?yàn)樘罅怂园l(fā)不了附件

0
回復(fù)
發(fā)