$LCDRS/de

From MCS Wiki AVR
< $LCDRS(Difference between revisions)
Jump to: navigation, search
(Created page with "= <span class="f_Header">Action</span> = Instruct the compiler to generate code for 8-bit LCD displays attached to the data bus. <span style="font-family: Arial;"> </sp...")
 
(Remarks)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== (**COPIED FROM ENGLISH PAGE**) === <span class="f_Header">Action</span> =
+
= <span class="f_Header">Funktion</span> =
  
Instruct the compiler to generate code for 8-bit LCD displays attached to the data bus.
+
Weist den Compiler an, Code für 8-Bit LC-Displays zu generieren, die am Datenbus angeschlossen sind.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
Line 15: Line 15:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
= <span class="f_Header">Remarks</span> =
+
= <span class="f_Header">Anmerkungen</span> =
 
<div style="padding: 0px; margin: 0px 0px 0px 4px;">
 
<div style="padding: 0px; margin: 0px 0px 0px 4px;">
 
{| width="604" cellspacing="0" cellpadding="1" border="1" style="border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;"
 
{| width="604" cellspacing="0" cellpadding="1" border="1" style="border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;"
Line 23: Line 23:
  
 
| valign="top" width="100%" style="width: 514px; border: 1px solid rgb(0, 0, 0);" |  
 
| valign="top" width="100%" style="width: 514px; border: 1px solid rgb(0, 0, 0);" |  
The address where must be written to, to enable the LCD display.
+
Address an die geschrieben werden soll um das LC-Display zu enablen.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
The db0-db7 lines of the LCD must be connected to the data lines D0-D7. (or is 4 bit mode, connect only D4-D7)
+
db0-db7 des LCD müssen mit den  D0-D7 Datenverbindungen verbunden werden.  
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
On systems with external RAM, it makes more sense to attach the LCD to the data bus. With an address decoder, you can select the LCD display.
+
Bei Systems mit externam RAM ist es sinnvoller das LCD in Busmode anzuschließen. Mit einem Addressen Decoder können Sie das LCD selektieren.
  
 
|}
 
|}
Line 37: Line 37:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
The compiler will create a constant named ___LCDRS_ADR which you could use in an alternative LCD library.
+
Der Compiler generiert eine Konstante namens ___LCDRS_ADR die Sie in eigenen Libraries benutzen können.
  
 
&nbsp;
 
&nbsp;
Line 43: Line 43:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
= <span class="f_Header">See also</span> =
+
= <span class="f_Header">Siehe auch</span> =
  
 
[[$LCD]]&nbsp;,&nbsp;[[CONFIG LCDBUS|CONFIG LCDBUS]]
 
[[$LCD]]&nbsp;,&nbsp;[[CONFIG LCDBUS|CONFIG LCDBUS]]
Line 51: Line 51:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
= <span class="f_Header">Example</span> =
+
= <span class="f_Header">Beispiel</span> =
  
 
<br/><source lang="bascomavr">
 
<br/><source lang="bascomavr">
'--------------------------------------------------------------
+
'-----------------------------------------------------------------------------------------
' (c) 1995-2005 MCS Electronics
+
'name : lcd.bas
'--------------------------------------------------------------
+
'copyright : (c) 1995-2005, MCS Electronics
' file: LCD.BAS
+
'purpose : demo: LCD, CLS, LOWERLINE, SHIFTLCD, SHIFTCURSOR, HOME
' demo: LCD, CLS, LOWERLINE, SHIFTLCD, SHIFTCURSOR, HOME
+
 
' CURSOR, DISPLAY
 
' CURSOR, DISPLAY
'--------------------------------------------------------------
+
'micro : Mega8515
 +
'suited for demo : yes
 +
'commercial addon needed : no
 +
'-----------------------------------------------------------------------------------------
 
   
 
   
'note : tested in bus mode with 4-bit on the STK200
+
$regfile = "m8515.dat" ' Benutzter Mikrocontroller
'LCD - STK200
+
$crystal = 4000000 ' Taktfrequenz
'-------------------
+
$baud = 19200 ' Baudrate
'D4 D4
+
$hwstack = 32 ' default use 32 for the hardware stack
'D5 D5
+
$swstack = 10 ' default use 10 for the SW stack
'D6 D6
+
$framesize = 40 ' default use 40 for the frame space
'D7 D7
+
'WR WR
+
'E E
+
'RS RS
+
'+5V +5V
+
'GND GND
+
'V0 V0
+
' D0-D3 are not connected since 4 bit bus mode is used!
+
 
   
 
   
 +
 +
$sim
 +
'Entfernen Sie &&SIM wenn das Programm gebrannt werden soll !!
 +
'$sim wird für eine schnellere Simulation verwendet.
 +
 +
 +
'Anmerkung: Getestet mit PIN Mode mit 4-bit
 
   
 
   
 
'Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
 
'Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
Rem with the config lcdpin statement you can override the compiler settings
+
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portc.7 , Rs = Portc.6
 +
'Settings für ein STK200 in PIN Mode
 +
'Verbinden Sie DB4 bis DB7 des LCD mit dem LCD Anschluss des STK D4-D7
 +
'Verbinden Sie E des LCD mit A15 (PORTC.7) und NICHT mit E des LCD Anschlusses
 +
'Vervinden Sie RS, V0, GND und =5V des LCD mit dem STK LCD Anschluss
 +
 +
Rem Mit dem config lcdpin Befehl kann man die Stanfardwerte überschreiben
 
   
 
   
$regfile = "8515def.dat"
 
$lcd = &HC000
 
$lcdrs = &H8000
 
Config Lcdbus = 4
 
 
   
 
   
 
Dim A As Byte
 
Dim A As Byte
Config Lcd = 16 * 2 'configure lcd screen
+
Config Lcd = 16 * 2 'Konfigurieren des LC Displays.
'other options are 16 * 2 , 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a
+
'When you dont include this option 16 * 2 is assumed
+
'16 * 1a is intended for 16 character displays with split addresses over 2 lines
+
 
   
 
   
'$LCD = address will turn LCD into 8-bit databus mode
 
' use this with uP with external RAM and/or ROM
 
' because it aint need the port pins !
 
 
   
 
   
Cls 'clear the LCD display
+
'Andere Optionen sind 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a
Lcd "Hello world." 'display this at the top line
+
'Wenn nichts angegeben wird dann wird 16 * 2 angenommen
 +
'16 * 1a wird benutzt für 16-Zeichen Displays mit über 2 Zeilen verteilten Adressen
 +
 +
'$LCD = address    Setzt das LC-Display in 8-Bit Mode
 +
' Benutzen Sie das für uP mit externem RAM und/oder ROM
 +
' weil die nicht die Portpins benutzen
 +
 +
Cls 'Löschen des LCD Displays
 +
Lcd "Hello world." 'Anzeigen des Textes in der ersten Zeile
 
Wait 1
 
Wait 1
Lowerline 'select the lower line
+
Lowerline 'Positionieren auf die unterste Zeile
 
Wait 1
 
Wait 1
Lcd "Shift this." 'display this at the lower line
+
Lcd "Shift this." 'Anzeigen in unterster Zeile
 
Wait 1
 
Wait 1
 
For A = 1 To 10
 
For A = 1 To 10
Shiftlcd Right 'shift the text to the right
+
Shiftlcd Right 'Text nach rechts verschieben
Wait 1 'wait a moment
+
Wait 1 'Etwas warten
 
Next
 
Next
 
   
 
   
 
For A = 1 To 10
 
For A = 1 To 10
Shiftlcd Left 'shift the text to the left
+
Shiftlcd Left 'Text nach links verschieben
Wait 1 'wait a moment
+
Wait 1 'Einen Moment warten
 
Next
 
Next
 
   
 
   
Locate 2 , 1 'set cursor position
+
Locate 2 , 1 'Schreibmarke setzen
Lcd "*" 'display this
+
Lcd "*" 'Zeichen anzeigen
Wait 1 'wait a moment
+
Wait 1 'warten
 
   
 
   
Shiftcursor Right 'shift the cursor
+
Shiftcursor Right 'Schreibmnarke verschieben
Lcd "@" 'display this
+
Lcd "@" 'Anzeigen
Wait 1 'wait a moment
+
Wait 1 'warten
 
   
 
   
Home Upper 'select line 1 and return home
+
Home Upper 'Obere Zeile Position 1
Lcd "Replaced." 'replace the text
+
Lcd "Replaced." 'Test anzeigen (alten überschreiben)
 
Wait 1 'wait a moment
 
Wait 1 'wait a moment
 
   
 
   
Cursor Off Noblink 'hide cursor
+
Cursor Off Noblink 'Schreibmarke nicht anzeigen
Wait 1 'wait a moment
+
Wait 1 'warten
Cursor On Blink 'show cursor
+
Cursor On Blink 'Schreibmarke wieder anzeigen
Wait 1 'wait a moment
+
Wait 1 'warten
Display Off 'turn display off
+
Display Off 'Display ausschalten
Wait 1 'wait a moment
+
Wait 1 'warten
Display On 'turn display on
+
Display On 'Display einschalten
'-----------------NEW support for 4-line LCD------
+
'-----------------Neue Unterstützung von 4-Zeilen LC-Displays------
 
Thirdline
 
Thirdline
 
Lcd "Line 3"
 
Lcd "Line 3"
 
Fourthline
 
Fourthline
 
Lcd "Line 4"
 
Lcd "Line 4"
Home Third 'goto home on line three
+
Home Third 'Gehe zu Home der dritten Zeile
 
Home Fourth
 
Home Fourth
Home F 'first letteer also works
+
Home F 'Es reicht auch der erste Buchstabe
 
Locate 4 , 1 : Lcd "Line 4"
 
Locate 4 , 1 : Lcd "Line 4"
 
Wait 1
 
Wait 1
 
   
 
   
'Now lets build a special character
+
'Definition benutzerdefinierter Zeichen
'the first number is the characternumber (0-7)
+
'Die erste Ziffer ist die Zeichennummer (0-7)
'The other numbers are the rowvalues
+
'Die anderen Zahlen sind die Zeilenwerte
'Use the LCD tool to insert this line
+
'Benutzen Sie das LCD Tool und Zeichen zu erstellen und diese Zahlen einzustellen
 
   
 
   
 
Deflcdchar 1 , 225 , 227 , 226 , 226 , 226 , 242 , 234 , 228 ' replace ? with number (0-7)
 
Deflcdchar 1 , 225 , 227 , 226 , 226 , 226 , 242 , 234 , 228 ' replace ? with number (0-7)
 
Deflcdchar 0 , 240 , 224 , 224 , 255 , 254 , 252 , 248 , 240 ' replace ? with number (0-7)
 
Deflcdchar 0 , 240 , 224 , 224 , 255 , 254 , 252 , 248 , 240 ' replace ? with number (0-7)
Cls 'select data RAM
+
Cls 'Selektiere Daten RAM
Rem it is important that a CLS is following the deflcdchar statements because it will set the controller back in datamode
+
Rem Es ist wichtig, dass ein CLS nach den DEFLCDCHAR Befehlen kommt weil das den LCD-Controller wieder in den Datenmode zurücksetzt.
Lcd Chr(0) ; Chr(1) 'print the special character
+
Lcd Chr(0) ; Chr(1) 'Ausgabe von benutzterdefinierten Zeichen
 
   
 
   
'----------------- Now use an internal routine ------------
+
'----------------- Benutzung einer internen Routine ------------
_temp1 = 1 'value into ACC
+
_temp1 = 1 'Wert in ACC
!rCall _write_lcd 'put it on LCD
+
!rCall _write_lcd 'auf LCD schreiben
 
End
 
End
 
</source><br/>{{Languages}}
 
</source><br/>{{Languages}}
  
[[Category:BASCOM_Language_Reference/de]]
+
[[Category:BASCOM Language Reference/de]]

Latest revision as of 02:27, 25 February 2013

Contents

Funktion

Weist den Compiler an, Code für 8-Bit LC-Displays zu generieren, die am Datenbus angeschlossen sind.

 

 

Syntax

$LCDRS = [&H]address

 

 

Anmerkungen

Address

Address an die geschrieben werden soll um das LC-Display zu enablen.

 

db0-db7 des LCD müssen mit den D0-D7 Datenverbindungen verbunden werden.

 

Bei Systems mit externam RAM ist es sinnvoller das LCD in Busmode anzuschließen. Mit einem Addressen Decoder können Sie das LCD selektieren.

 

Der Compiler generiert eine Konstante namens ___LCDRS_ADR die Sie in eigenen Libraries benutzen können.

 

 

Siehe auch

$LCD , CONFIG LCDBUS

 

 

Beispiel


'-----------------------------------------------------------------------------------------
'name : lcd.bas
'copyright : (c) 1995-2005, MCS Electronics
'purpose : demo: LCD, CLS, LOWERLINE, SHIFTLCD, SHIFTCURSOR, HOME
' CURSOR, DISPLAY
'micro : Mega8515
'suited for demo : yes
'commercial addon needed : no
'-----------------------------------------------------------------------------------------
 
$regfile = "m8515.dat" ' Benutzter Mikrocontroller
$crystal = 4000000 ' Taktfrequenz
$baud = 19200 ' Baudrate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
 
 
$sim
'Entfernen Sie &&SIM wenn das Programm gebrannt werden soll !!
'$sim wird für eine schnellere Simulation verwendet.
 
 
'Anmerkung: Getestet mit PIN Mode mit 4-bit
 
'Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portc.7 , Rs = Portc.6
'Settings für ein STK200 in PIN Mode
'Verbinden Sie DB4 bis DB7 des LCD mit dem LCD Anschluss des STK D4-D7
'Verbinden Sie E des LCD mit A15 (PORTC.7) und NICHT mit E des LCD Anschlusses
'Vervinden Sie RS, V0, GND und =5V des LCD mit dem STK LCD Anschluss
 
Rem Mit dem config lcdpin Befehl kann man die Stanfardwerte überschreiben
 
 
Dim A As Byte
Config Lcd = 16 * 2 'Konfigurieren des LC Displays.
 
 
'Andere Optionen sind 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a
'Wenn nichts angegeben wird dann wird 16 * 2 angenommen
'16 * 1a wird benutzt für 16-Zeichen Displays mit über 2 Zeilen verteilten Adressen
 
'$LCD = address    Setzt das LC-Display in 8-Bit Mode
' Benutzen Sie das für uP mit externem RAM und/oder ROM
' weil die nicht die Portpins benutzen
 
Cls 'Löschen des LCD Displays
Lcd "Hello world." 'Anzeigen des Textes in der ersten Zeile
Wait 1
Lowerline 'Positionieren auf die unterste Zeile
Wait 1
Lcd "Shift this." 'Anzeigen in unterster Zeile
Wait 1
For A = 1 To 10
Shiftlcd Right 'Text nach rechts verschieben
Wait 1 'Etwas warten
Next
 
For A = 1 To 10
Shiftlcd Left 'Text nach links verschieben
Wait 1 'Einen Moment warten
Next
 
Locate 2 , 1 'Schreibmarke setzen
Lcd "*" 'Zeichen anzeigen
Wait 1 'warten
 
Shiftcursor Right 'Schreibmnarke verschieben
Lcd "@" 'Anzeigen
Wait 1 'warten
 
Home Upper 'Obere Zeile Position 1
Lcd "Replaced." 'Test anzeigen (alten überschreiben)
Wait 1 'wait a moment
 
Cursor Off Noblink 'Schreibmarke nicht anzeigen
Wait 1 'warten
Cursor On Blink 'Schreibmarke wieder anzeigen
Wait 1 'warten
Display Off 'Display ausschalten
Wait 1 'warten
Display On 'Display einschalten
'-----------------Neue Unterstützung von 4-Zeilen LC-Displays------
Thirdline
Lcd "Line 3"
Fourthline
Lcd "Line 4"
Home Third 'Gehe zu Home der dritten Zeile
Home Fourth
Home F 'Es reicht auch der erste Buchstabe
Locate 4 , 1 : Lcd "Line 4"
Wait 1
 
'Definition benutzerdefinierter Zeichen
'Die erste Ziffer ist die Zeichennummer (0-7)
'Die anderen Zahlen sind die Zeilenwerte
'Benutzen Sie das LCD Tool und Zeichen zu erstellen und diese Zahlen einzustellen
 
Deflcdchar 1 , 225 , 227 , 226 , 226 , 226 , 242 , 234 , 228 ' replace ? with number (0-7)
Deflcdchar 0 , 240 , 224 , 224 , 255 , 254 , 252 , 248 , 240 ' replace ? with number (0-7)
Cls 'Selektiere Daten RAM
Rem Es ist wichtig, dass ein CLS nach den DEFLCDCHAR Befehlen kommt weil das den LCD-Controller wieder in den Datenmode zurücksetzt.
Lcd Chr(0) ; Chr(1) 'Ausgabe von benutzterdefinierten Zeichen
 
'----------------- Benutzung einer internen Routine ------------
_temp1 = 1 'Wert in ACC
!rCall _write_lcd 'auf LCD schreiben
End

Languages   English Deutsch  
Personal tools
Namespaces
Variants
Actions
Navigation
In other languages
Language