欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 計數器出現的問題 [打印本頁]

作者: zh08720949    時間: 2010-3-15 10:50
標題: 計數器出現的問題

各位大哥,T0為按鍵,在51hei-5實驗板上,按鍵達到10以上后,十位沒有顯示,但有隱約的1顯示,不知程序是否出現了問題,請大哥們幫忙看下,程序如下:

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit s1=P3^4;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar num,bai,shi,ge;
void init();
void display(uchar bai,uchar shi,uchar ge);
void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);

}
void main()
{
 init();
 while(1)
 {
  if(s1==0)
  {
   delay(2);
   if(s1==0)
   {
    num++;
    if(num==100)
     num=0;
    bai=num/100;
    shi=num%100/10;
    ge=num%10;
    while(!s1);
    delay(2);
    while(!s1);

   
   
   }
    
    display(bai,shi,ge);

  }
 
 }


}
void init()
{
 num=0;
 bai=0;
 shi=0;
 ge=0;
 dula=1;
 P0=0;
 dula=0;

 wela=0;
}
void display(uchar bai,uchar shi,uchar ge)
{
 bai=num/100;
 shi=num%100/10;
 ge=num%10; 

 dula=1;
 P0=table[bai];
 dula=0;
 P0=0xff;

 
 wela=1;
 P0=0xfb;
 wela=0;
 delay(1);

 dula=1;
 P0=table[shi];
 dula=0;
 P0=0xff;
 wela=1;
 P0=0xfd;
 wela=0;
 delay(1);

 dula=1;
 P0=table[ge];
 dula=0;               
 P0=0xff;
 wela=1;
 P0=0xfe;
 wela=0;
 delay(1);


}


作者: jjide    時間: 2010-3-15 13:36
上面的程序 ,我這里的的運行情況也是,按下T0 鍵,數碼管的個位 按一次 遞增一次,十位有隱約的1顯示,高手快出來啊。
作者: admin    時間: 2010-3-15 14:23

我剛才看了半天 幫你搞定了.

原因在于    display(bai,shi,ge); 這一行  你寫錯了位置,和下面那個 } 對調一下位置就行了, 建議以后寫程序規范一點,大括號 要對其,就不會出這樣的錯誤了

[此貼子已經被作者于2010-3-15 14:28:45編輯過]

作者: 尚天的我為你    時間: 2015-6-23 18:05
試了一下,還不錯的!
作者: ZJQ小幸福    時間: 2015-7-1 07:28
尚天的我為你 發表于 2015-6-23 18:05
試了一下,還不錯的!

怎么感覺你的十位表達有問題呢




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1