Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Starter Board 1.1 und LCD 2x16 Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von SMAX - 5.08.2009 9:18)
 Als Antwort auf Re: Starter Board 1.1 und LCD 2x16 von smax - 3.08.2009 6:36
SMAX nutzt:  Open-Mini, Open-Mini Station, sonstige
Hallo,
ich suche jemanden, der mir hilft, anhand des hier angezeigten Programms folgende Aufgabe zu lösen:

In Zeile 1 für 10 sekungen den Text "HALLO" ausgeben, dann für 8 sekunden in Zeile 2 "MUSTER" ausgeben.

mfg
Martin

'-----------------------------------------------------------------
' Portbelegung des LCDs an der Open-Mini:
'  PTB.0       D4  (Datenleitung des LCDs, 4Bit-Mode)
'  PTB.1       D5  (Datenleitung des LCDs, 4Bit-Mode)
'  PTB.2       D6  (Datenleitung des LCDs, 4Bit-Mode)
'  PTB.3       D7  (Datenleitung des LCDs, 4Bit-Mode)
'  PTB.4       R/W (Read/Write)
'  PTB.5       RS  (Register Select)
'  PTB.6       En  (Enable)
'  PTB.7       LCD-Beleuchtung
'-----------------------------------------------------------------


define LED port[2]

define LCD_Port  byteport[2]
define LCD_RS    port[14]
define LCD_RW    port[13]
define LCD_e     port[15]
define LCD_light port[16]

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

LED=Off

LCD_put 65
LCD_put 66
LCD_put 67
LCD_put 68
LCD_put 69
LCD_put 70
LCD_put Space
LCD_Zahl 123

LCD_CMD Line2
LCD_Print 1
LCD_CMD Line3
LCD_Print 23

#loop
LCD_light=on
LCD_light=on
LCD_light=off
goto loop

'---------------------------------------
' Trick, um die Table-Funktion für Festtexte zu "mißbrauchen"
' max. 256 Byte pro Tabelle
' Achtung ! Experimentel !
table LCDtext
tabend
print "QT4/QY4-StarterBoard"; 'Index 1 bis 20 Text
                          'Index 0 = print-Token
                          'Index 21 = ASCII 0 für "Text-Ende"
print "16.01.2006";       'Index 23 bis 32 = Text
                          'Index 22 = print-Token
                          'Index 33 = ASCII 0 für "Text-Ende"

'---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_CMD &h28
 LCD_CMD &h0C
 LCD_CMD &h06
#LCD_CLS
 LCD_CMD &h01
 pause 1
 return

#LCD_CMD
 pop LCD_Param
 LCD_RS=0
goto LCD_Write

#LCD_put
 pop LCD_Param
 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_Print ' Zeichenfolge ausgeben.
 pop x
 looktab LCDtext,x,LCD_Param
 while LCD_Param
  LCD_Put LCD_Param
  x=x+1
  looktab LCDtext,x,LCD_Param
 wend
return

#LCD_Zahl
 pop x
 if x > 99 then LCD_Put ( (x / 100) + &H30)         else LCD_Put Space
 if x >  9 then LCD_Put (((x mod 100) / 10) + &H30) else LCD_Put Space
 LCD_Put ((x mod 10) + &H30)
return

 Antwort schreiben

Bisherige Antworten: