請問要使用pic16f877做兩個AD的轉換??
|
||||
---|---|---|---|---|
新會員
|
目前卡到的問題是只有一組AD能過,另外一組AD不過去,試了很多種寫法,就是不能兩組AD。
要從一組AD轉換到另外一組AD是不是只要改ADCON0的部份,將通道轉換到要用的通道,且我ㄧ開始初始設定的部份有將我要用的通道設為一 以下寫我的初始設定 如我要用RA5,RA3 我寫:BANKSEL TRISA MOVLW B'00101000' MOVWF TRISA BANKSEL ADCON1 MOVLW B'00000000' MOVWF ADCON1 BANKSEL ADCON0 MOVLW B'10100001 MOVWF ADCON0 以上為初始設定(只有有關AD轉換的部份) 之後將RA5與RA3的值讀進來,如下 CALL AD_VOLTAGE MOVF AD_STATUS,W MOVWF VBATTERY CALL AD_IBATTERY MOVF AD_STATUS,W MOVWF IBATTERY AD_VOLTAGE BANKSEL ADCON0 MOVLW B'10100001' MOVWF ADCON0 CALL ADC_AcquisitionTime BSF ADCON0,GO WAIT1 BTFSS PIR1,ADIF GOTO WAIT1 BCF PIR1,ADIF MOVF ADRESH,W MOVWF AD_STATUS RETURN AD_IBATTERY BANKSEL ADCON0 MOVLW B'10011001' MOVWF ADCON0 CALL ADC_AcquisitionTime BSF ADCON0,GO WAIT2 BTFSS PIR1,ADIF GOTO WAIT2 BCF PIR1,ADIF MOVF ADRESH,W MOVWF AD_STATUS RETURN 以上是讀RA5與RA3的值 但是卻發現RA3都讀不進來,真不知是哪出了問題 可否有人了解哪裡的問題,給小弟指點迷津,感激不盡。
發表於: 2007/10/19 16:48
|
|||
|
震盪器問題~~
|
||||
---|---|---|---|---|
新會員
|
我的石英震盪是20MHZ~~我已經把第八腳跟第19角接地了~~而20角接VCC~~可是我發現接石英震盪器的那兩隻腳(9與10)有電壓~~但卻不會震盪~~也就是沒有頻率~~不知是哪裡出問題~~而你說的燒成何種形式的震盪器是什麼意思~~對了第一腳要接電源嗎?~~
發表於: 2005/9/21 16:00
|
|||
|
震盪器問題~~
|
||||
---|---|---|---|---|
新會員
|
請問一下燒錄完之後~~將燒錄完後的16f873插到我要做的電路上~~結果石英震盪好像沒動作也~~~是我插錯角了嗎?~~我把它插到9跟10之間呀~~不之8要不要接地~~我沒接也~~
發表於: 2005/9/21 1:15
|
|||
|
求救~~
|
||||
---|---|---|---|---|
新會員
|
list p=16f877,r=dec
include"p16f877.inc" ad_status equ 0x20 f equ H'21' org 0x00 nop goto mainline mainline call initial mainloop call ad_convert call pwm_out initial banksel TRISC clrf TRISC banksel PORTC clrf PORTC movlw 0xff movwf PR2 banksel TMR2 clrf TMR2 movlw 0x33 movwf CCPR2L movwf CCPR1L movlw 0x0c movwf CCP2CON movwf CCP1CON movlw 0x00 movwf T2CON bsf T2CON,TMR2ON banksel ADCON1 movlw b'00001101'; movwf ADCON1 bsf TRISA,1 bcf STATUS,RP0 movlw b'10001001'; select RA1 transfer channel movwf ADCON0 return duty_up movf CCPR1L,w movwf f incf f,w movwf CCPR1L goto mainloop duty_down movf CCPR1L,w movwf f decf f,w movwf CCPR1L goto mainloop ad_convert banksel ADCON0 bsf ADCON0,GO ad_wait btfsc ADCON0,GO goto ad_wait movf ADRESH,W movwf ad_status return pwm_out movf ad_status,w banksel PORTC movwf PORTC banksel CCPR1L movwf CCPR1L movf b'01111111',f subwf f,w btfsc STATUS,C goto duty_up goto duty_down end 以上是打好的程式,程式的模擬器是16F877, 而程式主要是PWM及A/D一起的修改統合而成,程式主要功能是要配合回授電路來 控制電壓在2.5V,也就是利用CCP1/RC2(pin17)調整duty使RA1(pin3)的電壓控制在2.5V ,且CCP1(pin17)及CCP2(pin16)的頻率要 固定在20KHZ,而CCP2(pin16)的duty要固定在20%, 不知以上的程式有沒有錯,還有不知為什麼將7A的電池接上則耐壓10A的保險絲 就會燒壞,是要將輸出CCP1及CCP2設為LOW嗎?還是怎麼用,請各位大大耐心看完 麻煩解決依下問題....謝謝^
發表於: 2005/8/17 0:14
|
|||
|