Remarks On
Device 18F4520 ' Choose a PIC with self modifying features
Declare Xtal 40 ' Choose a 10MHz crystal
' Declare PLL_Req = On '
Hserial_Baud = 19200 ' Set baud rate to 38400
Hserial_RCSTA = %10010000 ' Enable serial port and continuous receive
Hserial_TXSTA = %00100100 ' Enable transmit and asynchronous mode
Hserial_Clear = On
Dim W_SAVE As Byte System
Dim S_SAVE As Byte System
Dim B_SAVE As Byte System
Dim FSR0L_SAVE As Byte System
Dim FSR0H_SAVE As Byte System
Dim Minute As Byte
Dim Stunde As Byte
Dim Tag As Byte
Dim Monat As Byte
Dim Jahr As Byte
Dim Sekunde As Byte
Dim Datensatz As Word
Symbol TIMER0 = TMR0L.Word ' Create a WORD variable from two hardware registers
Symbol TIMER1 = TMR1L.Word ' Create a WORD variable from two hardware registers
Symbol IPEN = RCON.7
Symbol TMR3IP = IPR2.1
' Symbol RXB0IP = IPR3.0
Symbol TMR3IF = PIR2.1
Symbol TMR3IE = PIE2.1
Symbol RBIF = INTCON.0 ' RB Port Interrupt Flag
Symbol INT0IF = INTCON.1 ' INT0 External Interrupt Flag
Symbol TMR0IF = INTCON.2 ' TMR0 Overflow Interrupt Flag
Symbol RBIE = INTCON.3 ' RB Port Change Interrupt Enable
Symbol INT0IE = INTCON.4 ' INT0 External Interrupt Enable
Symbol TMR0IE = INTCON.5 ' TMR0 Overflow Interrupt Enable
Symbol PEIE = INTCON.6 ' Peripheral Interrupt Enable
Symbol GIEL = INTCON.6 ' Peripheral Interrupt Enable
Symbol GIE = INTCON.7 ' Global Interrupt Enable
Symbol GIEH = INTCON.7 ' Global Interrupt Enable
Symbol TMR3ON = T3CON.0
Symbol TMR0ON = T0CON.7
Symbol T08BIT = T0CON.6
Symbol T0CS = T0CON.5
Symbol T0SE = T0CON.4
Symbol PSA = T0CON.3
Symbol T0PS2 = T0CON.2
Symbol T0PS1 = T0CON.1
Symbol T0PS0 = T0CON.0
Symbol RD16 = T1CON.7
Symbol T1CKPS1 = T1CON.5
Symbol T1CKPS0 = T1CON.4
Symbol T1OSCEN = T1CON.3
Symbol T1SYNC = T1CON.2
Symbol TMR1CS = T1CON.1
Symbol TMR1ON = T1CON.0
Symbol TMR1IF = PIR1.0
Symbol TMR1IE = PIE1.0
Symbol TMR1IP = IPR1.0
ADCON1=%00001111 ' Set PORTA and PORTE to all digital
LATA = 0
LATB = 0
LATC = 0
LATD = 0
LATE = 0
TRISA.0 = 0
' SerOn = 1 'Start
TRISA.1 = 0
' Stoppen = 1 'Stop
TRISA.3 = 1
TRISA.4 = 1
TRISE.0 = 0
' WriteP = 1
TRISE.4 = 0
TRISC.2 = 0 '485 Dir
PORTC.2 = 0
TRISD.0 = 0
TRISD.1 = 0
'***** Set up priority interrupts.
IPEN = 1 ' Enable priority interrupts.
TMR1IP = 0 ' Set Timer1 as a low priority interrupt source
TMR1IF = 0 ' Clear the Timer1 interrupt flag
'*****
GIEH = 0 ' Set the global interrupt enable bits
GIEL = 0
'***** TIMER0 setup
T08BIT = 0
T0CS = 0
PSA = 1
T0PS2 = 1
T0PS1 = 0
T0PS0 = 0
TMR0IE = 1 ' Enable Timer1 interrupts
TIMER0 = 15535 ' 65535 - 15535 = 50000 -> 5msec Intervall
TMR0ON = 1 ' Turn on Timer0
'***** TIMER1 setup
RD16 = 1
T1CKPS1 = 0
T1CKPS0 = 0
T1OSCEN = 0
T1SYNC = 0
TMR1CS = 0
TMR1ON = 0
TIMER1 = 15535
TMR1IE = 1
TMR1IP = 0
Datensatz = 10
DelayMS 2000
Stunde = 18
Minute = 35
Tag = 7
Monat = 4
Jahr = 10
Loop1:
DelayMS 1000
HSerOut ["Test ",Dec2 Stunde,":",Dec2 Minute," ",Dec2 Tag,".",Dec2 Monat,".",Dec2 Jahr,"-",Dec Datensatz,13]
GoTo Loop1
Stop
'*********************************************************
' Sub's
'*********************************************************
End