999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Mixly開源項目設計28:秒懂74HC595移位寄存器(三)

2018-11-23 06:32:04隋杰峰
中國信息技術教育 2018年21期
關鍵詞:程序

隋杰峰

在秒懂74HC595移位寄存器(一)的最后,我們提到,我們輸入的數值盡量不要超過255,0到255這總共256個數值就已經能全部體現出8個LED燈亮滅的所有情形。

如果我們一定要輸入一個大于255的數值可不可以呢?接下來,我們就實驗一下。

需要的元件(如下表)

輸入一個大于255的數值會發生什么

電路連接(沿用上兩期的電路圖)如圖1所示。

檢查電路連接沒有錯誤后,我們開始編寫程序,回到上面的問題——我們輸入一個大于255的數值會發生什么,如我們輸入259,程序如圖2所示。上傳程序后,結果如圖3所示。

從運行結果可以看出,輸入數值259,程序的運行結果和輸入數值3是一樣的,我們將259轉換為二進制數為100000011,這是個9位的二進制數,已經超出了8位,實際上,這時候只有右面的8位,即00000011,能進入移位寄存器,所以Q6和Q7兩個腳連的LED是亮的。

同樣,程序改為高位先入,也是右面的8位(00000011),能進入移位寄存器,這時是左邊高位的0開始進入,所以最終Q0和Q1連的LED(左邊的2個LED)是亮的,也就是說,最高位的1始終進不了移位寄存器,所以無論我們輸入的數值有多大(也不要無限大),將它轉換為二進制,進入移位寄存器的始終是從最低位開始的8位(最右邊的8位)。為什么會這樣呢?這是因為shiftOut()函數(在Mixly就是我們用的這個shiftOut模塊)一次只能送一個位元組(概念請參考下面的注釋),所以程序4,我們只用了一個shiftOut模塊,因此也只能向移位寄存器里送一個位元組,從結果來看,送往移位寄存器的位元組只能是從二進制最低位開始的8位。

注:位元組一般指字節,字節(Byte)是計算機信息技術用于計量存儲容量的一種計量單位,通常情況下一字節等于有8位。(這是來自百度百科的解釋)

位元組是計算機的一個記憶單元。位元是電腦最小的記憶單元,一個位元只能儲存0或1的資料,將8個位元組合起來稱為位元組。(這是來自互動百科的解釋)

如果我們一定要讓二進制100000011最高位的這個1進入移位寄存器,需要怎么辦呢?

這就需要將它加0補足16位,即0000000100000011,然后,把它拆分成2個位元組即00000001(高位元組)和00000011(低位元組),第一次shiftOut,讓00000011進入移位寄存器,然后再一次shiftOut,讓00000001進入移位寄存器,之前進入移位寄存器的數據00000011,就會丟失(不是一個一個丟失,是整個8位一起丟失,這很關鍵),這樣我們就會發現,只有一個LED亮了(如果是低位先入,Q7連的LED會亮,如圖4所示)。當然,如果再級聯一片74HC595,之前的數據會通過Q7S進入級聯的這片74HC595,這就是74HC595串行輸出的功能。

兩片74HC595級聯

通過上面的案例,我們知道74HC595有串行輸出的功能,也就是串行輸出引腳Q7S接下一片74HC595的DS,將兩片74HC595的SH和ST連在一起,即兩者共用一個串行時鐘輸入和鎖存,這就是74HC595的級聯,通過兩片74HC595的級聯,我們可以只用UNO的3個管腳即可控制16個LED的亮滅,下面我們就通過一個實驗來了解一下兩片74HC595級聯。電路連接如圖5所示。

電路連接沒有問題,我們就來設計一下輸入259的程序,在上面的分析中,我們知道259轉換為二進制100000011,這是個9位的二進制數,而每次shiftOut只能將低位的8位二進制送入移位寄存器(這里是00000011),所以,需要將它補足16位,即0000000100000011,然后,把它拆分成2個位元組即00000001(高位元組)和00000011(低位元組),分兩次shiftOut,將它們送入移位寄存器,第一次shiftOut送入的是00000011(低位元組),由于我們采用了級聯,第二次shiftOut后,00000011(低位元組)會從第一片74HC595的Q7S串行輸出后進入第二片74HC595,00000001(高位元組)則被送入第一片74HC595。

但我們在Mixly中沒有找到把一個數字拆分成2個位元組的模塊,在這里,我們采用了移位的辦法(上期最后一個流水燈程序采用的就是移位)。由于shiftOut只能將低位的8位二進制送入移位寄存器,所以低位元組可以直接進入移位寄存器,不存在問題。關鍵在于高位元組,我們可以讓輸入的數值向右移(低位方向,符號>>)8位,低位元組的數據將會移出而永遠丟失,高位元組右移后將成為新的低位元組,新的高位元組將補0。我們還是以259為例,0000000100000011右移8位后,00000011直接丟失,00000001成為低位元組,左邊缺少的高位元組通過0補充,即右移的結果為0000000000000001。由此,我們可以設計如圖6所示的程序。上傳程序后,結果如圖7所示,與理論上的結果一致。

設計16位二進制計數器

電路連接與上面相同,程序設計如圖8所示。這個程序需要注意的是,16位二進制最大的數位1111111111111111,即十進制的65535,因此,變量i的取值范圍為0-65535。

設計16位流水燈

如同上期的8位流水燈程序,用數組的16位流水燈程序比較容易設計,這里就不再提供,感興趣的小伙伴可以自行設計。下面,我們依然采用移位的方式設計程序,如圖9所示。同樣,通過改變需要移位的數值(上面移位的是1),也可以設計出更多的流水燈效果。

在本期的內容中,我們僅用了UNO的3個管腳就控制了16個LED,通過74HC595或者多片74HC595級聯,僅需要少量管腳就可控制更多輸出,可以大大節省UNO的管腳使用數量,這對于設計更多功能的作品,非常有利。

實際上,74HC595的用途非常廣泛,如通過它驅動7段數碼管、4位數碼管、8×8點陣LED燈,也可以通過它控制更多的LED,制作出效果更炫的流水燈,也可以制作光立方等,至于它的更多的用途,還需要感興趣的小伙伴們自己去開發。

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 成年人福利视频| 国产第八页| 国产欧美日韩18| 亚洲欧美在线综合图区| 精品自拍视频在线观看| 日本道中文字幕久久一区| 欧美不卡视频在线| 亚洲视频无码| 国产99在线| 91精选国产大片| 国产区人妖精品人妖精品视频| 色噜噜狠狠狠综合曰曰曰| 91福利片| 亚洲精品va| 国产精品福利导航| 91无码网站| 天天做天天爱夜夜爽毛片毛片| 欧美日韩在线国产| 天天爽免费视频| 国产精品无码在线看| 国产欧美精品一区二区| 色综合a怡红院怡红院首页| 91久久偷偷做嫩草影院电| 青青青亚洲精品国产| 成人精品视频一区二区在线| 国产麻豆精品手机在线观看| a毛片基地免费大全| 毛片基地美国正在播放亚洲 | 亚洲免费人成影院| 精品欧美一区二区三区久久久| 波多野结衣一区二区三区88| 亚洲福利视频网址| 成人综合久久综合| 精品亚洲国产成人AV| 日韩人妻无码制服丝袜视频| 精品撒尿视频一区二区三区| 亚洲第一天堂无码专区| 国产精品黄色片| 91精品国产91欠久久久久| 国产精品xxx| 不卡国产视频第一页| 亚洲二三区| 欧美亚洲国产精品久久蜜芽| 重口调教一区二区视频| 国产高清毛片| 精品国产成人高清在线| 国产又粗又猛又爽| h视频在线观看网站| 国产区在线看| 欧美天堂在线| 国产男女XX00免费观看| 亚洲午夜天堂| 亚洲无卡视频| 日韩天堂在线观看| 欧美第二区| 久久久久无码精品国产免费| 国产免费人成视频网| 呦女精品网站| 热99re99首页精品亚洲五月天| 午夜国产大片免费观看| 久草视频一区| 午夜一级做a爰片久久毛片| 欧美日韩国产成人高清视频| 国产精品视频观看裸模| 成人免费午夜视频| 在线国产综合一区二区三区 | 成人在线第一页| 国产97区一区二区三区无码| 国产AV毛片| 久久国产精品电影| 国产永久免费视频m3u8| 青草精品视频| 欧洲亚洲一区| 五月激情婷婷综合| 国产精品密蕾丝视频| 她的性爱视频| 精品久久久久无码| 97成人在线视频| 日韩国产无码一区| 日韩av在线直播| 98精品全国免费观看视频| 午夜少妇精品视频小电影|