forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
Program na záznam teploty s PIC16F628A
Jdi na stránku 1, 2  Další
 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip
 
meloun
Profesionál
Profesionál


Založen: 28.5.2009
Příspěvky: 278
Bydliště: Poblíž Zlína

PříspěvekZaslal: 10 únor 2010, 14:18    Předmět: Program na záznam teploty s PIC16F628A Citovat

Zdravím
Nemáte někdo funkční program pro PIC16F628A na kterém by šly hodiny a fungovala by komunikace přes usart čili seriová komunikace ve směru z Pic do PC pro přenos naměřené teploty prostřednístvím čidla DS18S20 a časového údaje? a nemáte překlad datasheetu PIC16F628A do češtiny? díky moc.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Petr
Profesionál
Profesionál


Založen: 21.2.2008
Příspěvky: 638
Bydliště: Praha západ Hostivice

PříspěvekZaslal: 10 únor 2010, 19:37    Předmět: Citovat

Pokud chceš ukládat i časový údaj, jaký RTC chceš použít. Co se týče překladu datasheetu, porozhlédni se tady na fóru, ale pro daný typ tu asi nebude.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
meloun
Profesionál
Profesionál


Založen: 28.5.2009
Příspěvky: 278
Bydliště: Poblíž Zlína

PříspěvekZaslal: 10 únor 2010, 23:14    Předmět: Citovat

co myslíš tím RTC? díky

Arrow administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Petr
Profesionál
Profesionál


Založen: 21.2.2008
Příspěvky: 638
Bydliště: Praha západ Hostivice

PříspěvekZaslal: 10 únor 2010, 23:49    Předmět: Citovat

Real Time Clock, nějaký časový a datumový obvod.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
meloun
Profesionál
Profesionál


Založen: 28.5.2009
Příspěvky: 278
Bydliště: Poblíž Zlína

PříspěvekZaslal: 11 únor 2010, 0:03    Předmět: Citovat

Ty hodiny fungují na bází přerušení a jsou součástí programu čili tam nebude žádný další obvod kromě teplotního čidla DS18S20 je fakt že zatím neřeším komunikaci toho čidla ale na to je čas.díky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Petr
Profesionál
Profesionál


Založen: 21.2.2008
Příspěvky: 638
Bydliště: Praha západ Hostivice

PříspěvekZaslal: 11 únor 2010, 0:25    Předmět: Citovat

Tady to máš celé hotové. Program pro tvůj PIC a čidlo lze jednoduše upravit.
Hodiny se musí doplnit.

http://pandatron.cz/?566&teplotni_cidlo_ds18b20_ve_spojeni_s_pic12f629
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Vladimir
Profesionál
Profesionál


Založen: 9.12.2009
Příspěvky: 53

PříspěvekZaslal: 11 únor 2010, 11:02    Předmět: Citovat

To : Petr, prosim ta Peter, alebo niekto, kto uz ma s tym skusenosti. Skusam si postavit ten prenos teploty z cidla DS18B20 do PC podla stranky z pandatronu.cz. Ja som to chcel ale aplikovat so 16F690 a uz v MPLABe mi to nechcelo fungovat. Tak som potom do MPLABu natiahol original program s 12F629 a neslo to. Totiz v podprogramoch DSPINL a DSPINH kde sa nastavuje a resetuje pin "DSPIN" sa mi to neprepina ked si to pozeram v okne Watch reg. GPIO, bit 2. Preco??.. nieco robim spatne??.. Poradte prosim...Dakujem...
Vladimir...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
meloun
Profesionál
Profesionál


Založen: 28.5.2009
Příspěvky: 278
Bydliště: Poblíž Zlína

PříspěvekZaslal: 11 únor 2010, 12:21    Předmět: Citovat

Pro Vladimíra to se řešilo na http://www.elektroworld.info/modules.php?name=Forums&file=viewtopic&t=29925&highlight=ds18b20
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Anonymní






PříspěvekZaslal: 11 únor 2010, 12:26    Předmět: Citovat

Neni snazsi casovy udaj resit jiz v ramci programu v PC ?!
Návrat nahoru
 

 
meloun
Profesionál
Profesionál


Založen: 28.5.2009
Příspěvky: 278
Bydliště: Poblíž Zlína

PříspěvekZaslal: 11 únor 2010, 12:49    Předmět: Citovat

Není protože jak zjistíš čas kolik bylo venku v noci stupňů pod nulou v určitou hodinu když nemáš zaznamenán čas, upozorňuji že to bude měřit přes celou noc no až ráno to připojím na PC a v terminálu který je součástí WXP si přečtu v kolik hodin bylo stupňů.díky

Arrow administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
meloun
Profesionál
Profesionál


Založen: 28.5.2009
Příspěvky: 278
Bydliště: Poblíž Zlína

PříspěvekZaslal: 11 únor 2010, 12:52    Předmět: Citovat

Petr napsal:
Tady to máš celé hotové. Program pro tvůj PIC a čidlo lze jednoduše upravit.
Hodiny se musí doplnit.

http://pandatron.cz/?566&teplotni_cidlo_ds18b20_ve_spojeni_s_pic12f629

O to vím ale za prve to s 12f629 a za druhé ten program ihned posílá teplotu do PC.díky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Vladimir
Profesionál
Profesionál


Založen: 9.12.2009
Příspěvky: 53

PříspěvekZaslal: 11 únor 2010, 15:08    Předmět: Citovat

chlapci , prosim vas, casto tu citam o "pull-up" , ale co to vlastne je?... mohol by mi to niekto strucne vysvetlit??
dakujem... Vladimir.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
honza3
Profesionál
Profesionál


Založen: 21.1.2008
Příspěvky: 1129
Bydliště: Přerov

PříspěvekZaslal: 11 únor 2010, 15:46    Předmět: Citovat

To jsou rezistrory připojené mezi pin procesoru a +5V, zaručují log. 1 na vstupu nebo na výstupu s otevřeným kolektorem. Obvykle se používá 4k7 - 10k. U I2C se používá i menší, většinou 1k8.

meloun napsal:
O to vím ale za prve to s 12f629 a za druhé ten program ihned posílá teplotu do PC.díky


Tak si z toho programu vem jen podprogram na měření, uprav ho na tvůj procesor a zbytek si napiš sám. 16F628 má USART v sobě. Akorát nevím, jestli ti bude stačit interní EEPROM na zápis dat.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
meloun
Profesionál
Profesionál


Založen: 28.5.2009
Příspěvky: 278
Bydliště: Poblíž Zlína

PříspěvekZaslal: 12 únor 2010, 13:02    Předmět: Citovat

honza3 napsal:
Tak si z toho programu vem jen podprogram na měření, uprav ho na tvůj procesor a zbytek si napiš sám. 16F628 má USART v sobě. Akorát nevím, jestli ti bude stačit interní EEPROM na zápis dat.

Tak jsem si to upravil ponechávám tam emulaci usartu bude stačit změna GPIO na PORTB? nebo jak to mám upravit ?přikládám upravený zdroják díky
kód:
;**************************************************************************
; PIC12F629 + DS18B20                                (C)Pandatron.cz, 2008
;--------------------------------------------------------------------------
;
; Processor : PIC12F629
; Clock : INTOSC (4MHz)
;
;**************************************************************************

        LIST P=16F628, R=DEC
        INCLUDE<P16F628.INC>
       
        __CONFIG _PWRTE_ON & _WDT_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT

UARTREG equ     0x20            ; odesilani dat do PC
UARTCNT equ     0x21
UARTROT equ     0x22
PAUS1   equ     0x23            ; 10s pauza
PAUS2   equ     0x24
PAUS3   equ     0x25
DSDL1   equ     0x26            ; komunikace s DS18B20
DSREG1  equ     0x27
DSREG2  equ     0x28
TEMPL   equ     0x29
TEMPH   equ     0x2A
TEMPNM  equ     0x2B            ; ???,  °C
TEMPDP  equ     0x2C      ;    ,? °C

#define UART    PORTB,0          ; UART pin
#define DSPIN   PORTB,2      ; DS18B20 pin

D550US  equ     200             ; 550us
D90US   equ     25              ; 90us
D1US    equ     1               ; 3us

SPEED   equ     34              ; SPEED -  Baud
                                ;  145  -  2400
                                ;   71  -  4800
                                ;   34  -  9600
                                ;   21  - 14400
                                ;   15  - 19200
                                ;    5  - 38400



; ========================================================================
; Start procesoru
;
        org     0x00
        goto    INIT

INIT    MOVLW   0x7             ; komparator off
        MOVWF   CMCON
       
        GOTO    START

START   CALL    DSSTART         ; start prevodu teploty v cidlu
        CALL    PAUSE           ; 10s
        CALL    DSREAD          ; vyčtení teploty z cidla
        CALL    TMPCNV          ; prevod binarni teploty na hodnotu
        CALL    TEMPSND         ; odeslani teploty do PC
        GOTO    START



; ========================================================================
; DS18B20 rutiny
;
DSSTART CALL    DSPINL          ; start prevodu teploty
        MOVLW   D550US          ; reset pulse
        CALL    DSDEL
        CALL    DSPINH
        MOVLW   D90US
        CALL    DSDEL
        BTFSC   DSPIN
        RETURN                  ; bez odpovedi - konec
        MOVLW   D550US
        CALL    DSDEL
        MOVLW   0xCC
        CALL    DSSEND
        MOVLW   0x44
        CALL    DSSEND
        RETURN
       
;---------------------

DSREAD  CLRF    TEMPL           ; vycteni teploty z cidla
        CLRF    TEMPH
        CALL    DSPINL
        MOVLW   D550US          ; reset pulse
        CALL    DSDEL
        CALL    DSPINH
        MOVLW   D90US
        CALL    DSDEL
        BTFSC   DSPIN
        RETURN                  ; bez odpovedi - konec
        MOVLW   D550US
        CALL    DSDEL
        MOVLW   0xCC
        CALL    DSSEND
        MOVLW   0xBE
        CALL    DSSEND
        CALL    DSREC
        MOVWF   TEMPL
        CALL    DSREC
        MOVWF   TEMPH
        RETURN
       
;---------------------
       
DSPINL  BSF     STATUS,RP0      ; pin DSPIN do L
        BCF     DSPIN
        BCF     STATUS,RP0
        BCF     DSPIN
        RETURN

;---------------------
       
DSPINH  BSF     STATUS,RP0      ; pin DSPIN do H (pull-up)
        BSF     DSPIN
        BCF     STATUS,RP0
        RETURN
       
;---------------------
       
DSDEL   MOVWF   DSDL1      ; prodleva pro komunikaci
        DECFSZ  DSDL1,1
        GOTO    $-1
        RETURN

;---------------------

DSSEND  MOVWF   DSREG1          ; odeslani jednoho bytu z W do DS18B20
        MOVLW   8
        MOVWF   DSREG2
DSSND1  CALL    DSPINL
        BTFSC   DSREG1,0
        CALL    DSPINH
        MOVLW   D90US
        CALL    DSDEL
        CALL    DSPINH
        RRF     DSREG1,1
        DECFSZ  DSREG2,1
        GOTO    DSSND1
        MOVLW   D90US
        CALL    DSDEL
        RETURN
       
;---------------------
       
DSREC   CLRF    DSREG1          ; vycteni jednoho bytu z DS18B20 do W
        MOVLW   8
        MOVWF   DSREG2
DSREC1  RRF     DSREG1,1
        CALL    DSPINL
        CALL    DSPINH
        MOVLW   D1US
        CALL    DSDEL
        BCF     DSREG1,7
        BTFSC   DSPIN
        BSF     DSREG1,7
        MOVLW   D90US
        CALL    DSDEL
        DECFSZ  DSREG2,1
        GOTO    DSREC1
        MOVLW   D90US
        CALL    DSDEL
        MOVF    DSREG1,0
        RETURN


       
; ========================================================================
 ; Prevod binarni hodnoty ziskane z cidla na velikost teploty
TMPCNV  CLRF    TEMPNM
        CLRF    TEMPDP
        BTFSS   TEMPH,7
        GOTO    $+5
        COMF    TEMPH,1
        COMF    TEMPL,1
        MOVLW   200
        MOVWF   TEMPNM
       
        MOVF    TEMPDP,0
        BTFSC   TEMPL,1
        ADDLW   1
        BTFSC   TEMPL,2
        ADDLW   2
        BTFSC   TEMPL,3
        ADDLW   5
        MOVWF   TEMPDP
       
        MOVF    TEMPNM,0
        BTFSC   TEMPL,4
        ADDLW   1
        BTFSC   TEMPL,5
        ADDLW   2
        BTFSC   TEMPL,6
        ADDLW   4
        BTFSC   TEMPL,7
        ADDLW   8

        BTFSC   TEMPH,0
        ADDLW   16
        BTFSC   TEMPH,1
        ADDLW   32
        BTFSC   TEMPH,2
        ADDLW   64
        MOVWF   TEMPNM
     
        RETURN
       
       

; ========================================================================
; Odeslani jednoho bytu z W do UARTU
;
USEND   MOVWF   UARTREG
        BSF     STATUS,RP0
        BCF     UART
        BCF     STATUS,RP0
        BSF     UART
        CALL    UARTDEL
        NOP
        NOP
        NOP
        MOVLW   8
        MOVWF   UARTROT
        BTFSS   UARTREG,0
        GOTO    $+3
        BCF     UART
        GOTO    $+3
        BSF     UART
        NOP
        CALL    UARTDEL
        RRF     UARTREG,1
        DECFSZ  UARTROT,1
        GOTO    $-9
        BCF     UART
        CALL    UARTDEL
        BSF     STATUS,RP0
        BSF     UART
        BCF     STATUS,RP0
        RETURN
       
UARTDEL MOVLW   SPEED
        MOVWF   UARTCNT
        DECFSZ  UARTCNT,1
        GOTO    $-1
        RETURN




; ========================================================================
; Odeslani textu a teploty do PC
;
TEMPSND MOVLW   'T'             ; T
        CALL    USEND
        MOVLW   'e'             ; e
        CALL    USEND
        MOVLW   'p'             ; p
        CALL    USEND
        MOVLW   'l'             ; l
        CALL    USEND
        MOVLW   'o'             ; o
        CALL    USEND
        MOVLW   't'             ; t
        CALL    USEND
        MOVLW   'a'             ; a
        CALL    USEND
        MOVLW   ':'             ; :
        CALL    USEND
        MOVLW   ' '             ; 
        CALL    USEND
       
        MOVLW   200
        SUBWF   TEMPNM,1
        BTFSS   STATUS,C
        GOTO    $+4
        MOVLW   '-'             ; -
        CALL    USEND
        GOTO    $+2
        ADDWF   TEMPNM,1

        MOVLW   100
        SUBWF   TEMPNM,1
        BTFSS   STATUS,C
        GOTO    $+4
        MOVLW   '1'             ; 100°C
        CALL    USEND
        GOTO    $+2
        ADDWF   TEMPNM,1
       
        CLRF    TEMPH
        MOVLW   10
        SUBWF   TEMPNM,1
        BTFSS   STATUS,C
        GOTO    $+3
        INCF    TEMPH,1
        GOTO    $-4
        ADDWF   TEMPNM,1
        MOVF    TEMPH,0
        ADDLW   0x30
        CALL    USEND           ; 10°C
       
        CLRF    TEMPH
        MOVLW   1
        SUBWF   TEMPNM,1
        BTFSS   STATUS,C
        GOTO    $+3
        INCF    TEMPH,1
        GOTO    $-4
        ADDWF   TEMPNM,1
        MOVF    TEMPH,0
        ADDLW   0x30
        CALL    USEND           ; 1°C
       
        MOVLW   ','             ; ,
        CALL    USEND
       
        CLRF    TEMPH
        MOVLW   1
        SUBWF   TEMPDP,1
        BTFSS   STATUS,C
        GOTO    $+3
        INCF    TEMPH,1
        GOTO    $-4
        ADDWF   TEMPDP,1
        MOVF    TEMPH,0
        ADDLW   0x30
        CALL    USEND           ; 0,1°C
     
        MOVLW   '°'             ; °
        CALL    USEND
        MOVLW   'C'             ; C
        CALL    USEND
       
        MOVLW   0x0A
        CALL    USEND           ; Enter
        MOVLW   0x0D
        CALL    USEND
        RETURN



; ========================================================================
; Prodleva cca. 10s
; ------------------------------------------------------------------------
PAUSE   MOVLW   50
        MOVWF   PAUS3
        CLRF    PAUS2
        CLRF    PAUS1
        DECFSZ  PAUS1,1
        GOTO    $-1
        DECFSZ  PAUS2,1
        GOTO    $-3
        DECFSZ  PAUS3,1
        GOTO    $-5
        RETURN
       

        END
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
piityy
Profesionál
Profesionál


Založen: 1.4.2008
Příspěvky: 2118
Bydliště: Vysočina

PříspěvekZaslal: 12 únor 2010, 13:15    Předmět: Citovat

meloun napsal:
Není protože jak zjistíš čas kolik bylo venku v noci stupňů pod nulou v určitou hodinu když nemáš zaznamenán čas, upozorňuji že to bude měřit přes celou noc no až ráno to připojím na PC a v terminálu který je součástí WXP si přečtu v kolik hodin bylo stupňů.díky

Pokud vzorkuješ v pravidelných intervalech, tak programu v PC stačí si pamatovat okamžik posledního čtení dat a časy k novým datů ze známé periody měření může dopočítat.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip Časy uváděny v GMT + 2 hodiny
Jdi na stránku 1, 2  Další
 
Strana 1 z 2
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2014 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)