基于89C51單片機(jī)串行A/D驅(qū)動(dòng)程序的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
串行A/D轉(zhuǎn)換器轉(zhuǎn)換后的結(jié)果是以串行方式輸出,數(shù)字量以串行方式輸出可簡化系統(tǒng)的連線,縮小電路板的面積,節(jié)省系統(tǒng)的資源。下面以TLC2543為例,介紹串行A/D驅(qū)動(dòng)程序的設(shè)計(jì)。
89C51單片機(jī)與TLC2543芯片的接口電路圖如下圖所示。TLC2543的3個(gè)控制輸入端CS(的反)、I/OCLOCK、DATAINPUT和一個(gè)數(shù)據(jù)輸出端DATAOUT分別與單片機(jī)的P1.4、Pl.l、P1.2和P1.3引腳相連,單片機(jī)采用的晶振頻率為12MHz。
電路設(shè)計(jì)時(shí),我們將TLC2543有兩個(gè)基準(zhǔn)電壓輸入REF+、REF-分別與電源(VCC)、GND相連,這樣連接可保證數(shù)字輸出的滿度和零點(diǎn),但在高精度的測(cè)量要求中,如果VCC的質(zhì)量一般,應(yīng)專門設(shè)計(jì)高精度的電壓基準(zhǔn)電路。由于TLC2543的轉(zhuǎn)換速度很快,因此這里的轉(zhuǎn)換結(jié)束標(biāo)志接在單片機(jī)的Pl.0引腳,采用查詢方式。
TLC2543通過串行接口與單片機(jī)通信,接口程序按照TLC2543的工作時(shí)序要求編寫,根據(jù)圖9-2中硬件連接關(guān)系,編寫單片機(jī)89C51采樣外部AINO通道模擬量的程序。主要包括用于實(shí)現(xiàn)讀取TLC2543的A/D轉(zhuǎn)換值子程序,具體C51程序如下。
根據(jù)上面的硬件原理圖可以采用的延時(shí)(查詢)方式來實(shí)現(xiàn)A/D轉(zhuǎn)換的,也可以將EOC接反相器后再與外部中斷輸入端相連,在中斷服務(wù)程序中啟動(dòng)下次轉(zhuǎn)換并讀取本次轉(zhuǎn)換數(shù)據(jù)。
LC2543輸入的是本次需要轉(zhuǎn)換的通道地址,而輸出的是上次轉(zhuǎn)換后的結(jié)果,因此,啟動(dòng)轉(zhuǎn)換后的第一個(gè)輸出數(shù)據(jù)是隨機(jī)數(shù),必須丟棄。
在采集多路模擬量數(shù)據(jù)并且要求較高分辨率時(shí)是較好的一種可行方案。在高精度的場(chǎng)合,對(duì)于參考電壓我們還要設(shè)計(jì)專門的精密基準(zhǔn)電源。