-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Unbekanntes Display ansteuern aber wie ??? komm nicht weiter

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    28.09.2005
    Beiträge
    32

    Unbekanntes Display ansteuern aber wie ??? komm nicht weiter

    Anzeige

    Hallo Leute,
    ich hab hier ein Display

    http://www.sbprojects.com/knowledge/...ts/sda5708.htm

    und möchte es mit Bascom ansteuern. Leider habe ich es nicht geschafft ein Zeichen darauf darzustellen. Assembler ist für mich ein Fremdwort. Vielleicht gibt es unter euch jemanden der mir den Code ein wenig erleutern kann oder gar einen Beispielschnipsel hat. Ich wäre schon froh nur einen kleinen Einstieg zu finden und nur ein zeichen auf dem Display zu sehen.
    Besten Dank schon Vorab.
    Gruss Harald

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    02.09.2005
    Ort
    Greifswald
    Beiträge
    17
    Hallo,

    schau mal in die Bascom Hilfe für den Befehl shiftout.

    Ansonsten ist in dem angegebenen Link alles Wichtige beschrieben.
    Das Display hat keinen eingebauten Zeichengenerator. Jeder Punkt der Matrix kann einzeln angesteuert werden.

    Gruß Manfred
    www.malo-web.de

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    28.09.2005
    Beiträge
    32
    Hallo Manfred,
    Die ansteuerung der Matrix verstehe ich schon nur bei SHIFTOUT komme ich überhauptnicht klar...

    Ist das so richtig???

    $regfile = "2313def.dat"
    $crystal = 4000000
    Dim X As Byte
    X = &B00100000
    Shiftout Portd.1 , Portb.7 , X , 2 , 8 , 0
    End

    Was bedeuten jetzt 2 , 8 , 0 ???

    X soll gesendet werden mit Portd.1
    Portb7 habe ich an SDCLOCK am Display angeschlossen.
    Portd.1 ist and DATA vom Display dran.
    Dann gibt es noch ein -LOAD am Display das habe ich noch nicht dran.

    Ich hoffe sehr au eure Mithilfe.
    Gruss Harald

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.09.2006
    Ort
    Hamburg
    Alter
    35
    Beiträge
    987
    hi an dem display bin ich auch gerade bei ist aus der dbox1 eigentlich ist die ansteuerung recht simpel.

    http://sbprojects.com/knowledge/footprints/sda5708.htm
    Legastheniker on Bord !

    http://www.Grautier.com - Projektseite
    http://www.grautier.com/wiki/doku.php?id=bt-index - BT-BUS

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    02.09.2005
    Ort
    Greifswald
    Beiträge
    17
    Hallo,

    ein Ansatz mit BASCOM.
    Ist ungetestet, da ich das Display nicht habe.
    Bei Quarztaktung müssen die Fuses entspechend eingestellt werden.
    Bei hohen Taktfrequenzen muß eventuell bei shiftout noch ein Delay hinzugefügt werden.

    Gruß Manfred
    www.malo-web.de

    Code:
    '*****************************************************************************************************************
    '  Bascom AVR Compiler 1.11.8.7
    '  ATMega8 Applikation
    '
    '  Manfred Look
    '  webmaster@malo-web.de
    '  http://www.malo-web.de
    '
    '  Demo shiftout mit SDA5708-24 Display
    '  10/2007
    '  V1.00
    '
    '  Takt: intern 1MHz
    '
    '  SDA5708-24 Reset-Pin: 10KOhm -> VCC und 10n -> GND
    '
    '*****************************************************************************************************************
    '
    '--compiler directives--------------------------------------------------------------------------------------------
    '
    $regfile = "m8def.dat"                                      'Chip auswaehlen: ATMega8
    $crystal = 1000000                                          'Taktfrequenz (Hz) festlegen
    $hwstack = 32                                               'Hardware Stack
    $swstack = 8                                                'Software Stack
    $framesize = 20                                             'Framsize
    '
    '--variable-------------------------------------------------------------------------------------------------------
    '
    Dim Send As Byte                                            '8Bit Variable die serial ausgegeben wird
    '
    '--alias----------------------------------------------------------------------------------------------------------
    '
    _load Alias Portb.2                                         'Daten gueltig
    _data Alias Portb.4                                         'Daten
    _sdclk Alias Portb.5                                        'Takt
    
    '--init program---------------------------------------------------------------------------------------------------
    '
    'Initialisierung Ports
    Ddrb = &B00110100                                           'Port B, 1=Ausgang
    '
    Waitms 100                                                  'warten bis anzusteuernder Baustein bereit
    '
    'Initialisierung Ausgaben
    Send = &B11000000                                           'Display init
    Gosub _ser_output
    Send = &B10100000                                           'Digit 0
    Gosub _ser_output
    Send = &B00011111                                           'Row 0
    Gosub _ser_output
    Send = &B00001110                                           'Row 1
    Gosub _ser_output
    Send = &B00000100                                           'Row 2
    Gosub _ser_output
    Send = &B00000100                                           'Row 3
    Gosub _ser_output
    Send = &B00000100                                           'Row 4
    Gosub _ser_output
    Send = &B00001110                                           'Row 5
    Gosub _ser_output
    Send = &B00011111                                           'Row 6
    Gosub _ser_output
    '
    End
    '
    'Serielle Schnittstelle
    _ser_output:
       Reset _load                                              'bereit
       Shiftout _data , _sdclk , Send , 3                       '8Bit senden, LSB zuerst, Takt steigende Flanke
       Set _load                                                'fertig
    Return

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.09.2006
    Ort
    Hamburg
    Alter
    35
    Beiträge
    987
    Hi bei mir sieht das momentan wie folgt aus, hab es aber noch nicht getestet da mein Bord einen Schuss weg hat, passt ja hab gestern mit dem Display angefangen, momentan ist nur das init drinnen und das Löschen des Displays die tage werde ich mal die Tabellen für zeichen anfertigen.



    Code:
    	;list p=16f628a
    	include "p16f628a.inc"
    
    	__CONFIG _WDT_OFF & _PWRTE_OFF & _INTOSC_OSC_NOCLKOUT & _MCLRE_OFF & _BOREN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF
    
    	org    0x00
    	goto   main
    	org    0x04
    
    	cblock  0x71
    	vfdsend
    	count
    	endc 
    
    	#define	sled	 PORTA,4
    
    	#define	vfdload	 PORTB,0
    	#define	vfddata	 PORTB,1
    	#define	vfdsdclk PORTB,2
    	#define	vfdrst	 PORTB,3
    
    	#define	vfdinit	 11100000
    	#define	vfdcls	 11000000
    	
    main
    		; Von Analog auf Digital Schalten
    		BSF CMCON, CM0
    		BSF CMCON, CM1
    		BSF CMCON, CM2 
    		; PORTA
    		bsf	STATUS, RP0	; auf Bank 1 umschalten
    		movlw	B'00000000'	; PortB I/O setzen (1=In, 0=Out) (Reinfolge RA7,RA6...)
    		movwf	TRISA		; PortB I/O setzen
    		bcf	STATUS, RP0	; auf Bank 0 schalten
    		clrf	PORTA		; PortB auf 0 setzen
    		; PORTB
    		bsf	STATUS, RP0	; auf Bank 1 umschalten
    		movlw	B'00000000'	; PortC I/O setzen (1=In, 0=Out) (Reinfolge RB7,RB6...)
    		movwf	TRISB		; PortC I/O setzen
    		bcf	STATUS, RP0	; auf Bank 0 schalten
    		clrf	PORTB		; PortC auf 0 setzen
    init
    		bsf	sled		; set sled,load,rst auf hig
    		bsf	vfdload
    		bsf	vfdrst
    		movf	vfdinit,w	; Display Inialisieren
    		movwf	vfdsend
    		call	datasend
    loop	
    		movf	vfdcls,w	; Display Löschen
    		movwf	vfdsend	
    		call	datasend
    		goto	loop
    datasend
    		movlw	7
    		movwf	count	
    datasend1
    		bcf	vfdload		; Load Low
    		btfss	vfdsend,7
    		bsf	vfddata
    		btfsc	vfdsend,7
    		bcf	vfddata
    		RLF	vfdsend,1
    		bsf	vfdload		; Load high
    		decfsz	count,F		; Lösche ein bit von Count wenn Count = 0 dan F = 1 und überspringe den nästen befehl
    		goto	datasend1	; Gehe zu WaitWait
    		return
    end
    Legastheniker on Bord !

    http://www.Grautier.com - Projektseite
    http://www.grautier.com/wiki/doku.php?id=bt-index - BT-BUS

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    28.09.2005
    Beiträge
    32
    Super !!! habe das Display zum Leben erweckt.

    Aber kann man folgendes nicht eleganter Lösen damit mein Program nicht so gross wird ? Hat jemand eine Idee?

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    28.09.2005
    Beiträge
    32
    Super !!! habe das Display zum Leben erweckt.

    Aber kann man folgendes nicht eleganter Lösen damit mein Program nicht so gross wird ? Hat jemand eine Idee?

    Send = &B11000000 'Display init
    Gosub _ser_output
    Send = &B10100000 'Digit 0
    Gosub _ser_output
    Send = &B00011111 'Row 0
    Gosub _ser_output
    Send = &B00001110 'Row 1
    Gosub _ser_output
    Send = &B00000100 'Row 2
    Gosub _ser_output
    Send = &B00000100 'Row 3
    Gosub _ser_output
    Send = &B00000100 'Row 4
    Gosub _ser_output
    Send = &B00001110 'Row 5
    Gosub _ser_output
    Send = &B00011111 'Row 6

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    02.09.2005
    Ort
    Greifswald
    Beiträge
    17
    Hallo Harald,

    schön das es funktioniert.
    Nun musst Du aber Deinen (Programmier) Verstand einsetzen.
    Stichworte sind:
    ARRAY
    indexieren
    Schleifen

    Ein Digit braucht 7Byte für Anzeige und 1Byte um das Digit zu adressieren.
    Da führt kein Weg vorbei. Das ist nicht so wie bei einem LCD mit Controller.
    Währe schön, wenn Du Deine Lösung dann mal hier reinstellst.

    Gruß Manfred
    www.malo-web.de

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    28.09.2005
    Beiträge
    32
    Hallo Manfred
    Dank deiner Hilfe bin ich fast fertig mit meinem Program. Hätte ich ohne deine Denkanstösse nicht geschafft. Nochmals Danke
    Gruss Harald

    Code:
    $regfile = "2313def.dat"
    $crystal = 4000000                                          'Taktfrequenz (Hz) festlegen
    
    Dim Send As Byte , X As Byte , Digit As Byte
    Dim A As Byte
    
    
    _load Alias Portb.2                                         'Daten gueltig
    _data Alias Portb.4                                         'Daten
    _sdclk Alias Portb.5                                        'Takt
    
    Ddrb = &B00110100                                           'Port B, 1=Ausgang
    Portd = &B0000100
    
    
    
    
    Rem Wait 1                                                      'warten bis anzusteuernder Baustein bereit
    
    Send = &B11000000                                           'Display init
    Gosub Senden
    Send = 228                                                  'Dimmen 224=100% bis231
    Gosub Senden
    
    
    '---------------------------------------------------------------------------------------------------
    
    
    Dim Z As Byte
    Dim Zeichen As Integer                                      'Zeichencode für Decoder
    Dim Temp As String * 1                                      'Zwischenspeicher für Stringbearbeitung
    Dim Index As Integer                                        'Zeichenposition für Caraktergenerator
    Dim Text As String * 8                                      'Testvariable (später Empfangspuffer)
    
    
    
    
    Anfang:
    
    Inputbin A
    
    Select Case A
    Case &H93 : Text = "   TV   "
    Case &H0C : Text = "  DVD   "
    Case &H81 : Text = " RADIO  "
    Case &H8A : Text = "  SAT   "
    Case &H9F : Text = "   CD   "
    Case &H91 : Text = " ATAPE  "
    Case &H85 : Text = " VTAPE  "
    Case &H3B : Text = " VTAPE2 "
    Case &H7C : Text = " A-AUX  "
    Case &H4D : Text = " V-AUX  "
    Case &H01 : Text = "STANDBY "
    Case Else Goto Anfang
    End Select
    
    
    
    
    Z = 1
    Digit = 160
    
    Do
    
    Send = Digit                                                'Digit0 bis 8 =160,161,162,163,164,165,166,167
    Gosub Senden
    Digit = Digit + 1
    
      Temp = Mid(text , Z , 1)                                  'Zeichen aus String lesen und in
      Zeichen = Asc(temp)                                       'Zeichencode dez. umwandeln.
      Z = Z + 1                                                 'Durchlaufzähler erhöhen und dann im
                                                                 'Zeichendecoder Zeichen decodieren.
      Index = Lookdown(zeichen , Zeichendecoder , 32)
      Index = Index - 1                                         'gefundene Position um 1 korrigieren und
      Index = Index * 7                                         'Anfang im Caraktergenerator berechnen.
    
      For X = 0 To 6                                            'Pro Zeichen 7 Spalten ausgeben. Dazu
        Send = Lookup(index , Zeichensatz)                      'Code holen und Zähler erhöhen. Dann
         Gosub Senden
        Incr Index
    
    
       Next X
    
    
    
    Loop Until Z > 8
    
    Goto Anfang
    
    
    
    
    '------------------------------Serielle Schnittstelle----------------------------------------------------------
    Senden:
       Reset _load                                              'bereit
       Shiftout _data , _sdclk , Send , 3                       '8Bit senden, LSB zuerst, Takt steigende Flanke
       Set _load
                                                           'fertig
    Return
    
    
    
    
    ' ****************************
    ' *      Zeichenmapping      *
    ' ****************************
    
    Zeichendecoder:
    
    Data $32 , $48 , $49 , $50 , $51 , $52 , $53 , $54 , $55 , $56 , $57
    Data $65 , $66 , $67 , $68 , $69 , $70 , $85 , $72 , $73 , $89 , $75
    Data $76 , $86 , $84 , $79 , $80 , $78 , $82 , $88 , $83 , $45
    
    ' ***************************
    ' *    Zeichentabelle       *
    ' ***************************
    
    Zeichensatz:
    
    Data &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000 , &B00000000       '  32
    Data &B00000100 , &B00010101 , &B00010001 , &B00010001 , &B00010001 , &B00010101 , &B00000100       '0 48
    Data &B00000100 , &B00001100 , &B00000100 , &B00000100 , &B00000100 , &B00000100 , &B00001110       '1 49
    Data &B00001110 , &B00010001 , &B00000010 , &B00000100 , &B00001000 , &B00010000 , &B00011111       '2 50
    Data &B00011111 , &B00000001 , &B00000010 , &B00000110 , &B00000001 , &B00010001 , &B00001110       '3 51
    Data &B00000010 , &B00000110 , &B00001010 , &B00010010 , &B00011111 , &B00000010 , &B00000010       '4 52
    Data &B00011111 , &B00010000 , &B00010000 , &B00011110 , &B00000001 , &B00010001 , &B00001110       '5 53
    Data &B00001111 , &B00010000 , &B00010000 , &B00011110 , &B00010001 , &B00010001 , &B00001110       '6 54
    Data &B00011111 , &B00000001 , &B00000010 , &B00000100 , &B00000100 , &B00000100 , &B00000100       '7 55
    Data &B00001110 , &B00010001 , &B00010001 , &B00001110 , &B00010001 , &B00010001 , &B00001110       '8 56
    Data &B00001110 , &B00010001 , &B00010001 , &B00001111 , &B00000001 , &B00000001 , &B00011110       '9 57
    Data &B00000100 , &B00001010 , &B00010001 , &B00011111 , &B00010001 , &B00010001 , &B00010001       'A 65
    Data &B00011110 , &B00001001 , &B00001001 , &B00001110 , &B00001001 , &B00001001 , &B00011110       'B 66
    Data &B00001110 , &B00010001 , &B00010000 , &B00010000 , &B00010000 , &B00010001 , &B00001110       'C 67
    Data &B00011110 , &B00001001 , &B00001001 , &B00001001 , &B00001001 , &B00001001 , &B00011110       'D 68
    Data &B00011111 , &B00010000 , &B00010000 , &B00011100 , &B00010000 , &B00010000 , &B00011111       'E 69
    Data &B00011111 , &B00010000 , &B00010000 , &B00011100 , &B00010000 , &B00010000 , &B00010000       'F 70
    Data &B00010001 , &B00010001 , &B00010001 , &B00010001 , &B00010001 , &B00010001 , &B00001110       'U 85
    Data &B00010001 , &B00010001 , &B00010001 , &B00011111 , &B00010001 , &B00010001 , &B00010001       'H 72
    Data &B00000100 , &B00000100 , &B00000100 , &B00000100 , &B00000100 , &B00000100 , &B00000100       'I 73
    Data &B00010001 , &B00010001 , &B00001010 , &B00001010 , &B00000100 , &B00000100 , &B00000100       'Y 89
    Data &B00010001 , &B00010010 , &B00010100 , &B00100010 , &B00010100 , &B00010010 , &B00010001       'K 75
    Data &B00010000 , &B00010000 , &B00010000 , &B00010000 , &B00010000 , &B00010000 , &B00011111       'L 76
    Data &B00010001 , &B00010001 , &B00010001 , &B00001010 , &B00001010 , &B00000100 , &B00000100       'V 86
    Data &B00011111 , &B00000100 , &B00000100 , &B00000100 , &B00000100 , &B00000100 , &B00000100       'T 84
    Data &B00001110 , &B00010001 , &B00010001 , &B00010001 , &B00010001 , &B00010001 , &B00001110       'O 79
    Data &B00011110 , &B00010001 , &B00010001 , &B00011110 , &B00010000 , &B00010000 , &B00010000       'P 80
    Data &B00010001 , &B00010001 , &B00011001 , &B00010101 , &B00010011 , &B00010001 , &B00010001       'N 78
    Data &B00011110 , &B00010001 , &B00010001 , &B00011110 , &B00010100 , &B00010010 , &B00010001       'R 82
    Data &B00010001 , &B00010001 , &B00001010 , &B00000100 , &B00001010 , &B00010001 , &B00010001       'X 88
    Data &B00001110 , &B00010001 , &B00010000 , &B00001110 , &B00000001 , &B00010001 , &B00001110       'S 83
    Data &B00000000 , &B00000000 , &B00000000 , &B00001110 , &B00000000 , &B00000000 , &B00000000       '- 45
    [/php][/quote]

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •