
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Steffen, > versuche vergebens das Display von Robot Systems ( 2x 16) war bei dem Application Board dabei im 4 Bit Modus zu betreiben. Da ich das App für meine Anwendung nicht mehr verwende, habe ich es nach folgendem Schaltbild angeschlossen: > > > Schaltbild > Normalerweise wird das LCD bei der CC1 an den zweiten Byteport angeschlossen, aber am ersten geht es auch. > Da ich keinen Podi hatte, habe ich Vo zum Test mal an einen 10k/10k Spannungsteiler gehängt. Hier wird der Kontrast zu schwach sein. Hänge Vee (oder Vo, wie es in diesem Schaltbild heißt,) direkt an GND (Vss). Das ist dann der maximale Kontrast. > Die nichtverwendeten Eingänge des Displays habe ich einfach nicht belegt. Das ist OK. > > Softwaretechnisch habe ich mir von der gleichen Hompage folgendes zusammengebastelt. Das Display tut allerdings keinen Strich, wird nur af der Rückseite sehr warm. Kann mir jemand helfen? Habe auch keine Anleitung für das Display. Conrad hat nur eine 1 seitige online, die so gut wie nichts aussagt. Bin für alles dankbar. Ich vermute, daß es einfach einen Kurzen gibt. Denn R/W muß beim Schreibzugriff auf's Display auf Low, also GND, liegen. Aber in Deinem Programm wird R/W nicht auf Low gesetzt. Standardmäßig haben die I/Os der CC1 Unit V1.1 durch Pull-Up-Widerstände Highpegel. Somit treffen die Ports des Displays als Ausgang zu auf die Ports der CC1, was natürlich zu einem hohen Stromfluß führt. Der Strom dürfte aber nicht so hoch sein, daß beide das Zeitliche segnen, solange nicht längere Zeit dieser Kurzschluß besteht. Versuche es mal mit folgenden Routinen: define LCD_Port byteport[1] define LCD_RS port[6] define LCD_RW port[5] define LCD_e port[7] define LCD_light port[8] define LCD_Param byte[1] 'Tempöräres Byte für LCD-Routinen define x byte[2] 'Tempöräres Byte für LCD-Print-und-Zahl-Routinen 'ASCII Define A_ &H41 : Define B_ &H42 : Define C_ &H43 : Define D_ &H44 : Define E_ &H45 Define F_ &H46 : Define G_ &H47 : Define H_ &H48 : Define I_ &H49 : Define J_ &H4A Define K_ &H4B : Define L_ &H4C : Define M_ &H4D : Define N_ &H4E : Define O_ &H4F Define P_ &H50 : Define Q_ &H51 : Define R_ &H52 : Define S_ &H53 : Define T_ &H54 Define U_ &H55 : Define V_ &H56 : Define W_ &H57 : Define X_ &H58 : Define Y_ &H59 : Define Z_ &H5A Define ak &H61 : Define bk &H62 : Define ck &H63 : Define dk &H64 : Define ek &H65 Define fk &H66 : Define gk &H67 : Define hk &H68 : Define ik &H69 : Define jk &H6A Define kk &H6B : Define lk &H6C : Define mk &H6D : Define nk &H6E : Define ok &H6F Define pk &H70 : Define qk &H71 : Define rk &H72 : Define sk &H73 : Define tk &H74 Define uk &H75 : Define vk &H76 : Define wk &H77 : Define xk &H78 : Define yk &H79 : Define zk &H7A Define SPACE &H20 : Define MINUS &H2D : Define GLEICH &H3D : Define DPP &H3A Define Dot &H2E Define Line1 &H80 : Define Line2 &HC0 : Define Line3 &H94 : Define Line4 &HD4 'Für 4x20 LCD 'Define Line1 &H80 : Define Line2 &HC0 : Define Line3 &H90 : Define Line4 &HD0 'Für 4x16 LCD gosub LCD_init LCD_Param=H_ : gosub LCD_put LCD_Param=ak : gosub LCD_put LCD_Param=lk : gosub LCD_put LCD_Param=lk : gosub LCD_put LCD_Param=ok : gosub LCD_put LCD_Param=SPACE : gosub LCD_put LCD_Param=W_ : gosub LCD_put LCD_Param=ok : gosub LCD_put LCD_Param=rk : gosub LCD_put LCD_Param=lk : gosub LCD_put LCD_Param=dk : gosub LCD_put LCD_Param=SPACE : gosub LCD_put x=123 : gosub LCD_Zahl #loop LCD_Param=Line2 : gosub LCD_CMD x=hour : gosub LCD_Zahl2 LCD_Param=DPP : gosub LCD_put x=minute : gosubLCD_Zahl2 LCD_Param=DPP : gosub LCD_put x=second : gosub LCD_Zahl2 LCD_Param=DPP : gosub LCD_put pause 20 goto loop '---LCD-Routinen---------- #LCD_init LCD_Port = &h38 'Function Set 8 Bit LCD_PORT = &B10000011 Pulse LCD_e pause 1 LCD_PORT = &B10000011 Pulse LCD_e LCD_PORT = &B10000011 Pulse LCD_e ' Function Set 4 Bit LCD_PORT = &B10000010 Pulse LCD_e LCD_Param=&h28 :gosub LCD_CMD LCD_Param=&h0C :gosub LCD_CMD LCD_Param=&h06 :gosub LCD_CMD #LCD_CLS LCD_Param=&h01 :gosub LCD_CMD pause 1 return #LCD_CMD LCD_RS=0 goto LCD_Write #LCD_put LCD_RS=1 #LCD_Write LCD_Port = (LCD_Port and &hF0) or (LCD_Param SHR 4) Pulse LCD_e LCD_Port = (LCD_Port and &hF0) or (LCD_Param AND &H0F) Pulse LCD_e return #LCD_Zahl if x > 99 then LCD_Param= (x / 100) + &H30 else LCD_Param=SPACE gosub LCD_Put #LCD_Zahl2 if x > 9 then LCD_Param= ((x mod 100) / 10) + &H30 else LCD_Param=SPACE gosub LCD_Put LCD_Param= (x mod 10) + &H30 goto LCD_Put MfG André H. |
| Antwort schreiben |