Заманауи микроконтроллер


  AVR МИКРОБАҚЫЛАУШЫЛАРЫН ТҮРЛЕНДІРГІШ



Pdf көрінісі
бет35/64
Дата31.12.2021
өлшемі3,85 Mb.
#21593
1   ...   31   32   33   34   35   36   37   38   ...   64
5. 
AVR МИКРОБАҚЫЛАУШЫЛАРЫН ТҮРЛЕНДІРГІШ  
АНАЛОГТЫ-САНДЫ ҮЙРЕНУ 
 
Жұмыстың мақсаты 
 
ATmega 
8535 микробақылаушыларын (АСТ) түрлендіргіш аналогты-санды тік 
міндетті  үйреніп,  практикалық  дағдысын  аналогты  сигналды  айналдыру  арқылы 
микробақылаушының бағдарламалауын алу. 
 
Жұмысты айқындау 
 
ATmega8535 
микробақылаушысы АСТ-ны келесі түрде сипаттайды: 

10 разрядқа рұқсат алу; 

±2 LSB 
нақтылық; 

0.5 LSB 
интегралды сызықтық емес; 

70...280 мкс уақыт өзгерісі; 


мультиплексисті арнаның кіруі; 

циклді тәртіп және біркелкі өзгеріс; 

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 арнасының регистрін таңдау (мультиплексор) 
 
Бит 








$07 ($27) 
REFS1  REFS0  ADLAR MUX4 
михз  MUX2 MUX1 михо 
Оқылым/Жазу 
R/W 
R/W 
R/W 
R/W 
R/W 
R/W 
R/W 
R/W 
Бастапқымәні 








 
Биттер 7, 6 - REFS1, REFS2: Кернеудің тіреу битін таңдау (см. кесте 4.6.2). 
 
Кесте 2   
REFS1, REFS2 
кернеудің тіреу битін таңдау 
 
REFS1  REFS0 
Ескерту 


AREF 
қорытынды – демеу кернеуі 


AVCC 
қорытынды – демеу кернеуі(кернеу қорегі) 


Резервтелуде 


2,56В ішкі кернеу демеуі 
 
Биттер  5  -  ADLAR:  сол  жақ  мағынаға  теңестіру,  жағымсыз  жағдайда  оң 
жақ аймақ нәтижесін теңестіру. 
Биттер  4...О  -  MUX4...MUX0:  аналогтық  каналды  номерді  таңдау  биты 
мен күшейткіш коэффициенті. Қарапайым жағдайда 00000...00111 мәні кезінде 
0 ден 7 (альтернативті кіру порты А: РА0...РА7).  
 


78 
 
Кесте 3  
ADC- 
ADCSRA регистрін басқару және жағдайы 
 
Бит 








$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 
Бастапқымәні 








 
Бит 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 
Коэффициентті бөлу 



















16 



32 



64 



128 
 
Кесте 5  
Дерекрегистрі АСТ - ADCLи ADCH 
 
Бит 
15 
14 
13 
12 
11 
10 


 
$05 ($25) 
— 
— 
— 
— 
— 
— 
ADC9  ADC8  ADCH 
$04 ($24) 
ADC7  ADC6  ADC5  ADC4  ADC3  ADC2  ADC1  ADC0  ADCL 
 








 
Оқылым/жазу  R 







 
 








 
Бастапқы мәні  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 / 

және 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  ; 
Қайтару 


Достарыңызбен бөлісу:
1   ...   31   32   33   34   35   36   37   38   ...   64




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет