77 lines
2.2 KiB
Plaintext
77 lines
2.2 KiB
Plaintext
|
;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
|