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

Jak napisać program .bas/.asm do timera 89c2051 z obsługą klawiatury i wyświetlacza?

qbu 26 Kwi 2004 15:17 2237 6
REKLAMA
  • #1 613512
    qbu
    Poziom 11  
    Posty: 5
    timer na 892051 4 wyswietlalcze led sterowane :włączanie wyłaczanie wyświetlaczy--poprzez tranzystory z portów P1.4-P1.7 sterowanie wyswietlaczami (cyfry) poprzez uklad dekodera bcd na kod 7-mio segmentowy z portów P1.0 P 1.2 P1.3 P3.7 klawiatura start ustaw przesun i stop(mozliwosc powrotu do ponownego liczenia) i reset -wszystko zrealizowane na 4 guzikach --P1.1 P3.2--P3.4 migajaca dioda(co sekunde) -port P 3.0 syrena P3.5 kwarc 11059 lub 12 mhz calosc na papierze dziala:)) nie potrafie poradzić sobie z napisaniem programu a właściwie poprawnej obługi klawiatury i wyświelacza na elektrodzie nie znalazłem nic odpowiedniego prosiłbym o jakies linki lub wskazówki do utworzenia procedur moge dolaczyc schemat
  • REKLAMA
  • #2 613710
    wisiena
    Poziom 18  
    Posty: 223
    Pomógł: 21
    Ocena: 5
    Witaj !!
    Napisz kolego w jakim jezyku chcesz to napisac i jakim dysponujesz kompilatorem. Programic z Bascoma jakiś mam ale z wykożystaniem zewnętrznego RTC DS1307.

    (M.)
  • REKLAMA
  • #3 614838
    qbu
    Poziom 11  
    Posty: 5
    asembler lub bascom(z tym ze bascom dla 8xxx51) ewentulanie c
  • REKLAMA
  • #4 614845
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 55
    Na mojej stronie znjadziesz tajmera na 89C51 - jest schemat i plik .hex do zassania, możesz go wrzucić do debugera albo disasemblera, powinno pomóc, w razie pytań pisz na maila.
  • #5 614956
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    Proponuję zacząć od obsługi wyświetlacza. Do tego celu chyba najlepszy będzie timer1. Trzeba tylko policzyć z jaką częstotliwością ma on działać. Masz 4 wyświetlacze to po 250Hz na każdy wystarczy.
    
    config timer1=timer,gate=internal,mode=1
    on timer1 tajmer1_przerwanie:enable timer1:enable interrupts
    
    dim przelacznik as byte
    
    do
    loop
    end
    
    tajmer1_przerwanie:
     tl1=&h17 : th1=&hFC'dla 12MHz przerwanie co 0,001sek(1KHz)
     select case przelacznik
      case 0:
       przelacznik=1
       p1.7=0:p1.6=1:p1.5=1:p1.4=1'sterowanie tranzystorami
       p1.0=0:p1.2=0:p1.3=0:p3.7=0'sterowanie dekoderem 7 segmentow
      case 1:
       przelacznik=2
       p1.7=1:p1.6=0:p1.5=1:p1.4=1
       p1.0=0:p1.2=0:p1.3=0:p3.7=0
      case 2:
       przelacznik=3
       p1.7=1:p1.6=1:p1.5=0:p1.4=1
       p1.0=0:p1.2=0:p1.3=0:p3.7=0
      case 3:
       przelacznik=0
       p1.7=1:p1.6=1:p1.5=1:p1.4=0
       p1.0=0:p1.2=0:p1.3=0:p3.7=0
     end select
    return
    

    i to ma zaświecić cztery "0" na wyświetlaczach. Jak dojdziesz do tego że zadziała to potem można wprowadzić dodatkową zmienną i sterować nią dekoderem.
  • #6 643334
    qbu
    Poziom 11  
    Posty: 5
    no i minal miesiac i nic ..mam kazdy kawalek posprawdzalem procedurami czy calosc ukladu jest ok i ...dalej nie umiem tego posklejac:(( juz nawet nie wiem co mam poprawiac..chcialem sam ale chyba sie poddam chyba ze jeszcze ktos cos podrzuci dzieks za pomoc
  • REKLAMA
  • #7 643384
    2P
    Poziom 20  
    Posty: 345
    Pomógł: 22
    Ocena: 205
    Z wypowiedzi i przedstawionego problemu wygląda mi na to, że kolega dopiero zaczyna przygodę z mikrokontrolerami. Dlatego proponuję BASCOM. C już wymaga sporej wiedzy o tym co dzieje się "w środku". Że nie wspomnę już o asemblerze.
    Nie będę tutaj przedstawiał wszystkich możliwości teoretycznych, ponieważ rozumiem, że przerobił Pan już to wszystko a problem jest tylko na poziomie implementacji w konkretnym urządzeniu. A trudno mówić o konkretnej implementacji nie znając schematu. Jeśli jest Pan gotów udostępnić schemat oraz procedury które zostały już napisane - znajdę chwile i pomogę to połączyć. Wszystko jedno czy to BASCOM, ASM czy C.

    Pozdrawiam

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy napisania programu w asemblerze lub Bascom dla mikrokontrolera 89C2051, realizującego timer z obsługą czterech wyświetlaczy LED sterowanych tranzystorami na portach P1.4-P1.7 oraz dekoderem BCD na kod 7-segmentowy z portów P1.0, P1.2, P1.3 i P3.7. Program ma również obsługiwać klawiaturę z czterema przyciskami (start, ustaw, przesun, stop/reset) podłączonymi do portów P1.1, P3.2 i P3.4, migającą diodę na porcie P3.0 oraz syrenę na P3.5. Użytkownik dysponuje kwarcem 11,059 lub 12 MHz. Wskazano, że najlepszym podejściem jest rozpoczęcie od obsługi wyświetlacza z wykorzystaniem timer1 do multiplexingu wyświetlaczy (ok. 250 Hz na każdy). Podano przykładowy fragment kodu Bascom konfigurujący timer1 i sterowanie portami do wyświetlaczy. Zwrócono uwagę, że Bascom jest polecany dla początkujących, natomiast C i asembler wymagają większej wiedzy. Zaproponowano pomoc w integracji kodu po udostępnieniu schematu i istniejących procedur. Wskazano również istnienie gotowego projektu timera na 89C51 z plikiem .hex do analizy, co może pomóc w nauce i implementacji.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA