list p=16F88 #include charpt EQU 0x22 charptt EQU 0x23 scanix EQU 0x24 scanpt EQU 0x25 scanptt EQU 0x26 mulsix EQU 0x27 test EQU 0x28 ORG 0x000 GOTO main ORG 0x004 BANKSEL INTCON BCF INTCON,7 BANKSEL scanix MOVLW 0x01 MOVWF PCLATH MOVF scanix,w CALL getchar MOVWF PORTB INCF scanix,f INCF scanpt,f MOVF scanpt,w SUBLW 0x08 MOVWF scanptt MOVF scanptt,f BTFSS STATUS,Z GOTO iend CLRF scanix CLRF scanpt ;x6 INCF charpt BANKSEL PCLATH CLRF PCLATH BANKSEL charpt MOVF charpt,w CALL msg SUBLW 0xFF MOVWF charptt MOVF charptt,f BTFSS STATUS,Z GOTO noret CLRF charpt ; CLRF scanix ; CLRF scanpt noret: MOVF charpt,w CALL msg MOVWF scanix RLF scanix RLF scanix RLF scanix iend: BANKSEL INTCON BCF INTCON, TMR0IF BSF INTCON,7 RETFIE main BANKSEL OSCTUNE CLRF OSCTUNE ; Ajustement à 0 MOVLW b'01111110' MOVWF OSCCON ; 8Mhz interne BANKSEL INTCON ; OSEF des interruptions MOVLW b'00100000' MOVWF INTCON ; Interruption TMR0 ON BANKSEL PIE1 CLRF PIE1 BANKSEL PIR1 CLRF PIR1 BANKSEL PIE2 CLRF PIE2 BANKSEL PIR2 CLRF PIR2 BANKSEL TRISA CLRF TRISB CLRF TRISA CLRF ANSEL ; Tout en digital BANKSEL PORTA CLRF PORTA ; Initialise le port A CLRF PORTB ; Initialise le port B BANKSEL OPTION_REG CLRWDT ; Clear WDT and prescaler BSF STATUS, RP0 ; Bank 1 selectonnee MOVLW B'01000011' ; Timer interne, prescaler sur Timer, Prescaler a 8. 7a1 MOVWF OPTION_REG BCF STATUS, RP0 ; Bank 0 selectonnee BANKSEL RCSTA CLRF RCSTA BANKSEL SSPCON CLRF SSPCON BANKSEL charpt CLRF charpt CLRF charptt CLRF scanpt CLRF scanix CLRF scanptt MOVLW 0x00 CALL msg MOVWF scanix MOVF scanix,f BTFSC STATUS,Z GOTO pnomul RLF scanix RLF scanix RLF scanix pnomul: BANKSEL INTCON MOVLW B'10100000' ; enable interrupts b3 MOVWF INTCON boucle: GOTO boucle ;Message (A=1...) pervers msg: ADDWF PCL,f RETLW D'6' RETLW D'21' RETLW D'18' RETLW D'18' RETLW D'20' RETLW D'5' RETLW D'11' RETLW D'0' RETLW D'0' RETLW D'0' RETLW D'0' RETLW D'0' RETLW D'0' RETLW D'0' RETLW 0xFF ;Alphabet 8x8 + symboles ORG 0xFF getchar: ADDWF PCL,f RETLW b'00000000' RETLW b'00000000' RETLW b'00000000' RETLW b'00000000' RETLW b'00000000' RETLW b'00000000' RETLW b'00000000' RETLW b'00000000' RETLW b'11111100' RETLW b'00010010' RETLW b'00010001' RETLW b'00010001' RETLW b'00010001' RETLW b'00010010' RETLW b'11111100' RETLW b'00000000' RETLW b'11111111' RETLW b'10001001' RETLW b'10001001' RETLW b'10001001' RETLW b'10001001' RETLW b'10001001' RETLW b'01110110' RETLW b'00000000' RETLW b'00111100' RETLW b'01000010' RETLW b'10000001' RETLW b'10000001' RETLW b'10000001' RETLW b'10000001' RETLW b'10000001' RETLW b'00000000' RETLW b'11111111' RETLW b'10000001' RETLW b'10000001' RETLW b'10000001' RETLW b'10000001' RETLW b'01000010' RETLW b'00111100' RETLW b'00000000' RETLW b'11111111' RETLW b'10001001' RETLW b'10001001' RETLW b'10001001' RETLW b'10000001' RETLW b'10000001' RETLW b'10000001' RETLW b'00000000' RETLW b'11111111' RETLW b'00010001' RETLW b'00010001' RETLW b'00010001' RETLW b'00010001' RETLW b'00000001' RETLW b'00000001' RETLW b'00000000' RETLW b'00111100' RETLW b'01000010' RETLW b'10000001' RETLW b'10010001' RETLW b'10010001' RETLW b'10010001' RETLW b'11110010' RETLW b'00000000' RETLW b'11111111' RETLW b'00010000' RETLW b'00010000' RETLW b'00010000' RETLW b'00010000' RETLW b'00010000' RETLW b'11111111' RETLW b'00000000' RETLW b'10000001' RETLW b'10000001' RETLW b'10000001' RETLW b'11111111' RETLW b'10000001' RETLW b'10000001' RETLW b'10000001' RETLW b'00000000' RETLW b'01100001' RETLW b'10000001' RETLW b'10000001' RETLW b'01111111' RETLW b'00000001' RETLW b'00000001' RETLW b'00000001' RETLW b'00000000' RETLW b'11111111' RETLW b'00011000' RETLW b'00100100' RETLW b'00100100' RETLW b'01000010' RETLW b'10000001' RETLW b'10000001' RETLW b'00000000' RETLW b'11111111' RETLW b'10000000' RETLW b'10000000' RETLW b'10000000' RETLW b'10000000' RETLW b'10000000' RETLW b'10000000' RETLW b'00000000' RETLW b'11111111' RETLW b'00000010' RETLW b'00000100' RETLW b'00001000' RETLW b'00000100' RETLW b'00000010' RETLW b'11111111' RETLW b'00000000' RETLW b'11111111' RETLW b'00000010' RETLW b'00000100' RETLW b'00011000' RETLW b'00100000' RETLW b'01000000' RETLW b'11111111' RETLW b'00000000' RETLW b'00111100' RETLW b'01000010' RETLW b'10000001' RETLW b'10000001' RETLW b'10000001' RETLW b'01000010' RETLW b'00111100' RETLW b'00000000' RETLW b'11111111' RETLW b'00010001' RETLW b'00010001' RETLW b'00010001' RETLW b'00010001' RETLW b'00010001' RETLW b'00001110' RETLW b'00000000' RETLW b'00111100' RETLW b'01000010' RETLW b'10000001' RETLW b'11000001' RETLW b'10100001' RETLW b'11000010' RETLW b'11111100' RETLW b'00000000' RETLW b'11111111' RETLW b'00110001' RETLW b'01010001' RETLW b'01010001' RETLW b'10010001' RETLW b'10010001' RETLW b'00001110' RETLW b'00000000' RETLW b'10000110' RETLW b'10001001' RETLW b'10001001' RETLW b'10011001' RETLW b'10010001' RETLW b'10010001' RETLW b'01100001' RETLW b'00000000' RETLW b'00000001' RETLW b'00000001' RETLW b'00000001' RETLW b'11111111' RETLW b'00000001' RETLW b'00000001' RETLW b'00000001' RETLW b'00000000' RETLW b'01111111' RETLW b'10000000' RETLW b'10000000' RETLW b'10000000' RETLW b'10000000' RETLW b'10000000' RETLW b'01111111' RETLW b'00000000' RETLW b'00011111' RETLW b'00100000' RETLW b'01000000' RETLW b'10000000' RETLW b'01000000' RETLW b'00100000' RETLW b'00011111' RETLW b'00000000' RETLW b'01111111' RETLW b'10000000' RETLW b'10000000' RETLW b'01100000' RETLW b'10000000' RETLW b'10000000' RETLW b'01111111' RETLW b'00000000' RETLW b'10000001' RETLW b'01000010' RETLW b'00100100' RETLW b'00011000' RETLW b'00100100' RETLW b'01000010' RETLW b'10000001' RETLW b'00000000' RETLW b'10000111' RETLW b'10001000' RETLW b'10001000' RETLW b'10001000' RETLW b'10001000' RETLW b'01001000' RETLW b'00111111' RETLW b'00000000' RETLW b'11000001' RETLW b'10100001' RETLW b'10010001' RETLW b'10011001' RETLW b'10001001' RETLW b'10000101' RETLW b'10000011' RETLW b'00000000' RETLW b'00001110' RETLW b'00111111' RETLW b'01111111' RETLW b'11111110' RETLW b'01111111' RETLW b'00111111' RETLW b'00001110' RETLW b'00000000' RETLW b'00000010' RETLW b'00100001' RETLW b'01000010' RETLW b'01000000' RETLW b'01000010' RETLW b'00100001' RETLW b'00000010' RETLW b'00000000' RETLW b'11110000' RETLW b'10000000' RETLW b'11111111' RETLW b'10000000' RETLW b'11110000' RETLW b'10000000' RETLW b'11110000' RETLW b'00000000' END