;******************************************************** ; ; CW Code Program Select ; ; Author : Pete Juliano ; November 2004 ;******************************************************** list p=pic16f84 include p16f84.inc __config 3FF9 errorlevel -302 ;Eliminate bank warning ;**************** Label Definition ******************** LED equ 05 status equ H'0003' rp0 equ H'0005' ra0 equ 0x00 ;RA0 MSG1 SELECT ra1 equ 0x01 ;RA1 MSG2 SELECT ra2 equ 0x02 ;RA2 MSG3 SELECT ra3 equ 0x03 ;RA3 MSG4 SELECT PORTA equ H'0005' PORTB equ H'0006' TRISA equ H'0085' TRISB equ H'0086' COUNT1 equ 11 COUNT2 equ 12 COUNT3 equ 13 ;**************** Program Start *********************** org 0 ;Reset Vector goto init org 4 ;Interrupt Vector goto init ;*******************************DOT Generator / DOT:DASH Spacing***************************** D MOVLW .45 ; DOT Timing and DOT/DASH Spacing MOVWF COUNT1 L1 MOVLW .12 MOVWF COUNT2 L2 MOVLW .60 MOVWF COUNT3 L3 DECFSZ COUNT3,1 GOTO L3 DECFSZ COUNT2,1 GOTO L2 DECFSZ COUNT1,1 GOTO L1 MOVLW .150 MOVWF COUNT1 LP98 DECFSZ COUNT1,1 GOTO LP98 NOP RETLW 0 ;****************************DASH Generator / Letter Spacing********************* D1 MOVLW .90 ; DASH Timing and Letter Spacing MOVWF COUNT1 L4 MOVLW .18 MOVWF COUNT2 L5 MOVLW .60 MOVWF COUNT3 L6 DECFSZ COUNT3,1 GOTO L6 DECFSZ COUNT2,1 GOTO L5 DECFSZ COUNT1,1 GOTO L4 MOVLW .150 MOVWF COUNT1 LP99 DECFSZ COUNT1,1 GOTO LP99 NOP RETLW 0 ;********************************************************************** BREAK CALL DASH ; -...- CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D CALL DASH CALL D1 RETURN ;********************************************************************** COMMA CALL DASH ;--..-- CALL D CALL DASH CALL D CALL DOT CALL D CALL DOT CALL D CALL DASH CALL D CALL DASH CALL D1 RETURN ;****************************************************************************** DOT BSF PORTB,LED CALL D ; DOT BCF PORTB,LED RETURN ;***************************************************************************** DASH BSF PORTB,LED CALL D1 ; DASH BCF PORTB,LED RETURN ;**************** Initial Process ********************* init bsf STATUS,RP0 ;Change to Bank1 movwf TRISA ;Set PORTA to Input mode clrf TRISB ;Set PORTB to Output mode bcf STATUS,RP0 ;Change to Bank0 bcf PORTB,LED ;**************** Switch Scan Process ******************** switch btfss PORTA,ra0 ;RA0 ON(Low level) ? call MSG1 ;Yes. Call MSG One btfss PORTA,ra1 ;RA1 ON ? call MSG2 ;Yes. Call Msg Two btfss PORTA,ra3 ;RA3 ON ? call MSG3 ;Yes. Call MSG Three goto switch ;Retry ;************************************************************************************ MSG1 ; CQ DE W6JFR BSF 3,5 MOVLW 0x00 MOVWF PORTB BCF 3,5 CALL D1 CALL DASH ;C CALL D CALL DOT CALL D CALL DASH CALL D CALL DOT CALL D1 CALL DASH ;Q CALL D CALL DASH CALL D CALL DOT CALL D CALL DASH CALL D1 CALL DASH ;C CALL D CALL DOT CALL D CALL DASH CALL D CALL DOT CALL D1 CALL DASH ;Q CALL D CALL DASH CALL D CALL DOT CALL D CALL DASH CALL D1 CALL D1 CALL DASH ;D CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DOT ;E CALL D1 CALL D1 CALL DOT ;W CALL D CALL DASH CALL D CALL DASH CALL D1 CALL DASH ;6 CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DOT ;J CALL D CALL DASH CALL D CALL DASH CALL D CALL DASH CALL D1 CALL DOT ;F CALL D CALL DOT CALL D CALL DASH CALL D CALL DOT CALL D1 CALL DOT ;R CALL D CALL DASH CALL D CALL DOT CALL D1 CALL D1 CALL DASH ;K CALL D CALL DOT CALL D CALL DASH RETURN ;*********************************************************************************** MSG2 ;TNX OM COMMA UR RST 579 579 COMMA NAME PETE PETE COMMA QTH NR SEATTLE BACK BSF 3,5 MOVLW 0x00 MOVWF PORTB BCF 3,5 CALL D1 CALL D1 CALL DASH ;T CALL D1 CALL DASH ;N CALL D CALL DOT CALL D1 CALL DASH ;X CALL D CALL DOT CALL D CALL DOT CALL D CALL DASH CALL D1 CALL D1 CALL DASH ;O CALL D CALL DASH CALL D CALL DASH CALL D1 CALL DASH ;M CALL D CALL DASH CALL D1 CALL COMMA CALL D1 CALL D1 CALL DOT ;U CALL D CALL DOT CALL D CALL DASH CALL D1 CALL DOT ;R CALL D CALL DASH CALL D CALL DOT CALL D1 CALL D1 CALL DOT ;R CALL D CALL DASH CALL D CALL DOT CALL D1 CALL DOT ;S CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DASH ;T CALL D1 CALL D1 CALL DOT ;I CALL D CALL DOT CALL D1 CALL DOT ;S CALL D CALL DOT CALL D CALL DOT CALL D1 CALL D1 CALL DOT ;5 CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DASH ;7 CALL D CALL DASH CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DASH ;9 CALL D CALL DASH CALL D CALL DASH CALL D CALL DASH CALL D CALL DOT CALL D1 CALL D1 CALL DOT ;5 CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DASH ;7 CALL D CALL DASH CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DASH ;9 CALL D CALL DASH CALL D CALL DASH CALL D CALL DASH CALL D CALL DOT CALL D1 CALL D1 CALL DASH ;N CALL D CALL DOT CALL D1 CALL DOT ;A CALL D CALL DASH CALL D1 CALL DASH ;M CALL D CALL DASH CALL D1 CALL DOT ;E CALL D1 CALL D1 CALL BREAK CALL DOT ;P CALL D CALL DASH CALL D CALL DASH CALL D CALL DOT CALL D1 CALL DOT ;E CALL D1 CALL DASH ;T CALL D1 CALL DOT ;E CALL D1 CALL D1 CALL D1 CALL DOT ;P CALL D CALL DASH CALL D CALL DASH CALL D CALL DOT CALL D1 CALL DOT ;E CALL D1 CALL DASH ;T CALL D1 CALL DOT ;E CALL D1 CALL COMMA CALL DASH ;Q CALL D CALL DASH CALL D CALL DOT CALL D CALL DASH CALL D1 CALL DASH ;T CALL D1 CALL DOT ;H CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D1 CALL D1 CALL DASH ;N CALL D CALL DOT CALL D1 CALL DOT ;R CALL D CALL DASH CALL D CALL DOT CALL D1 CALL D1 CALL DOT ;S CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DOT ;E CALL D1 CALL DOT ;A CALL D CALL DASH CALL D1 CALL DASH ;T CALL D1 CALL DASH ;T CALL D1 CALL DOT ;L CALL D CALL DASH CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DOT ;E CALL D1 CALL D1 CALL DOT ;S CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DOT ;E CALL D1 CALL DOT ;A CALL D CALL DASH CALL D1 CALL DASH ;T CALL D1 CALL DASH ;T CALL D1 CALL DOT ;L CALL D CALL DASH CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DOT ;E CALL D1 CALL D1 CALL DASH ;B CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DOT ;A CALL D CALL DASH CALL D1 CALL DASH ;C CALL D CALL DOT CALL D CALL DASH CALL D CALL DOT CALL D1 CALL DASH ;K CALL D CALL DOT CALL D CALL DASH CALL D1 RETURN ;*************Rig is Homebrew XCVR 20W ANT Wire Back*************************** MSG3 BSF 3,5 MOVLW 0x00 MOVWF PORTB BCF 3,5 CALL D1 CALL D1 CALL DOT ;R CALL D CALL DASH CALL D CALL DOT CALL D1 CALL DOT ;I CALL D CALL DOT CALL D1 CALL DASH ;G CALL D CALL DASH CALL D CALL DOT CALL D1 CALL D1 CALL DOT ;I CALL D CALL DOT CALL D1 CALL DOT ;S CALL D CALL DOT CALL D CALL DOT CALL D1 CALL D1 CALL DOT ;H CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DASH ;O CALL D CALL DASH CALL D CALL DASH CALL D1 CALL DASH ;M CALL D CALL DASH CALL D1 CALL DOT ;E CALL D1 CALL DASH ;B CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DOT ;R CALL D CALL DASH CALL D CALL DOT CALL D1 CALL DOT ;E CALL D1 CALL DOT ;W CALL D CALL DASH CALL D CALL DASH CALL D1 CALL D1 CALL DASH ;X CALL D CALL DOT CALL D CALL DOT CALL D CALL DASH CALL D1 CALL DASH ;C CALL D CALL DOT CALL D CALL DASH CALL D CALL DOT CALL D1 CALL DOT ;V CALL D CALL DOT CALL D CALL DOT CALL D CALL DASH CALL D1 CALL DOT ;R CALL D CALL DASH CALL D CALL DOT CALL D1 CALL D1 CALL DOT ;2 CALL D CALL DOT CALL D CALL DASH CALL D CALL DASH CALL D CALL DASH CALL D1 CALL DASH ;0 CALL D CALL DASH CALL D CALL DASH CALL D CALL DASH CALL D CALL DASH CALL D1 CALL DOT ;W CALL D CALL DASH CALL D CALL DASH CALL D1 CALL D1 CALL DOT ;A CALL D CALL DASH CALL D1 CALL DASH ;N CALL D CALL DOT CALL D1 CALL DASH ;T CALL D1 CALL D1 CALL DOT ;W CALL D CALL DASH CALL D CALL DASH CALL D1 CALL DOT ;I CALL D CALL DOT CALL D1 CALL DOT ;R CALL D CALL DASH CALL D CALL DOT CALL D1 CALL DOT ;E CALL D1 CALL D1 CALL DASH ;B CALL D CALL DOT CALL D CALL DOT CALL D CALL DOT CALL D1 CALL DOT ;A CALL D CALL DASH CALL D1 CALL DASH ;C CALL D CALL DOT CALL D CALL DASH CALL D CALL DOT CALL D1 CALL DASH ;K CALL D CALL DOT CALL D CALL DASH CALL D1 RETURN ;************************************************************************************************ MSG4 ;Not Implemented RETURN ;***************************************************************************************************** END