; asm file for pic 16F84 running at 4MHz ; see jpg-file for connections list p=16F84,f=inhx8m __config _XT_OSC & _WDT_OFF & _PWRTE_ON #include ch1 equ 0x10 ch2 equ 0x11 ch3 equ 0x12 ch4 equ 0x13 ch5 equ 0x14 ch6 equ 0x15 ch7 equ 0x16 ch8 equ 0x17 ch9 equ 0x18 ch10 equ 0x19 ch11 equ 0x1A ch12 equ 0x1B ch13 equ 0x1C ch14 equ 0x1C ch15 equ 0x1E ch16 equ 0x1F ch17 equ 0x20 ch18 equ 0x21 ch19 equ 0x22 ch20 equ 0x22 ch21 equ 0x23 ch22 equ 0x24 ch23 equ 0x25 ch24 equ 0x26 ch25 equ 0x27 ch26 equ 0x28 ch27 equ 0x29 ch28 equ 0x2A ch29 equ 0x2B ch30 equ 0x2C ch31 equ 0x2D ch32 equ 0x2E ch33 equ 0x2F ch34 equ 0x30 ch35 equ 0x31 ch36 equ 0x32 ch37 equ 0x33 ch38 equ 0x34 ch39 equ 0x35 ch40 equ 0x36 ch41 equ 0x37 ch42 equ 0x38 ch43 equ 0x39 ch44 equ 0x3A ch45 equ 0x3B ch46 equ 0x3C ch47 equ 0x3C ch48 equ 0x3E ch49 equ 0x3F ch50 equ 0x40 ch51 equ 0x41 ch52 equ 0x42 ch53 equ 0x43 ch54 equ 0x44 ch55 equ 0x45 ch56 equ 0x46 ch57 equ 0x47 ch58 equ 0x48 ch59 equ 0x49 ch60 equ 0x4A ch61 equ 0x4B ch62 equ 0x4C ch63 equ 0x4D ch64 equ 0x4E ch65 equ 0x4F ;dummy channel, don't remove org 0x00 goto start org 0x05 start bsf STATUS,RP0 movlw 0xFF ; port b input movwf TRISB movlw 0xFE ; portA,0 output, other bits input movwf TRISA movlw b'11011000' movwf OPTION_REG movlw b'00100000' ; no interupt allowed movwf INTCON bcf STATUS,RP0 begin movlw 0x00 movwf ch1 movwf ch2 movwf ch3 movwf ch4 movwf ch5 movwf ch6 movwf ch7 movwf ch8 movwf ch9 movwf ch10 movwf ch11 movwf ch12 movwf ch13 movwf ch14 movwf ch15 movwf ch16 movwf ch17 movwf ch18 movwf ch19 movwf ch20 movwf ch21 movwf ch22 movwf ch23 movwf ch24 movwf ch25 movwf ch26 movwf ch27 movwf ch28 movwf ch29 movwf ch30 movwf ch31 movwf ch32 movwf ch33 movwf ch34 movwf ch35 movwf ch36 movwf ch37 movwf ch38 movwf ch39 movwf ch40 movwf ch41 movwf ch42 movwf ch43 movwf ch44 movwf ch45 movwf ch46 movwf ch47 movwf ch48 movwf ch49 movwf ch50 movwf ch51 movwf ch52 movwf ch53 movwf ch54 movwf ch55 movwf ch56 movwf ch57 movwf ch58 movwf ch59 movwf ch60 movwf ch61 movwf ch62 movwf ch63 movwf ch64 movwf ch65 go btfss PORTA,1 goto dmxout movlw 0x10 movwf FSR bcf STATUS,2 program btfsc PORTA,3 wacht btfss PORTA,3 goto wacht movf PORTB,W movwf INDF incf FSR movf FSR,w xorlw 0x50 btfsc STATUS,2 goto dmxout pause btfsc PORTA,3 ; goto pause ; goto program dmxout bsf PORTA,0 nop nop nop bsf PORTA,0 nop nop nop bcf PORTA,0 nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop bsf PORTA,0 nop nop nop bsf PORTA,0 nop nop nop bcf PORTA,0 ;startbit nop nop nop nop ;begin startcode nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop ;end of startcode bsf PORTA,0 ;stopbits nop nop nop bsf PORTA,0 nop nop nop bsf PORTA,0 nop nop nop movlw 0x10 movwf FSR chanel movf INDF,w bcf PORTA,0 ;startbit nop nop nop movwf PORTA rrf INDF movf INDF,W nop movwf PORTA rrf INDF movf INDF,W nop movwf PORTA rrf INDF movf INDF,W nop movwf PORTA rrf INDF movf INDF,W nop movwf PORTA rrf INDF movf INDF,W nop movwf PORTA rrf INDF movf INDF,W nop movwf PORTA rrf INDF movf INDF,W nop movwf PORTA rrf INDF movf INDF,W rrf INDF bsf PORTA,0 ;three stopbits nop nop nop bsf PORTA,0 nop nop nop bsf PORTA,0 nop nop nop bcf STATUS,2 nop nop nop clrwdt incf FSR movf FSR,w xorlw 0x50 btfss STATUS,2 goto chanel goto go end