Download presentation
Presentation is loading. Please wait.
1
1 4.11 ADC
2
2 ADC 數位類比轉換器 解析度 10 bit 準確度 9 bit 類比輸入 PB 轉換結果 D9-D0 存放在 ADRH,ADRL
3
3 ACSR 暫存器 Bit7:TEST, 不可使用 Bit6-2: 未使用 Bit1-0:(ADCS1,ADCS0) 為 A/D 轉換時脈選 擇位元 [00:fsys/2 01:fsys/8 10:fsys/32 11: 未定義 ]
4
4 ADCR 控制暫存器 Bit7:START A/D 轉換起始控制位元 0->1->0 A/D 轉換器開始轉換 0->1 A/D 轉換器回至重置狀態 Bit6:EOC’ 轉換完成狀態旗標 1 A/D 轉換器正在進行轉換 0 A/D 轉換器轉換完成
5
5 Bit 5-3: PCR2-PCR0, PB 控制位元 Pcr2-0 76543210 000pb7pb6pb5pb4pb3pb2pb1pb0 001pb7pb6pb5pb4pb3pb2pb1A0 010pb7pb6pb5pb4pb3pb2A1A0 011pb7pb6pb5pb4pb3A2A1A0 100pb7pb6pb5pb4A3A2A1A0 101pb7pb6pb5A4A3A2A1A0 110pb7pb6A5A4A3A2A1A0 111A7A6A5A4A3A2A1A0
6
6 Bit2-0: ACS2-0 類比通道選擇位元 ACS2-0 類比通道選擇位元 000A0 001A1 010A2 011A3 100A4 101A5 110A6 111A7
7
7 INTC0 控制暫存器 Bit7 6 5 4 3 2 1 0 - ADF TF EIF EADI ETI EEI EMI A/D 轉換完成 ADF=1 或 EOC’=0 或 EMI=1, EADI=1(A/D 中斷致能 ),CPU 跳至 00CH 位址
8
8 4.11 ;PROGRAM : 4-11.ASM ;FUNCTION: ADC DEMO PROGRAM #INCLUDEHT46R23.INC.CHIPHT46R23 ;-------------------------------------------------------------------- MY_DATA.SECTION'DATA' ;== DATA SECTION == DEL1 DB ? ;DELAY LOOP COUNT 1 DEL2 DB ? ;DELAY LOOP COUNT 2 DEL3DB ? ;DELAY LOOP COUNT 3 COUNTDB ? ;PITCH COUNT STACK_ADB? ;STACK BUFFER FOR A STACK_PSWDB? ;STACK BUFFER FOR PSW
9
9 SADCEQUADCR.7 ;DEFINE SADC AS ADC START BIT LED_PORTEQUPA;DEFINE LED_PORT LED_PORTCEQUPAC;DEFINE LED_PORT CONTROL REG. MY_CODE.SECTIONAT 0'CODE' ;== PROGRAM ; SECTION == ORG 00H ;HT-46RXX RESET VECTOR JMPSTART_ ORG0CH;HT-46RXX ADC INTERRUPT ;VECTOR JMPADC_INT
10
10 START_: CLRLED_PORTC;CONFIG PA AS OUTPUT MOVA,00001001B;ENABLE GLOBAL AND ADC ;INTERRUPT MOVINTC0,A MOVA,00000001B;SET A/D CONVERTER ; CLOCK SOURCE MOVACSR,A; = SYSTEM CLOCK/32 MOVA,00001000B;SET PB0 AS A/D CHANNEL MOVADCR,A; AND SELECT A0 FOR ADC ASC2-0=001; A0 通道 PCR2-PCR0=001;PB0 類比輸入通道
11
11 MAIN: SETSADC;RESET ADC CLRSADC;START ADC CONVERSION MOVA,5 MOVDEL1,A CALLDELAY;DELAY 100mS JMPMAIN
12
12 ;******************************************************************** ; ADC INTERRUPT SERVICE ROUTINE ;******************************************************************** ADC_INT: MOVSTACK_A,A;PUSH A MOVA,STATUS MOVSTACK_PSW,A;PUSH STATUS MOVA,ADRH;GET HIGH BYTE A/D ; RESULT MOVLED_PORT,A;SEND TO PA MOVA,STACK_PSW MOVSTATUS,A;POP STATUS MOVA,STACK_A;POP A RETI
13
13 ;******************************************************************** ; Delay about DEL1*10mS ;******************************************************************** DELAY PROC MOV A,30 MOV DEL2,A;SET DEL2 COUNTER DEL_2:MOVA,110 MOVDEL3,A;SET DEL3 COUNTER DEL_3: SDZ DEL3 ;DEL3 DOWN COUNT JMP DEL_3 SDZ DEL2 ;DEL2 DOWN COUNT JMP DEL_2 SDZDEL1;DEL1 DOWN COUNT JMPDELAY RET DELAYENDP END
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.