Časový zaznamenávač událostí s PIC
Moderátor: Moderátoři
- markoni
- Příspěvky: 2312
- Registrován: 30 říj 2006, 00:00
- Bydliště: Poblíž Zlína
- Kontaktovat uživatele:
Časový zaznamenávač událostí s PIC
Potřeboval bych nějaký program na zaznamenání nějaké události moje úvaha je taková:
program v například v PIC16F84 by vytvářel minuty a ty by přičítal a zapisoval do proměnné a jak by nastala nějaká událost zvenčí tak ta hodnota proměnné by se zkopírovala do eepromky obsažené v PIC16F84 a tu bych si přečetl na PC dělal někdo z vás něco takového abych nemusel já psát program a pak pracně ladit díky
- markoni
- Příspěvky: 2312
- Registrován: 30 říj 2006, 00:00
- Bydliště: Poblíž Zlína
- Kontaktovat uživatele:
miromatus píše:Zdravím , pozri KTE 6/2003 miniškola 16F84 lekcia 21 , je tam popisovaný program záznam času pri stlačení tlačidla.
Ten časopis jsem si kupoval v trafice ale bohužel nepravidelně tak nevím jestli toto číslo mám nevíte náhodou kdybych ho neměl kde ho sehnat když ne v papírové podobě tak v elektronické?díky mimochodem je veliká škoda že přestal vycházet .
markoni píše:miromatus píše:Zdravím , pozri KTE 6/2003 miniškola 16F84 lekcia 21 , je tam popisovaný program záznam času pri stlačení tlačidla.
Ten časopis jsem si kupoval v trafice ale bohužel nepravidelně tak nevím jestli toto číslo mám nevíte náhodou kdybych ho neměl kde ho sehnat když ne v papírové podobě tak v elektronické?díky mimochodem je veliká škoda že přestal vycházet .
Odkazy na stazeni jsou na foru.
- markoni
- Příspěvky: 2312
- Registrován: 30 říj 2006, 00:00
- Bydliště: Poblíž Zlína
- Kontaktovat uživatele:
Kód: Vybrat vše
LIST P = 16F84, R = DEC
#INCLUDE <P16F84.INC>
__CONFIG 0x3FF9
RAM EQU H'0C'
RBF EQU RAM
RBF1 EQU RAM+1
NUM EQU RAM+2
NUM1 EQU RAM+3
TMP EQU RAM+4
TM1 EQU RAM+5
TM2 EQU RAM+6
JEDN EQU RAM+7
DES EQU RAM+8
HOD EQU RAM+9
MIN EQU RAM+10
SEC EQU RAM+11
POM EQU RAM+12
ADRDD EQU RAM+13
HEX EQU RAM+14
TMR EQU RAM+15
MEM_W EQU RAM+16
MEM_S EQU RAM+17
#define Q PORTB,0
#define RS PORTB,1
#define RW PORTB,2
#define E PORTB,3
#define BF RBF,3
ORG 0
GOTO START
ORG 4
START BSF STATUS,RP0
MOVLW B'01110001'
MOVWF TRISB
MOVLW B'11000001'
MOVWF OPTION_REG
BCF STATUS,RP0
INTR MOVWF MEM_W
SWAPF STATUS,W
MOVWF MEM_S
BCF STATUS,RP0
CAS_1 NOP
NOP
NOP
NOP
NOP
MOVLW 100
MOVWF TMR0
INCF TMR,F
MOVFW TMR
XORLW 100
BTFSS STATUS,Z
GOTO CAS_1
CLRF TMR
INCF SEC,F
MOVFW SEC
XORLW 60
BTFSS STATUS,Z
CLRF SEC
INCF MIN,F
MOVFW MIN
XORLW 60
BTFSS STATUS,Z
GOTO CAS_1
CLRF MIN
INCF HOD,F
MOVFW HOD
XORLW 24
BTFSC STATUS,Z
CLRF HOD
goto CAS_1
;MOVLW 132
;CALL Z_CAS
;CAS_1 BCFINTCON,T0IF
SWAPF MEM_S,W
MOVWF STATUS
SWAPF MEM_W,F
SWAPF MEM_W,W
RETFIE
SAVE MOVWF EEADR ;obsah registru W do registru EEADR
MOVFW NUM
MOVWF EEDATA;obsah registru NUM do registru EEDATA
BSF STATUS,RP0 ;banka 1
BSF EECON1,WREN ;zápis do EEPROM povolen
MOVLW H'55'
MOVWF EECON2;první zápis bezpečnostního kódu
MOVLW H'AA'
MOVWF EECON2;druhý zápis bezpečnostního kódu
BSF EECON1,WR
BTFSS EECON1,EEIF ;je zápis ukončen?
GOTO $-1 ;ne,čekej
BCF EECON1,EEIF;bit EEIF vynulován
BCF EECON1,WREN ;zápis do EEPROM zakázán
BCF STATUS,RP0 ;banka 0
RETURN
LOAD MOVWF EEADR ;obsah registru W do registru EEADR
BSF STATUS,RP0 ;banka 1
BSF EECON1,RD;přečti data
BCF STATUS,RP0;banka 0
MOVFW EEDATA
MOVWF NUM ;zapiš data do registru NUM
RETURN
end
jak to mám dát do hromady aby to fungovalo?