性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

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

請教:"&"的問題

我剛開始學(xué)習(xí)單片機(jī),在書上看到這樣一個程序:P1.7為輸入端,接開關(guān),用P1.0,P1.1,P1.2和P1.3表示的16進(jìn)制數(shù),來記下開關(guān)被按下的次數(shù).
  可我去做了一遍,結(jié)果不對,P1口沒反應(yīng)
#include
sbit INPUT=P1^7;
sbit DIGI0=P1^0;
sbit DIGI1=P1^1;
sbit DIGI2=P1^2;
sbit DIGI3=P1^3;
main()
{
char cnt=0;
  while(1){
      INPUT=1;
  DIGI0=DIGI1=DIGI2=DIGI3=1;
  while(INPUT==1);
  INPUT=1;
  while(INPUT==0);
  cnt=(cnt+1)%16;

  DIGI0=!(cnt&0x08);        
  DIGI1=!(cnt&0x04);
  DIGI2=!(cnt&0x02);
  DIGI3=!(cnt&0x01);
}
}
感覺好像是&有點(diǎn)問題,可又找不出來,請哪位知道的老師告訴一下,非常感謝   



          }
}
全部回復(fù)(6)
正序查看
倒序查看
sgbmasm
LV.4
2
2008-03-25 09:06
while(INPUT)=1;
INPUT=1;
這里有問題,如果一開始是高電平,將在這里死循環(huán)
0
回復(fù)
2008-03-25 13:34
@sgbmasm
while(INPUT)=1;INPUT=1;這里有問題,如果一開始是高電平,將在這里死循環(huán)
沒有吧?輸入是個開關(guān)量.while(INPUT==1); 的意思是直到INPUT==0時執(zhí)行下一步,電平由高到低再到高才是一個完整的吧?
0
回復(fù)
2008-03-25 13:38
@sgbmasm
while(INPUT)=1;INPUT=1;這里有問題,如果一開始是高電平,將在這里死循環(huán)
我在KEIL里運(yùn)行時cnt的計數(shù)是對的,就是取出四個位時不對, DIGI0 DIGI1 DIGI2 DIGI3電平一直沒變化
0
回復(fù)
sgbmasm
LV.4
5
2008-03-27 18:05
@竹林清風(fēng)
我在KEIL里運(yùn)行時cnt的計數(shù)是對的,就是取出四個位時不對,DIGI0DIGI1DIGI2DIGI3電平一直沒變化
我仿真過了,不知你加沒加#include
應(yīng)該沒什么問題!
0
回復(fù)
sgbmasm
LV.4
6
2008-03-27 18:07
@竹林清風(fēng)
我在KEIL里運(yùn)行時cnt的計數(shù)是對的,就是取出四個位時不對,DIGI0DIGI1DIGI2DIGI3電平一直沒變化
你用什么觀查的?
0
回復(fù)
2008-04-01 00:08
軟件看起來是沒有問題的,不過你是仿真還是用電路測試啊?如果是做電路用輕觸開關(guān)應(yīng)該加上防抖動才行.DELAY 10MS檢測多一次低電平.
0
回復(fù)
發(fā)