51單片機的外部接口擴展
已有 743 次閱讀2014-4-24 19:41
|
單片機, 接口
我接觸 單片機 有些年頭了,對CPLD有些了解,但說來慚愧,從未在設計中使用過。
曾經有一次面試,有位老工程師,就問我一些問題,其中就有CPLD,我實話實說沒有用過,他就問我為什么不用;我答復他說,可能是設計的東西比較簡單,在設計時用不著;他說你端口不夠怎么辦,我回答說可以擴展。
下面我就以51為例,介紹他的幾個常用的外部芯片。
用單片機設計電路,無非就是輸入,輸出和界面顯示。本文以按鍵式和光耦隔離輸入. 繼電器 和LED為輸出,顯示界面為數碼管,外部為ADC0809,一一進行介紹。
設計指標:
按鍵輸入 8只 七段數碼管 5只
光耦隔離輸入 8只 繼電器輸出 8只
LED燈指示 16只
按鍵和光耦隔離輸入.數碼管顯示和ADC0809共用P0端口,繼電器和LED顯示燈控制采用P1端口,P2端口作為其他一些外設的控制輸出和擴展芯片的選通,P3作為復用和選通端口。這樣便可以滿足設計的需要。
外圍芯片統計及分配:
按鍵輸入 74HC244 1只 光耦隔離輸入 74HC244 1只
數碼管 CD4511 4只 74HC273 1只
繼電器輸出 74HC273 1只 LED指示 74HC273 2只
ADC0809 1只 74HC373 1只 74HC02 1只
74HC14 1只
74HC244為八同相三態緩沖器/線驅動器,內部框圖和真值表如下:
典型運用原理圖如下:
由真值表,看出當使能端1,19腳為低電平時,輸出與輸入同相,當使能端為高電平時,輸出呈高阻狀態。
74HC273為8D觸發器,內部框圖和真值表如下:
典型運用原理圖如下:
有真值表看出,273在1腳為低時,輸出全部為0.圖中R3.C5就是為了利用這個功能實現上電后清零,避免誤操作;當1腳(CLR)為高時,11腳(CLK)為上升沿時,輸出與輸入相同。
CD4511是一個用于驅動共陰極 LED(數碼管)顯示器的 BCD 碼—七段碼譯碼器,特點:具有BCD轉換、消隱和鎖存控制、七段譯碼及驅動功能的CMOS電路能提供較大的拉電流。可直接驅動LED。
內部框圖和真值表:
典型運用原理圖如下:
CD4511顯示方式為靜態顯示,與動態顯示相比,靜態顯示要亮很多,但使用的資源也較多些;動態顯示是利用人眼的余輝效應,通過循環掃描數碼管來實現。也就是說在同一時刻只有一個數碼管點亮,由于掃描速度很快,所以人眼是分辨不出的,這種方法在LED顯示屏上運用很多的。
其他的芯片基本同理, 由于篇幅有限,不一一介紹