PDA

View Full Version : help! help! giao tiep AD cua dspic30f4011


daihiep7171
05-06-2009, 08:20 PM
em dang lap trinh giao tiep AD dspic30f4011 nhung khong co tinh hieu xin cac bac giup dum
.equ __30F4011, 1
.include "p30f4011.inc"
.global __reset
.global __T1Interrupt
.text
__reset:
CALL Init_PORTS
MAIN:
CALL Init_ADC10
goto MAIN
;-------------------------------------------------------------------------------
;Chuong trinh con khoi tao cac cong I/O, de xuat cac tin hieu , va doc tin
;hieu dieu chinh cua bien tro tai AN0
;-------------------------------------------------------------------------------
Init_PORTS:
mov #0x0004, W0 ;Chan RB2 la ngo vao analog
mov W0, TRISB

mov #0x0000, W0 ;Chan RE0 la ngo ra analog
mov W0, TRISF

return
;-------------------------------------------------------------------------------
;Chuong trinh con khoi tao module chuyen doi A/D, doc ngo vao AN0
;-------------------------------------------------------------------------------
Init_ADC10:
mov #0xFFFB, W0 ;RB2 la analog #0xFFFB
mov W0, ADPCFG
mov #0x0000, W0 ;star cover
mov W0, ADCON1
clr ADCON2
MOV #0X0002, W0 ; KENH O DOC TIN HIEU GIUA AN2 VA AVSS
MOV W0, ADCHS
clr ADCHS ;Kenh 0 doc tin hieu giua AN0 va AVss,
clr ADCSSL ;Khong quet cac ngo vao
mov #0x0101, W0 ;Dung 1 TAD cho lay mau,
mov W0, ADCON3 ;TAD = 2xTCY = 250 ns
bset ADCON1, #ADON
BSET ADCON1, #SAMP
CALL DELAY100MS
BCLR ADCON1, #SAMP
DELAY2: BTSS ADCON1, #DONE
GOTO DELAY2
BCLR ADCON1, #DONE
MOV ADCBUF0, W0
; MOV ADCBUF2, W2
mov W0, LATF

RETURN
;--------------------------------------------------------------------
; tao timer 1 ms
;-------------------------------------------------------------
DELAY100MS:
clr TMR3 ;Xoa thanh ghi dem cua TMR1
mov #0x0C35, W0 ;Nguong cho TMR3 delay khoang 100 ms
mov W0, PR3
mov #0x8030, W0 ;Voi prescaler = 1:256, va bat TMR1
MOV W0, T3CON
DELAY1:
BTSS IFS0, #T3IF
GOTO DELAY1
BCLR IFS0, #T3IF
RETURN
;------------------------------------------------------------------------------
.end ;Ket thuc phan ma trong tap tin nay