String auslesen und an LCD senden (16F877) Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
String auslesen und an LCD senden (16F877) Suche nach: lcd (4684) |
|
|
|
|
BID = 808564
jhl Schreibmaschine
Beiträge: 1506 Wohnort: Twistringen
|
|
Hallo an alle,
ab und an programmiere ich auch an PIC herum. Das für mich etwas "Blöde" ist die Zeichenausgabe auf ein LCD-Display. Initialisierung als auch Ausgabe funktionieren einwandfrei! Ist es aber nicht irgendwie möglich, z.B. den String "Kommando: " einfacher auszugeben, als bisher so:
movlw 'K'
call LcdOut
movlw 'o'
call LcdOut
movlw 'm'
call LcdOut
movlw 'm'
call LcdOut
movlw 'm'
call LcdOut
movlw 'a'
call LcdOut
movlw 'n'
call LcdOut
movlw 'd'
call LcdOut
movlw 'o'
call LcdOut
movlw ':'
call LcdOut
movlw ' '
call LcdOut
Im Prinzip bracht man doch nur die ASCII-Codes in (String-)Variable zu schreiben und diese auszulesen in einer Schleife? Leider hat nun mal ein PIC keine String-Variablen. Hat da jemand eine kleine Routine für mich zum Testen?
Vielen Dank!
Gruß Jens |
|
BID = 808571
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
|
Hallo Jens,
mit deinem Assembler kenne ich mich nicht aus, aber man könnte es so machen:
Man legt die Zeichenkette hinter einem Label ab, z.B. so:
mein_string:
.string "Hallo Welt\0"
Dann programmiert man eine Funktion, der man diese Adresse übermittelt (in Form des Labels mein_string) bzw. diese Adresse in ein bekanntes Register(-paar) lädt und dann die Funktion aufruft.
Diese Funktion liest dann solange ein Zeichen und inkrementiert die Adresse, bis NUL, also 0x00, gelesen wird.
Keine Ahnung, ob dein Assembler diese Notation kennt, der avr-as kann das.
_________________
[ Diese Nachricht wurde geändert von: DonComi am 7 Jan 2012 19:26 ] |
|
BID = 808672
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Keine Ahnung, ob dein Assembler diese Notation kennt |
Das kann der Assembler des PIC auch:
z.B.:
Zitat :
| See the examples below for the object code generated by different statements involving strings.
7465 7374 696E dw "testing output string one\n"
6720 6F75 7470
7574 2073 7472
696E 6720 6F6E
650A
#define str "testing output string two"
B061 movlw "a"
7465 7374 696E data "testing first output string"
6720 6669 7273
7420 6F75 7470
7574 2073 7472
696E 6700
|
Nachzulesen in der Help-Funktion der MPLAB-IDE.
|
BID = 808839
Racingsascha Schreibmaschine
Beiträge: 2247 Wohnort: Gundelsheim
|
Ja, das ist möglich. Du musst lediglich den per W übergebenen Buchstaben in der LcdOut in einer RAM-Zelle zwischenspeichern und dann erst das Display ansprechen. Dann die RAM-Zelle entsprechend mit 4bit oder 8bit zum LCD übertragen. Bei mir sieht das so aus:
Code : |
LCD_Char
movwf LcdDaten
call RB_out
call LcdBusy
movfw LcdDaten
andlw H'F0'
movwf PORTX ; Hi-teil Daten schreiben
bsf RS ; Daten
bsf En ; Enable LcdBus
nop
bcf En ; Disable LcdBus
swapf LcdDaten, w
andlw H'F0'
movwf PORTX ; Lo-teil Daten schreiben
bsf RS ; Daten
bsf En
nop
bcf En ; Disable LcdBus
bcf RS
call RB_in
return |
|
_________________
Fnord ist die Quelle aller Nullbits in deinem Computer.
Fnord ist die Angst, die Erleichterung, und ist die Angst.
Fnord schläft nie.
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 19 Beiträge im Durchschnitt pro Tag heute wurden bisher 3 Beiträge verfasst © x sparkkelsputz Besucher : 182421592 Heute : 631 Gestern : 5459 Online : 301 29.11.2024 6:45 1 Besucher in den letzten 60 Sekunden alle 60.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0870041847229
|