Basic program operations [PICProgramm.cs]
This commit is contained in:
@@ -1,76 +1,76 @@
|
||||
;TPicSim12
|
||||
;Programm zum Test des 16F84-Simulators.
|
||||
;Funktion: Beschreiben und Lesen des EEPROMs
|
||||
;(c) St. Lehmann Ersterstellung: 11.05.2011
|
||||
;Definition einiger Symbole
|
||||
|
||||
|
||||
indirect equ 0
|
||||
status equ 03h
|
||||
fsr equ 04h
|
||||
ra equ 05h
|
||||
rb equ 06h
|
||||
count equ 0ch
|
||||
eedata equ 08h
|
||||
eeaddr equ 09h
|
||||
eecon1 equ 08h ;auf Bank 1
|
||||
eecon2 equ 09h ;auf Bank 1
|
||||
|
||||
;Definition des Prozessors
|
||||
device 16F84
|
||||
|
||||
;Festlegen des Codebeginns
|
||||
org 0
|
||||
start
|
||||
movlw 0 ;der EEPROM-Speicher von 0 bis 3FH (63) gef?llt
|
||||
movwf count
|
||||
schreiben
|
||||
movf count,w
|
||||
movwf eeaddr ;diese Adresse soll beschrieben werden
|
||||
xorlw 255 ;Adresse invertieren
|
||||
movwf eedata ;dieser Wert an obige Adresse schreiben
|
||||
|
||||
bsf status,5 ;auf Bank 1
|
||||
bcf eecon1,4 ;EEIF zur?cksetzen, wird ?berwacht
|
||||
bsf eecon1,2 ;WREN-Bit setzen, sonst kein schreiben m?glich
|
||||
bsf eecon1,1 ;WR-Bit setzen
|
||||
|
||||
movlw 55h ;State-Machine anwerfen
|
||||
movwf eecon2
|
||||
movlw 0AAh
|
||||
movwf eecon2 ;Schreibvorgang beginnt jetzt
|
||||
|
||||
warte
|
||||
btfss eecon1,4 ;warte bis EEIF auf 1 ist
|
||||
goto warte
|
||||
|
||||
bcf eecon1,2 ;WREN auf 0
|
||||
|
||||
bcf status,5 ;zur?ck auf Bank 0
|
||||
|
||||
incf count
|
||||
movf count,w ;ist der Wert 40H erreicht
|
||||
sublw 40h
|
||||
btfss status,2 ;wenn 0, dann fertig
|
||||
goto schreiben
|
||||
|
||||
|
||||
clrf count ;jetzt gesamten Speicher lesen
|
||||
lesen:
|
||||
movf count,w
|
||||
movwf eeaddr
|
||||
|
||||
bsf status,5 ;auf Bank 1
|
||||
bsf eecon1,0 ;RD-Bit auf 1, wird vom PIC wieder auf 0 gesetzt
|
||||
bcf status,5 ;zur?ck auf Bank 0
|
||||
|
||||
movf eedata,w ;Wert ins W-Register
|
||||
|
||||
incf count
|
||||
movf count,w ;ist der Wert 40H erreicht
|
||||
sublw 40h
|
||||
btfss status,2 ;wenn 0, dann fertig
|
||||
goto lesen
|
||||
|
||||
ende
|
||||
goto ende
|
||||
;TPicSim12
|
||||
;Programm zum Test des 16F84-Simulators.
|
||||
;Funktion: Beschreiben und Lesen des EEPROMs
|
||||
;(c) St. Lehmann Ersterstellung: 11.05.2011
|
||||
;Definition einiger Symbole
|
||||
|
||||
|
||||
indirect equ 0
|
||||
status equ 03h
|
||||
fsr equ 04h
|
||||
ra equ 05h
|
||||
rb equ 06h
|
||||
count equ 0ch
|
||||
eedata equ 08h
|
||||
eeaddr equ 09h
|
||||
eecon1 equ 08h ;auf Bank 1
|
||||
eecon2 equ 09h ;auf Bank 1
|
||||
|
||||
;Definition des Prozessors
|
||||
device 16F84
|
||||
|
||||
;Festlegen des Codebeginns
|
||||
org 0
|
||||
start
|
||||
movlw 0 ;der EEPROM-Speicher von 0 bis 3FH (63) gef?llt
|
||||
movwf count
|
||||
schreiben
|
||||
movf count,w
|
||||
movwf eeaddr ;diese Adresse soll beschrieben werden
|
||||
xorlw 255 ;Adresse invertieren
|
||||
movwf eedata ;dieser Wert an obige Adresse schreiben
|
||||
|
||||
bsf status,5 ;auf Bank 1
|
||||
bcf eecon1,4 ;EEIF zur?cksetzen, wird ?berwacht
|
||||
bsf eecon1,2 ;WREN-Bit setzen, sonst kein schreiben m?glich
|
||||
bsf eecon1,1 ;WR-Bit setzen
|
||||
|
||||
movlw 55h ;State-Machine anwerfen
|
||||
movwf eecon2
|
||||
movlw 0AAh
|
||||
movwf eecon2 ;Schreibvorgang beginnt jetzt
|
||||
|
||||
warte
|
||||
btfss eecon1,4 ;warte bis EEIF auf 1 ist
|
||||
goto warte
|
||||
|
||||
bcf eecon1,2 ;WREN auf 0
|
||||
|
||||
bcf status,5 ;zur?ck auf Bank 0
|
||||
|
||||
incf count
|
||||
movf count,w ;ist der Wert 40H erreicht
|
||||
sublw 40h
|
||||
btfss status,2 ;wenn 0, dann fertig
|
||||
goto schreiben
|
||||
|
||||
|
||||
clrf count ;jetzt gesamten Speicher lesen
|
||||
lesen:
|
||||
movf count,w
|
||||
movwf eeaddr
|
||||
|
||||
bsf status,5 ;auf Bank 1
|
||||
bsf eecon1,0 ;RD-Bit auf 1, wird vom PIC wieder auf 0 gesetzt
|
||||
bcf status,5 ;zur?ck auf Bank 0
|
||||
|
||||
movf eedata,w ;Wert ins W-Register
|
||||
|
||||
incf count
|
||||
movf count,w ;ist der Wert 40H erreicht
|
||||
sublw 40h
|
||||
btfss status,2 ;wenn 0, dann fertig
|
||||
goto lesen
|
||||
|
||||
ende
|
||||
goto ende
|
||||
|
||||
Reference in New Issue
Block a user