近來看到很多新人在學習51單片機的時候,對74HC595這款芯片特別的困惑,或者換句話說,本來大家用STC89C52這個款老的掉了八次牙的芯片,驅動一個數碼管,或者驅動八個LED燈,完美的事情,結果發現很多開發板上面加了74HC595來驅動八個燈或者數碼管,從而就導致初學者很郁悶了? 不禁想問,74HC595這究竟是個什么東西,怎么搞得我連好好的八個LED燈都不會點了呢? 那么,接下來我們就馬上給大家介紹一下這款使初學者郁悶的74HC595芯片吧。 我們驅動8位LED燈來給大家介紹一下74HC595的使用方法。 1. LED作為所有單片機學習中需要完成的第一個基本功能,在MCU學習中有古老 的神燈之稱。相信大家在學習單片機時,見得最多的也是最簡單的下面這樣的LED燈電路了。像圖中這樣,不僅電路簡單,而且他的操作也很簡單,八個LED對應的IO口給相應的電平,對應的LED既可以亮或者滅。
psb.png (42.53 KB, 下載次數: 65)
下載附件
2019-3-6 12:32 上傳
但也并不見得都是這樣簡單的LED電路。有的電路會使用74HC595芯片來驅8個LED或者驅動數碼管的八位段碼。如下圖所示
2.png (49.63 KB, 下載次數: 83)
下載附件
2019-3-6 12:35 上傳
像上圖這樣,然后你突然發現自己不會點燈了。 為什么簡單的電路要做的復雜呢?原因顯而易見,就是之前的八個LED燈需要用八個IO口,現在只需要三個IO口就可驅動八個LED燈。 2. 我們來簡單的介紹一下74CH595,并且來成功的使用它驅動八個LED燈。 74HC595是一款8位的串行輸入,并行輸出的芯片。如上圖所示, SI腳是它的串行數據輸入端; Q0—Q7是八位并行數據輸出端; SCK,串行輸入數據移位時鐘,即一個SCK的上升沿SI的數據就向芯片里面移動一位; RCK,并行數據輸出時鐘。即RCK的上升沿芯片里面的八位并行數據就輸出到Q0—Q7上; OE是芯片的輸出使能腳, 即低電平的時候Q0—Q7才能輸出數據; SQH是串行輸出腳,即SI向芯片里面移動八位之后再移動第九位數據就會從SQH溢出來。 我們現在要實現的其實就是在SCK RCK的作用下,將SI的八位數據一位一位的移入74HC595里面并且并行的呈現在Q0—Q7上面。
3.png (47.26 KB, 下載次數: 69)
下載附件
2019-3-6 12:37 上傳
如圖所示,咱們需要實現的功能就是將SI上的八位串行數據,在SCK,RCK的作用下并行的呈現在Q0—Q7上。 3. 我們前面說了 SCK的每來一個上升沿,SI的數據就向74HC595里面移動一位。 RCK的上升沿,就使得移入74HC595芯片的數據并行的展現在Q0—Q7上。 在這個前提下,我們來擼一波代碼。
4.png (20.65 KB, 下載次數: 74)
下載附件
2019-3-6 12:37 上傳
4. 在我們的文章中,講了74HC595來驅動八個LED燈,很多電路里面是使用 74HC595來驅動數碼管的八位段碼的。其實數碼管的八個段,就是八個LED燈,所以到此你需要學會的就是已經可以隨心所欲的使用74HC595了。如果你還沒明白,那么說明你可能已經比他人落后一步了,需要好好加油努力。 5. 看到這里,我想大家基本都明白了74HC595是一個什么樣子的芯片了,而且對 它的使用應該也開始得心應手了吧。 如上所示,結合代碼和所講的內容,趕緊來親自嘗試一下吧。 更多學習資料歡迎加入樸生電子51技術交流群515282844(注明來自51黑論壇)
|