PROCESSOR 16F84 include "P16F84.INC" ;************************** dat equ 0 clk equ 1 ena equ 2 ;************************** Fr0_b2 equ 20 Fr1_b2 equ 21 Fr2_b2 equ 22 Fr3_b2 equ 23 HLP_b2 equ 24 ;************************** movlw b'11111000' tris PORTB goto send_lo ;************************** loop btfsc PORTB,4 goto send_lo btfsc PORTB,5 goto send_hi Back_FM goto loop ;************************** send_lo movlw 5 ;zadani frakvence 087.5MHz movwf Fr0_b2 movlw 7 movwf Fr1_b2 movlw 8 movwf Fr2_b2 movlw 0 movwf Fr3_b2 goto Send_FM ;************************** send_hi movlw 5 ;zadani frakvence 107.5MHz movwf Fr0_b2 movlw 7 movwf Fr1_b2 movlw 0 movwf Fr2_b2 movlw 1 movwf Fr3_b2 goto Send_FM ;************************** Send_FM bcf PORTB,dat ;initial sett bcf PORTB,clk ;initial sett ;---------------------- bsf PORTB,ena ;ENable communication ;----------------------- bcf STATUS,C rrf Fr0_b2,0 ;A/2, carry out bcf PORTB,dat btfsc STATUS,C ;SEND Bit0 bsf PORTB,dat ;----------------------- nop nop nop addwf Fr1_b2,0 ;A/2+B... bsf PORTB,clk bcf STATUS,C rlf Fr1_b2,1 ;Bx2 rlf Fr1_b2,1 ;Bx4 bcf PORTB,clk addwf Fr1_b2,1 ;A/2+5xB rrf Fr1_b2,0 ;(a/2+5xB)/2 nop bcf PORTB,dat btfsc STATUS,C ;SEND Bit1 bsf PORTB,dat ;----------------------- addwf Fr2_b2,0 ;(A/2+5xB)/2+C bcf STATUS,C rlf Fr2_b2,1 ;Cx2 rlf Fr2_b2,1 ;Cx4 rlf Fr2_b2,1 ;Cx8 bsf PORTB,clk addwf Fr2_b2,0 ;(A/2+5xB)/2+C+8xC bcf STATUS,C rlf Fr2_b2,1 ;Cx16 bcf PORTB,clk addwf Fr2_b2,0 ;(A/2+5xB)/2+25xC bcf STATUS,C movwf Fr2_b2 rrf Fr2_b2,1 ;((A/2+5xB)/2+25xC)/2 bcf PORTB,dat ;SEND Bit2 btfsc STATUS,C bsf PORTB,dat ;----------------------- movlw d'125' btfsc Fr3_b2,0 ;jsou 1000covky? addwf Fr2_b2,1 ;W+1000/8 ;----------------------- nop bsf PORTB,clk nop nop nop bcf PORTB,clk movlw 8 movwf HLP_b2 ;rotovat rrW->out Bit3 to Bit 11 loop_fm rrf Fr2_b2,1 bcf PORTB,clk nop nop bcf PORTB,dat btfsc STATUS,C bsf PORTB,dat nop nop bsf PORTB,clk decfsz HLP_b2,1 goto loop_fm bcf FSR,5 bcf PORTB,clk nop nop ;---------------------- ; bcf PORTB,dat ; btfsc G_stat,6 ;stereo on b6=1 bsf PORTB,dat nop nop bsf PORTB,clk nop nop bcf PORTB,clk ;---------------------- nop nop bcf PORTB,dat ;test PD0 ; btfsc G_stat,0 ;XXX ; bsf PORTB,dat ;XXX nop nop bsf PORTB,clk nop nop bcf PORTB,clk nop nop ;---------------------- nop nop bcf PORTB,dat ;test PD1 ; btfsc G_stat,1 ;XXX ; bsf PORTB,dat ;XXX nop nop bsf PORTB,clk nop nop bcf PORTB,clk nop nop ;---------------------- nop nop bsf PORTB,dat nop nop bsf PORTB,clk nop nop bcf PORTB,clk nop nop ;---------------------- nop nop bcf PORTB,dat nop nop bsf PORTB,clk nop nop bcf PORTB,clk nop nop ;---------------------- bcf PORTB,dat bcf PORTB,ena ;zrusit ENable comm bsf PORTB,dat bsf PORTB,clk goto Back_FM ;************************** end