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

QQ登錄

只需一步,快速開始

帖子
查看: 3664|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)驅(qū)動(dòng)74hc595程序問(wèn)題,想不明白

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:425921 發(fā)表于 2018-11-22 21:18 來(lái)自手機(jī) | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
如圖所示:i=0X14;  就是00010100, 然后用了ser=i>>7; 右移后i應(yīng)該等于00000000才對(duì),然后i<<1; for循環(huán)移位寄存器應(yīng)該接收的也是00000000才對(duì), 最后595輸出的是00000000才對(duì)。一個(gè)燈都不亮。為啥圖片上的程序反而成功運(yùn)行了!成功點(diǎn)亮第4排和第6排的燈!想不明白!

IMG_20181122_210442.jpg (68.36 KB, 下載次數(shù): 49)

IMG_20181122_210442.jpg

IMG_20181122_210426.jpg (58.54 KB, 下載次數(shù): 37)

IMG_20181122_210426.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:111517 發(fā)表于 2018-11-22 22:58 | 只看該作者
i>>7是在編譯器里面是先拷貝了一個(gè)I ,然后把這個(gè)拷貝的I右移的7位,最后把這個(gè)變動(dòng)的值給了ser,而原來(lái)的i并沒(méi)有變化,那么在I<<1位后則變成0010 1000,那么則是第4位和第6位亮嘍
回復(fù)

使用道具 舉報(bào)

板凳
ID:396960 發(fā)表于 2018-11-23 09:27 | 只看該作者
你是不是忘了“ i = ser;”???
因?yàn)闆](méi)有“ i = ser ;” 現(xiàn)在程序是 i=0x14; i<<=1; ( i = 0x28 , 即0010 1000,是不是4、6排亮??)
回復(fù)

使用道具 舉報(bào)

地板
ID:425921 發(fā)表于 2018-11-23 11:02 來(lái)自手機(jī) | 只看該作者
滄浪 發(fā)表于 2018-11-22 22:58
i>>7是在編譯器里面是先拷貝了一個(gè)I ,然后把這個(gè)拷貝的I右移的7位,最后把這個(gè)變動(dòng)的值給了ser,而原來(lái)的i ...

有一點(diǎn)點(diǎn)明白了,不過(guò)為什么要用set=i>>7,直接用ser=i不可以嗎?直接用set=i不正好74h595的ser不就直接接收00010100的左邊第一個(gè)0嗎?第二次循環(huán)00101000的第二位,這樣依次循環(huán)。
回復(fù)

使用道具 舉報(bào)

5#
ID:425921 發(fā)表于 2018-11-23 11:04 來(lái)自手機(jī) | 只看該作者
phang 發(fā)表于 2018-11-23 09:27
你是不是忘了“ i = ser;”???
因?yàn)闆](méi)有“ i = ser ;” 現(xiàn)在程序是 i=0x14; i

ser是接收字節(jié)00010100的最高位,還是只能接收一個(gè)位?
回復(fù)

使用道具 舉報(bào)

6#
ID:111517 發(fā)表于 2018-11-23 12:35 | 只看該作者
a66301208a 發(fā)表于 2018-11-23 11:04
ser是接收字節(jié)00010100的最高位,還是只能接收一個(gè)位?

ser應(yīng)該是一個(gè)io口吧,他只能能接收一個(gè)比特位
回復(fù)

使用道具 舉報(bào)

7#
ID:111517 發(fā)表于 2018-11-23 12:37 | 只看該作者
a66301208a 發(fā)表于 2018-11-23 11:02
有一點(diǎn)點(diǎn)明白了,不過(guò)為什么要用set=i>>7,直接用ser=i不可以嗎?直接用set=i不正好74h595的ser不就直接接 ...

直接用ser=I,這是把I的最低位給了ser,但是,他應(yīng)該是從I的最高位開始發(fā)送的,所以就不能直接賦值了
回復(fù)

使用道具 舉報(bào)

8#
ID:425921 發(fā)表于 2018-11-23 16:00 來(lái)自手機(jī) | 只看該作者
滄浪 發(fā)表于 2018-11-23 12:35
ser應(yīng)該是一個(gè)io口吧,他只能能接收一個(gè)比特位

set=i>>7是不是相當(dāng)于00010100 右邊的7位0010100給移走了,只剩最左邊的0位,然后把最左邊的0賦值給了ser?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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