__config 3ffb ; ; Single Message Morse Program ; ;Defines #DEFINE REGHI BSF 3,5 #DEFINE REGLO BCF 3,5 #DEFINE KEYDN BSF 5,1 #DEFINE KEYUP BCF 5,1 ;Internal File Assignments PCL EQU 0x02 PORTA EQU 0x05 PORTB EQU 0x06 PCLATH EQU 0x0A ;Internal Bit Assignments W EQU 0 F EQU 1 ;User File Assignments OFFSET EQU 0x0D TIMER1 EQU 0x10 TIMER2 EQU 0x11 ;User Bit Assignments KEYIN EQU 2 KEYOUT EQU 1 ;Program Starts Here!!!!!!!!! ORG 5 CLRF PORTA CLRF PORTB CLRF PCLATH REGHI CLRF PORTA ;Set PORTA to all outputs MOVLW 0xFF MOVLW PORTB ;Set PORTB to all inputs REGLO LOOP BTFSS PORTB,0 ;Is Switch pressed GOTO PTABLE ;Yes GOTO LOOP ;No DOT KEYDN CALL TIME KEYUP CALL TIME RETURN DASH KEYDN CALL TIME CALL TIME CALL TIME KEYUP CALL TIME RETURN PSPACE CALL TIME CALL TIME RETURN LONG CALL TIME CALL TIME CALL TIME CALL TIME CALL TIME CALL TIME RETURN TIME MOVLW 0x16 MOVWF TIMER1 T1 MOVLW 0x80 MOVWF TIMER2 T2 DECFSZ TIMER2,F GOTO T2 DECFSZ TIMER1,F GOTO T1 RETURN PEND GOTO LOOP PTABLE CALL DOT CALL DASH CALL DOT CALL DASH CALL PSPACE CALL DOT CALL DASH CALL DASH CALL DOT CALL DASH CALL LONG GOTO PEND END