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

QQ登錄

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

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

單片機(jī)LED發(fā)送數(shù)據(jù)程序怎么理解?cmd<<=1什么意思

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
怎么理解,求大神指點(diǎn),特別是cmd<<=1什么意思

屏幕截圖(83).png (425.51 KB, 下載次數(shù): 72)

屏幕截圖(83).png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:687694 發(fā)表于 2020-3-12 23:02 | 只看該作者
本帖最后由 lovexulu 于 2020-3-13 11:42 編輯

左移一位,單片機(jī)中所有發(fā)送串口數(shù)據(jù),都是1位1位發(fā)的,一個(gè)字節(jié)就是8位,例如cmd= 0000 1000 ,按照你上面的程序運(yùn)行過(guò)程如下:
進(jìn)入for循環(huán)中開(kāi)始:temp被定義為char類型8位數(shù)據(jù)它被賦值0000 1000&0x80,0x80是十六進(jìn)制數(shù),寫(xiě)做2進(jìn)制就是1000 0000 那么它與0000 1000進(jìn)行運(yùn)算即相同為位置同為1結(jié)果才為1.所以temp=0000 0000 ,接著進(jìn)行判斷 temp顯然等于0.結(jié)果執(zhí)行了LCD_SDA=0,這樣在數(shù)據(jù)線上就發(fā)送過(guò)去一個(gè)0,然后cmd<<1,結(jié)果cmd=0001 0000,循環(huán),又發(fā)一個(gè)0,再移位(0010 0000),如此循環(huán)到(1000 0000)時(shí),&0x80的結(jié)果變?yōu)?1000 0000,此時(shí)temp!=0,執(zhí)行LCD_SDA=1,這樣數(shù)據(jù)線上發(fā)功過(guò)去一個(gè)1,移位后 cmd= 0000 0000,如此循環(huán)8次,將 0000 1000 依次體現(xiàn)在數(shù)據(jù)線上,即發(fā)送過(guò)去8位數(shù)據(jù),就是1字節(jié)數(shù)據(jù)。
回復(fù)

使用道具 舉報(bào)

板凳
ID:235200 發(fā)表于 2020-3-12 23:18 | 只看該作者
cmd<<=1;是cmd=cmd<<1;的另一種寫(xiě)法,即把cmd中的數(shù)據(jù)左移1位后再存入
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表