5.
AVR МИКРОБАҚЫЛАУШЫЛАРЫН ТҮРЛЕНДІРГІШ
АНАЛОГТЫ-САНДЫ ҮЙРЕНУ
Жұмыстың мақсаты
ATmega
8535 микробақылаушыларын (АСТ) түрлендіргіш аналогты-санды тік
міндетті үйреніп, практикалық дағдысын аналогты сигналды айналдыру арқылы
микробақылаушының бағдарламалауын алу.
Жұмысты айқындау
ATmega8535
микробақылаушысы АСТ-ны келесі түрде сипаттайды:
-
10 разрядқа рұқсат алу;
-
±2 LSB
нақтылық;
-
0.5 LSB
интегралды сызықтық емес;
-
70...280 мкс уақыт өзгерісі;
-
8
мультиплексисті арнаның кіруі;
-
циклді тәртіп және біркелкі өзгеріс;
-
ADC
өзгерісінің үзу тоқтатылуы;
-
Sleep-
тәртібінің қондырғысының басу шуы.
АСТ 8-арналы аналогты мильтиплексорға қосылып, А портын аналогты кіру
сапасына кез келген қорытындыға қолдануға болады. АСТ таңдаушы/сақтаушы
күшеейтілуін ұстап, АСТ кіру кернеуін ұстап өзгеріс кезінде айнымас деңгейге
келеді (1 сурет).
Сурет 1. Блок-схема аналогты-санды өзгеріс
АСТ қорек үшін екі бөлек қорытындыға қолданылады: AV
CC
жәнеAGND.
AGND қорытындысы GND-ға қосылуы тиіс, ал AVcc кернеуі V
C
c кернеуінен
ажыратылуы тиіс ±0,3 В-ға қарағанда көбірек.
Сыртқы кернеу AREF қорытындысына салыстыру беріледі және AGND-
дан AV
CC
-
ға дейінгі диапазонда болуы тиіс.
Аналогты-цифрлы өзгергіш екі тәртіпте жұмыс істеуі мүмкін: тәртіпте бір
реткі өзгеріс және тәртіпте циклді өзгергіш. Бір реткі тәртіп өзгергіші әр бір
қолданушыға өзгергіш иницирленеді. АСТ өзгергіш циклінің тәртібінде
77
таңдауды жүзеге асырады және АСТ регистрінің мазмұн мәліметі тоқтаусыз
жаңартылады. Тәртіпті таңдау ADFR битінADCSRA регистрына шығарылады.
АСТ жұмысы ADEN 1 бит жағдайына ADCSRA регистрына рұқсат етілу
орнатылады. Аналогты-цифрлы өзгергіш екі тәртіпте жұмыс істеуі мүмкін:
тәртіпте бір реткі өзгеріс және тәртіпте циклді өзгергіш. Бір реткі тәртіп
өзгергіші әр бір қолданушыға өзгергіш иницирленеді. АСТ өзгергіш циклінің
тәртібінде таңдауды жүзеге асырады және АСТ регистрінің мазмұн мәліметі
тоқтаусыз жаңартылады. Тәртіпті таңдау ADFR битінADCSRA регистрына
шығарылады.
10-
разрядты АСТ қалыптастыру ADCH және ADCL екі регистрін
нәтижелейді. Оқылым үшін дұрыс нәтижеге мына регистрлар ішінде келесі
механизм бар. Оқылым кезінде ADCL регистрі нәтижесінде бірінші оқылу
керек. Осыдан соң АСТ мүмкіндігі мәлімет регистрына жабылады. Бұл, егер
келесі өзгергіш ADCL және ADCH оқылым ортасында аяқталуын білдіреді,
оның нәтижесі жоқ болып кетеді. ADCH регистрін оқыған соң АСТ мүмкіндігі
регистр мәліметінен жаңартылады.
АСТ өзінің жалауы болады және вектор үзілуі. Жалау ADIF мұқтаждығын
үзілуін аяқталу кезінде орнатады.
АСТ жиілік ұзақтығын ұстайды, тактілік жиілік процессорынан оған
тактілік сигналды қалыптастырады.
ADPSO-
ADPS2 биттері ADCSRA регистрінің басқарылуын АСТ тактілік
жиілігін XTAL сигналынан калыптастыру үшін қолданады.
Кесте 1
ADC-
ADMUX арнасының регистрін таңдау (мультиплексор)
Бит
7
6
5
4
3
2
1
0
$07 ($27)
REFS1 REFS0 ADLAR MUX4
михз MUX2 MUX1 михо
Оқылым/Жазу
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Бастапқымәні
0
0
0
0
0
0
0
0
Биттер 7, 6 - REFS1, REFS2: Кернеудің тіреу битін таңдау (см. кесте 4.6.2).
Кесте 2
REFS1, REFS2
кернеудің тіреу битін таңдау
REFS1 REFS0
Ескерту
0
0
AREF
қорытынды – демеу кернеуі
0
1
AVCC
қорытынды – демеу кернеуі(кернеу қорегі)
1
0
Резервтелуде
1
1
2,56В ішкі кернеу демеуі
Биттер 5 - ADLAR: сол жақ мағынаға теңестіру, жағымсыз жағдайда оң
жақ аймақ нәтижесін теңестіру.
Биттер 4...О - MUX4...MUX0: аналогтық каналды номерді таңдау биты
мен күшейткіш коэффициенті. Қарапайым жағдайда 00000...00111 мәні кезінде
0 ден 7 (альтернативті кіру порты А: РА0...РА7).
78
Кесте 3
ADC-
ADCSRA регистрін басқару және жағдайы
Бит
7
6
5
4
3
2
1
0
$06 ($26)
ADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS0
Оқылым/Жазу R/W R/W R/W
R/W R/W R/W
R/W
R/W
Бастапқымәні
0
0
0
0
0
0
0
0
Бит 7 - ADEN: АСТ жұмысында битті рұқсат ету
Бит мәліметін орнату үшін 1 жағдайында АСТ жұмысын рұқсат етеді. АСТ
жұмысын бит тазалауы тоқтатады. АСТ жұмысын тоқтату процесс өзгергішінде
өзгергіш тоқтатылады.
Бит 6 - ADSC: АСТ өзгерісінің жіберілуі
1 жағдайына байланысты ADSC битіне өзгеріс циклін әр жіберілуі үшін
өзгеріс тәтібіне бір рет орнату керек. Циклді тәртіпке ADSC биті 1 жағдайына
тек қана жіберілу кезінде бірінші цикл өзгерісі орнатылу керек. ADSC битін
бірінші орнатудан соң әр бір рет, ADC рұқсатымен біртекті немесе ADC рұқсат
етуінен соң орнатып, бос өзгеріс орындалу керек, алдыңғы активті өзгеріс. Бұл
бос өзгеріс АЙП-ны активтейді.
ADSC 1 жағдайында сақталып ағыспен барлық циклға өзгеріс және өзгеріс
бітіруге түсіріледі. Бос өзгерістің орындалуы, активтелген алдыңғы, өзгеріс
активінің ADSCбиті бітуге дейін қалуы орнатылады. 0 жазуы бұл эффект
битінде болмауы керек.
Бит 5 - ADATE: АСТ жұмыс тәртібіндегі циклді орнату
Орнатылған 1 жағдайына байланысты ADATE АСТ енди цикл тәртібіне
байланысты жұмыс істеітін болады. Бұл тәртіпте АСТ өндіру таңдауы және
тоқтаусыз регистрге бару (біріншісінен келесісіне).
Бит 4-ADIF: АСТ жалауын үзу
Дерек бит 1 жағдайға байланысты орнатылып дерек регистрге
жаңартылады және өзгерістің біту маңында болады.АСТ өзгерісі бітуге үзілуі
орындалады, егер 1 жағдайында SREGI-бит регистрі және ADIE биті
орнатылады. ADIF биті үзілу векторына сәйкес қайталау программа маңында
орындалуаппараты лақтырылады. Бұдан өзге, ADIF биті 1 логикалық жалаумен
жазудың өшірілуі мүмкін. Бұларды қажетті абайлау ADCSR оқылу-
модинфикациялы-жазуы, қаншалықты үзілу шөгінділігін рұқсат етпеуі мүмкін.
Бұл іске асатын SBI және CBI командасын кез келген жағдайда қолданылған.
Бит 3 - ADIE: АСТ блогынан үзілуге рұқсат алу
Орнатылған 1 жағдайына байланыстыADIE және SREGI-бит регистрі АСТ
өзгерісі бітуіне байланысты үзілуге активтеледі.
Биты 2...О - ADPS2...ADPS0: АСТ жиілік тактісі қажетті алуы үшін жиілік
тактісінкоэффициент бөлуін АСТ алдын-ала бөлушіге коэффициентке таңдау
шешім қабылданады.
79
Кесте 4
Жобамен бөлу коэффициентін таңдау
ADPS2
ADPS1
ADPS0
Коэффициентті бөлу
0
0
0
2
0
0
1
2
0
1
0
4
0
1
1
8
1
0
0
16
1
0
1
32
1
1
0
64
1
1
1
128
Кесте 5
Дерекрегистрі АСТ - ADCLи ADCH
Бит
15
14
13
12
11
10
9
8
$05 ($25)
—
—
—
—
—
—
ADC9 ADC8 ADCH
$04 ($24)
ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0 ADCL
7
6
5
4
3
2
1
0
Оқылым/жазу R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
Бастапқы мәні 0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Регистрдің бұл екі орналасуын түрлендіре нәтижесін циклдық нәтижесін
бітіру. ADCH санаудың алдында ADCL регистрі саналып және екі регистр саналып
тәртіпке циклді бағынуы тиіс.
АСТ микробақылаушысы сигналдың енгізуі үшін А портын қолданып РАО
арна стендін зертханалық блоктан басқарады. RP3 потенциометрі шешіліп
кернеу беріледі.
Төменде көрсетілгендей, АСТ кіруінде кернеуге тәуелді 0 ден 5В-ға
дейінгі цифрдан РАО кіруіне HG4 индикаторының жетісегментті қорытындыға
қамтамасыз етіледі. Егер кернеу АСТ кірісінде 0.....0,5В, ал қалған цифрлар
төменде көрсетілген диапазондарда шығарылатын болса 0 цифрі шығады
1 -
0,5... 1,5В шектерінде,
2 -
1,5...2,5В шектерінде,
3 -
2,5...3,5В шектерінде,
4 -
3,5...4,5В шектерінде,
5 -
4,5...5,0В шектерінде.
// ------------------------------------------------------------------
.include<<8535def.inc» / AT90S8535 •defcode= r20
үшін сипатталған файлды
қосу
/
түрлендірілген сандардың регистрге ауытқуы
.ORG$0
/
Ақуалдарды өңдеу
80
rjmpReset
.ORG$Oe
;
АСТ векторы
rjmpinADC
.ORG$100
/ Негізгі бағдарламаның бастапқы адресі
Reset:
ldirl6,$02
/Анықталған – адрестің төбесі
outSPH, rl6 ;$ 025F
ldirl6,$5foutSPL, rl6
cbiDDRA, 0 /
РА0
sbiPORTA, 0 /
РА0 қорытындыны қосу
ldirl6, $0ff
/
В және С порттарының барлық қорытындысын анықтау
outDDRB, r16
/ шығысына
outDDRC, r16
sbiPORTB,0 /
HG4 индикаторының жетісегментін қосу
/ (VT2
транзисторын ашу) ldirl6, $00 / АСТ арна
нөлдігін таңдау (РА0)
outADMUX, г16
ldirl6, $0е8 / инициализация АСТ: іске қосылу мен рұқсат беру
outADCSR,rl6 /
тактілік жиілікті бөлмей түрлендіру
sei
/
жалпы үзу жалауын орнату
ml:
rjmpml
/
ештеңе істемейміз, жұмыс бағдарламасының циклі
inADC:
/
Қызметті тоқтату бағдарламашықтары
/
АСТ inг16, ADCL сұрауымен / АСТ ақпаратының кіші
байт регистрлерін оқу
incode,
ADCH/
АСТ ақпаратының аға байт регистрлерін оқу
lsrг16
/Екі кіші разрядты жою
lsrг16
/
түрлендірілген сигнал
swapcode
/
3...0 с биттерінің орын ауысуы
lslcode
/
7...4 битерімен солға қарай жылжыту
lslcode
/
екі разряд
andicode, $0с0 /
7
және 6 code биттерін ерекшелеу
orcode, г16 /code сегізразрядты ұйымдастыру
/rcallkod санының түрленуі/ Санның жану бағдарламашығын шақыру
reti/ Санның жану бағдарламашығы
kod:
ldiг22, 53 /ldiг21, 38 индикаторының жетісегментті саны үшін РА0 кернеу
дискреті г22
brlokO
addr21, г22 / Бірліктің кірісін орнату
срcode, г21 / Егер АСТ кодынан бірлік кірісі аспаса,
/ онда 1жанады
brlokl
addr21, r22;
Екілік кірісті орнату
срcode, г21; Егер АСТ қодынан екілік кіріс аспаса,
81
brlok2
add
r21, г22 ; Үштік кірісті орнату
срcode, г21; Егер АСТ қодынан үштік кіріс аспаса,
;
онда 3 жанады
brlok3
addr21, г22 ;Төрттік кірісті орнату
cpcode, г21; Егер АСТ қодынан төрттік кіріс аспаса,
;
онда 4 жанады
brlok4
ldir23, $6d ;
Егер АСТ қодынан бестік кіріс аспаса,
;
онда 5 жанады
Ret ;
Бағдарламадан шығу
кО:
ldi r23,$3f ;
Жану О
out PORTC, r23 ret ;
Қайтару
kl:
ldi r23,$06 ;
Жану 1
out PORTC, r23 ret ;
Қайтару
к2 :
ldi r23,$5b ;
Жану2
out PORTC, r23 ret ;
Қайтару
кЗ:
ldi r23,$4f ;
Жану 3
out PORTC, r23 ret ;
Қайтару
к 4 :
ldi r23,$66 ;
Жану4
out PORTC, r23 ret ;
Қайтару
Достарыңызбен бөлісу: |