41 lines
2.5 KiB
Plaintext
41 lines
2.5 KiB
Plaintext
00001 ;TPicSim9
|
|
00002 ;Programm zum Test des 16F84-Simulators.
|
|
00003 ;Funktion: SLEEP-Befehl
|
|
00004 ;(c) St. Lehmann Ersterstellung: 31.03.2016
|
|
00005 ;Definition einiger Symbole
|
|
00006
|
|
00007 list c=132 ;Zeilenlänge im LST auf 132 Zeichen setzen
|
|
00008
|
|
00009 status equ 03h
|
|
00010 rb equ 06h
|
|
00011 var equ 0ch
|
|
00012 liste1 equ 10h
|
|
00013 liste2 equ 11h
|
|
00014 liste3 equ 12h
|
|
00015 liste4 equ 13h
|
|
00016
|
|
00017 ;Definition des Prozessors
|
|
00018 device 16F84
|
|
00019
|
|
00020 ;Festlegen des Codebeginns
|
|
00021 org 0
|
|
00022 ;wenn mit eingeschaltetem Watchdog-Timer der SLEEP-Befehl aktiviert wird,
|
|
00023 ;dann wird das Programm nach ca. 2,3ms weiter laufen.
|
|
00024
|
|
00025 ;wenn der Watchdog-Timer ausgeschaltet ist, beendet ein RESET den SLEEP-Modus
|
|
00026
|
|
00027 ;Auch ein Interrupt an RB0 oder RB4 bis RB7 beendet den SLEEP-Modus
|
|
00028 start
|
|
0000 018C 00029 clrf var ;
|
|
0001 0E03 00030 swapf status,w
|
|
0002 0090 00031 movwf liste1 ;T0=1 , PD=1
|
|
0003 0063 00032 sleep ;warte bis Watchdogtimer anspricht
|
|
0004 0E03 00033 swapf status,w
|
|
0005 0091 00034 movwf liste2 ;T0=1 , PD=0 bei Watchdog-Timeout
|
|
00035 ;T0=0 , PD=0 bei RESET oder Interrupt
|
|
00036
|
|
00037
|
|
00038 ende
|
|
0006 2806 00039 goto ende
|
|
00040
|