STC12C5A60S2單片機(jī)A/D轉(zhuǎn)換器C語(yǔ)言軟件的編寫
單片機(jī)的A/D轉(zhuǎn)換器是指單片機(jī)的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),這是單片機(jī)在自動(dòng)化控制中常用到的功能之一,而熟練和掌握A/D軟件編寫,也是學(xué)習(xí)單片機(jī)必不可少的課程。由于選用了宏晶科技的STC12C5A60S2單片機(jī),所以在編寫A/D轉(zhuǎn)換軟件時(shí)首先就得參考STC12C5A60S2器件手冊(cè),但對(duì)于初學(xué)者來(lái)說(shuō),是無(wú)法看明白的,還好在學(xué)習(xí)單片機(jī)時(shí)購(gòu)買的單片機(jī)學(xué)習(xí)板上有配套的例程,其A/D源碼略(編注:如有需求,請(qǐng)與本報(bào)聯(lián)系)。經(jīng)測(cè)試這段代碼在OK51-EASY單片機(jī)開(kāi)發(fā)板(筆者購(gòu)買的單片機(jī)學(xué)習(xí)板)上能正常運(yùn)行.在PLo引腳上用杜邦線連接電源的正極或地線,數(shù)碼管能顯示0—255,說(shuō)明單片機(jī)的A/D模塊已工作。
而在實(shí)際應(yīng)用時(shí)用以上函數(shù)編寫就基本上能滿足一般的模數(shù)轉(zhuǎn)換要求,但由于以上函數(shù)編寫的是8位精度AD轉(zhuǎn)換函數(shù),(STC12C5A60S2器件手冊(cè)提供的是8位源碼例子)如果要求精度比較高的就需要編寫10精度的AD轉(zhuǎn)換函數(shù)了,為此筆者在網(wǎng)上參考了大量的TC12C5A60S2/ADC源碼,最終找到了測(cè)試正常的IO位ADC函數(shù),以下是10位精度的AD轉(zhuǎn)換函數(shù):
比較了一下8位精度的AD函數(shù)和10位精度的AD函數(shù),發(fā)現(xiàn)有很大不同,有了以上ADC函數(shù),就能輕松使用STC12C5A60S2內(nèi)部的AD功能,不再為編寫AD函數(shù)而煩惱,讓讀者更容易接觸到模擬信號(hào)到數(shù)字信號(hào)的奇妙轉(zhuǎn)換,感受觸手可及的數(shù)字信號(hào)。