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

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

想做一個(gè)流水燈,但是就是出不來效果,代碼寫的不對(duì)嗎?

想做一個(gè)流水燈,但是就是出不來要的那個(gè)效果,這樣寫代碼對(duì)嗎?

1-2

全部回復(fù)(36)
正序查看
倒序查看
backin
LV.4
2
2014-02-24 15:24

0
回復(fù)
backin
LV.4
3
2014-02-24 15:24
@backin
[圖片]

介個(gè)是我想要的結(jié)果

0
回復(fù)
daylight
LV.4
4
2014-02-24 15:26
@backin
介個(gè)是我想要的結(jié)果[圖片]
你這個(gè)稍微費(fèi)勁啊
0
回復(fù)
backin
LV.4
5
2014-02-24 15:28
@daylight
你這個(gè)稍微費(fèi)勁啊
求指導(dǎo)??!
0
回復(fù)
daylight
LV.4
6
2014-02-24 15:28
@backin
求指導(dǎo)??![圖片]
幫你你寫一個(gè)你試試,端口你自己修改
0
回復(fù)
stony_s
LV.3
7
2014-02-24 15:30
@backin
介個(gè)是我想要的結(jié)果[圖片]
有那么難嗎?
0
回復(fù)
daylight
LV.4
8
2014-02-24 15:31
@daylight
幫你你寫一個(gè)你試試,端口你自己修改

#include

unsigned int i;

unsigned int j;

void main()

{

P1=~(1<

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

if(i=8)

{

i=0;

}

}

你自己在試試看看行嗎?我就是隨手想了一個(gè)

 

0
回復(fù)
elio
LV.2
9
2014-02-24 15:32
@backin
介個(gè)是我想要的結(jié)果[圖片]
把你想要的弄成一個(gè)數(shù)組,直接調(diào)用數(shù)組!簡單,方便!
0
回復(fù)
daylight
LV.4
10
2014-02-24 15:33
@daylight
#includeunsignedinti;unsignedintj;voidmain(){P1=~(1
別用啊,剛試了一下不行,我寫錯(cuò)了
0
回復(fù)
backin
LV.4
11
2014-02-24 15:34
@daylight
別用啊,剛試了一下不行,我寫錯(cuò)了
沒關(guān)系啊,謝謝那么熱心
0
回復(fù)
backin
LV.4
12
2014-02-24 15:34
@elio
把你想要的弄成一個(gè)數(shù)組,直接調(diào)用數(shù)組!簡單,方便!
數(shù)組?這個(gè)還不知道怎么調(diào)用啊,C語言中的數(shù)組我知道,可是怎么應(yīng)用到這個(gè)上面來呢?
0
回復(fù)
daylight
LV.4
13
2014-02-24 15:35
@backin
沒關(guān)系啊,謝謝那么熱心

重新改了一下

#include

void delay50ms(unsigned int t)

{

unsigned char a,b;

while(t--)

{

for(b=165;b>0;b--)

for(a=150;a>0;a--);

}

}

void main(void)

{

char i,j;

char a=0x80,b;

while(1)

{

b=0x01;

P2=b;

delay50ms(10);

for(i=7;i>0;i--)

{

P2=a|b;

delay50ms(10);

for(j=i-1;j>0;j--)

{

a=(a>>1)&0x7f;

P2=a|b;

delay50ms(10);

}

b=a|b;

a=0x80;

}

}

}

0
回復(fù)
backin
LV.4
14
2014-02-24 15:36
@daylight
重新改了一下#includevoiddelay50ms(unsignedintt){unsignedchara,b;while(t--){for(b=165;b>0;b--)for(a=150;a>0;a--);}}voidmain(void){chari,j;chara=0x80,b;while(1){b=0x01;P2=b;delay50ms(10);for(i=7;i>0;i--){P2=a|b;delay50ms(10);for(j=i-1;j>0;j--){a=(a>>1)&0x7f;P2=a|b;delay50ms(10);}b=a|b;a=0x80;}}}
程序看懂了,就是有一個(gè)問題,感覺a=(a>>1)&0x7F跟a=(a>>1)應(yīng)該是相等吧?可是把位或去掉為什么數(shù)碼管逐個(gè)亮起,然后一直亮了呢?
0
回復(fù)
backin
LV.4
15
2014-02-24 16:00
@backin
程序看懂了,就是有一個(gè)問題,感覺a=(a>>1)&0x7F跟a=(a>>1)應(yīng)該是相等吧?可是把位或去掉為什么數(shù)碼管逐個(gè)亮起,然后一直亮了呢?

還是沒搞明白這個(gè)點(diǎn)啊

0
回復(fù)
金魚1
LV.3
16
2014-02-24 16:01
@backin
還是沒搞明白這個(gè)點(diǎn)啊
我知道了,這是一個(gè)有符號(hào)和無符號(hào)的區(qū)別,看看a的定義,加上unsigned
0
回復(fù)
金魚1
LV.3
17
2014-02-24 16:01
@金魚1
我知道了,這是一個(gè)有符號(hào)和無符號(hào)的區(qū)別,看看a的定義,加上unsigned
因?yàn)樵谟蟹?hào)數(shù)右移時(shí),低位移出,各個(gè)位依次右移,最高位(符號(hào)位)保持不變
0
回復(fù)
backin
LV.4
18
2014-02-24 16:02
@金魚1
我知道了,這是一個(gè)有符號(hào)和無符號(hào)的區(qū)別,看看a的定義,加上unsigned
原來是這樣啊,懂了~謝謝

 

0
回復(fù)
金魚1
LV.3
19
2014-02-24 16:03
@backin
原來是這樣啊,懂了~謝謝 
把你的程序改成這樣 void main(void){ char i,j; while(1) for(i=0,P2=1;i<7;i++) for(j=0,P2|=0x80;j<6-i;j++,P2=(0x80>>j)|(0xff>>(7-i))) delay50ms(10);}
0
回復(fù)
backin
LV.4
20
2014-02-24 16:04
@金魚1
把你的程序改成這樣voidmain(void){chari,j;while(1)for(i=0,P2=1;ij)|(0xff>>(7-i)))delay50ms(10);}
又想了了想還是不對(duì)啊,比如一開始a=0x80經(jīng)a=(a>>1)&0x7f,后a應(yīng)該是0x40,下一次循環(huán)應(yīng)該是0x20,要是最高位保留就應(yīng)該是a=0x80,a=0xc0,a=0xa0
0
回復(fù)
金魚1
LV.3
21
2014-02-24 16:05
@backin
又想了了想還是不對(duì)啊,比如一開始a=0x80經(jīng)a=(a>>1)&0x7f,后a應(yīng)該是0x40,下一次循環(huán)應(yīng)該是0x20,要是最高位保留就應(yīng)該是a=0x80,a=0xc0,a=0xa0
的目的就是去除最高位啊,如果不加&,那么就是0xc0,0xe0,0xf0

 

0
回復(fù)
金魚1
LV.3
22
2014-02-24 16:06
@backin
介個(gè)是我想要的結(jié)果[圖片]
因?yàn)槊看斡乙坪蠖及阎蒂x給了a。這段代碼實(shí)際上也就等同于a=((a>>1)+0x80)&0x7f
0
回復(fù)
backin
LV.4
23
2014-02-24 16:07
@金魚1
因?yàn)槊看斡乙坪蠖及阎蒂x給了a。這段代碼實(shí)際上也就等同于a=((a>>1)+0x80)&0x7f
也就是說,這一句其實(shí)可以把a(bǔ)一開始定義為unsigned char 型,然后就可以把后面的位或去掉?
0
回復(fù)
金魚1
LV.3
24
2014-02-24 16:08
@backin
也就是說,這一句其實(shí)可以把a(bǔ)一開始定義為unsignedchar型,然后就可以把后面的位或去掉?
沒錯(cuò)
0
回復(fù)
backin
LV.4
25
2014-02-24 16:09
@金魚1
沒錯(cuò)

懂了,謝謝

0
回復(fù)
Vurtne
LV.2
26
2014-02-24 16:09
你這樣寫程序  太繁瑣了  你自己寫的時(shí)候可能知道   別人在來讀或以后你自己讀的時(shí)候就會(huì)很麻煩  把想實(shí)現(xiàn)的功能寫成函數(shù)  然后在主函數(shù)里面調(diào)用  
0
回復(fù)
candyman
LV.2
27
2014-02-24 16:10
@backin
也就是說,這一句其實(shí)可以把a(bǔ)一開始定義為unsignedchar型,然后就可以把后面的位或去掉?
鹵煮,你代碼太亂了啊
0
回復(fù)
matou
LV.3
28
2014-02-24 16:12
不是有個(gè)循環(huán)位右移么 unsigned char LED , LED = 0xfe; P1 = LED; LED = _crol_(LED,1)這樣就漸變多了
0
回復(fù)
Vurtne
LV.2
29
2014-02-24 16:12
@Vurtne
你這樣寫程序 太繁瑣了 你自己寫的時(shí)候可能知道 別人在來讀或以后你自己讀的時(shí)候就會(huì)很麻煩 把想實(shí)現(xiàn)的功能寫成函數(shù) 然后在主函數(shù)里面調(diào)用  

    函數(shù) rightrot(x,n) 返回將x循環(huán)右移(即從最右端移出的位將從最左端移入)n(二進(jìn)制)位后得到的值。

unsigned rightrot(unsigned x, unsigned n)

{

      while (n > 0)

      {

            if ((x & 1) == 1)

                  x = (x >> 1) | ~(~0U >> 1);

            else

                  x = (x >> 1);n--;

        }

        return x;

}

這是我給你的函數(shù) 你可以輸入X初值 然后 想移動(dòng)幾位就改變n的值就可以了

0
回復(fù)
backin
LV.4
30
2014-02-24 16:13
@Vurtne
你這樣寫程序 太繁瑣了 你自己寫的時(shí)候可能知道 別人在來讀或以后你自己讀的時(shí)候就會(huì)很麻煩 把想實(shí)現(xiàn)的功能寫成函數(shù) 然后在主函數(shù)里面調(diào)用  

初挑戰(zhàn)啊,見諒

0
回復(fù)
backin
LV.4
31
2014-02-24 16:14
@matou
不是有個(gè)循環(huán)位右移么unsignedcharLED,LED=0xfe;P1=LED;LED=_crol_(LED,1)這樣就漸變多了
這就是一個(gè)流水燈啊
0
回復(fù)
發(fā)