以HT46 R47微控器為例,其內(nèi)嵌式之模擬/數(shù)字轉(zhuǎn)換器之工作原理系利用四個(gè)特殊緩存器來(lái)完成,分別是ADRL(20H)、ADRH (21H)、ADCR(22H)、和ACSR(23H)。ADRL和ADRH分別代表A/D轉(zhuǎn)換完成后的低、高字節(jié),因此這兩個(gè)緩存器僅具有只讀的特性。而ADCR是控制A/D轉(zhuǎn)換的工作緩存器,它被用來(lái)定義A/D轉(zhuǎn)換的可用信道的數(shù)目、那一個(gè)模擬信道被選擇、開(kāi)始轉(zhuǎn)換位、及完成指示旗標(biāo)等,其位定義如表二所示。此外,ACSR緩存器可以被用來(lái)設(shè)定轉(zhuǎn)換的時(shí)序來(lái)源,如表三所示。模擬/數(shù)字轉(zhuǎn)換器之使用方法如下:
1. 首先以PCR0-PCR2定義好端口B的配置,對(duì)于不需要用的信道建議關(guān)閉,以節(jié)省電源消耗。換言之,選擇剛好夠用的模擬信道數(shù)目,且從端口B的位0開(kāi)始依序指定,例如需要三個(gè)模擬信道、則可以使用位0、位1、及位2、。
2. 再來(lái)用ACS0-ACS2來(lái)選擇工作的模擬信道,如表2所示。
3. 然后再將START位給于上升及下降的訊號(hào)變化,如:0→1→0。當(dāng)START位由0→1時(shí)EOC會(huì)被設(shè)定成1。
4. 最后,等待EOC位變成0即表示轉(zhuǎn)換完成,其轉(zhuǎn)換后的結(jié)果存在ADRL和ADRH,其位的配置如表四所示。
模擬/數(shù)字轉(zhuǎn)換器使用方法的最后步驟,必須經(jīng)常查看EOC旗標(biāo),因此會(huì)浪費(fèi)許多寶貴的時(shí)間,HOLTEK也設(shè)計(jì)使用中斷的方法,來(lái)取得A/D轉(zhuǎn)換后的結(jié)果,其中斷形成的先決條件有三:其一為A/D轉(zhuǎn)換完畢;其二是激活中斷向量;最后堆棧尚有空間,也就是說(shuō)不會(huì)造成堆棧溢出的情形。當(dāng)此三個(gè)條件滿足后,程序會(huì)直接跳至地址00CH處。