ADC0809的擴(kuò)展方式是什么?
8051單片機(jī)擴(kuò)展ADC0809的兩種典型方法如圖5-53所示,其差別是確定ADC轉(zhuǎn)換通道的方式不同。
(1)單片機(jī)地址總線低8位確定轉(zhuǎn)換通道
在圖5-53a中,單片機(jī)ALE引腳信號(hào)進(jìn)行二分頻后,作為ADC0809的CLK時(shí)鐘信號(hào)。單片機(jī)P0口經(jīng)過(guò)鎖存器74HC373后的地址總線低8位的A2、A1和A0分別與ADC0809的地址線C、B和A相連,用于確定被轉(zhuǎn)換的通道編號(hào)。
圖5-53 8051單片機(jī)擴(kuò)展ADC0809的電路原理圖
a)單片機(jī)地址總線低8位確定轉(zhuǎn)換通道b)單片機(jī)數(shù)據(jù)總線確定轉(zhuǎn)換通道
啟動(dòng)ADC0809轉(zhuǎn)換的指令是“MOVX@DPTR,A”或“MOVX@Ri,A”。例如,對(duì)于圖5-53a,啟動(dòng)通道6轉(zhuǎn)換的指令可以是:
其中,MOVX指令執(zhí)行時(shí),地址7FFEH的低8位(A7~A0)和高8位(A15~A8)分別出現(xiàn)在地址總線P0和P2上。由MOVX指令寫(xiě)總線時(shí)序(如圖5-13所示)可知,單片機(jī)ALE的下降沿信號(hào)將驅(qū)動(dòng)74HC373鎖存P0傳送的低8位地址(A7~A0,
其值為0FEH=11111110B),其中A2、A1和A0分別與ADC0809的C、B和A引腳連接,確定了被選中的通道編號(hào)是110B=6。另外,由于P2.7為低電平,單片機(jī)的WR被或非門(mén)取反,使得START和ALE引腳產(chǎn)生如圖5-54所示的波形,從而啟動(dòng)ADC0809
轉(zhuǎn)換。
圖5-54 8051單片機(jī)啟動(dòng)ADC0809轉(zhuǎn)換的引腳波形圖
特別需要指出的是:
1)對(duì)于圖5-53a所示的擴(kuò)展連接方式向,在ADC0809的啟動(dòng)指令“MOVX@DPTR,A”中,累加器A的值對(duì)A-D轉(zhuǎn)換本身沒(méi)有任何影響,其值可以是任意的。
2)指令“MOVX@DPTR,A”中,與ADC0809通道選擇無(wú)關(guān)的地址位可以是任意值,但推薦將其設(shè)置為1,如圖5-53a中的單片引腳P2.6~P2.0和P0.7~P0.3。
轉(zhuǎn)換結(jié)束后,讀取轉(zhuǎn)換結(jié)果的指令是“MOVX A,@DPTR”或“MOVX A,@Ri”。例如,對(duì)于圖5-53a,讀取通道6轉(zhuǎn)換結(jié)果的指令可以是
由“MOVX A,@DPTR”指令時(shí)序(見(jiàn)圖5-12)可知,該指令執(zhí)行時(shí)地址7FFEH的高8位和低8位分別出現(xiàn)在P2口和P0口;單片機(jī)引腳ALE下降沿信號(hào)使74HC373鎖存P0上的低8位地址;而P2.7為低電平,使單片機(jī)引腳RD的低電平被或非門(mén)取反,變成高電平,使ADC0809的OE引腳有效,允許ADC0809由其D7~D0引腳輸出8位A-D轉(zhuǎn)換結(jié)果;而ADC0809的D7~D0引腳與單片機(jī)的P0口相連,在單片機(jī)引腳RD為低電平時(shí),P0作為數(shù)據(jù)線恰好可以將轉(zhuǎn)換結(jié)果送入單片機(jī)的累加器A。另外,讀取轉(zhuǎn)換結(jié)果時(shí),僅需要ADC0809的OE引腳高電平有效,地址引腳A、B和C沒(méi)有任何作用,所以與地址引腳A、B和C對(duì)應(yīng)的地址位可以是任意值,即在“MOVX A,@DPTR”指令中,DPTR的最低3位可以是任意值。
由上述分析可知,指令時(shí)序在單片機(jī)擴(kuò)展外部I/O接口時(shí)具有重要作用,恰當(dāng)?shù)乩脮r(shí)序可以使單片機(jī)有效地完成對(duì)I/O接口的訪問(wèn)。
(2)單片機(jī)數(shù)據(jù)總線確定轉(zhuǎn)換通道
在圖5-53b中,沒(méi)有使用地址鎖存器鎖存地址總線的低8位地址。在這種連接方式下,啟動(dòng)通道6轉(zhuǎn)換的指令可以是
其中,“MOVX@DPTR,A”指令中累加器A的值決定了ADC0809被轉(zhuǎn)換的通道編號(hào)。具體分析如下:
結(jié)合圖5-13所示的“MOVX@DPTR,A”指令時(shí)序圖和圖5-54所示的ADC0809啟動(dòng)轉(zhuǎn)換引腳波形圖可知,ADC0809在其ALE引腳上升沿時(shí)鎖存器地址引腳A、B和C上的地址信息,用以確定被轉(zhuǎn)換的通道編號(hào)。而ADC0809的ALE引腳上升沿信號(hào)源于
單片機(jī)WR引腳的下降沿。在WR的下降沿時(shí)刻,單片機(jī)P0是數(shù)據(jù)線,并且傳送的,該數(shù)據(jù)來(lái)自于“MOVX@DPTR,A”中的累加器A。即,對(duì)于圖5-53c所示的擴(kuò)展方式,ADC0809在其ALE引腳上升沿時(shí)鎖存的地址信號(hào)來(lái)自于單片機(jī)的數(shù)據(jù)總線,因此“MOVX@DPTR,A”送上數(shù)據(jù)總線的數(shù)據(jù)(即累加器A中的數(shù))決定了ADC0809轉(zhuǎn)換的通道編號(hào)。
由以上分析可知,被“MOVX@DPTR,A”指令送入地址總線的7FFFH的最高位決定了P2.7的狀態(tài)為0,使得單片機(jī)WR引腳的信號(hào)被取反后通過(guò)“或非”門(mén),從而啟動(dòng)轉(zhuǎn)ADC0809的A-D轉(zhuǎn)換;而該指令送上數(shù)據(jù)總線的0FEH的最低3位110B對(duì)應(yīng)于ADC0809的C、B和A引腳,在ADC0809的ALE上升沿時(shí)刻(單片機(jī)WR的下降沿時(shí)刻)被鎖存以確定A/D轉(zhuǎn)換通道編號(hào)。
讀取通道6轉(zhuǎn)換結(jié)果的指令如下: