Elko (Diskussion | Beiträge) (→Siehe auch) |
(→Selbsterklärendes Bascom Beispielprogramm) |
||
| Zeile 71: | Zeile 71: | ||
Config Lcd = 20 * 4a , Chipset = Ks077 | Config Lcd = 20 * 4a , Chipset = Ks077 | ||
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.5 , Rs = Portb.7 | Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.5 , Rs = Portb.7 | ||
| − | |||
Initlcd | Initlcd | ||
| Zeile 181: | Zeile 180: | ||
End Function | End Function | ||
</pre> | </pre> | ||
| − | |||
==Siehe auch== | ==Siehe auch== | ||
Version vom 16. September 2011, 00:12 Uhr
Es gibt verschiedene Möglichkeiten um ein LCD an RN-Control anzuschließen. Zwei besonders bequeme stellen entweder das Board RN-KeyLCD oder der Adapter RN-LCDAdapter dar. Dieses Beispiel demonstriert die Verwendung von RN-LCDAdapter.
Inhaltsverzeichnis
Vorteile des Adapters
Dieser Adapter erleichtert die Verwendung eines sogenannten DIP-LCD´s erheblich, denn diese LCD´s haben ein etwas ungünstiges Raster und könnten daher nicht mit herkömmlichen Experimentierplatinen genutzt werden. Das LCD wird einfach in den Adapter eingesteckt (oder gelötet) und der Adapter über ein 10 poliges Flachkabel mit dem Controllerboard verbunden. Es kann also alles gesteckt werden. Ein Poti auf der Rückseite der Platine stellt den Kontrast ein. Der Adapter bietet auch die Möglichkeit per Software die Beleuchtung abzuschalten.
Einfacher Anschluss über Port B
In unserem Beispiel verwenden wir den Wannenstecker von Port B damit wir keine wichtigen Ports wie I2C, RS232 etc. belegen. Allerdings kann es hier Konflikte geben wenn gleichzeitig der Motortreiber genutzt wird, denn zwei Ports überscheiden sich. Wenn man beides hintereinander nutzt kann man das per Software allerdings schon regeln.
Selbsterklärendes Bascom Beispielprogramm
'###################################################
'Ein LCD EADIP204 mit RN-LCDAdapter an Port B
'von RN-Control angeschlossen
'rnlcdadaptertest.bas
'
'Autor: Frank
'Verwendet wurden: RN-Control & RN-LCDAdapter (robotikhardware.de)
'Weitere Beispiele sind im Roboternetz gerne willkommen!
'##############################################################
$programmer = 12 'MCS USB (Zeile weglassen wenn anderer Programmer)
' -------------- RN-Control übliche _____________________
Declare Function Tastenabfrage() As Byte
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Dim Taste As Byte
Dim Ton As Integer
I2cinit
Start Adc
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
Print
Print "**** RN-CONTROL V1.4 *****"
Print "Demoprogramm um Zusatzboard RN-LCDAdapter zu demonstrieren"
Print
' -------------- Ende RN-Control übliche _____________________
Config Pinb.4 = Output 'Spannung an LCD aktivieren
Lcdpower Alias Portb.4
Config Pinb.6 = Output
Lcd_rw Alias Portb.6
Lcd_rw = 0
Lcdpower = 1
Wait 1
Config Lcd = 20 * 4a , Chipset = Ks077
Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.5 , Rs = Portb.7
Initlcd
Cls
Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
Lcd "RN-LCDADAPTER"
Locate 2 , 1
Lcd "an RN-Control"
Locate 3 , 1
Lcd "beides Bausaetze von"
Locate 4 , 1
Lcd "robotikhardware.de"
Do
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1:
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 1"
Case 2
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 2"
Case 3
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 3"
Case 4
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 4"
Case 5
Cls
Locate 1 , 1
Lcd "Licht wird umgeschaltet"
Toggle Lcdpower
End Select
Sound Portd.7 , 400 , 500 'BEEP
End If
Waitms 100
Loop
End
' Diese Unterfunktion fragt die Tastatur am analogen Port ab
' Sollte beim betätigen einer Taste kein Quittungston kommen, dann
' muss die die Tastenabfrage (Select Case Anweisung in Funktion )
' an ihr Board angepaßt werden. Widerstandstoleranzen sorgen in
' Einzelfällen manchmal dafür das die Werte etwas anders ausfallen
' Am besten dann den WS wert mit Print für jede Taste ausgeben lassen
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Ton = 600
Ws = Getadc(7)
' Print "ws= " ; Ws
If Ws < 1010 Then
Select Case Ws
Case 400 To 455
Tastenabfrage = 1
Ton = 550
Case 335 To 380
Tastenabfrage = 2
Ton = 500
Case 250 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 100 To 130
Tastenabfrage = 5
Ton = 350
End Select
Sound Portd.7 , 400 , Ton 'BEEP
End If
End Function
Siehe auch
Weblinks

