XAN77 Postat August 16, 2014 Partajează Postat August 16, 2014 (editat) Vă prezint un ceas banal cu bătrînul 89C2051. Nu contează motivele pentru care am făcut un ceas cu acest mcu, să zicem pentru completarea colecției de ceasuri de pe forum Personal vreau să înlocuiesc cu acest ceas telefonul mobil de la capul patului. În arhivă se află proiectul Proteus și MikroC PRO for 8051, pentru ultima versiune free/demo de la mikroe. Folosesc 6 digiți, anod comun, 4+2. un modul super bright red model CA56-21SRWA și un digit dublu albastru model LD-D036UB-C. Pe digitul dublu albastru afișez ora alarmei dacă e activă sau un ”--” dacă e inactivă. Există 3 taste: minute, ore, alarmă. La apăsare scurtă pe tastele minute/ore, se incrementează, la apăsare peste 1/2 secundă se decrementează. La apăsare scurtă pe alarmă se activează/dezactivează alarma iar la apăsare lungă se intră/iese din mod setare alarmă. În mod setare alarmă cei 2 digiți pîlpîie. Ora și minutul alarmei se setează din cele 2 taste ore și minute. Pentru a se face diferența între afișarea minute sau ore pe cei 2 digiți, ora este afișată ” x x .” iar minutul ” x x ”, adică fără punct. Se poate incrementa/decrementa minutul sau ora alarmei indiferent de ordine, după fiecare apăsare de tastă afisajul indică ultima variabilă modificată fie ea minute sau ore cu diferența punctului susmenționat. La ieșirea din mod setare alarmă (apăsare lungă tastă alarmă) pe digiții alarmei este afișată întotdeauna ora alarmei. Pe segmente am rezistori serie de 470 pentru lumină puternică, dar pe montajul final voi pune de 2k, am probat, e ok pentru noapte adică pentru ce vreau eu. Anozii sunt comandați de tranzistori PNP de 100mA (Emitor la +Vcc, Baza la mcu printr-un rezistor serie de 1-2k iar Colectorul vine la anodul comun al digitului). Pinul ce comandă buzerul necesită un pull_up extern de 1k nefigurat în proteus. Am folosit un buzer de pe o placă ups, care nu cîntă singur (ca cel din proteus). Nu sunt foarte încîntat de sunet dar e ok, deci e loc și de mai bine. Quarțul este de 12MHz. A nu se uita de resetul la aceste MCU, necesită rezistor la masă și C electrolitic la plus. Programarea am făcut-o cu Blowit programmer pe LPT, din windows7 și nu am folosit bascom, că e mai prost decît utilitarul din arhiva blowit. Am folosit acel utilitar din comand prompt cu comanda: py2051 ceas.hex În caz de lipsă programator sau alte probleme acel utilitar dă o eroare, bascom însă îmi programează fără să zică nimic chiar și fără programator conectat. LPT e setat în bios ca ECP+EPP. http://i58.tinypic.com/b4xquc.jpg Editat August 16, 2014 de XAN77 1 Link spre comentariu
XAN77 Postat August 16, 2014 Autor Partajează Postat August 16, 2014 (editat) în urma editării s-a dus naiba arhiva, scuze 89C2051 ceas alarma cu T la anozi.rar Editat August 16, 2014 de XAN77 Link spre comentariu
XAN77 Postat August 17, 2014 Autor Partajează Postat August 17, 2014 Azi am construit un astfel de ceas, mîine sper să mă trezească... Alimentarea de backup este cu un acumulator de telefon mobil. Consumul ceasului la 5V este de <15mA iar la 3,6V este de <8mA. O baterie bună de 800mA ar duce teoretic cam 4 zile. În foto 2 se vede în fundal sursa de alimentare reglată la 5,00 iar jos consumul în mA. http://i60.tinypic.com/25rkmz6.jpg http://i60.tinypic.com/mh3x2u.jpg Ulterior acestor poze am mai montat buzerul cu tranzistorul. Link spre comentariu
XAN77 Postat August 18, 2014 Autor Partajează Postat August 18, 2014 (editat) actualizare De aseară e în funcțiune. Cu tot cu consumu ăla mic de 15mA m-a spart aznoapte, prea puternic displayul. Eu folosesc pentru afișarea multiplexată Timer0, format din TH și TL căruia îi preîncarc TH cu valoarea 252, astfel am întreupere la (256-252TH) x 256TL=1024. Un anod stă activ de la ultima întrerupere pînă la următoarea, fiind stins la începutul funcției de afișare cînd se trece la digitul următor. M-am gîndit să scurtez timpul cît este activ un anod ca să pot diminua luminozitatea afișajelor. Am introdus niște linii noi în program de la linia 105 la 109 unde, pe timpul nopții, am ales eu niște ore cum mă interesa pe mine, funcție de valoarea lui TH, sting anozii. Eu îi sitng cînd ajunge TH la 253 adică scurtez la 1/4 timpul activ al unui anod, față de cum era înainte și e foarte mulțumitor. pentru alte nivele se poate umbla la valoarea TH de la linia 106. Nu am zis nimic de precizie. Am folosit metoda zero cumulative errors. La linia 8 este o definire: unsigned long osecunda = 1000000 ; Acea valoare de 1.000.000 trebuie ajustată funcție de cum se mișcă ceasul. Se poate calcula matematic funcție de abaterea ceasului. 89C2051 ceas alarma cu T la anozi.rar Editat August 18, 2014 de XAN77 Link spre comentariu
unuldinei Postat August 18, 2014 Partajează Postat August 18, 2014 (editat) Deci... foarte bine ca nu folosesti bascom ... felicitari pentru partea de programare in care ceasul tau consuma doar 15mA , la cati MHz ...12 ? e cam mult si pune-i DS1307 cu baterie si cuart ai sa vezi ca e foarte precis . Editat August 18, 2014 de unuldinei Link spre comentariu
UDAR Postat August 18, 2014 Partajează Postat August 18, 2014 Cred că consumul ăla era cu display cu tot .... Link spre comentariu
XAN77 Postat August 18, 2014 Autor Partajează Postat August 18, 2014 (editat) Da consumul este cu display cu tot, ambele. Cel de 4 digiți e super bright, celălalt albastru e strident prin definiție. 12 MHz nu e mult, înseamnă 1 MIPS la procesoarele 8051. Cît despre precizie, no comment, eu sunt pretențios. Editat August 18, 2014 de XAN77 Link spre comentariu
unuldinei Postat August 18, 2014 Partajează Postat August 18, 2014 La mine merge de 8 zile fara abatere inca ... sunt curios MIPShi astia ... care-i calculeaza si cum ? cred ca e prea mult marketing acolo ... In fine , pentru calcularea secundei perfecte stim bine ca oscilatorul ala variaza cu temperatura si tensiunea de alimentare si nu prea ai cum sa compensezi asa usor . Ceea ce am observat eu cand am facut ceasuri cu cuarturi e faptul ca in jurul valorii de 8 MHz aveam cea mai buna stabilitate si ca modelele cuarturilor mari formatul mare, nu cel mic , e cel mai precis in functionare ( sub 2 secunde abatere / 24 ore). Nu iau pe nimeni de sus , doar am impartasit din experienta mea , sper sa nu va suparati ca m-am adaugat acestui topic. Link spre comentariu
XAN77 Postat August 19, 2014 Autor Partajează Postat August 19, 2014 (editat) Nu am de ce să mă supăr. Fiecare se bazează pe experiențele personale. Am făcut ceasuri cu DS la care am folosit diverse cuarțuri, recuperate sau cumpărate. Am studiat datașetul lui DS1307 și vedeam că dădea ceva indicații referitor la cuarțul potrivit. Poate nu nimeream ce cristal trebuie, dar eu nu am fost mulțumit de precizie. În plus de asta eu cred că la un ”aparat” ce este doar un ceas, dacă este posibil software, este de preferat un ceas software. Nu mi-ar fi adus nici un avantaj mie în acest montaj un integrat în plus. Din contră, ar fi fost risipă și de hard și de memorie. La o construcție mai complexă, unde mcu ar avea prea multe sarcini, sau unde este posibil ca mai multe dispozitive de pe magistrală să acceseze ceasul, da se justifică. Referitor la MIPS. La 8051, cum e cazul lui 89c2051, ciclul instrucțiune are 12 perioade de ceas, nu 1 ca la AVR, nu 4 ca la PIC. Multe instrucțiuni ale procesorului sunt executate în 1 ciclu instrucțiune, dar nu toate întradevăr. Așa spun producătorii, presupunînd execuția numai a instrucțiunilor de 1 ciclu, viteza de calcul este de pînă la 1 MIPS la 12MHz clock. Editat August 19, 2014 de XAN77 Link spre comentariu
XAN77 Postat August 23, 2014 Autor Partajează Postat August 23, 2014 Am progresat la carcasă. Nu am intenționat să iasă ca un TV da așa a ieșit Încă nu e chiar gata, mai rămîne de pus spatele și să văd cum pun butoanele externe, cele de reglaj minute/ore nu e musai dar cel de activare dezactivare alarmă aș vrea unu roșu sus pe mijloc ca la un ceas mecanic clasic Link spre comentariu
XAN77 Postat August 24, 2014 Autor Partajează Postat August 24, 2014 Descoperit un bug, la setare alarmă, cîteodată, o dată cu incrementarea orei/minutului se incrementa și ora/minutul ceasului. Soft corectat. P.S. în proteus afișarea pîlpîie datorită faptului că ora implicită e 00.00 la care e activ modul de noapte cu contrast redus. La ora 6.00 e mod normal. Ceas alarma - 89C2051.rar Link spre comentariu
unuldinei Postat August 24, 2014 Partajează Postat August 24, 2014 Arata foarte bine , folia aia transparent inchisa e de tipul auto ? Link spre comentariu
XAN77 Postat August 24, 2014 Autor Partajează Postat August 24, 2014 Da folia e de tip auto. Cum am primit ideea aici pe forum la topicul unui alt ceas, am căutat. 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