99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

想做一個流水燈,但是就是出不來效果,代碼寫的不對嗎?

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

1-2

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

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

介個是我想要的結果

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

#include

unsigned int i;

unsigned int j;

void main()

{

P1=~(1<

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

if(i=8)

{

i=0;

}

}

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

 

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

重新改了一下

#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
回復
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;}}}
程序看懂了,就是有一個問題,感覺a=(a>>1)&0x7F跟a=(a>>1)應該是相等吧?可是把位或去掉為什么數碼管逐個亮起,然后一直亮了呢?
0
回復
backin
LV.4
15
2014-02-24 16:00
@backin
程序看懂了,就是有一個問題,感覺a=(a>>1)&0x7F跟a=(a>>1)應該是相等吧?可是把位或去掉為什么數碼管逐個亮起,然后一直亮了呢?

還是沒搞明白這個點啊

0
回復
金魚1
LV.3
16
2014-02-24 16:01
@backin
還是沒搞明白這個點啊
我知道了,這是一個有符號和無符號的區別,看看a的定義,加上unsigned
0
回復
金魚1
LV.3
17
2014-02-24 16:01
@金魚1
我知道了,這是一個有符號和無符號的區別,看看a的定義,加上unsigned
因為在有符號數右移時,低位移出,各個位依次右移,最高位(符號位)保持不變
0
回復
backin
LV.4
18
2014-02-24 16:02
@金魚1
我知道了,這是一個有符號和無符號的區別,看看a的定義,加上unsigned
原來是這樣啊,懂了~謝謝

 

0
回復
金魚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
回復
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);}
又想了了想還是不對啊,比如一開始a=0x80經a=(a>>1)&0x7f,后a應該是0x40,下一次循環應該是0x20,要是最高位保留就應該是a=0x80,a=0xc0,a=0xa0
0
回復
金魚1
LV.3
21
2014-02-24 16:05
@backin
又想了了想還是不對啊,比如一開始a=0x80經a=(a>>1)&0x7f,后a應該是0x40,下一次循環應該是0x20,要是最高位保留就應該是a=0x80,a=0xc0,a=0xa0
的目的就是去除最高位啊,如果不加&,那么就是0xc0,0xe0,0xf0

 

0
回復
金魚1
LV.3
22
2014-02-24 16:06
@backin
介個是我想要的結果[圖片]
因為每次右移后都把值賦給了a。這段代碼實際上也就等同于a=((a>>1)+0x80)&0x7f
0
回復
backin
LV.4
23
2014-02-24 16:07
@金魚1
因為每次右移后都把值賦給了a。這段代碼實際上也就等同于a=((a>>1)+0x80)&0x7f
也就是說,這一句其實可以把a一開始定義為unsigned char 型,然后就可以把后面的位或去掉?
0
回復
金魚1
LV.3
24
2014-02-24 16:08
@backin
也就是說,這一句其實可以把a一開始定義為unsignedchar型,然后就可以把后面的位或去掉?
沒錯
0
回復
backin
LV.4
25
2014-02-24 16:09
@金魚1
沒錯

懂了,謝謝

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

    函數 rightrot(x,n) 返回將x循環右移(即從最右端移出的位將從最左端移入)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;

}

這是我給你的函數 你可以輸入X初值 然后 想移動幾位就改變n的值就可以了

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

初挑戰啊,見諒

0
回復
backin
LV.4
31
2014-02-24 16:14
@matou
不是有個循環位右移么unsignedcharLED,LED=0xfe;P1=LED;LED=_crol_(LED,1)這樣就漸變多了
這就是一個流水燈啊
0
回復
主站蜘蛛池模板: 久久精品欧美一区二区三区不卡 | 全免费A级毛片免费看无码播放 | 亚洲欧洲一区二区三区在线 | 国产一区二区三区四区成男人 | 日韩欧美成人一区二区三区 | 8x8x国产精品 | 国产精品久久午夜 | 久久精品国产亚洲A∨麻豆 日本在线看片免费人成视频 | 97色se| 亚洲欭美日韩颜射在线二 | 亚洲a久久 | 成人无码午夜在线观看 | 国产精品民宅偷窥盗摄 | 伊人久久大香线蕉AV五月天宝贝 | 欧美日韩免费一区二区 | 国产精品美女WWW爽爽爽视频 | 一区三区在线观看 | 4438成人网| 国产对白女主播勾搭野战在线 | 操操网址 | 国产一区免费在线观看 | 97se亚洲国产一区二区三区 | 好深好湿好硬顶到了好爽 | gogogo高清在线观看中文 | 国产在线乱码一区二三区 | 国产亚洲精品A在线看 | av在线免费观看中文字幕 | 欧美日韩中文字幕一区二区高清 | 狠狠色狠狠色很很综合很久久 | 大肉大捧一进一出好爽 | 日本无人区码suv | 亚洲AV成人一区二区三区AV | 激情综合网五月激情 | 在线视频你懂 | 91av一二三区 | 久草在线资源总站 | 国产1区视频 | 美国产一级片 | 亚洲激情小视频 | 国产精品扒开腿做爽爽爽视频 | 国产成人午夜性a一级毛片 涩涩久久久 |