Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; ******* PROCESSOR DEFINITIONER **********************************************************
- processor 16f877a ;Sets processor
- #include p16f877a.inc
- ; errorlevel -302 ;fjerner meddelser om forkerte banker fra fejl listen
- ; errorlevel -305 ;fjerner meddelser om forkerte banker fra fejl listen
- ; ******* COMPILER configuration bits *****************************************************
- __config _HS_OSC & _PWRTE_OFF & _WDT_OFF & _CP_OFF & _CPD_OFF & _LVP_OFF
- ; ******* DEFFINITION AF VARIABLE *********************************************************
- #include "SDUboard.var" ;Variable som bruges af SDUboard 0x79 - 0x7F)
- ;INDSÆT DINE VARIABLE HER (start med 0x20)
- ; ******* OPSÆTNING AF PROGRAM POINTERE ***************************************************
- org 0x0000 ;Programstart efter et reset
- GOTO init ;Gå til opsætning
- org 0x0005 ;Første position efter interrupt-vektor
- ; ******* INCLUDEREDE FILER ***************************************************************
- #Include "SDUboard.lib" ; SDU PICborad subroutine bibliotek.
- ; Instrukser: Sæt en hukommelseslokation ind i W og kald SETADDR
- ; Derefter indsæt data end i W og kald BEGINWRITE
- ; Nu burde programmet have gemt dataene til den ønskede lokation på EEPROM'en
- init
- CALL LCD_Init
- EEPROMTestLoop
- MOVLW 0x16 ; Specificer stedet i EEPROM'en
- CALL SETADDR ; Vi har nu sat vores "cursor" i EEPROM'en til at stå i register 0x16
- MOVLW 0x23 ; Specificer tallet der skal indsættes i EEPROM'en
- CALL BEGINWRITE ; Vi har nu gemt(0x23) til 0x16 på EEPROM'en
- MOVLW d'0'
- MOVLW 0x16 ; Spcificer det sted der skal læses i EEPROM'en
- CALL SETADDR ;
- CALL BEGINREAD ; Der læses nu på register (0x16) i EEPROM'en og det flyttes til w.
- CALL BIN2DEC
- MOVF CIF100,w
- CALL CONV2ASCII
- CALL LCD_Data
- MOVF CIF10,w
- CALL CONV2ASCII
- CALL LCD_Data
- MOVF CIF1,w
- CALL CONV2ASCII
- CALL LCD_Data
- MOVLW CursLeft
- CALL LCD_Reg
- MOVLW CursLeft
- CALL LCD_Reg
- MOVLW CursLeft
- CALL LCD_Reg
- GOTO EEPROMTestLoop
- SETADDR
- BSF STATUS,RP1 ; Switch til bank 2
- BCF STATUS,RP0 ; Switch til bank 2
- MOVWF EEADR
- BCF STATUS,RP1
- BCF STATUS,RP0 ; Bank 0
- RETURN
- BEGINWRITE
- BSF STATUS,RP1 ;
- BSF STATUS,RP0 ;
- Wait BTFSC EECON1,WR ; Tjekker om der er en skrivning i gang
- GOTO Wait ; Går en linje tilbage
- BCF STATUS,RP0
- MOVWF EEDATA
- BSF STATUS,RP0
- BCF EECON1,EEPGD
- BSF EECON1,WREN
- BCF INTCON,GIE
- MOVLW d'85'
- MOVWF EECON2
- MOVLW d'170'
- MOVWF EECON2
- BSF EECON1,WR
- BSF INTCON,GIE
- Wait2 BTFSC EECON1,WR
- goto Wait2
- BCF EECON1,WREN
- BCF STATUS,RP1
- BCF STATUS,RP0 ; Bank 0
- RETURN
- BEGINREAD
- BSF STATUS,RP1 ;
- BCF STATUS,RP0 ; Bank 2
- BSF STATUS,RP0 ; Bank 3
- BCF EECON1,EEPGD ; Point to Data memory
- BSF EECON1,RD ; EE Read
- BCF STATUS,RP0 ; Bank 2
- MOVF EEDATA,W ; W = EEDATA
- BCF STATUS,RP1
- BCF STATUS,RP0 ; Bank 0
- RETURN
- ; ******* PROGRAM AFSLUTTET ***************************************************************
- END ;her slutter programmet...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement