LCD EADOGM ansteuern Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
LCD EADOGM ansteuern Suche nach: lcd (4684) |
|
|
|
|
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
|
|
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 20 Beiträge im Durchschnitt pro Tag heute wurden bisher 0 Beiträge verfasst © x sparkkelsputz Besucher : 182392962 Heute : 155 Gestern : 7548 Online : 428 25.11.2024 1:24 4 Besucher in den letzten 60 Sekunden alle 15.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0856940746307
|