Hallo,
hab jetzt unter dem Link (von linux_80):
http://www.frickelfritze.de/elektronik/lcd/index.html
das hier gefunden
Damit wurde die Ansteuerung eines Displays mit M50530 Controller in Bascom realiesiert.Code:'******************************************* ';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ';; LCD-Routinen für M50530 ;; ';; ======================= ;; ';; ;; ';; Titel : 4 Bit LCD M50530 ;; ';; Autor : Arno Schweißinger ;; ';; Datum : 28.01.2007 ;; ';; MC : AtMega 8515 1MHz ;; ';; Stromversorgung: MC 5V; LCD 5V & 8,2V ;; ';; ;; ';; 4bit-Interface M50530 ;; ';; ;; ';; DB4: PC0 ;; ';; DB5: PC1 ;; ';; DB6: PC2 ;; ';; DB7: PC3 ;; ';; OC1: PC4 ;; ';; OC2: PC5 ;; ';; EX: PC6 ;; ';; ;; ';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; '***************************************** $regfile = "m8515.dat" $crystal = 1000000 'CPU 1MHz Declare Sub Lcd_m50530_init() 'declare the SUB program Declare Sub Lcd_m50530_chr(ch As Byte) Declare Sub Lcd_m50530_command(command As Byte) Declare Sub Lcd_m50530_gotoxy(lcd_x As Byte , Lcd_y As Byte) Declare Sub Lcd_m50530_clear() Declare Sub Lcd_m50530_enable Lcd_m50530 Alias Portc Config Lcd_m50530 = Output _oc1 Alias 4 _oc2 Alias 5 _ex Alias 6 Dim I As Byte ' Zählschleife Dim Lcd_temp As Byte ' Temp im Unterprogramm Dim Lcd_parameter As Byte ' wird an LCD gesendet Dim _x As Byte ' Cursor x Position Dim _y As Byte ' Cursor y Position '------------------------- ' Begin Hauptprogramm '------------------------- Call Lcd_m50530_init _x = 10 : _y = 7 Call Lcd_m50530_gotoxy(_x , _y) For I = 33 To 48 Call Lcd_m50530_chr(i) Next I Do Toggle Portb.0 ' Takt für Spannungskaskade Loop End ' ende Hauptprogramm '------------------------- ' End Hauptprogramm '------------------------- '------------------------------------------------------------------------------- Sub Lcd_m50530_init Lcd_parameter = $d8 'set function mode (SF) 0b11011000 Call Lcd_m50530_command(lcd_parameter) '4bit-Modus einstellen 11 -4/8bit-FONT-2xDUTY-2xRAM Lcd_parameter = $50 'set entry mode (SE) 0b01010000 Call Lcd_m50530_command(lcd_parameter) 'Cursor selbst setzen Lcd_parameter = $33 'set display mode (SD) 0b00110011 Call Lcd_m50530_command(lcd_parameter) 'Display ein, Cursor nicht anzeigen Call Lcd_m50530_clear End Sub '------------------------------------------------------------------------------- Sub Lcd_m50530_chr(ch As Byte) Lcd_temp = Ch Shift Lcd_temp , Right , 4 Set Lcd_temp._oc2 Lcd_m50530 = Lcd_temp Call Lcd_m50530_enable Lcd_temp = Ch And $0f Set Lcd_temp._oc2 Lcd_m50530 = Lcd_temp Call Lcd_m50530_enable Waitus 20 End Sub '------------------------------------------------------------------------------- Sub Lcd_m50530_command(command As Byte) Lcd_temp = Command Shift Lcd_temp , Right , 4 Reset Lcd_temp._oc1 Reset Lcd_temp._oc2 Lcd_m50530 = Lcd_temp Call Lcd_m50530_enable Lcd_temp = Command And $0f Reset Lcd_temp._oc1 Reset Lcd_temp._oc2 Lcd_m50530 = Lcd_temp Call Lcd_m50530_enable Waitus 20 End Sub '------------------------------------------------------------------------------- Sub Lcd_m50530_gotoxy(lcd_x As Byte , Lcd_y As Byte) Select Case Lcd_y Case 1 : Lcd_parameter = $00 Case 2 : Lcd_parameter = $40 Case 3 : Lcd_parameter = $80 Case 4 : Lcd_parameter = $c0 Case 5 : Lcd_parameter = $18 Case 6 : Lcd_parameter = $58 Case 7 : Lcd_parameter = $98 Case 8 : Lcd_parameter = $d8 Case Else : Lcd_parameter = $00 End Select Lcd_parameter = Lcd_parameter + Lcd_x Decr Lcd_parameter Lcd_temp = Lcd_parameter Shift Lcd_temp , Right , 4 Set Lcd_temp._oc1 Set Lcd_temp._oc2 Lcd_m50530 = Lcd_temp Call Lcd_m50530_enable Lcd_temp = Lcd_parameter And $0f Set Lcd_temp._oc1 Set Lcd_temp._oc2 Lcd_m50530 = Lcd_temp Call Lcd_m50530_enable Waitus 20 End Sub '------------------------------------------------------------------------------- Sub Lcd_m50530_clear Lcd_parameter = $01 ' 0b00000001 Display löschen Call Lcd_m50530_command(lcd_parameter) Waitms 2 End Sub '------------------------------------------------------------------------------- Sub Lcd_m50530_enable Set Lcd_m50530._ex Waitus 1 Reset Lcd_m50530._ex End Sub ';----------------------------------- Ende Dispay ----------------------------------------
Da ich leider erst Anfänger bin, was Programmierung angeht, ist es für mich nicht so recht ersichtlich, wie ich denn nun was auf das Display ausgeben kann.
Währe echt nett, wenn mir das mal jemand mitteilen könnte da ich auch ein Display mit dem Controller hab und es gern ansteuern würde.







Zitieren

Lesezeichen