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
Lesezeichen