; ; FILE: 3GEN508A.ASM ; ; AUTHOR: Jiri Bezstarosti ; E-MAIL: jiri@bezstarosti.cz ; WEB: http://www.bezstarosti.cz ; ; ;PIC12C508A ;XTAL 3.500000 MHz ; ; ;GP0 IN FREQ. SELECTION ; ;GP1 OUT FREQ. 117.5Hz (117.48120Hz = 15625/133) Fosc/29792 (GP0=LOW, GP3=LOW) ; FREQ. 274.1Hz (274.12280Hz = 15625/57) Fosc/12768 (GP0=HIGH, GP3=LOW) ; FREQ. 0.0Hz (GP3=HIGH) ; ;GP2 OUT FREQ. 54687.5Hz (54687.500000Hz = 3.5*15625) Fosc/64 ; ;GP3 IN /ENABLE FREQ. GP1 ; ; +3.0 AZ +5.5V O O GND ; | | | 100n | ; +--------+ +----------+ ; | | | | ; | | ; +----------------+ | PIC12C508A | ; | 3.5 MHz | | 1+----+-+----+8 | ; | _ | +---+Vdd |_| Vss+-----+ ; | || || | 2| |7 | ; | +--|| ||--+-------+OSC1 GP0+--o | <-- IN F. SELECT "L"=117.5Hz , "H"=274.1Hz ; | | ||_|| 3| |6 | ; | +-----------------+OSC2 GP1+--o | --> OUT 117.5Hz OR 274.1Hz ; | | 4| |5 | ; -+-27p -+-27p +---+GP3 GP2+--o | --> OUT 54687.5Hz ; -+- -+- | +-----------+ | ; | | | | ; | | +------------------o | <-- /ENABLE "L" => GP1=117.5Hz OR GP1=274.1Hz ; | | | "H" => GP1=0Hz ; | | o | --- GND ; | | | | ; +------+--------------------------------+--+ ; LIST P=12C508A, R=DEC #INCLUDE P12C508A.INC __CONFIG _MCLRE_OFF & _WDT_OFF & _XT_OSC & _CP_OFF CBLOCK 0x7 FREQ OUT ENDC INV54K MACRO MOVLW B'00000100' XORWF OUT,W MOVWF OUT MOVWF GPIO ENDM INV_FQ MACRO MOVLW B'00000010' XORWF OUT,W MOVWF OUT MOVWF GPIO ENDM INV_BTH MACRO MOVLW B'00000110' XORWF OUT,W MOVWF OUT MOVWF GPIO ENDM ;------------------------ ORG 0 GOTO START ORG 0X40 START MOVLW B'11010111' OPTION CLRF GPIO CLRF OUT MOVLW B'11111001' TRIS GPIO MOVLW 1 MOVWF FREQ ;------------------------ LOOPF1A NOP LOOPF1 INV54K BTFSC GPIO,3 GOTO STOP GOTO $+1 INV54K DECFSZ FREQ,F GOTO LOOPF1A GOTO $+1 LBCK1 INV54K INV_FQ INV54K MOVLW 232 MOVWF FREQ NOP LOOPF1B NOP INV54K BTFSC GPIO,0 GOTO L2PF NOP L1PF NOP INV54K DECFSZ FREQ,F GOTO LOOPF1B GOTO $+1 INV_BTH MOVLW 232 MOVWF FREQ GOTO LOOPF1 ;------------------------ LOOPF2A NOP LOOPF2 INV54K BTFSC GPIO,3 GOTO STOP GOTO $+1 INV54K DECFSZ FREQ,F GOTO LOOPF2A NOP LBCK2 NOP INV54K INV_FQ INV54K MOVLW 99 MOVWF FREQ NOP LOOPF2B NOP INV54K BTFSS GPIO,0 GOTO L1PF NOP L2PF NOP INV54K DECFSZ FREQ,F GOTO LOOPF2B GOTO $+1 INV_BTH MOVLW 99 MOVWF FREQ GOTO LOOPF2 ;------------------------ STOP NOP INV54K BTFSC GPIO,3 GOTO STOP GOTO $+1 INV54K BTFSC GPIO,0 GOTO LBCK2 GOTO $+1 INV54K GOTO $+1 GOTO LBCK1 ;------------------------ END