Re: LCD-display Probleem

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
 
Ik heb niet gebruikt PIC.

dus ik kan het niet helpen in code ..

maar als u nog vragen dan logisch Ik kan proberen ...
indien u dat wenst dan voel je vrij om vragen ..

bedankt
Laatst gewijzigd door H_D_R op 28 februari 2008 5:03; bewerkt 1 keer in totaal

 
Gebruik van de simulator komen met MPLAB van Microchip.

Zodra u door uw software,
kunt u zich waarom / waar het is mis.

 
H_D_R schreef:

Ik heb niet gebruikt PIC.dus ik kan helpen in code ..maar als u nog vragen dan logisch Ik kan proberen ...

indien u dat wenst dan voel je vrij om vragen ..bedankt
 
smileguitar schreef:H_D_R schreef:

Ik heb niet gebruikt PIC.dus ik kan helpen in code ..maar als u nog vragen dan logisch Ik kan proberen ...

indien u dat wenst dan voel je vrij om vragen ..bedankt
 
Hi Smileguitar,Probleem # 1:

U bent looping de routine Begin met tekst.

Wijzig de code in
Code:BEGIN CALL TEKST

BTFSC PORTB, 0; SKIP IF ENTER = 1

GOTO BEGIN; IF ENTER = 0 GO TO BEGIN

 
H_D_R schreef:smileguitar schreef:H_D_R schreef:

Ik heb niet gebruikt PIC.dus ik kan helpen in code ..maar als u nog vragen dan logisch Ik kan proberen ...

indien u dat wenst dan voel je vrij om vragen ..bedankt
 
Hi smileguitar,
Leuk om te horen van U, dat het werkt.
Toelichting: wrongchk & correctchk
de directe functie bellen als u heeft
-------------------------------------------------
BTFSS STATUS, Z; NUM4-4 = 0?
CALL WRONG; Nee,
terug naar START
CALL CORRECTE
---------------------------------------------
(Ik heb gecorrigeerd uw verklaring GOTO te bellen verklaring in het bovenstaande voorbeeld.) De code zal controleren op de 4e num als dat valse zal voeren de verkeerde functie eerste en hij zal uitvoeren juiste functie ook.

Om deze situatie, wrongchk en correctchk is vereist

sante

Nishal

 
hoi

Het probleem is dat nadat je prompt "enter code", de pic returs snel te scannen wat gebeuren op de havens.En goed, druk op de enter-knop, om de menselijke, neemt een beetje tijd, laten we zeggen een paar milliseconden.
Dus, wanneer pic rendementen te scannen hun havens, voer knop nog steeds ingedrukt (check debounce ook) en denken als een nieuwe verkeerde code ingevoerd.

Het probleem op te lossen, geven aan programma vertragingen of ontwerpen van een kleine RC filter om verbinding te maken met voer knop.

Op deze manier uw probleem zal verdwijnen.

succes

 
Ik zie, Thanks!Nu begrijp ik.

Ik
heb een andere vraag,
als gevolg van mijn codering, hoe kan ik het LCD na weergegeven?I've been probeert te gebruiken B'00000001 'om duidelijk, maar niet.

 
smileguitar schreef:

Ik zie, Thanks!
Nu begrijp ik.Ik heb een andere vraag, als gevolg van mijn codering, hoe kan ik het LCD na weergegeven?
I've been probeert te gebruiken B'00000001 'om duidelijk, maar niet.
 

Welcome to EDABoard.com

Sponsor

Back
Top