1 / 16

4.11 ADC

4.11 ADC. Ht66f50 ( 表 2-9-1). ADC 數位類比轉換器 8 通道類比轉換功能 12 bit 解析度 類比輸入腳位 PA 轉換結果 D11-D0 存放在 ADRH,ADRL 中由 ADRFS 決定 ADRFS=0 , ADRH= [D11:D4] , ADRL= [D3:D0],0000 ADRFS=1 , ADRH= 0000,[D11:D8] , ADRL= [D7:D0]. ADCR0 控制暫存器. Bit7: START A/D 轉換起始控制位元 0->1->0 A/D 轉換器開始轉換

tamma
Download Presentation

4.11 ADC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 4.11 ADC

  2. Ht66f50 (表2-9-1) ADC數位類比轉換器 • 8通道類比轉換功能 • 12 bit解析度 • 類比輸入腳位PA • 轉換結果D11-D0存放在ADRH,ADRL 中由ADRFS 決定 ADRFS=0 , ADRH= [D11:D4] , ADRL= [D3:D0],0000 ADRFS=1 , ADRH= 0000,[D11:D8] , ADRL= [D7:D0]

  3. ADCR0控制暫存器 Bit7:START A/D轉換起始控制位元 0->1->0 A/D轉換器開始轉換 0->1 A/D轉換器回至重置狀態 Bit6:EOCB轉換完成狀態旗標 1 A/D轉換器正在進行轉換 0 A/D轉換器轉換完成

  4. Bit5:ADOFF 1 關閉A/D轉換模組 0 開啟A/D轉換模組 Bit4:ADRFS 轉換完成狀態旗標 ADRFS=1,ADRH= [3:0]存放轉換結果高4位元,ADRL= [7:0]存放轉換結果低8位元 ADRFS=0,ADRH= [7:0]存放轉換結果高8位元,ADRL= [7:4]存放轉換結果低4位元

  5. Bit3:未使用 • Bit[2:0] :通道選擇位元 ACS[2:0] 000 = AN0 通道 100 = AN4 通道 001 = AN1 通道 101 = AN5 通道 010 = AN2 通道 110 = AN6 通道 011 = AN3 通道 111 = AN7 通道

  6. ACERL 控制暫存器 • Bit [7:0]= [ACE7 ACE6 .. ACE0] • A/D 類比通道設定位元 1=PAn接腳為類比輸入(n=0~7) 0=PAn接腳為數位I/O輸入或其它

  7. ACERH 控制暫存器 • Bit [7:4]= 未定義 • Bit 3: ACE11 PF1類比通道設定位元 1=PF1 接腳為AN11類比輸入 0=PF1 接腳為數位I/O輸入或其它 • Bit 2: ACE10 PF0類比通道設定位元 1=PF0 接腳為AN10類比輸入 0=PF0 接腳為數位I/O輸入或其它

  8. Bit 1: ACE9 PE7類比通道設定位元 1=PE7 接腳為AN9類比輸入 0=PE7 接腳為數位I/O輸入或其它 • Bit 0: ACE8 PE6類比通道設定位元 1=PE6 接腳為AN8類比輸入 0=PE6 接腳為數位I/O輸入或其它

  9. ADCR1 控制暫存器 • Bit 7 ACS4 內部1.25v通道輸入致能位元 ACS4=1 :類比通道輸入來至AN0:AN7 ACS4=0 :類比通道輸入連接至內部1.25v • Bit 6: V125EN V125EN=1致能1.25v參考電壓輸出 V125EN=0禁能1.25v參考電壓輸出 • Bit 5:未使用

  10. Bit 4 VREFS AD參考電壓選擇位元 VREFS =1 :VREF使用外部電壓 VREFS =0 :使用AVdd • Bit 3:未使用 • Bit[2:0]:為ADCK[2:0] AD轉換時脈選擇位元 000=fsys 001=fsys/2 010=fsys/4 011=fsys/8 100=fsys/16 101=fsys/32 110=fsys/64 111=未使用

  11. 4.11 ;PROGRAM : 4-11.ASM ;FUNCTION: ADC DEMO PROGRAM ;可變電阻控制AN0 (PA0) 類比輸入電壓,轉換後高8勿位元輸出於LED #INCLUDE HT66F50.INC ;-------------------------------------------------------------------- MY_DATA .SECTION 'DATA' ;== DATA SECTION == DEL1 DB ? ;DELAY LOOP COUNT 1 DEL2 DB ? ;DELAY LOOP COUNT 2 DEL3 DB ? ;DELAY LOOP COUNT 3 COUNT DB ? ;PITCH COUNT STACK_A DB ? ;STACK BUFFER FOR A STACK_PSW DB ? ;STACK BUFFER FOR PSW

  12. LED_PORT EQU PD ;DEFINE LED_PORT LED_PORTC EQU PDC ;DEFINE LED_PORT CONTROL REG. MY_CODE .SECTION AT 0 'CODE' ;== PROGRAM ; SECTION == ORG 00H ;HT-66XX RESET VECTOR JMP INIT ORG 1CH ;HT-66RXX ADC INTERRUPT ;VECTOR JMP ISR_ADC

  13. INIT: CLR LED_PORTC ;CONFIG PA AS OUTPUT CLR LED_PORT MOV A,08h ;CP1 DISABLE MOV CP1C,A ;規劃ADCR0, ADCR1 MOV A,00000000B ;SELECT AN0 FOR ADC, ADRFS=0 MOV ADCR0,A ;ACS[000]=000, 選AN0通道 MOV A,00000010B ;A/D CLOCK=fSYS/4, VREFS=0 MOV ADCR1,A ;ADCK[000]=010,AD轉換時脈選擇位元 MOV A,00000001B ;PA0AS A/D CHANNEL MOV ACERL,A SET ADE ;ENABLE ADC INTERRUPT SET EMI

  14. MAIN: SET START ;RESET ADC CLR START ;START ADC CONVERSION MOV A,50 CALL DELAY JMP MAIN

  15. ;=========================================================== ; ADC INTERRUPT SERVICE ROUTINE ;=========================================================== ISR_ADC: MOV STACK_A,A ;PUSH A MOV A,STATUS MOV STACK_PSW,A ;PUSH STATUS MOV A,ADRH ;GET HIGH BYTE A/D RESULT MOV LED_PORT,A ;SEND TO PA MOV A,STACK_PSW MOV STATUS,A ;POP STATUS MOV A,STACK_A ;POP A RETI

  16. ;===================================================================;=================================================================== ; PROC : DELAY ; FUNC : DEALY ABOUT ACC*1mS @fSYS=4MHz ; PARA : ACC : DELAY FACTOR ; REG : DEL1,DEL2,DEL3 ;=================================================================== DELAY PROC MOV DEL1,A ;SET DEL1 COUNTER DEL_1: MOV A,3 MOV DEL2,A ;SET DEL2 COUNTER DEL_2: MOV A,110 MOV DEL3,A ;SET DEL3 COUNTER DEL_3: SDZ DEL3 ;DEL3 DOWN COUNT JMP DEL_3 SDZ DEL2 ;DEL2 DOWN COUNT JMP DEL_2 SDZ DEL1 ;DEL1 DOWN COUNT JMP DEL_1 RET DELAY ENDP END

More Related