欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3882|回復: 7
收起左側

單片機驅動74hc595程序問題,想不明白

[復制鏈接]
ID:425921 發表于 2018-11-22 21:18 來自觸屏版 | 顯示全部樓層 |閱讀模式
如圖所示:i=0X14;  就是00010100, 然后用了ser=i>>7; 右移后i應該等于00000000才對,然后i<<1; for循環移位寄存器應該接收的也是00000000才對, 最后595輸出的是00000000才對。一個燈都不亮。為啥圖片上的程序反而成功運行了!成功點亮第4排和第6排的燈!想不明白!
IMG_20181122_210442.jpg
IMG_20181122_210426.jpg
回復

使用道具 舉報

ID:111517 發表于 2018-11-22 22:58 | 顯示全部樓層
i>>7是在編譯器里面是先拷貝了一個I ,然后把這個拷貝的I右移的7位,最后把這個變動的值給了ser,而原來的i并沒有變化,那么在I<<1位后則變成0010 1000,那么則是第4位和第6位亮嘍
回復

使用道具 舉報

ID:396960 發表于 2018-11-23 09:27 | 顯示全部樓層
你是不是忘了“ i = ser;”???
因為沒有“ i = ser ;” 現在程序是 i=0x14; i<<=1; ( i = 0x28 , 即0010 1000,是不是4、6排亮??)
回復

使用道具 舉報

ID:425921 發表于 2018-11-23 11:02 來自觸屏版 | 顯示全部樓層
滄浪 發表于 2018-11-22 22:58
i>>7是在編譯器里面是先拷貝了一個I ,然后把這個拷貝的I右移的7位,最后把這個變動的值給了ser,而原來的i ...

有一點點明白了,不過為什么要用set=i>>7,直接用ser=i不可以嗎?直接用set=i不正好74h595的ser不就直接接收00010100的左邊第一個0嗎?第二次循環00101000的第二位,這樣依次循環。
回復

使用道具 舉報

ID:425921 發表于 2018-11-23 11:04 來自觸屏版 | 顯示全部樓層
phang 發表于 2018-11-23 09:27
你是不是忘了“ i = ser;”???
因為沒有“ i = ser ;” 現在程序是 i=0x14; i

ser是接收字節00010100的最高位,還是只能接收一個位?
回復

使用道具 舉報

ID:111517 發表于 2018-11-23 12:35 | 顯示全部樓層
a66301208a 發表于 2018-11-23 11:04
ser是接收字節00010100的最高位,還是只能接收一個位?

ser應該是一個io口吧,他只能能接收一個比特位
回復

使用道具 舉報

ID:111517 發表于 2018-11-23 12:37 | 顯示全部樓層
a66301208a 發表于 2018-11-23 11:02
有一點點明白了,不過為什么要用set=i>>7,直接用ser=i不可以嗎?直接用set=i不正好74h595的ser不就直接接 ...

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

使用道具 舉報

ID:425921 發表于 2018-11-23 16:00 來自觸屏版 | 顯示全部樓層
滄浪 發表于 2018-11-23 12:35
ser應該是一個io口吧,他只能能接收一個比特位

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表