久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11434|回復(fù): 31
打印 上一主題 下一主題
收起左側(cè)

為什么單片機(jī)流水燈這樣寫,只能亮4個LED。我要亮8個燈

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:427818 發(fā)表于 2018-11-16 16:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
        while(1)
        {
           led = 0x01;
           delay(50000);
           led = 0x02;
           delay(50000);
           led = 0x03;
           delay(50000);
           led = 0x04;
           delay(50000);
           led = 0x11;
           delay(50000);
           led = 0x12;
           delay(50000);
           led = 0x13;
           delay(50000);
           led = 0x14;
           delay(50000);
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:155507 發(fā)表于 2018-11-16 17:07 | 只看該作者
給你改了一下試試。

        while(1)
        {
           led = 0x01;
           delay(50000);
           led = 0x02;
           delay(50000);
           led = 0x04;
           delay(50000);
           led = 0x08;
           delay(50000);
           led = 0x10;
           delay(50000);
           led = 0x20;
           delay(50000);
           led = 0x40;
           delay(50000);
           led = 0x80;
           delay(50000);



回復(fù)

使用道具 舉報

板凳
ID:427831 發(fā)表于 2018-11-16 17:14 | 只看該作者
led是8位IO口嗎?沒太看懂你的代碼
回復(fù)

使用道具 舉報

地板
ID:295874 發(fā)表于 2018-11-16 17:22 | 只看該作者
你目前的位操作就只操作到了四個IO口,所以。。。。。。
回復(fù)

使用道具 舉報

5#
ID:379730 發(fā)表于 2018-11-16 17:29 | 只看該作者
本帖最后由 MMU_FS 于 2018-11-16 17:37 編輯

這樣是不對的,要按十六進(jìn)制來,假設(shè)led映射的P0,應(yīng)該這樣寫uint8_t temp = 0x01 , i = 0;
led = temp;

while(1)
{      temp = 0x01;
    for(i = 0 ; i < 8 ;  i ++)
    {
        led =(temp << 1) | temp;
        delay(50000);
    }
    temp = 0x7F;
    for(i = 0 ; i < 8 ;  i ++)
    {
l        ed =(temp >> 1) & temp;
        delay(50000);
    }

}
         


回復(fù)

使用道具 舉報

6#
ID:427839 發(fā)表于 2018-11-16 17:42 | 只看該作者
你的數(shù)值都不對,一個是8421,8421.
回復(fù)

使用道具 舉報

7#
ID:423511 發(fā)表于 2018-11-16 17:49 | 只看該作者
把led后邊的數(shù)改為:0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80。試一下。
回復(fù)

使用道具 舉報

8#
ID:389298 發(fā)表于 2018-11-16 18:10 | 只看該作者
有沒有圖
回復(fù)

使用道具 舉報

9#
ID:63351 發(fā)表于 2018-11-16 18:48 | 只看該作者
你是要做流水燈呢還是,讓8個常亮呢?  我默認(rèn)你的led是低電平有效的, 如果是8個燈常亮,led = 0x00;  如果要依次點(diǎn)亮8個燈,你可以采用循環(huán)語句 led=0xff ;for(i=0;i<8; i++){led &= (0xfe<<i);  delay(50000); }
回復(fù)

使用道具 舉報

10#
ID:427818 發(fā)表于 2018-11-16 22:10 | 只看該作者
我就是想用最原始的方法試試,才開始學(xué)不久。各位大神的我都試試再說哈
回復(fù)

使用道具 舉報

11#
ID:427818 發(fā)表于 2018-11-16 22:17 | 只看該作者
angmall 發(fā)表于 2018-11-16 17:07
給你改了一下試試。

        while(1)

大神,我的為什么程序出現(xiàn)了什么問題呢?
回復(fù)

使用道具 舉報

12#
ID:427818 發(fā)表于 2018-11-16 22:18 | 只看該作者
kr123crg 發(fā)表于 2018-11-16 17:14
led是8位IO口嗎?沒太看懂你的代碼

是8位的IO
回復(fù)

使用道具 舉報

13#
ID:427818 發(fā)表于 2018-11-16 22:18 | 只看該作者
liyongan_1985 發(fā)表于 2018-11-16 17:22
你目前的位操作就只操作到了四個IO口,所以。。。。。。

的確是這樣,為什么呢?出錯在那呢?
回復(fù)

使用道具 舉報

14#
ID:410399 發(fā)表于 2018-11-17 08:32 | 只看該作者
0x01  ->  0000 0001
0x02  ->  0000 0010
0x03  ->  0000 0011
0x04  ->  0000 0100
0x11  ->  0000 1011
0x12  ->  0000 1100
0x13  ->  0000 1101
0x14  ->  0000 1110
你的是低電平有效還是高電平有效,怎么流水燈法,沒明白。
你程序?qū)?yīng)2進(jìn)制是這樣,對應(yīng)輸出,最多就控制了4位LED
回復(fù)

使用道具 舉報

15#
ID:427818 發(fā)表于 2018-11-17 16:14 | 只看該作者
mosqu 發(fā)表于 2018-11-17 08:32
0x01  ->  0000 0001
0x02  ->  0000 0010
0x03  ->  0000 0011

噢噢,明白了
回復(fù)

使用道具 舉報

16#
ID:392042 發(fā)表于 2018-11-17 17:43 | 只看該作者
這個和iIO的定義有關(guān)系
回復(fù)

使用道具 舉報

17#
ID:428347 發(fā)表于 2018-11-17 19:05 | 只看該作者
十六進(jìn)制有abcdef的才能控制到高4位,肯定不能控制8個
回復(fù)

使用道具 舉報

18#
ID:300347 發(fā)表于 2018-11-17 23:08 | 只看該作者
你可以使用51里的移位函數(shù),只要讓一個IO口的燈亮,接下來對這個IO口進(jìn)行位移
回復(fù)

使用道具 舉報

19#
ID:428719 發(fā)表于 2018-11-18 15:44 | 只看該作者
改成0xff試試
回復(fù)

使用道具 舉報

20#
ID:428557 發(fā)表于 2018-11-18 20:24 | 只看該作者
如果樓主的LED燈共陰的話
回復(fù)

使用道具 舉報

21#
ID:428557 發(fā)表于 2018-11-18 20:27 | 只看該作者
如果樓主LED共陰的話while(1)         {            led = 0x01;            delay(50000);            led = 0x02;            delay(50000);            led = 0x04;            delay(50000);            led = 0x08;            delay(50000);            led = 0x10;            delay(50000);            led = 0x20;            delay(50000);            led = 0x40;            delay(50000);            led = 0x80;            delay(50000);如果共陽的話while(1)         {            led = 0x01;            delay(50000);            led = 0x02;            delay(50000);            led = 0x04;            delay(50000);            led = 0x08;            delay(50000);            led = 0xfe;            delay(50000);            led = 0xfd;            delay(50000);            led = 0xfb;            delay(50000);            led = 0xf7;            delay(50000);
回復(fù)

使用道具 舉報

22#
ID:422467 發(fā)表于 2018-11-19 16:15 | 只看該作者
8421,8421
回復(fù)

使用道具 舉報

23#
ID:407083 發(fā)表于 2018-11-19 18:38 | 只看該作者
你LED賦值不對,當(dāng)然不能亮8個啊
回復(fù)

使用道具 舉報

24#
ID:429435 發(fā)表于 2018-11-19 19:50 | 只看該作者
#include<reg52.h> #define uint unsigned int #define uchar unsigned char uint i,j,z,; uchar a; void main(){ a=0xfe; for(z=0;z<8;z++){ P1=a; a=~a; a=a<<1; a=~a; for(i=150;i>0;i--) for(j=110;j>0;j--);  } }這樣也可以
回復(fù)

使用道具 舉報

25#
ID:255398 發(fā)表于 2018-11-20 09:28 | 只看該作者
你的電路圖?是高電平,還是 低電平點(diǎn)亮?把你的賦值寫成16進(jìn)制,就明白為何只亮四個燈了。
回復(fù)

使用道具 舉報

26#
ID:255398 發(fā)表于 2018-11-20 09:49 | 只看該作者
先弄清楚16進(jìn)制與二進(jìn)制的關(guān)系,你知道只亮四個燈了
回復(fù)

使用道具 舉報

27#
ID:168851 發(fā)表于 2018-11-20 10:55 | 只看該作者
你的程序只是動作了4個IO口,具體的可以看看這個哈,你需要將十六進(jìn)制轉(zhuǎn)換為二進(jìn)制,轉(zhuǎn)換后如下(8421轉(zhuǎn)換哈)
0x01 --> 0000 0001 --->只亮最后1個燈珠
0x02 --> 0000 0010 --->只亮倒數(shù)第2個燈珠
0x03 --> 0000 0011 --->只亮最后2個燈珠
0x04 --> 0000 0100 --->只亮倒數(shù)第3個燈珠
0x11 --> 0001 0001 --->只亮第4個和第8個燈珠
0x12 --> 0001 0010 --->只亮第4個和第7個燈珠
0x13 --> 0001 0011 --->只亮第4個、第7個和第8個燈珠
0x14 --> 0001 0100 --->只亮第4個和第6個燈珠
你仔細(xì)觀察哈,其中1就是你變換的位,所以你整個過程總共就只變換了4位,即4個LED燈點(diǎn)亮(主要是第4顆、第6顆、第7顆、第8顆,這幾顆燈珠),所以你應(yīng)該是高電平點(diǎn)亮LED燈珠。
最后給你個建議,可以看看郭天祥的單片機(jī)視頻教程,講得比較好,聽了就懂了哈
回復(fù)

使用道具 舉報

28#
ID:429759 發(fā)表于 2018-11-20 11:07 | 只看該作者
需要控制到高4位
回復(fù)

使用道具 舉報

29#
ID:429813 發(fā)表于 2018-11-20 12:46 | 只看該作者

十六進(jìn)制有abcdef的才能控制到高4位,肯定不能控制8個
回復(fù)

使用道具 舉報

30#
ID:432415 發(fā)表于 2018-11-24 16:04 | 只看該作者
你這個管腳是不是定義的有問題
回復(fù)

使用道具 舉報

31#
ID:910589 發(fā)表于 2021-4-22 22:46 | 只看該作者
xqj777 發(fā)表于 2018-11-16 18:48
你是要做流水燈呢還是,讓8個常亮呢?  我默認(rèn)你的led是低電平有效的, 如果是8個燈常亮,led = 0x00;  如 ...

你好,試了一下你的流水燈的程序,只有前7個LED會工作,最后一個一直不亮。還有用了幾個其他的流水燈的實(shí)驗也是這樣的情況。不知道是為什么?請問您知道嗎?求解答
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区二区三区精品 | 黄色成人在线观看 | 久久久黄色 | 免费国产网站 | 精品福利在线 | 国产精品极品美女在线观看免费 | 午夜视频在线免费观看 | 久久中文字幕一区 | 亚洲欧美在线观看 | 久久91av | 亚洲综合电影 | 全免费a级毛片免费看视频免 | 国产乱码精品一品二品 | 日韩国产专区 | av网站在线播放 | 欧美日韩成人 | 中文字幕一区二区在线观看 | 毛片在线免费播放 | 国产日韩欧美中文 | 中文在线播放 | 男人的天堂亚洲 | wwwxx在线观看 | 永久精品 | av日韩在线播放 | 久久久久亚洲精品 | 国产日韩久久 | 久久久久国产一区二区三区四区 | 免费观看www | 天天曰天天干 | 久久国产精品99久久久久久丝袜 | 精品欧美一区二区三区免费观看 | 国产亚洲第一页 | 欧美在线看片 | 一区二区三区在线免费观看 | 91久久精品国产 | 放个毛片看看 | 日韩图区 | 国产三级电影网站 | 欧美日韩高清免费 | 日韩一二区 | 香蕉视频在线播放 |