Nyt sitten kokeilen miten tulostuu ASSEMBLY-koodi blogiin !
;A/D-TOIMINNAN TESTI
;Tällä ohjelmalla kokeillaan A/D-muuntimen toimintaa.
;5 kilo-ohmin monikierrospotentiometri ja 10 kilo-ohmin trimmeri ovat välillä +5V ja GND.
;Trimmerillä asetetaan potentiometrin säätöalueeksi 2,56 volttia.
;Säätö on AD7-kanavassa ja LED-näyttö B-portissa.
;Ohjelmakoodi
.include "m8def.inc" ;käytettävä mikro-ohjain ATmega8
.cseg ;ohjelma c-segmenttiin eli flash muistiin
.org ;koodi alkaa muistin nolla osoitteesta
aset: ldi r16, 0xFF ;B-portin suuntatieto r16-rekisteriin (0 = nolla aina tiedon edessä)
out DDRB, r16 ;tieto B-portin suuntarekisteriin
ldi r16, 0xC7 ;A/D-muuntimen asetustieto: sisäinen referenssi ja A/D-kanava 7
out ADMUX, r16 ;tieto ADMUX-rekisteriin
ldi r16, 0xE3 ;A/D-muuntimen asetustieto:muunnon sallinta, muunnon
;käynnistys ja jatkuva muunto
out ADCSRA, r16 ;tieto A/D-muuntimen valvontarekisteriin
ohjelma: nop ;ei tehdä mitään
muunnos: nop ;tahdistusviive
in r17, ADCL ;muunnostiedon D0....D7 bittien luku r17-rekisteriin
nop ;tahdistusviive
in r18, ADCH ;muunnostiedon D8 ja D9 bittien luku r18-
;rekisteriin
;Tiedosta otetaan käyttöön vain 8 eniten merkitsevää bittiä. Siksi bittejä
;bittejä siirrellään vaakasuunnassa ja sijoitetaan lopuksi samaan rekisteriin
lsr r17 ;tehdään tilaa D8 ja D9 biteille, siksi alempaa tavua
lsr r17 ;siirretään kaksi paikka oikealle
lsl r18 ;siirretään D8 ja D9 bitit rekisterin yläpäähän,
lsl r18 ;ensin kaksi paikka vasemmalle ja sitten puolitavujen
swap r18 ;vaihto
or r17, r18 ;yhdistetään rekisterit, tulos r17-rekisterissä
out PORTB, r17 ;tulostetaan saatu muunnos B-porttiin
rjmp muunnos ;palataan tekemään muunos uudestaan
Tuesday, March 04, 2008
Subscribe to:
Post Comments (Atom)
1 comment:
Onnistuisikohan xhtml:ssä paremmin pistämällä code -tagiä ympärille. pre ja tt on tietysti vanhempia vaihtoehtoja. Viimeistään stylesheetin kautta saanee oikean tasalevyisen fontin.
Post a Comment