dorelb Postat Ianuarie 13, 2011 Autor Partajează Postat Ianuarie 13, 2011 Da, este ceva de lucru. Se potriveste pentru ce a propus GeoMar. Doar ca este pus doar hex-ul. Ds1307 am, 16f876 am, urmeaza sa ma apuc de treaba. Mersi fratello. Iar in pagina cautam (Universal termometru digital). http://translate.google.ro/translate?hl ... rmd%3Divns Ceea ce face un lucru valoros, este nu ceea ce ai tu de castigat facandu-l, ci ceea ce pierzi daca nu-l faci. Agassi Andre Link spre comentariu
fratello Postat Ianuarie 13, 2011 Partajează Postat Ianuarie 13, 2011 Vad ca toate link-urile puse s-au transformat in altceva :( ... Site-ul este http://radiokot.ru/ ; folositi Google Translate ! In ultimul link (despre softuri "combinate") este vorba despre acest montaj ; sunt prezentate schema, softul, cablajul. Denumirile sunt in rusa (!) dar sugerez contactarea autorului ! Succes ! Link spre comentariu
Vizitator banomix Postat Ianuarie 13, 2011 Partajează Postat Ianuarie 13, 2011 Nu o sa comentez pana la functionarea corecta. Parerea mea este ca ai legaturi incorecte la conexiuni placa-afisaj. Am patit-o si eu cu un ceas. - Lui - banomix - . Pun schema de alimentare pentru LCD mai jos. Ceea ce face un lucru valoros, este nu ceea ce ai tu de castigat facandu-l, ci ceea ce pierzi daca nu-l faci. Agassi Andre Multumesc dorelb, contrastul era de vina. Am pus din lipsa un semireglabil de 50k in loc de 4,7k, rasuceam de el si nimic trebuia sa dau la cap de tot semireglabilul. Imi cer scuze pentru raspunsul intarzia. Stima Link spre comentariu
dorelb Postat Ianuarie 13, 2011 Autor Partajează Postat Ianuarie 13, 2011 Asta ar fi placa de baza, la care se conecteaza LCD-ul. Am gasit si un LCD, atat ca este 4x20. Ceea ce face un lucru valoros, este nu ceea ce ai tu de castigat facandu-l, ci ceea ce pierzi daca nu-l faci. Link spre comentariu
aionescu Postat Ianuarie 13, 2011 Partajează Postat Ianuarie 13, 2011 Vad ca toate link-urile puse s-au transformat in altceva :( ... Site-ul este http://radiokot.ru/ ; folositi Google Translate !In ultimul link (despre softuri "combinate") este vorba despre acest montaj ; sunt prezentate schema, softul, cablajul. Denumirile sunt in rusa (!) dar sugerez contactarea autorului ! Succes !Mie nu mi se pare prea grozava abordarea:1. Ce cauta DS1307 acolo? Poate face PIC-ul foarte bine treaba. Doar daca e un proiect didactic pentru comunicarea seriala PIC-DS, altfel e risipa de materiale.2. Deseii aia sunt pusi pe doua linii separate, deci 2 pini. Pai am trecut in clasa a doua, ii punem pe acelasi fir,nu?3. Un PIC16F628(A) este suficient pentru proiectul asta, de ce sa punem un cip care costa de 3 ori mai mult? Link spre comentariu
GeoMar Postat Ianuarie 13, 2011 Partajează Postat Ianuarie 13, 2011 Mie nu mi se pare prea grozava abordarea:1. Ce cauta DS1307 acolo? Poate face PIC-ul foarte bine treaba. Doar daca e un proiect didactic pentru comunicarea seriala PIC-DS, altfel e risipa de materiale.2. Deseii aia sunt pusi pe doua linii separate, deci 2 pini. Pai am trecut in clasa a doua, ii punem pe acelasi fir,nu?3. Un PIC16F628(A) este suficient pentru proiectul asta, de ce sa punem un cip care costa de 3 ori mai mult?Pai daca poti,te pricepi si vrei sa combini cele 3 softuri in 1 singur, e ok, ar fi super toate 3 intr-un PIC 16F628A si un LCD 2x16. Link spre comentariu
dorelb Postat Ianuarie 13, 2011 Autor Partajează Postat Ianuarie 13, 2011 Nu cred ca o sa poata cu un 16f628A. Eventual cu un 16f648A. Ceea ce face un lucru valoros, este nu ceea ce ai tu de castigat facandu-l, ci ceea ce pierzi daca nu-l faci. Link spre comentariu
fratello Postat Ianuarie 14, 2011 Partajează Postat Ianuarie 14, 2011 In simulare, nu merge nici chiar cu 16F648A. Link spre comentariu
aionescu Postat Ianuarie 14, 2011 Partajează Postat Ianuarie 14, 2011 De ce sa mearga numai cu 16F648A? Ce-l face mai potrivit decat 628 pentru aplicatia noastra?Cum "nu merge" in simulare? Ce zice? Asta oricum e chestie de soft si se rezolva pana la urma. Link spre comentariu
fratello Postat Ianuarie 14, 2011 Partajează Postat Ianuarie 14, 2011 Am mai spus-o : cunostintele mele de programare sunt (foarte) mici, de-abia reusesc sa scriu cateva programele, si asta doar in PicBasic Pro. Din aceasta cauza incercarile mele de combinare a celor doua softuri nu au dat rezultate. Un cod scris de cineva priceput e posibil sa mearga, chiar si pe un 16F628. Eu -spre rusinea mea- nu am reusit sa "optimizez" codul, nici macar pentru un 16F648A (care are spatiu pentru Program Memory dublu). Link spre comentariu
aionescu Postat Ianuarie 14, 2011 Partajează Postat Ianuarie 14, 2011 Am mai spus-o : cunostintele mele de programare sunt (foarte) mici, de-abia reusesc sa scriu cateva programele, si asta doar in PicBasic Pro. Din aceasta cauza incercarile mele de combinare a celor doua softuri nu au dat rezultate. Un cod scris de cineva priceput e posibil sa mearga, chiar si pe un 16F628. Eu -spre rusinea mea- nu am reusit sa "optimizez" codul, nici macar pentru un 16F648A (care are spatiu pentru Program Memory dublu).Va rog sa ma credeti ca aplicatia se poate face pe 628. Eu am facut toate combinatiile de cate doua din astea trei plus alte rutine si functioneaza. Atat cu afisaj LCD cat si cu LED (astea din urma sunt mai "mancatoare de pini").Picul 648 are mai mult ROM, EEPROM si memorie program, este adevarat, dar si 628 face fata cu brio.Bineinteles ca e vorba si de o optimizare a softului. E drept ca aplicatiile le-am facut ASM, in limbaj de nivel inalt (care ocupa mai multa memorie) nu am incercat.Oricum este mai dificil de "adaptat" un soft facut de altcineva fara sa stii modul de abordare. Link spre comentariu
dorelb Postat Ianuarie 14, 2011 Autor Partajează Postat Ianuarie 14, 2011 Ce zici de o demonstratie? Pana una alta am facut asm-ul de pe (Universal termometru digital). Trebuie modificate caracterele chirilice. Nu ete greu, dar nu ma apuc pana nu vine LCD-ul. Ceea ce face un lucru valoros, este nu ceea ce ai tu de castigat facandu-l, ci ceea ce pierzi daca nu-l faci. Link spre comentariu
fratello Postat Ianuarie 14, 2011 Partajează Postat Ianuarie 14, 2011 Schema si soft pentru ceas (cu data) si termometru, cu 2 senzori de temperatura, cu 16F628A !!! Testat doar in ISIS... Link spre comentariu
fratello Postat Ianuarie 14, 2011 Partajează Postat Ianuarie 14, 2011 ...se pare ca programul are un bug : ceasul ramane mult in urma ! Intre afisarea si non-afisarea ":" am la dispozitie 65 ms pentru a face "altceva". Citirea si "interpretarea" temperaturii de la 2 senzori se pare ca depaseste acest interval...Mai sap. Pun aici sursa, sa va faceti o idee si, eventual, sa o imbunatatiti ! '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *'* Ceas cu data si termometru cu 2 zone , cu PIC 16F628A *'* by Niculescu Dan, ianuarie 2011 * '* Oscillator XP (4 MHz.) * '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *@ DEVICE pic16F628A, XT_osc, WDT_OFF, PWRT_OFF, BOD_OFF, MCLR_ON, LVP_OFF, CPD_OFF, PROTECT_OFF ' for PBP 2.4INCLUDE "AllDigital.pbp"TRISA= %11111000 ' RA0..3=Outputs RA4=InputTRISB= %00001111 ' RB0..RB2=Inputs, RB3..RB7=OutputsCMCON=7 ' Disable comparatorsOPTION_REG=%00000111INTCON=0DEFINE LCD_DREG PORTB ' LCD on port BDEFINE LCD_DBIT 4 ' Data bits B4..B7DEFINE LCD_RSREG PORTA ' RS on PORTADEFINE LCD_RSBIT 1 ' RS on A1 DEFINE LCD_EREG PORTA ' E on PORTADEFINE LCD_EBIT 0 ' E on A0DEFINE LCD_BITS 4 ' LCD 4 bit modeDEFINE LCD_LINES 2 ' 2 line LCD displayHzTimer Var WordHH Var Byte MM Var Byte SS Var ByteZIUA VAR BYTELUNA VAR BYTE X Var Byte col Var BitTempC Var WordFloat Var WordSign Var BIT ' +/- signDQ Var PORTA.4 ' One-wire data pinTempC2 Var WordFloat2 Var WordSign2 Var BIT ' +/- signDQ2 Var PORTA.3 ' One-wire data pinDelay var byteMode VAR BYTEsemn var wordsemn2 var wordDS18B20_1_12bit CON %01111111 ; 750ms, 0.0625°C (default)DS18B20_2_12bit CON %01111111 ; 750ms, 0.0625°C (default)HzTimer = $7A12HH=00 : MM=00 : SS=00 : ZIUA=01 : LUNA=01 : col=0 : Mode=0Pause 500LCDOUT $FE, 1, $FE, $0C ' Clear display, cursor offPause 100' Init Sensor 1 OWOUT DQ, 1, [$CC, $4E, 0, 0, DS18B20_1_12bit] OWOut DQ, 1, [$CC, $48] ' Start temperature conversion OWOut DQ, 1, [$CC, $B8] OWOut DQ, 1, [$CC, $BE] Pause 50 OWIn DQ, 2, [TempC.byte0, TempC.byte1] Pause 50 ' Init Sensor 2 OWOUT DQ2, 1, [$CC, $4E, 0, 0, DS18B20_2_12bit] OWOut DQ2, 1, [$CC, $48] ' Start temperature conversion OWOut DQ2, 1, [$CC, $B8] OWOut DQ2, 1, [$CC, $BE] Pause 50 OWIn DQ2, 2, [TempC2.byte0, TempC2.byte1] Pause 50 OPTION_REG.7=1TMR0=0INTCON.2=0Pause 500LCDOUT $FE, 1, $FE, $0C ' Clear display, cursor offPause 250LCDOUT $FE, $80, " TERMO-CLOCK "LcdOut $FE, $C0, "By NICULESCU DAN" PAUSE 3000LCDOUT $FE, 1, $FE, $0C MainLoop: If PORTB.0=0 then ' Mode switch pressed Pause 50 ' Debounce LcdOut $FE, 1 LcdOut $FE, $C0, " SETTING" ' Show that command is accepted PAUSE 500 LcdOut $FE, 1If PORTB.0=0 then MainLoop ' Wait until button is released Mode=Mode+1 ' Increment modeENDIFIf Mode=1 then ' SET HOURLcdOut $FE, $80, dec2 HHLcdOut $FE, $C0, "HOUR SETTING" if portb.1=0 then HH=HH+1 IF HH=24 then HH=0 ENDIF Gosub Debounce endif if portb.2=0 then IF HH = 0 then HH=24 ENDIF HH=HH-1 Gosub Debounce endifEndIfIf Mode=2 then ' SET MINUTESLcdOut $FE, $80, dec2 HH,":",dec2 MMLcdOut $FE, $C0, "MINUTES SETTING" if portb.1=0 then SS=0 MM=MM+1 IF MM=60 THEN MM=0 ENDIF Gosub Debounce endif if portb.2=0 then SS=0 IF MM =<0 THEN MM=60 ENDIF MM=MM-1 Gosub Debounce endifEndIfIf Mode=3 then ' SET DAYLcdOut $FE, $80, dec2 HH,":",dec2 MM,":",dec2 ss," ",DEC2 ZIUA,"/"LcdOut $FE, $C0, "DAY SETTING" if portb.1=0 then ziua=ziua+1 IF LUNA=2 THEN IF ZIUA > 28 THEN ZIUA=1 ENDIF ENDIF IF LUNA=4 OR LUNA=6 OR LUNA=9 OR LUNA=11 THEN IF ZIUA > 30 THEN ZIUA=1 ELSE IF ZIUA > 31 THEN ZIUA=1 ENDIF Gosub Debounce endif if portb.2=0 then ZIUA=ZIUA-1 IF ZIUA = 0 THEN ZIUA=31 Gosub Debounce endifEndIfIf Mode=4 then ' SET MONTH LcdOut $FE, $80, dec2 HH,":",dec2 MM,":",dec2 ss," ",DEC2 ZIUA,"/",DEC2 LUNALcdOut $FE, $C0, "MONTH SETTING" if portb.1=0 then luna=luna+1 if luna>12 then luna=1 endif Gosub Debounce endif if portb.2=0 then luna=luna-1 if luna<1 then luna=12 endif Gosub Debounce endifEndIfIf Mode > 4 then LCDOUT $FE, $C0, "END SETTING" PAUSE 1000 LCDOUT $FE, 1, $FE, $0C mode=0EndIfIf Mode > 0 then Mainloop Main :ClockLoop : IF INTCON.2=0 THEN ClockLoopINTCON.2=0Gosub ReadTempif portb.0=0 then Gosub MainLoop HzTimer = HzTimer - $1000 'decrement timerIF HzTimer<$1000 THEN IF Col=1 THEN 'update time' SS=SS+1 IF SS=60 THEN SS=0 MM=MM+1 IF MM=60 THEN MM=0 HH=HH+1 IF HH=24 THEN HH=0 ZIUA=ZIUA+1 IF LUNA=2 THEN IF ZIUA > 28 THEN ZIUA=1 LUNA=3 ENDIF ENDIF IF LUNA=4 OR LUNA=6 OR LUNA=9 OR LUNA=11 THEN IF ZIUA > 30 THEN ZIUA=1 LUNA=LUNA+1 ENDIF ENDIF IF LUNA=1 OR LUNA=3 OR LUNA=5 OR LUNA=7 OR LUNA=8 OR LUNA=10 THEN IF ZIUA > 31 THEN ZIUA=1 LUNA=LUNA+1 ENDIF ENDIF IF LUNA=12 THEN IF ZIUA > 31 THEN ZIUA=1 LUNA=1 ENDIF ENDIF ENDIF else LcdOut $FE, $80, dec2 HH,":",dec2 MM,":",dec2 ss," ",DEC2 ZIUA,"/",DEC2 LUNA ENDIF else LcdOut $FE, $80, dec2 HH,":",dec2 MM," ",dec2 ss," ",DEC2 ZIUA,"/",DEC2 LUNA ENDIF ENDIF Col=Col+1 HzTimer=HzTimer+$7A12elseLCDOUT $FE, $C0, semn,DEC ABS TempC/100,".", DEC1 ABS TempC/10, 223,"C", " " ,semn2,DEC ABS TempC2/100,".", DEC1 ABS TempC2/10, 223,"C" ,13,10ENDIF Goto Main' SUBROUTINES:'----------------------------------------ReadTemp: OWOut DQ, 1, [$CC, $44] OWOut DQ, 1, [$CC, $BE] OWIn DQ, 2, [TempC.byte0, TempC.byte1] Sign = TempC.15 TempC = ABS(TempC) TempC = ((TempC >> 4)*100) + ((TempC & $F)*100 >> 4) IF Sign THEN TempC = -TempCIF TempC.15 THEN Semn="-" elseSemn="+"endif OWOut DQ2, 1, [$CC, $44] OWOut DQ2, 1, [$CC, $BE] OWIn DQ2, 2, [TempC2.byte0, TempC2.byte1] Sign2 = TempC2.15 TempC2 = ABS(TempC2) TempC2 = ((TempC2 >> 4)*100) + ((TempC2 & $F)*100 >> 4) IF Sign2 THEN TempC2 = -TempC2IF TempC2.15 THEN Semn2="-"elseSemn2="+"endifReturn'----------------------------------------Debounce :For Delay= 1 to 200Pause 1next DelayReturn END ' Of program Link spre comentariu
marik2500 Postat Ianuarie 14, 2011 Partajează Postat Ianuarie 14, 2011 Eu nu ma pricep la programare, insa urmaresc cu mult interes acest subiect si tin sa aduc multa admiratie celor ce se muncesc sa dea viata acestui proiect foarte practic, el putand fi folosit cu succes atat in casa cat si in autoturism(de exemplu). Multe felicitari si succes baieti!!! Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum