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

Mixly開源項目設(shè)計26: 移位寄存器(一)——將LED點亮

2018-09-28 07:24:30隋杰峰
中國信息技術(shù)教育 2018年17期

隋杰峰

流水燈項目是我們在開源硬件學(xué)習(xí)項目中很常見的一個項目。實驗中,我們常用一個管腳控制一個LED,這樣我們做一個8位流水燈,就需要占用8個管腳,而常用的Arduino UNO R3開發(fā)板只有20個管腳,如果要做一個30位流水燈,如果依然讓一個管腳控制一個LED,那么UNO上的管腳顯然是不夠的,這時,我們應(yīng)該怎么辦呢?換成管腳更多的Mega2560嗎?同樣,如果我們要做64位流水燈,Mega2560的管腳也是不夠的,所以,我們換個角度來想,不如想辦法用少量的管腳控制多個LED,74HC595移位寄存器這個小小的芯片就能夠幫我們實現(xiàn)這種想法。

74HC595是一塊8位串行輸入、并行輸出(也可以串行輸出)的芯片,我們使用它,只需要UNO的3個管腳即可控制8個獨立的LED(如圖1)。

網(wǎng)絡(luò)上介紹74HC595的文章很多,但采用的全是代碼編程,讓很多不懂代碼的初學(xué)者望而生畏,實際上,在圖形化編程軟件Mixly中有一個模塊是與它相關(guān)的。因此,本文中將用Mixly輕松玩轉(zhuǎn)74HC595,力圖讓初學(xué)者也能秒懂。

如圖2所示,74HC595共有16只腳,下面我們就來認識一下它的各個引腳。

在74HC595芯片上有個小凹口,只要與圖上引腳的小凹口對應(yīng),即可知道它的各個引腳。

VCC和GND自不必說,分別接UNO的5V和GND即可;

Q0~Q7是并行輸出,本文中我們接8個LED;

DS、SHCP(下面簡稱SH)、STCP(下面簡稱ST)是輸入端;

DS是串行數(shù)據(jù)輸入端(一般Arduino的代碼里會定義一下引腳,74HC595的案例中,dataPin指的是接這個腳);

SH是串行時鐘輸入端(clockPin指的是接這個腳);

ST是鎖存端(latchPin指的是接這個腳);

OE是輸出使能引腳,低電平時輸出,高電平時不輸出,所以,直接接在GND上使其一直保持低電平輸出數(shù)據(jù);

MR是用來重置內(nèi)部寄存器的引腳,低電平時重置內(nèi)部寄存器,所以,直接連接在VCC上一直保持高電平;

Q7S是串行輸出(可以接下一個74HC595的DS,數(shù)據(jù)可作為串行輸入,這就是74HC595的級聯(lián),也就是說,此時3個輸入控制16個輸出),此引腳不用可以空置。

需要的元件(如下頁表所示)

電路連接

電路連接如下頁圖3所示,8個LED的負極(短腳)分別通過一個220Ω電阻與GND連接;74HC595有小凹口的一面向左,VCC接5V,VCC與GND之間接一個104電容,GND接GND;DS接管腳2,ST接管腳3,SH接管腳4,OE接GND,MR接VCC,Q7S空置。

程序設(shè)計

應(yīng)用74HC595做流水燈,在Arduino IDE中我們會用到shiftOut這個函數(shù),在Mixly中也有對應(yīng)的模塊,如圖4所示。

首先,我們通過一個程序來了解一下74HC595串行輸入、并行輸出的過程。將圖5程序上傳,我們會發(fā)現(xiàn)Q7腳接的燈是亮的,如圖6所示。

下面,我們來解釋一下這個過程:

首先,管腳3給了鎖存端(ST)一個低電平,意思是說“嗨,74HC595,開始干活了”,然后,管腳2給了數(shù)據(jù)(DS)一個十進制數(shù)1,關(guān)鍵是74HC595不認識它,所以,就需要轉(zhuǎn)換成8位的二進制數(shù)00000001,不足8位的,前面加0補足8位,為啥是8位的?因為,74HC595是8位移位寄存器,有8個輸出(如圖7)。

這時候,時鐘(SH)開始干活了,管腳4每制造一次上升沿(先拉低電平再拉高電平),這一串?dāng)?shù)就進去一個,8次之后,都進去了,每個數(shù)就都有自己的一個位置了,即每個動作只操作一位數(shù)據(jù),這就叫串行輸入(如圖8)。

至于誰先進去,進去之后,每一個數(shù)字都在哪個位置,這得看是低位先入還是高位先入,什么意思呢?我們先要弄明白低位和高位,以二進制數(shù)00000001為例,左邊0這一端是高位,右邊1這一端是低位,所以,低位先入的意思就是從最右邊的1(低位)開始依次進入,直到最左邊的0(高位)進去;高位先入的則剛好相反,從最左邊的0(高位)開始依次進入,直到最右邊的1(低位)進去。

下面我們以低位先入為例,用上大巴車做個比方:在二進制數(shù)00000001中,低位先入,給SH腳制造一次上升沿(我們可以理解為檢票),那第一個上大巴車的肯定是最右邊的1,它上去了之后,就占據(jù)了第一排的位置(如圖9)。

繼續(xù)給SH腳制造一次上升沿之后,1左邊的0,開始上車,然后,它并不是走向第二排座位,而是讓1往后挪一個,它坐第一排(如圖10)。

繼續(xù)給SH腳制造一次上升沿,已經(jīng)上車的1和0繼續(xù)往后挪,新上車的0占據(jù)第一排座位(如圖11)。

如此繼續(xù)給SH腳制造上升沿,高位的0,繼續(xù)上車,車上的數(shù)繼續(xù)往后排順延,直到發(fā)生第8次上升沿,所有的數(shù)字都上車了(如圖12)。

然后,管腳3給了鎖存端(ST)一個高電平,讓每個數(shù)都記住自己的位置,在自己的位置坐著(絕對不允許換座位)(如圖13)。

最后,每個數(shù)掌管一個輸出,即每個動作操作多位(這里是8位)數(shù)據(jù),這就是并行輸出。這樣,Q0~Q6腳都得到了一個0(低電平),Q7腳得到一個1(高電平),所以,Q0~Q6腳接的燈都是滅的,Q7腳接的燈是亮的。

同樣的道理,將數(shù)據(jù)輸入改為3,程序如圖14所示。這時候,我們把十進制數(shù)2變?yōu)?位二進制就是00000011,采用低位先入,按照我們上面的推算方法,應(yīng)該是Q6、Q7高電平,其余低電平,Q6腳和Q7腳接的LED亮,實驗結(jié)果也是如此(如圖15)。

下面,我們再看高位先入,輸入數(shù)據(jù)1,將程序繼續(xù)改動(如圖16),我們會發(fā)現(xiàn),結(jié)果正好與程序1低位先入相反。這是因為,將十進制1轉(zhuǎn)換為8位二進制為00000001,高位先入,即從左邊的0依次進入移位寄存器。最終,Q0對應(yīng)的是1,高電平,其他腳對應(yīng)的是0,低電平,所以,Q0接的LED亮,其他腳接的LED滅(如圖17)。

同樣,我們也可以繼續(xù)改變輸入的數(shù)值,設(shè)置低位先入或高位先入,控制這8個LED的亮滅,不過,我們輸入的數(shù)值盡量不要超過255。當(dāng)我們輸入255,上傳程序后,燈是全部都亮的,我們把十進制的255轉(zhuǎn)換為二進制為11111111,這已經(jīng)是8位二進制最大的數(shù)了,所以,0到255這總共256個數(shù)值就已經(jīng)能全部體現(xiàn)出8個LED亮滅的所有情形。

主站蜘蛛池模板: 国产精品自在自线免费观看| 国产不卡网| 91精品国产综合久久不国产大片| 午夜精品一区二区蜜桃| 色播五月婷婷| 国产精品久久自在自线观看| 中文字幕欧美日韩高清| 精品一区二区三区水蜜桃| 国产黄视频网站| 欧美精品亚洲二区| 中国一级毛片免费观看| 无码高潮喷水专区久久| 一级黄色欧美| 性色在线视频精品| 久久一本精品久久久ー99| 91视频国产高清| 538精品在线观看| 内射人妻无套中出无码| 亚欧成人无码AV在线播放| 日韩精品专区免费无码aⅴ| 色综合成人| 国产视频资源在线观看| 亚洲国产精品无码AV| 免费国产不卡午夜福在线观看| 国产毛片高清一级国语| 有专无码视频| 久久熟女AV| 欧美成人一区午夜福利在线| 国产91特黄特色A级毛片| 欧美一级高清免费a| 人妻21p大胆| 亚洲人成日本在线观看| 在线观看国产黄色| 日韩成人在线网站| 久久久久九九精品影院| 国产麻豆aⅴ精品无码| 国产日韩欧美视频| 99re热精品视频中文字幕不卡| 国产精品福利一区二区久久| 永久免费无码成人网站| 精品三级网站| 色哟哟国产成人精品| 色噜噜狠狠色综合网图区| 久久精品中文无码资源站| www.91中文字幕| 亚洲日韩日本中文在线| 日韩免费毛片| 国产成人精品三级| 青青草国产精品久久久久| 国产一国产一有一级毛片视频| 亚洲女人在线| 欧美a在线| 天堂亚洲网| 国产极品美女在线播放| 亚洲无线一二三四区男男| 亚洲一级无毛片无码在线免费视频| 岛国精品一区免费视频在线观看| 精品人妻一区二区三区蜜桃AⅤ | 国产流白浆视频| 国产黄在线免费观看| 亚洲日本中文字幕乱码中文 | 重口调教一区二区视频| 欧美综合在线观看| 国产精品第一区| 国产美女91呻吟求| 999精品色在线观看| 国产成人久视频免费| 久久99蜜桃精品久久久久小说| 亚洲天堂视频在线观看| 久久婷婷五月综合色一区二区| 成人字幕网视频在线观看| 日韩国产亚洲一区二区在线观看| 亚洲天堂成人在线观看| 啊嗯不日本网站| 国产女人综合久久精品视| 国产无人区一区二区三区| 啊嗯不日本网站| 欧美成a人片在线观看| 九月婷婷亚洲综合在线| 免费精品一区二区h| 色香蕉网站| 最新国产成人剧情在线播放|