LCD EADOGM ansteuern

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 14 7 2024  10:41:14      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
LCD EADOGM ansteuern
Suche nach: lcd (4676)

    







BID = 779380

chris24

Stammposter



Beiträge: 217
 

  


Hallo,

ich möchte das EADOGM162A mit einem pic16f876a ansteuern.

Habe auch schon Displays angesteuert, somit idt mir die Kommunikation über SPI geläufig.

Ich gehe wie immer vor, aber irgendwie will es nicht.

Quelltext:

list p=16f876a
#include <p16f876a.inc>
#include <Display_1.inc>

;-------Konfigurationsbits--------

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF


;-------Definitionen-------

#define Display_SI PORTC, 0
#define Display_CLK PORTC, 1
#define Display_RS PORTC, 2
#define Display_CSB PORTC, 3


;-------Variblen-------

w_file EQU 0x70
s_file EQU 0x71

Display_Daten EQU 0x20
Display_Zähler EQU 0x21

;_________________________________________________________________________________________________________________________________


ORG 0x000
clrf PCLATH
goto start

ORG 0x004
movwf w_file
movf STATUS, W
movwf s_file

;Interruptroutinen

movf s_file, W
movwf STATUS
swapf w_file, F
swapf w_file, W
retfie

;______________________________________________________________

start

_BANK_0
clrf PORTA
clrf PORTB
clrf PORTC
_BANK_1
movlw b'00000000'
movwf ADCON1
movlw b'00000000'
movwf TRISA
movlw b'00000000'
movwf TRISB
movlw b'00000000'
movwf TRISC
_BANK_0

movlw b'01000000'
movwf ADCON0

bsf Display_CSB
bcf Display_CLK
bcf Display_SI
bcf Display_RS

Initialisierung_Display




;-------Unterprogramme-------

SchreibeDisplay_Kommando
movwf Display_Daten
bcf Display_CSB
bcf Display_RS
bcf Display_CLK

movlw d'8'
movwf Display_Zähler


Kommando
rlf Display_Daten, F
btfsc STATUS, C
bsf Display_SI
btfss STATUS, C
bcf Display_SI
nop
bsf Display_CLK
nop
bcf Display_CLK
decfsz Display_Zähler, F
goto Daten
bcf Display_SI
bcf Display_RS
_DELAY_TMR1_US d'30'

return


SchreibeDisplay_Daten
movwf Display_Daten
bcf Display_CSB
bsf Display_RS
bcf Display_CLK

movlw d'8'
movwf Display_Zähler

Daten
rlf Display_Daten, F
btfsc STATUS, C
bsf Display_SI
btfss STATUS, C
bcf Display_SI
nop
bsf Display_CLK
nop
bcf Display_CLK
decfsz Display_Zähler
goto Daten
bcf Display_RS
bcf Display_SI
_DELAY_TMR1_US d'30'

return



main

movlw 0x80
call SchreibeDisplay_Kommando
movlw A'H'
call SchreibeDisplay_Daten
movlw A'i'
call SchreibeDisplay_Daten
movlw A'!'
call SchreibeDisplay_Daten
movlw A'!'
call SchreibeDisplay_Daten

goto main

END


Makros:

OSC_FREQ EQU d'4000000'

;-------Macros------

_BANK_0 macro
bcf STATUS, RP0
bcf STATUS, RP1
endm

_BANK_1 macro
bsf STATUS, RP0
bcf STATUS, RP1
endm

_BANK_2 macro
bcf STATUS, RP0
bsf STATUS, RP1
endm

_BANK_3 macro
bsf STATUS, RP0
bsf STATUS, RP1
endm

;-------Init-Display-------

Initialisierung_Display macro
movlw 0x38
call SchreibeDisplay_Kommando
movlw 0x39
call SchreibeDisplay_Kommando
movlw 0x14
call SchreibeDisplay_Kommando
movlw 0x78
call SchreibeDisplay_Kommando
movlw 0x52
call SchreibeDisplay_Kommando
movlw 0x69
call SchreibeDisplay_Kommando
_DELAY_TMR1_US d'1100'
movlw 0x06
call SchreibeDisplay_Kommando

endm

_DELAY_TMR1_US macro usek
variable timer_HL=0
variable timer_H=0
variable timer_L=0

if usek > d'524000'
error "Macro:Wert zu groß"
endif

if usek < d'20'
error "Macro:Wert zu klein"
endif

timer_HL = d'65536'-(OSC_FREQ/d'10000000'*usek/d'4'/d'8')

timer_H = (timer_HL >>d'8')

timer_L = (timer_HL & 0x00FF)+d'1'

bcf PIE1, TMR1IE
movlw timer_H
movwf TMR1H
movlw timer_L
movwf TMR1L
movlw b'00110001'
movwf T1CON
btfss PIR1, TMR1IF
goto $-d'1'
bcf PIR1, TMR1IF
endm



Danke für Eure Hilfe!!

_________________
Gruß

Chris24

BID = 779397

chris24

Stammposter



Beiträge: 217

 

  

Noch der Schaltplan im Anhang.<font color="#FF0000"><br><br>Hochgeladene Datei ist grösser als 300 KB . Deswegen nicht hochgeladen<br></font>

_________________
Gruß

Chris24


[ Diese Nachricht wurde geändert von: chris24 am  4 Aug 2011 11:14 ]

BID = 779400

chris24

Stammposter



Beiträge: 217

Hinzuzufügen ist noch, dass der PIC sonst einwandfrei funktioniert, da er getestet wurde.

_________________
Gruß

Chris24

BID = 779499

chris24

Stammposter



Beiträge: 217

Hat sich erldigt, da ich einen Teil in der Initialisierung vergessen habe.....

Funktioniert also jetzt.

_________________
Gruß

Chris24


Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 16 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 181658922   Heute : 1093    Gestern : 5276    Online : 611        14.7.2024    10:41
4 Besucher in den letzten 60 Sekunden        alle 15.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0218210220337