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