求救~~
|
||||
---|---|---|---|---|
新會員
|
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
|
|||
|