S
smileguitar
Guest
Code:
LIST P = 16F877
# Include <P16F877.INC>
errorlevel -302
errorlevel -207
__CONFIG _CP_OFF & _PWRTE_ON & _XT_OSC & _WDT_OFF;========== VARIABELE ===============CBLOCK 0x20
NUM1; VOOR NUMMER
NUM2; VOOR NUMMER
NUM3; VOOR NUMMER
NUM4; VOOR NUMMER
D1
D2
D3
D4
ENDCORG 0x00
GOTO BEGINTEKST UITNODIGING LCD_INIT
BSF PORTB, 2, R / S SET'1 '
MOVLW H'45 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6E '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'74 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'65 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'72 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'20 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'43 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6F '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'64 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'65 '
MOVWF PORTD
CALL CLOCK_E
RETLW 0x00WRONG CALL LCD_INIT
CALL LCD_LINE2
BSF PORTB, 2, R / S SET'1 '
MOVLW H'57 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'72 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6F '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6E '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'67 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'20 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'43 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6F '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'64 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'65 '
MOVWF PORTD
CALL CLOCK_E
RETLW 0x00CORRECT CALL LCD_INIT
CALL LCD_LINE2
BSF PORTB, 2, R / S SET'1 '
MOVLW H'43 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6F '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'72 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'72 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'65 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'63 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'74 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'20 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'43 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6F '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'64 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'65 '
MOVWF PORTD
CALL CLOCK_E
RETLW 0x00START BSF STATUS, RP0
MOVLW B'00000001 '
MOVWF TRISB
MOVLW B'00000000 '
MOVWF TRISD
BCF STATUS, RP0
CLRF PORTB
CLRF PORTD
GOTO BEGINBEGIN CALL TEKST
BTFSC PORTB, 0; SKIP IF ENTER = 1
GOTO BEGIN; IF ENTER = 0 GO TO BEGINONE MOVLW D'1 '
MOVWF NUM1; SET NUM1 = 1
SUBLW B'00000001 '; NUM1-1
BTFSS STATUS, Z; NUM1-1 = 0?
GOTO TWEE; JA, ga naar volgende nummer
GOTO FOUTTWEE MOVLW D'2 '
MOVWF NUM2; SET NUM1 = 2
SUBLW B'00000010 '; NUM2-2
BTFSS STATUS, Z; NUM2-2 = 0?
GOTO DRIE; JA, ga naar volgende nummer
GOTO FOUTDRIE MOVLW D'3 '
MOVWF NUM3; SET NUM1 = 3
SUBLW B'00000011 '; NUM3-3
BTFSS STATUS, Z; NUM3-3 = 0?
GOTO VIER; JA, ga naar volgende nummer
GOTO FOUTVIER MOVLW D'4 '
MOVWF NUM4; SET NUM1 = 4
SUBLW B'00000100 '; NUM4-4
BTFSS STATUS, Z; NUM4-4 = 0?
GOTO WRONG; Nee, terug naar START
GOTO CORRECTE
BSF PORTB, 5LCD_INIT BCF PORTB, 2
MOVLW B'00110000 '
MOVWF PORTD; FUNCTION SET: 8 BIT INTERFACE
CALL CLOCK_E
MOVLW B'00001100 '
MOVWF PORTD; DISPALY & CURSOR: SET DISPLAY ON; CURSOR BENADRUKKEN OFF; CURSOR BLINK OFF
CALL CLOCK_E
MOVLW B'00111000 '
MOVWF PORTD; FUNCTION SET: 8 bits, 2 LINE MODE; 5x10 DOT FORMAAT
CALL CLOCK_E
MOVWF B'00000001 '
MOVWF PORTD; CLEAR DISPLAY
CALL CLOCK_E
MOVLW B'00000110 '
MOVWF PORTD; CHARACTER ENTRY MODE: INCREMENT; DISPLAY SHIFT ON
CALL CLOCK_E
RETLW 0x00LCD_LINE2 BCF PORTB, 2, R / S SET'0 '
MOVLW B'11000000 '
MOVWF PORTD; Ga naar 2ND LINE
CALL CLOCK_E
RETLW 0x00CLOCK_E BSF PORTB, 1
CALL DELAY2
BCF PORTB, 1
RETLW 0x00DELAY1 MOVLW D'130 '
MOVWF D2
MOVLW D'221 '
MOVWF D1
LOOP1 DECFSZ D1, 1
GOTO LOOP1
DECFSZ D2, 1
GOTO LOOP1
RETLW 0x00DELAY2 MOVLW D'13 '; DELAY 10ms
MOVWF D4
MOVLW D'251 '
MOVWF D3
LOOP2 DECFSZ D3, 1
GOTO LOOP2
DECFSZ D4, 1
GOTO LOOP2
RETLW 0x00EINDE
LIST P = 16F877
# Include <P16F877.INC>
errorlevel -302
errorlevel -207
__CONFIG _CP_OFF & _PWRTE_ON & _XT_OSC & _WDT_OFF;========== VARIABELE ===============CBLOCK 0x20
NUM1; VOOR NUMMER
NUM2; VOOR NUMMER
NUM3; VOOR NUMMER
NUM4; VOOR NUMMER
D1
D2
D3
D4
ENDCORG 0x00
GOTO BEGINTEKST UITNODIGING LCD_INIT
BSF PORTB, 2, R / S SET'1 '
MOVLW H'45 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6E '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'74 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'65 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'72 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'20 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'43 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6F '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'64 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'65 '
MOVWF PORTD
CALL CLOCK_E
RETLW 0x00WRONG CALL LCD_INIT
CALL LCD_LINE2
BSF PORTB, 2, R / S SET'1 '
MOVLW H'57 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'72 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6F '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6E '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'67 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'20 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'43 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6F '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'64 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'65 '
MOVWF PORTD
CALL CLOCK_E
RETLW 0x00CORRECT CALL LCD_INIT
CALL LCD_LINE2
BSF PORTB, 2, R / S SET'1 '
MOVLW H'43 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6F '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'72 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'72 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'65 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'63 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'74 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'20 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'43 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'6F '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'64 '
MOVWF PORTD
CALL CLOCK_E
MOVLW H'65 '
MOVWF PORTD
CALL CLOCK_E
RETLW 0x00START BSF STATUS, RP0
MOVLW B'00000001 '
MOVWF TRISB
MOVLW B'00000000 '
MOVWF TRISD
BCF STATUS, RP0
CLRF PORTB
CLRF PORTD
GOTO BEGINBEGIN CALL TEKST
BTFSC PORTB, 0; SKIP IF ENTER = 1
GOTO BEGIN; IF ENTER = 0 GO TO BEGINONE MOVLW D'1 '
MOVWF NUM1; SET NUM1 = 1
SUBLW B'00000001 '; NUM1-1
BTFSS STATUS, Z; NUM1-1 = 0?
GOTO TWEE; JA, ga naar volgende nummer
GOTO FOUTTWEE MOVLW D'2 '
MOVWF NUM2; SET NUM1 = 2
SUBLW B'00000010 '; NUM2-2
BTFSS STATUS, Z; NUM2-2 = 0?
GOTO DRIE; JA, ga naar volgende nummer
GOTO FOUTDRIE MOVLW D'3 '
MOVWF NUM3; SET NUM1 = 3
SUBLW B'00000011 '; NUM3-3
BTFSS STATUS, Z; NUM3-3 = 0?
GOTO VIER; JA, ga naar volgende nummer
GOTO FOUTVIER MOVLW D'4 '
MOVWF NUM4; SET NUM1 = 4
SUBLW B'00000100 '; NUM4-4
BTFSS STATUS, Z; NUM4-4 = 0?
GOTO WRONG; Nee, terug naar START
GOTO CORRECTE
BSF PORTB, 5LCD_INIT BCF PORTB, 2
MOVLW B'00110000 '
MOVWF PORTD; FUNCTION SET: 8 BIT INTERFACE
CALL CLOCK_E
MOVLW B'00001100 '
MOVWF PORTD; DISPALY & CURSOR: SET DISPLAY ON; CURSOR BENADRUKKEN OFF; CURSOR BLINK OFF
CALL CLOCK_E
MOVLW B'00111000 '
MOVWF PORTD; FUNCTION SET: 8 bits, 2 LINE MODE; 5x10 DOT FORMAAT
CALL CLOCK_E
MOVWF B'00000001 '
MOVWF PORTD; CLEAR DISPLAY
CALL CLOCK_E
MOVLW B'00000110 '
MOVWF PORTD; CHARACTER ENTRY MODE: INCREMENT; DISPLAY SHIFT ON
CALL CLOCK_E
RETLW 0x00LCD_LINE2 BCF PORTB, 2, R / S SET'0 '
MOVLW B'11000000 '
MOVWF PORTD; Ga naar 2ND LINE
CALL CLOCK_E
RETLW 0x00CLOCK_E BSF PORTB, 1
CALL DELAY2
BCF PORTB, 1
RETLW 0x00DELAY1 MOVLW D'130 '
MOVWF D2
MOVLW D'221 '
MOVWF D1
LOOP1 DECFSZ D1, 1
GOTO LOOP1
DECFSZ D2, 1
GOTO LOOP1
RETLW 0x00DELAY2 MOVLW D'13 '; DELAY 10ms
MOVWF D4
MOVLW D'251 '
MOVWF D3
LOOP2 DECFSZ D3, 1
GOTO LOOP2
DECFSZ D4, 1
GOTO LOOP2
RETLW 0x00EINDE