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


№2 жұмыс. Енгізу/шығару порттары және жеті сегментті индикатор



Pdf көрінісі
бет31/64
Дата31.12.2021
өлшемі3,85 Mb.
#21593
1   ...   27   28   29   30   31   32   33   34   ...   64
Байланысты:
Tleshova Zamanaui mikrokontroller

 
№2 жұмыс. Енгізу/шығару порттары және жеті сегментті индикатор 
 
Жұмыстың мақсаты 
ATmega8535 микроконтроллерінің енгізу/шығару порттарын зерттеу, жеті 
сегментті  индикатордың  басқару  бағдарламасын  дайындау,  оларды  жөндеу 
және бағдарлама жұмыстарын ұсыну.   


55 
 
Жұмысқа түсіндірме 
 
 
Жұмысты орындау үшін, ATmega8535 микроконтроллердің құрылымы мен 
жұмыс істеуін, мекен – жай әдістері мен бұйрық жүйесін білу қажет. 3 бөлімде 
AVR  микроконтроллердің  бұйрық  жүйесі  ұсынылған.  Микроконтроллердің 
техникалық  құжаттарына  бұйырықтар  әліппе  қатарында  беріледі.  3  бөлімде 
бұйрықтар  3  бұйрық  топтарына  бөлінген:  арифметикалық  және  логикалық 
бұйрықтар,  жылжу  бұйрықтары  және  биттері  бар  опреациялар,  мәліметтерді 
жіберу  бұйрықтары,  өту  бұйрықтары.    IN  және  OUT  бұйрықтарын  пайдалану 
кезінде  $00-ден  $3F  дейінгі  енгізу-шығару  мекен-жайы  қолданылады.  Бірақ, 
оларға  ішкі  ОЗУ  ұяшықтарына  сияқты  бұрылуға  болады.  Осы  кезде  енгізу-
шығару  тізімдер  мекен-жайына    $20-ды  қосу  керек.  $00  –  ден  $1F 
аралығындағы  енгізу-шығару  тізімдер  мекен-жайында  бағдарламалы  түрде 
биттер  қолжетімді  болып  табылады.  Оларға  бұрылу    SBI  және  CBI 
бұйрықтарымен,  ал  олардың  күйін  тексеру  SBIS  және  SBIC  бұйрықтарымен 
жүзеге асырылады.  
Арифметикалық операциялар кезінде $3F($5F) мекен-жайында орналасқан, 
SREG (1 кесте) тізімдері қолданылады. Бұл тізімдердің форматы төмендегілер: 
 
Кесте 1  
SREG 
күйінің тізімдері 
 
Бит 








S3F (SSF) 

т 
Н 




с 
Чтение/Запись 
R/W 
R/W 
R/W 
R/W 
R/W 
R/W 
R/W 
R/W 
Исходное 
 








 
7  бит  –  Үзілулердің  жалпы  рұқсаттары.  Үзілулерге  рұқсат  болу  үшін, 
жалау    «1»  деген  түрде  орнатылуы  керек.  Жеке  үзілулердің  рұқсат/тыйымы, 
сәйкес  тізімдердің  разрядтарының  үзілу  беттерінің  орнатылуы  немесе 
тасталуымен  жүзеге  асырылады  (үзілудің  басқару  тізімдері).  Егер  жалау 
тасталса,  онда  бұл  тізімдердің  разрядтар  күйіне  тәуелсіз  түрде  үзілулеріне 
тыйым  салынады.  Жалау,  үзілуге  енгенне  кейін  аппаратты  түрде  тасталады 
және  келесі  үзілулерді  өңдеуге  рұқсат  ету  үшін  RETI  бұйрығымен  қайта 
қалыптасады.  
6 бит –  Көшірме биттерін сақтау. Бұл тізімдердің разряды BLD (BitLoaD) 
және  BST  (BitStore)  биттерінің  көшіру  бұйрықтарының  көздері  немесе 
қабылдағышы  ретінде  қолданылады.  Кез  –  келген  РОН,  осы  разрядқа    BST 
бұйрығымен көшіріле алады немесе BLD бұйрығының разрядтар мәліметтеріне 
сәйкес орнатылуы мүмкін.  
5 бит – Жартылай тасымалдау жалауы. Егер кіші жартылай биттен, 3-ден 
4-
ге,  немесе  кейбір  арифметикалық  опреациялар  кезінде  үлкен  жартылау 
байттрадан  қарызға  алған  кезде  тасымаладау  болса,  онда  бұл  флаг  «1»  -де 
орнатылады.  


56 
 
4  бит  –  Белгі  жалауы.  N  (кері  нәтиже)  және  V  (қосымша  кодтағы 
сандардың  толуы)  жалаулары  арасындағы  «НЕМЕСЕ  –  ден  басқа»  (XOR) 
операциясының  нәтижелеріне  тең  болады.  Сәйкесінше,  егер  орындалатын 
арифметикалық операцияның нәтижесі нолден төмен болса онда бұл жалау «1»-
де орнтатылады. 
3  бит  –  Қосымша  кодттар  жалауының  толуы.  Белгілі  нәтижелердің 
разрядты  торларының  толуы  кезінде,  бұл  жалау  «1»  -  ге  орнатылады.  Белгілі 
сандармен жұмыс істеген кезде қолданылады (қосымша кодтарда ұсынылған).  
2  бит  –  Кері  мәндегі  жалау.  Егер,  операция  нәтижесінің  үлкен  (7-ші) 
разряды  «1»  -  ге  тең  болса,  онда  бұл  жалау  «1»  -  ге  орнатылады.  Ал  кері 
жағдайда жалау «0» тең. 
1  бит  –  Нөлдік  мәндегі  жалау.  Егер,  операцияны  орындау  нәтижесінде 
нолге тең болса, онда бұл жалау «1» - ге орнатылады. 
0  бит  –  Тасымалдау  жалауы.  Егер,  операцияны  орындау  нәтижесінде 
байттың шегінен шықса, онда бұл жалау «1» - ге орнатылады. 
ATmega8535 
микроконтроллерінде,  А,  В,  Сжәне  D  енгізу/шығарудың    4 
параллель  порттары  бар.  А  порты  8  –  разрядты  екі  бағыттағы  порт  ьолып 
табылады.  А  портымен  әрекеттесу,  мәліметтер  жадындағы  енгізу/шығару 
кеңістігіндегі  үш  тізімдер  арқылы  жүзеге  асырылады:  мәліметтер  тізімі  –    
PORT А, $1В($ЗВ) (2 кесте), мәліметтерді бағыттау тізімі –  DDRA, $1А($ЗА) (2 
кесте), кіріс мәліметтерінің тізімі –  PINA, $19($39) (4 кесте). PINA тізімі тек 
оқу  мүмкіндігін,  ал  PORTA  және  DDRA  тізімдері  –  оқу  және  жазу 
мүмкіндіктерін  қамтамасыз  етеді.  PINA  тізімі,  осы  сөздің  толық 
мағынасындағы  тізімдері  болып  табылмайды.  Оларға  деген  бұрылу,  әр  шығу 
порттарындағы физикалық оқуды қамтамасыз етеді. Баламалық түрде А порты, 
сонымен қатар аналогты сигналдарды енгізу үшін пайдаланылады.  
Кесте 2  
А – PORTA портының мәліметтер тізімі 
Бит 








$1В($ЗВ) 
PORT 
A7 
PORT 
A6 
PORT 
A5 
PORT 
A4 
PORT 
A3 
PORT 
A2 
PORT 
A1 
PORT 
АО 
Оқу/Жазу 
R/W 
RAV 
R/W 
R/W 
R/W 
R/W 
R/W 
R/W 
Алғашқы 
мәні 








 
Кесте 3  
А – DDRA портының мәліметтерді бағыттау тізімі 
Бит 








S1A (S3A) 
DDA7  DDA6  DDA5  DDA4  DDA3  DDA2  DDA1  DDA0 
Оқу/Жазу 
R/W 
R/W 
R/W 
R/W 
R/W 
R/W 
R/W 
RAV 
Алғашқы мәні 








 


57 
 
Кесте 4  
А – PINA портының кіріс мәліметтер тізімі 
Бит 








S19 (S39) 
PINA7  PINA6  PINA5  PINA4 
PIN АЗ PINA2  PINA1  PINA0 
Оқу/Жазу 








Алғашқы мәні  N/A 
N/A 
N/A 
N/A 
N/A 
N/A 
N/A 
N/A 
 
Қалған  порттар  (В,  С  және  D)  сонымен  қатар,  екіге  бағытталған  болып 
табылады  және  оларды  басқару  үшін  сәйкес  тізімдер  бар:    мәліметтер  тізімі 
(PORTB,  PORTC  және  PORTD),  мәліметтерді  бағыттау  тізімі    (DDRB,  DDRC 
және  DDRD)  және    кіріс  мәліметтер  тізімі  (P1NB,  PINC  және  PIND).5-7 
кестелерде, осы порттармен орындалатын балама функциялар келтірілген. 
 
Кесте 5  
В порттар шығаруларының баламалы функциялары 
 
Порт 
қорытындысы 
Альтернативті функция 
РВО 
ТО – 0 таймер\есептеуіш тактылы сигналды кіру 
РВ1 
Т1 -  1 таймер\есептеуіш тактылы сигналды кіру /счетчика 
РВ2 
AIN0 – 
компаратордың тура шыгысы 
РВЗ 
AIN 1 – 
компаратордың кері шығысы 
РВ4 
SS – SPI 
таңдау 
РВ5 
MOSI - 
кіру SPI орнату 
РВ6 
MISO – 
шығысты SPI орнату 
РВ7 
SCK — 
тактылы сигнал SPI 
 
Кесте 6  
С порттар шығаруларының баламалы функциялары 
 
Шыгыс порты 
Альтернативті функция 
РСО 
SDA - 
вход передачи данных по двухпроводному 
  
 
РС1 
SCL - 
вход синхронизации по двухпроводному 
  
 
РС6 
TOSC1 - 
1 вход подключение внешнего кварцевого 
     
РС7 
TOSC2 - 
2 вход подключение внешнего кварцевого 
     
 
 
 
 
 


58 
 
Кесте 7. 

порттар шығаруларының баламалы функциялары 
 
Шыгыс 
Альтернативті функция 
PD0 
RxD – 
қабылдағытың кіруі USART 
PD1 
TxD — 
жібергіштің шығысы USART 
PD2 
INTO – 
сыртқы үздіксіз кіру 0 
PD3 
INT1 – 
сыртқы үздіксіз кіру 1 
PD4 
ОС1В - В таймерді/есептеуішті салыстыру 1 
PD5 
ОС1А - А таймерді/есептеуішті шығысты салыстыру 1 
PD6 
ЮР - таймерді/есептеуішті 1 шығару 
PD7 
ОС2 - таймерді/есептеуішті 2 салыстыру шығысы 
 
1  мысал.  Стендпен  жұмыс  істеуді  үйрену  үшін,  бір  жеті  сегментті 
индикаторды  басқару  бойынша  зертханалық  жұмыстар  орындалады.  Төменде 
бағдарламалар  мысалы  келтірілген:    SA6  (РА4  кірісіне  1  береміз)  тумблерін 
қосқан кезде, HG4 индикаторында 1 саны жанады, SA7 тумблерін қосқан кезде 
–  
2  саны  жанады.  Егер  батырмалар  қосылмаған  болса  немесе  екуіде  бір 
уақытта  қосылған  болса  –  индикатор  сөнеді.  8  кестеде,  контроллердің  кіріс 
және шығыстарының қосылу схемасы келтірілген.  
Кесте 8 
Контроллердің кіріс және шығыстарының қосылу схемасы 
 
Кіріс : 
SA6 
 
РА4 
 
SA7 
РА5 
Шығыс:  
Сегменты A ... G 
РС0...РС6 
 
Индикатор HG4 
РВО 
 
 


59 
 
Жеке тапсырмалар нұсқасы 
 
1. 
Жеті сегментті HG2 индикаторында екі 2-разрядты сандар мен индикация 
нәтижелерінің  қосылуын  ұйымдасытру.  Басқару  блогында  батырмалар  мен 
тумблерлер  орналасады.  РА4...РА5  кірістерінде,  бірінші  қосылғыштың 
разрядтары  бар,  яғни  0-ден  3  –  ке  дейін  сандарды  теру  мүмкіндігі  бар. 
РА6...РА7  кірістерінде  сәйкесінше  2-ші  қосылғыштың  разрядтары  болады. 
Индикаторда, ондық форматтағы нәтижелер шығады, мәндер диапазоны 0.....6 
дейін болады.  
2. 
4  ұяшықтар  жадында  0-ден  F-ке  дейінгі  сандар  жазылған.  Негізгі  жағдайда 
HG4  индикаторында,  бірінші  ұяшықтағы  он  алтылық  форматтағы  сандар 
шығады, SB1 батырмасын басқан кезде – екінші ұяшықтың мәліметтері,  SB2 
батырмасын басқан кезде – үшінші ұяшықтың мәліметтері,  SB 1 және SB2 екі 
батырмасын басқан кезде – төртінші ұяшықтың мәліметтері шығады.  
3. 
 
SВ1 батырмасын басқан кезде 1 саны және  VD4 жарық диоды жанады. SВ2 
батырмасын басқан кезде 2 саны және  VD5 жарық диоды жанады. SВ1 және 
SВ2  батырмаларын  бірге  басқан  кезде  3  саны  және    VD6  жарық  диоды 
жанады. 
4. 
Оң  2  санын  3-ке  көбейтіп  және    SB1  батырмасын  басқан  кезде  HG1 
индикаторында нәтижелер шығады. Батырманы жіберген кезде индикаторда 0 
символы жанады.   
5. 
Микроконтроллерді жұмысқа қосқан кезде HG3 индикаторда 0 саны жанады. 
SB1  батырмасын  басып  және  оны  жіберген  кезде  1  саны  жанады.  SA6 
тумблерін қосқан кезде VD8 жарық диоды жанады және HG3 индикаторында 
8 саны жанады. SB2 батырмасын басқан кезде барлық жарық диодтары мен 
индикаторлар сөнеді.  
6. 
3 және 4 екі сандарының қосылуын ұйымдастыру. Микроконтроллерді қосқан 
кезде  VD5  жарық  диоды  жанады.  SB1  батырмасын  басқан  кезде  HG2 
индикаторында бірінші қосынды жанады, ал SB2 батырмасын басқан кезде – 
екінші қосынды жанады, SA5 тумблерін қосқан кезде – нәтиже шығады. 
7. 
16  ұяшықты  жадылы  массивте,  0  –  ден  F-ке  дейінгі  он  алтылық  сандар 
орналасады. Массивте тек бір сан бар, ол бірнеше рет қайталанады. Осы сан 
қандай  екенін  және  неше  рет  қайталанатынын  табу  керек.  SB1  батырмасын 
басқан кезде HG1 индикаторында қайталанатын сан жанады. SB2 батырмасын 
басқан кезде HG2 жеті сегментті индикаторында, оның қайталанатын саны 
шығады.  Егер  қайталанатын  сан  болмаса,  онда  SB1  батырмасын  басқан 
кезде HG1 индикаторында «Ж» (жоқ) белгісі жанады.  
8. 
Микроконтроллерді  қосқан  кезде  HG2  индикаторында  «0»  жанады.  Он 
алтылық  түрдегі  HG2  индикаторында  SB1  батырмасын  басып,санның 
есебін  және индикациясын ұйымдастыру, яғни 0-ден F-ке дейін және ара 
қарай  қайталау.  Батырмаларды  басу,  VD5  жарық  диодының  жануымен 
жүргізіледі.  
 


Достарыңызбен бөлісу:
1   ...   27   28   29   30   31   32   33   34   ...   64




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

    Басты бет