logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ATMega8 - schemat i program zegara LED z ustawianiem czasu

heyka 04 Lis 2005 08:54 3947 16
REKLAMA
  • #1 1953800
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    Szanowni Państwo, mam gorąca prośbę, poszukuję schematu elektronicznego oraz programu do ATMega 8 realizującego zegar z możliwościa ustawiania godzin i minut, wyświetlającego czas na czterech wyświetlaczach LED, prosze o pomoc. Pozdrawiam
  • REKLAMA
  • #2 1954250
    korona20
    Poziom 11  
    Posty: 16
    W numerze 4(2004) w EdW byl opisany kombajn czasu (mikroprocesorowy zegar). Nie bylo to co prawda na ATmega8, ale mozna zerknac.
  • #3 1954292
    Jarema
    Użytkownik obserwowany
    Posty: 1179
    Pomógł: 86
    Ocena: 32
    Witam,
    Skoro jesteś początkujący (domyślam się po zadanym pytaniu) to dlaczego od razu chcesz się brać za atmegi ? Jeśli potrzebujesz tylko i wyłącznie zbudować zegarek to może lepiej zacząć od MC1206 ?
  • REKLAMA
  • #4 1954461
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    dlaczego za atemegi? poniewaz wpadla mi w rece książka programowanie avr w bascomie, cos juz napisalem pod atemegi, zrobilem plytke testwoa pod atemegi, a o inncyh procesorkach to nawet zielonego pojecia nie mam, pozdrawiam
  • REKLAMA
  • #5 1954852
    Jarema
    Użytkownik obserwowany
    Posty: 1179
    Pomógł: 86
    Ocena: 32
    Skoro już piszesz w bascomie więc w czym masz problem aby napisać zegarek ?
    aha,
    MC1206 to jest układ zegarowy a nie procek ;)

    Tutaj jest zegarek który kiedyś napisałem w asm dla PIC16F628 :D
    http://img18.imageshack.us/my.php?image=200510181717429804yx.jpg
    http://img18.imageshack.us/my.php?image=200509181710077606sc.jpg
    http://img221.imageshack.us/my.php?image=200509181705309908dn.jpg
    http://img221.imageshack.us/my.php?image=200509181701099304ns.jpg
  • #6 1955338
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    potrafie napisac programik, do momentu w którym trzeba wysłac dane do wyswietlaczy, chodzi mi o przesylanie multipleksowe
  • Pomocny post
    #7 1955803
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Multipleks na 4 wyświetlacza robisz tak:
    Na jednym porcie Atmegi wystawiasz dane segmentów z tej cyfry która wybierana jest jeden z czterech bitów następnego portu. Zmieniasz te dane na kolejne z czasem około 2,5 ms co gwarantuje Ci że nie będą migotać. Ja taki czas po prostu sobie wypraktykowałem.
  • #8 1956508
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    To tak prosto sie pisze w dwóch linijkch wyjasnień, tylko ja bym wolał kod w bascomie :cry:
  • #9 1956717
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Sory, ale zabawę BASIC-m skończyłem jak odstawiłem ATARI 800XL na strych. Potem był asembler, Pascal a teraz C
  • #10 1961917
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    tzn, ze nie warto zawracac sobie glowy bascomem, i lepiej jest sie nauczyc C?,
  • REKLAMA
  • #11 1961921
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Generalnie uważam że C jest bardziej uniwersalnym językiem programowania niż obecnie BASIC i dlatego warto się nim zająć. Jak go nie zastosujesz w jednoukładowcach to możesz go zastosować w PC-e.
  • #12 1963885
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Producent układów AVR najbardziej wspiera programowanie w asemblerze (AVRStudio), a więc coś w tym musi być ;)
  • #13 1964047
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    A jest to że asembler jest prościej zrobić niż porządny kompilator języka wysokiego poziomu. Świadczy o tym integracja nowej wersji AvrStudio z kompilatorem AVR GCC.
  • #14 1964476
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    :| No cóż Panowie, fajnie, programiki na PC robie w Delphi, nie znam c a ni asemblera, mam troche pjęcia o bascom, ale dalej nie moge sobie poradzic ze zrobieniem zegara z wyswieltaniem na wyswietlaczach led, co do jezykow napewno macie racje im jezyk nizszego poziomu tym wiecej mozna pokombinowac, ale do zastosowan hobbystycznych narazie poprzestane na bascomie, no i coz moze ktos sie kiedys zlituje i poda mi przykladowy kod programiku, chyba ze sam wczesniej do tego dojde, pozdrawim
  • #15 1969834
    Mad Bekon
    Poziom 23  
    Posty: 794
    Pomógł: 31
    Ocena: 36
    Ja też niezbyt się interesuje BASICiem i nie wiem jak się tam pisze, ale spróbuje Cię naprowadzić.

    Spróbuj sobie nogi wspólne wyswietlaczy led popodpinac do kolejnych wyprowadzen ktoregos portu.
    np portu B. czyli PB0-PB3 zajma ci wspolne, tych 4 wyswietlaczy. Do np portu C, podlacz sobie te 7 nozek od wyswietlaczy LED równolegle każda cyfra.
    Potem portowi B przypisujesz wartosc:
    -1 i na C zapalasz odpowiednie znaczki (cyfra 1)
    -2 i na C zapalasz odpowiednie znaczki (cyfra 2)
    -4 i na C zapalasz odpowiednie znaczki (cyfra 3)
    -8 i na C zapalasz odpowiednie znaczki (cyfra 4)

    PS. Ja gdzieś czytałem, że AVRy były projektowane z myślą o językach wyższego poziomu, a konkretnie C. Stąd np wynika duża ilość rejestrów...
  • #16 1972528
    marcinkwa
    Poziom 14  
    Posty: 164
    Pomógł: 5
    Masz gotowca.
    program w basconie - zegar steruje pąpą cyrkulacji w moim piecu CO - może troche zawiły ale działa. Ma regulacje jasności świecenia wyświetlaczy na PWM i cztery czasy załączenia i wyłączenia pąpki.
    Załączniki:
    • Pompa cyrkulacji m8 led v1.rar (1.98 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #17 1973493
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Mad Bekon napisał:
    PS. Ja gdzieś czytałem, że AVRy były projektowane z myślą o językach wyższego poziomu, a konkretnie C. Stąd np wynika duża ilość rejestrów...
    To jest obelga dla ASM ;) :PA tak poważnie, to duża ilość rejestrów jest typowa dla architektury RISC i jest to niezalezne od jakiegokolwiek języka programowania wyższego poziomu. Jakiego procesora nie wziąść do ręki/chwytaka :P, posiada własny kod maszynowy (najbardziej zbliżony skalą jest właśnie asembler - jeden kod rozkazowy <=> jeden mnemonik asemblera) i kompilatory języków wyższego poziomu są właśnie od tłumaczenia na ten kod.
    Pozdrawiam, Daniel

Podsumowanie tematu

✨ Dyskusja dotyczy realizacji zegara LED z mikrokontrolerem ATMega8, z możliwością ustawiania godzin i minut oraz wyświetlaniem czasu na czterech wyświetlaczach LED. Poruszono kwestie programowania w Bascomie oraz problem multipleksowania wyświetlaczy LED. Zaproponowano rozwiązanie multipleksacji polegające na sterowaniu segmentami cyfr na jednym porcie i wybieraniu aktywnego wyświetlacza za pomocą bitów innego portu, z czasem przełączania około 2,5 ms, co eliminuje migotanie. Wskazano, że programowanie w języku C jest bardziej uniwersalne niż Bascom, a asembler jest wspierany przez producenta AVR (AVRStudio). Podano przykład podłączenia wspólnych nóżek wyświetlaczy do portu B (PB0-PB3) i segmentów do portu C, z odpowiednim sterowaniem bitowym. Wspomniano również o dostępności schematów i programów w literaturze (np. EdW 4/2004) oraz o alternatywnych układach jak MC1206, choć jest to układ zegarowy, a nie mikrokontroler. Autor dyskusji preferuje Bascom ze względu na swoje doświadczenie, mimo sugestii nauki C lub asemblera.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA