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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1476|回復(fù): 4
收起左側(cè)

很久才整明白的單片機(jī)C語(yǔ)言語(yǔ)句

[復(fù)制鏈接]
ID:299910 發(fā)表于 2025-2-14 09:34 | 顯示全部樓層 |閱讀模式
unsigned char a;

  //a=0;
port_mode();              // 將單片機(jī)所有端口配置為準(zhǔn)雙向弱上拉方式

        while(1)      

        {

                P0 =~(1<<a++);                  // 第一次運(yùn)行時(shí) 0000 0001<< 0 = 0000 0001

                //a++;

                //P0=~(1<<a);

                //a++;

           if (a==0x08)          // 允許左移8次。

                {

                        a=0;

                }

        }

這是一個(gè)流水燈的程序,其中P0 =~(1<<a++);這條語(yǔ)句我看了很久才弄明白。

1.困惑的是運(yùn)算順序 a應(yīng)該先++,還是應(yīng)該先位移?

通過(guò)語(yǔ)句分解和實(shí)驗(yàn)證明a是先進(jìn)行左移運(yùn)算,后進(jìn)行自加運(yùn)算的。

如果a先進(jìn)行自加運(yùn)算P0.0這個(gè)燈會(huì)一直不亮。被拋棄了。至于為什么會(huì)被拋棄,我在思考的這個(gè)階段還沒(méi)特別明白,能想到的就是那一位被拋棄了。

2.其次是1<<a,這條語(yǔ)句我一直理解為a左移了1位,其實(shí)是1左移了a位。弄明白這個(gè)語(yǔ)句就不難理解為什么P0.0會(huì)被拋棄了。a先自加1,a==1,1左移1位=0000 0010,再取反=1111 1101,P0.0位一直會(huì)是1(低電平導(dǎo)通),所以P0.0一直不亮。

3.為什么沒(méi)有對(duì)a進(jìn)行賦初值,那初值會(huì)是多少?是0嗎?

經(jīng)測(cè)試a的初值可以是0。但是a賦值大于8的時(shí)候燈就不會(huì)亮,因?yàn)閕f (a==0x08)時(shí)a=0,這里改成a> =0x08,a就可以是大于8的值。可是原程序a==0x08,a不賦初值也都可以運(yùn)行,那a是怎么保證不大于8的?

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:353115 發(fā)表于 2025-2-15 14:39 | 顯示全部樓層
1、你的C語(yǔ)言需要加強(qiáng)。你可以去看一下C語(yǔ)言的運(yùn)算符優(yōu)先級(jí)。可以看到++是高于位移運(yùn)算符的,只不過(guò)a++這種運(yùn)算,它要求先參與運(yùn)算,后進(jìn)行自加。
2、程序直接初始化P0=~0x01。在循環(huán)中P0 = P0<<1|P0>>7。這樣就可以循環(huán)移動(dòng)了。比你添加一個(gè)變量a要清爽得多。
3、變量若被使用必須先初始化,這是個(gè)規(guī)范。
回復(fù)

使用道具 舉報(bào)

ID:299910 發(fā)表于 2025-2-18 14:46 | 顯示全部樓層
qsssuv 發(fā)表于 2025-2-15 14:39
1、你的C語(yǔ)言需要加強(qiáng)。你可以去看一下C語(yǔ)言的運(yùn)算符優(yōu)先級(jí)。可以看到++是高于位移運(yùn)算符的,只不過(guò)a++這種 ...

感謝大神指點(diǎn),基礎(chǔ)知識(shí)的確差的很,需要從頭開(kāi)始,好好學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

ID:1110477 發(fā)表于 2025-3-28 04:59 | 顯示全部樓層
jackduan2018 發(fā)表于 2025-2-18 14:46
感謝大神指點(diǎn),基礎(chǔ)知識(shí)的確差的很,需要從頭開(kāi)始,好好學(xué)習(xí)。

對(duì)對(duì)對(duì),a++是a的現(xiàn)在的值,先參與左邊的運(yùn)算,然后再自增。好像有個(gè)左結(jié)合右結(jié)合的說(shuō)法
回復(fù)

使用道具 舉報(bào)

ID:1110477 發(fā)表于 2025-3-28 05:06 | 顯示全部樓層
jackduan2018 發(fā)表于 2025-2-18 14:46
感謝大神指點(diǎn),基礎(chǔ)知識(shí)的確差的很,需要從頭開(kāi)始,好好學(xué)習(xí)。

他的第一條對(duì),后兩條也對(duì),但是太古板了,C語(yǔ)言是技巧的藝術(shù)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 毛片av免费在线观看 | 久久亚洲二区 | 国产精品成人一区二区三区 | 亚洲第一中文字幕 | 国产亚洲精品精品国产亚洲综合 | 超碰在线免费 | 成人高清在线视频 | 久久精品视频亚洲 | 国产精品日韩欧美一区二区三区 | 亚洲精品3 | 激情国产视频 | 国产精品揄拍一区二区久久国内亚洲精 | 精品二三区 | 久久久久九九九女人毛片 | 一区二区三区在线免费 | 国产精品欧美一区二区三区不卡 | 亚洲色图插插插 | 在线视频一区二区 | 日韩一区二区三区视频 | 久久国产精品72免费观看 | 中文字幕免费 | 激情一区二区三区 | 国产成人jvid在线播放 | 亚洲一区二区中文字幕在线观看 | 亚洲视频免费观看 | 免费日本视频 | 成人欧美一区二区三区黑人孕妇 | 成人免费视频网站在线观看 | 一区二区三区国产 | 黄网址在线观看 | 日韩免费av一区二区 | 69视频在线播放 | 最新国产精品 | 日韩精品一区二区三区久久 | 国产在线精品一区二区三区 | 91精品国产综合久久福利软件 | 天天躁日日躁狠狠躁2018小说 | 高清一区二区 | 久久精品亚洲一区二区三区浴池 | 欧美午夜精品 | 国产电影精品久久 |