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.
;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
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
$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]
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.