Forum: Mikrocontroller und Digitale Elektronik Prob mit PIC16F84A und LCD-Display


von Oliver H. (Firma: OliverHeinrichs.de) (dobson)


Lesenswert?

Hallo erstmal.

Ich habe vor ca. 2 Wochen mit den PIC's angefangen, und komme auch schon 
ein bisschen klar damit. nur jetzt habe ich Probleme damit ein 16X2 
Display anzusteuern. Ich schaffe es noch nicht einmal das sich das 
Display initialisiert. Hier meine Pinbelegung:

RA0 - RS
RA1 - R/W
RA2 - E

RB0 - DB0
RB1 - DB1
...
RB7 - DB7

Wenn ich nur ein 4bittiges Display gehabt hätte, hätte ich mich ja an 
dem Beispiel von Sprut orientieren können, aber wer alte Sat-Reciever 
auseinanderschraubt, um an teile zu kommen kann es sich halt nicht immer 
aussuchen. als Inc-Datei für den PIC hab ich diese:


_CP_ON                       EQU     H'000F'
_CP_OFF                      EQU     H'3FFF'
_PWRTE_ON                    EQU     H'3FF7'
_PWRTE_OFF                   EQU     H'3FFF'
_WDT_ON                      EQU     H'3FFF'
_WDT_OFF                     EQU     H'3FFB'
_LP_OSC                      EQU     H'3FFC'
_XT_OSC                      EQU     H'3FFD'
_HS_OSC                      EQU     H'3FFE'
_RC_OSC                      EQU     H'3FFF'
  __CONFIG        _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
W                            EQU     H'0000'
F                            EQU     H'0001'
INDF                         EQU     H'0000'
TMR0                         EQU     H'0001'
PCL                          EQU     H'0002'
STATUS                       EQU     H'0003'
FSR                          EQU     H'0004'
PORTA                        EQU     H'0005'
PORTB                        EQU     H'0006'
EEDATA                       EQU     H'0008'
EEADR                        EQU     H'0009'
PCLATH                       EQU     H'000A'
INTCON                       EQU     H'000B'
OPTION_REG                   EQU     H'0081'
TRISA                        EQU     H'0085'
TRISB                        EQU     H'0086'
EECON1                       EQU     H'0088'
EECON2                       EQU     H'0089'
IRP                          EQU     H'0007'
RP1                          EQU     H'0006'
RP0                          EQU     H'0005'
NOT_TO                       EQU     H'0004'
NOT_PD                       EQU     H'0003'
Z                            EQU     H'0002'
DC                           EQU     H'0001'
C                            EQU     H'0000'
GIE                          EQU     H'0007'
EEIE                         EQU     H'0006'
T0IE                         EQU     H'0005'
INTE                         EQU     H'0004'
RBIE                         EQU     H'0003'
T0IF                         EQU     H'0002'
INTF                         EQU     H'0001'
RBIF                         EQU     H'0000'
NOT_RBPU                     EQU     H'0007'
INTEDG                       EQU     H'0006'
T0CS                         EQU     H'0005'
T0SE                         EQU     H'0004'
PSA                          EQU     H'0003'
PS2                          EQU     H'0002'
PS1                          EQU     H'0001'
PS0                          EQU     H'0000'
EEIF                         EQU     H'0004'
WRERR                        EQU     H'0003'
WREN                         EQU     H'0002'
WR                           EQU     H'0001'
RD                           EQU     H'0000'
        __MAXRAM H'CF'
        __BADRAM H'07', H'50'-H'7F', H'87'
TIMER1          EQU     H'0C'
TIMER2          EQU     H'0D'
    ORG  0
    GOTO  RESET

DELAY    MOVLW   D'20'
                MOVWF   TIMER1
                ;
DELAY2    MOVLW  D'20'
    MOVWF  TIMER2
    DECFSZ  TIMER2,F
                GOTO    $-1
    DECFSZ  TIMER1,F
    GOTO  DELAY2
    RETLW   0
RESET
    BSF  STATUS,RP0
    MOVLW  B'00000000'
    MOVWF  TRISA
    MOVLW  B'00000000'
    MOVWF  TRISB
    BCF  STATUS,RP0
    CLRF  PORTB


Für die ASM File hab ich...

  LIST  p=16F84A
  #include <P16f84.INC>
INIT

  END

Also quasi nix

und da beginnt auch mein Problem. ich weiss nicht wie oder wo ich 
anfangen könnte.

Für schnelle Hilfe bin ich sehr dankbar.

Gruß, Oliver

von Resetter (Gast)


Lesenswert?

Mach Dir nichts draus von PICs habe ich auch keinen Plan.
Für was gibt es denn die AVRs.

Gruß und tschüss

von Oliver H. (Firma: OliverHeinrichs.de) (dobson)


Lesenswert?

Resetter wrote:
> Mach Dir nichts draus von PICs habe ich auch keinen Plan.
> Für was gibt es denn die AVRs.
>
> Gruß und tschüss

sehr hilfreich.
dankeschön

von Oliver H. (Firma: OliverHeinrichs.de) (dobson)


Lesenswert?

noch was. Hab ich im Datenblatt der LCD-Anzeige gefunden:

Controller KS0066

ich weiss nicht inwiefern das wichtig ist, aber irgendwo hab ich 
gelesen, das der init da wohl anders sei...

von Kobold (Gast)


Angehängte Dateien:

Lesenswert?

Den 16F84A haben wir in der Schule mal mit einem 16x2 Display 
verbandelt, im Anhang der Code dafür.
Das ist allerdings auch für 4bit-Ansteuerung, sollte sich aber simpel 
auf parallel-Ansteuerung vereinfachen lassen.

Und sieht "irgendwie anders" als das oben aus....

So long

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.