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

Jak przetłumaczyć kod asemblera '51 na Atmega8 dla TID Opla?

hiros123 29 Sty 2008 13:42 933 0
  • #1 4748175
    hiros123
    Poziom 1  
    Posty: 1
    Witam,
    mam zamiar zrobic sobie mini kompa na procesorze atmega8 do do samochodu z mozlwoscia wykorzystania zainstalowanego w samochodzie TID 10-cio znakowego, na forum temat bylo pare watkow ale akurat pod takiego TIDa i atmege nie bylo jakis rozwiazan, na forum udalo mi sie znalezdz bibliteke ice.lib do zastosowan na '51, probuje ja przetlumaczyc na atmege
    ale moja znajomosc asemblera jest w staduim poczatkowym i mam problem z przelumaczenie fragmentu kodu:
    ;R2 JEST PARAMETREM PROCEDURY
    ;I ZAWIERA ZNAK DO WYSLANIA
    I2c_send:
    ;mov r2,{znak}'wywolanie
    clr c ;zeruj carry flag
    mov acc,r2 ;{znak}
    ;zapisz liczbe do obrubki
    rlc acc ;przesun w lewo o jeden bit
    MOV C,{psw.0} ;ustaw carry flag tak jak bit parzystosci
    jc dalej1 ;jesli carry jest = 1 znaczy że liczba jest nieparzysta wiec nic nie rob z ta liczba Wyswietlacz opla ma kontrole parzystosci nieparzystą
    setb acc.0 ;ustawia bit aby byla nieparzysta liczba jedynek
    Dalej1:
    ;acc zawiera daną do wyslania
    ;mov {znak},acc ;przepisz z acc do znak

    mov b,#8 ;powtóż 8 razy wysylanie bitu

    Petla:
    push acc ;zapisz acc
    push b ;zapisz b

    ;przesuwanie bitow w celu wyodrebnienia jednego do wyslania
    djnz b,shifting
    sjmp noshifting
    Shifting:
    rrc a
    djnz b,shifting
    Noshifting:
    anl a,#00000001b

    ;wysylanie bitu
    jnz setsda
    clr P1.1 ;Sda=0
    sjmp opusc_ustawianie
    Setsda:
    setb P1.1 ;Sda=1
    Opusc_ustawianie:

    pop b
    pop acc

    push b
    lcall takt
    pop b
    djnz b,petla
    clr P1.1 ;SDA=0 ack po wyslanym bajcie Sda i Mrq muszą byc na 0 inaczej nie bedzie dzialac
    lcall takt

    ;opuznij o 42us AMENDE
    mov r0,#15 ;42us
    mov r1,#1
    lcall czekaj
    ret

    jezeli ktos moze mi w tym temacie jakos pomoc to z gory dziekuje
REKLAMA