Forum: Mikrocontroller und Digitale Elektronik PIC 16F877A RS232 LCD Ausgabe


von sunny198828 (Gast)


Angehängte Dateien:

Lesenswert?

Schönen Guten Tag

ich möchte meine USV gerne mit PIC und LCD über RS232 auswerten
Zeichen Senden kann ich an die usv das ist kein problem...

nur wie schaffe ich es das dass was der pic dann empfängt mit vernünftig 
auf meinem LCD anzeigt?

bisher kommt auf dem LCD immer nur müll raus kann mir da vielleicht 
jemand helfen??

kleinen ansatz habe ich schon nur verstehe ich das irgendwie nicht ganz


mit Freundlichen Grüßen

Marcel Klug

von Marcel K. (sunny198828)


Lesenswert?

sorry war nicht eingeloggt

noch was vergessen Baudrate ist 2,4kb/s

Die USV ist von APC SmartUPS 1400

von Martin S. (drunkenmunky)


Lesenswert?

klappt es denn, unabhängig von dem empfangegen Daten von der seriellen 
Schnittstelle, einen Text auf dem Display anzeigen zu lassen?

von Marcel K. (sunny198828)


Angehängte Dateien:

Lesenswert?

Ja das klappt alles wunderabr

ich habe es im picsimulatoride laufen lassen

jedoch wenn ich versuche die zeichen die über rs232 kommen auf lcd 
anzuzeigen kommt nur müll oder garnichts

wenn ich zahlen eingebe kommen immer nur 0

oder liegt das am simulator??

mfg sunny

von Martin S. (drunkenmunky)


Lesenswert?

kenne den Simulator nicht, denke aber nicht, dass es an dem liegt.
Ich bin auch nicht der Assembler Profi...

Du kannst doch mal auf debuggen gehen und schauen, was er für Zeichen 
über die serielle Schnittstelle empängt, oder?

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Du initialisierst nirgens das LCD. Die Routine ist zwar da, wird aber 
nirgens angesprungen.

von Marcel K. (sunny198828)


Angehängte Dateien:

Lesenswert?

also das programm läuft so das es mir das gesendete zeichen seriell 
zurückschickt und über LCD ausgeben soll seriell kommt richtig zurück 
nur auf lcd kommt nichts vernünftiges

ja das init fürs lcd hatte ich vergessen stimmt ist jetzt drinn ändert 
nur leider nichts am verhalten...

irgednwas mache ich falsch... nur was??

bitte helft mir :-)

mfg sunny

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Na dann teste doch erst mal, ob das LCD überhaupt ein Zeichen anzeigt. 
Eventuell hapert es ja an der Initialisierung des LCD. Wenn die nicht zu 
deinem LCD passt, wird dieses auch nichts anzeigen.

von Marcel K. (sunny198828)


Lesenswert?

das habe ich ja schon weiter oben bestätigt das klappt alles wunderbar!
zeichen werden vernünftig angezeigt nur die zeichen die über rs232 
kommen werden nicht angezeigt!

mfg sunny

von Marcel K. (sunny198828)


Lesenswert?

Hi,
falls es noch jemanden interessiert ich habs rausgefunden.

; Hauptprogrammschleife

  movlw  'Y'
  movwf  TXREG
  clrf  DatenSindDa
  movlw  0x05
  movwf  counter
  movlw  0xDE
  call  OutLcdControl
Zeichen1_1
  btfss   DatenSindDa, 0 ; wurde was empfangen?
  goto  Zeichen1_1
  movlw  0x00
  iorwf  Zeichen, w
  call  OutLcdDaten
  movf  Zeichen, w
  movwf  TXREG
  clrf  DatenSindDa
  DECFSZ  counter, 1
  goto  Zeichen1_1
  movlw  '%'
  call  OutLcdDaten
  goto  fertig

fertig
  movlw  0x88
  call  OutLcdControl
  movlw  'F'
  call  OutLcdDaten
  movlw  'e'
  call  OutLcdDaten
  movlw  'r'
  call  OutLcdDaten
  movlw  't'
  call  OutLcdDaten
  movlw  'i'
  call  OutLcdDaten
  movlw  'g'
  call  OutLcdDaten

ich muss erst einaml null ins arbeitsregister schreiben

movlw  0x00

und dananch

iorwf Zeichen, w

warum das jetzt so ist habe ich noch nicht ganz verstanden...
vllt könnte mich da ja mal jemand aufklären, warum nicht direkt

movlw  Zeichen

klappt ?!

mfg sunny

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Weil du mit movlw die Adresse von Zeichen nach w schreibst und nicht den 
Inhalt von Zeichen. Um den Inhalt einer Variablen nach w zu laden nimmt 
man movfw. In deinem Fall also movfw Zeichen (die richtige Schreibweise 
lautet allerdings movf Zeichen,w)

von Marcel K. (sunny198828)


Lesenswert?

ahh,

jetzt habe ich das verstanden!

Besten dank an euch ist ein echt super forum hier!

wenn ihr wollt stelle ich mein projekt hier gerne vor wenns fertig ist!

mit freundlichen Grüßen

Sunny

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.
Lade...