Микропроцессорлық жүйелер
ҚАЗАҚСТАН РЕСПУБЛИКАСЫ
АУЫЛ ШАРУАШЫЛЫҒЫ МИНИСТРЛІГІ
С. СЕЙФУЛЛИН атындағы ҚАЗАҚ АГРОТЕХНИКАЛЫҚ УНИВЕРСИТЕТІ
АҚПАРАТТЫҚ ЖҮЙЕЛЕР КАФЕДРАСЫ
Курстық жұмыс
ПӘН: Микропроцессорлық кешендер және өндірістік бағдарламалау
ТАҚЫРЫБЫ: Микропроцессорлық жүйелер
Орындаған: 05-057-19-03 топ студенті Калиева Жансая
Жетекші: Задаұлы Даулет-Бек
Курстық жұмыс қорғауға жіберілді:
______________________________
Нұр-Сұлтан 2021
4. АССЕМБЛЕРДЕ БАҒДАРЛАМАЛАУ
Жұмыс №1. Ассемблерде AVR микроконтроллерін бағдарламалау ерекшеліктері
Жұмыстың мақсаты:
AVR Studio бағдарламалық қамтымасыздандыру мүмкіндіктерімен микроконтроллердің ассемблерімен танысу. Ассемблерге енгізушығару бағдарламасын тексеру және енгізу.
Жұмысқа түсініктеме:
Ассемблерде бағдарламаны даярлау:
Бағдарлама эмуляциясы және орындалатын құпия сөзді жасау, оның бағдарлама компиляциясын енгізу үшін AVR Studio бағдарламасы қолданылады.
Бағдарлама даярлау реті:
Бағдарлама енгізу;
Бағдарлама компиляция;
Симмуляторда жұмыс қабілеттілігін тексеру;
Микроконтроллерде бағдарламаны жазу;
Бағдарламаны тексеру және қосу. Бағдарламаны енгізу:
Бағдарлама енгізу үшін AVR Studio қолданылады. AVR Studio бағдарламасын қосыңыз. Жаңа жоба бағдарлама немесе бар жобаны ашу диалог терезесі пайда болады (1 сурет)
Сурет 1. Бағдарлама жобасын таңдау терезесі
Жаңа жоба жасайық, ол үшін "New Project" пернесін басамыз. Экран бетінде жоба типін, "Project name" жоба аты және "Location" дискнде файлды орнатуын көрсету қажетті жаңа терезе пайда болады (сурет 2)
Сурет 2. Жоба атын енгізу терезесі
Орналастыру үшін папка және жоба атын енгізу, ассемблерді (Atmel AVR Assembler) таңдаудан кейін "Next" пернесі басылады. Экран бетінде "Debug platform" платформа таңдау және "Device" қозғалтқыш диалогті терезе пайда болады.
Сурет 3. Құрылғыны таңдау терезесі
"Debug platform" пунктінде "AVR Simulator", таңдаймыз, "Device" пунктінде "ATmega8535" стендінде қолданылатын контроллер түрін таңдаймыз және кейін "Finish" пернесін басу қажетті.
Құрамында 3 жұмыс облысы бар, бағдарламаны өңдеу интегралды орта осыдан кейін ашылады:
Сол жақтан "Project" жоба терезесі ашылады;
Оң жақтан ассемблерде бағдарлама жиынтық терезесі ашылады;
Астында "Build" хабарлама терезесі ашылады.
Ассемблерде бағдарламаны оң терезесінде тереміз.
Сурет 4. Ассемблерде бағдарлама енгізу терезесі Бағдарлама компиляциясы
Бағдарлама терілгеннен кейін, оның компиляциясын орындау қажетті. Ол үшін "Build" пернесі басылады. Сонымен қатар "*.hex" кеңейтуі бар файл жасалады, сосын оны микроконтроллерге жазу керек.
Сурет 5. Бағдарлама компиляция терезесі
"Build" төменгі терезесінде компиляциядан кейін қателіктердің жоқ болуы немесе бар болуы туралы хабарлама және бағдарламада сөз көлемі, қолданылатын кітапхана файлдары, қандай файл ассемблерлеуі көрсетеді. Кейінгі әрекет үшін қателіктердің жоқ болуы туралы хабарламаға қол жеткізу керек: "Assembly complete, 0 errors, 0 warnings". Егер қателік бар болса, бұл терезеде қателік түрі , қателікпен номер жолы және соңында ортақ қателік саны көрсетіледі. Қателіктерді түзелту үшін редакцияланатын файлға қайта оралу және қажетті түзелту қажетті. Ол сосын қайтадан бағдарламаны кешендеу керек.
Эмуляторда бағдарламаны реттеу
AVR Studio бағдарламасы тек бағдарламаны компилировать етуден басқа және оны өңдеу кезенінде отлаживать етуге рұқсат береді. Сонымен қатар, AVR Studio АСТ және ШИМ үзілулерді таймерлересепшілердің барлық енгізушығару порттарының, микроконтроллердің жұмысын эмулирлейді. Бағдарлама жұмыс эмуляциясы егер осы микроконтроллерге жазылған болса, оның дұмысын қарауға рұқсат береді. Белгілеп айтқан жөн,құрамында қателіктер жоқ бағдарламаны ғана , эмуляция жасауға болады. Сондықтан, эмуляциясы алдында AVR Studio бағдарлама компиляциясын өндіреді және қателіктер бар болса, бағдарламаны эмуляциялауға болмайды.
Бағдарлама жазылғаннан кейін, оның откладкасы үшін бағдарлама мәзіріндегі Build and run пернесін басу керек. Бағдарлама басы сары сызықтармен белгіленгеннен кейін, жоғарыда компилятордың директивы орналасады,
Сурет 6. Бағдарлама эмулятор терезесі
Сурет 7. Бағдарлама төсеу терезесі
Бағдарлама функциялануын тексеру
Микроконтроллерде жазылған және дайындалған бағдарлама функциялануын дұрыстығын тексеру қажетті схеманы модульде жинағаннан
кейін жалғанған сымдармен тексереді. Ол үшін микроконтроллер кірістері - тумблер сымдарымен, пернелермен, потенциометрлермен, шығысы - жарықдиодтармен, жетісигментті индикаторлармен, қозғалтқыштармен, дыбыссәулелендіргішпен жалғану керек. Қажеттілік туындаған кезінде осциллографты пайдалануға болады. Бағдарлама жазылғаннан кейін, ол автоматты түрде жұмысқа қосылады. Оны қайта қосу үшін Сброс немесе модулятор корегін қайта қосу арқылы жасауға болады.
Бағдарламаланған есеп түріне қарай, пернелермен және тумблерлермен қажетті командалар беріледі және бағдарлама жұмысын визуалды бақылауға мүмкіндік береді.
Егер барлық берілген функциялар орындалатын болса, жұмыс орындалған болып есептеледі.
Мысал 1, Ассемблерде жазылған, РА4 бит күйінен тәуелді PORTD биттерін өшіретін және қосатын микроконтроллер үшін ең оңай "Hello AVR" бағдарламасын қарастырайық
Орындауға арналған тапсырма:
Бағдарламаны терініз және бағдарлама құрастыру барлық этаптарын орыңданыз. Контроллерде бағдарламаның дұрыс орындалғанын тексерініз
RS-триггер орындалатын бағдарлама құрастырыныз: РА4 кірісіне сигнал беру кезінде, триггер қосылады және РА4 жоқ болып кету кезінде өзінің мағынасын сақтайды
Бегущий огонь бағдарламасын құрыңыз және енгізініз.
№2 жұмыс. Енгізушығару порттары және жеті сегментті индикатор
Жұмыстың мақсаты
ATmega8535 микроконтроллерінің енгізушығару порттарын зерттеу, жеті сегментті индикатордың басқару бағдарламасын дайындау, оларды жөндеу және бағдарлама жұмыстарын ұсыну.
Жұмысқа түсіндірме
Жұмысты орындау үшін, ATmega8535 микроконтроллердің құрылымы мен жұмыс істеуін, мекен - жай әдістері мен бұйрық жүйесін білу қажет. 3 бөлімде AVR микроконтроллердің бұйрық жүйесі ұсынылған. Микроконтроллердің техникалық құжаттарына бұйырықтар әліппе қатарында беріледі. 3 бөлімде бұйрықтар 3 бұйрық топтарына бөлінген: арифметикалық және логикалық бұйрықтар, жылжу бұйрықтары және биттері бар опреациялар, мәліметтерді жіберу бұйрықтары, өту бұйрықтары. IN және OUT бұйрықтарын пайдалану кезінде $00-ден $3F дейінгі енгізу-шығару мекен-жайы қолданылады. Бірақ, оларға ішкі ОЗУ ұяшықтарына сияқты бұрылуға болады. Осы кезде енгізу- шығару тізімдер мекен-жайына $20-ды қосу керек. $00 - ден $1F аралығындағы енгізу-шығару тізімдер мекен-жайында бағдарламалы түрде биттер қолжетімді болып табылады. Оларға бұрылу SBI және CBI бұйрықтарымен, ал олардың күйін тексеру SBIS және SBIC бұйрықтарымен жүзеге асырылады.
Арифметикалық операциялар кезінде $3F($5F) мекен-жайында орналасқан, SREG (1 кесте) тізімдері қолданылады. Бұл тізімдердің форматы төмендегілер:
Кесте 1
SREG күйінің тізімдері
Бит
7
6
5
4
3
2
1
0
S3F (SSF)
I
т
Н
S
V
N
Z
с
ЧтениеЗапись
RW
RW
RW
RW
RW
RW
RW
RW
Исходное
0
0
0
0
0
0
0
0
7 бит - Үзілулердің жалпы рұқсаттары. Үзілулерге рұқсат болу үшін, жалау 1 деген түрде орнатылуы керек. Жеке үзілулердің рұқсаттыйымы, сәйкес тізімдердің разрядтарының үзілу беттерінің орнатылуы немесе тасталуымен жүзеге асырылады (үзілудің басқару тізімдері). Егер жалау тасталса, онда бұл тізімдердің разрядтар күйіне тәуелсіз түрде үзілулеріне тыйым салынады. Жалау, үзілуге енгенне кейін аппаратты түрде тасталады және келесі үзілулерді өңдеуге рұқсат ету үшін RETI бұйрығымен қайта қалыптасады.
6 бит - Көшірме биттерін сақтау. Бұл тізімдердің разряды BLD (BitLoaD) және BST (BitStore) биттерінің көшіру бұйрықтарының көздері немесе қабылдағышы ретінде қолданылады. Кез - келген РОН, осы разрядқа BST бұйрығымен көшіріле алады немесе BLD бұйрығының разрядтар мәліметтеріне сәйкес орнатылуы мүмкін.
5 бит - Жартылай тасымалдау жалауы. Егер кіші жартылай биттен, 3-ден 4-ге, немесе кейбір арифметикалық опреациялар кезінде үлкен жартылау байттрадан қарызға алған кезде тасымаладау болса, онда бұл флаг 1 -де орнатылады.
4 бит - Белгі жалауы. N (кері нәтиже) және V (қосымша кодтағы сандардың толуы) жалаулары арасындағы НЕМЕСЕ - ден басқа (XOR) операциясының нәтижелеріне тең болады. Сәйкесінше, егер орындалатын арифметикалық операцияның нәтижесі нолден төмен болса онда бұл жалау 1- де орнтатылады.
3 бит - Қосымша кодттар жалауының толуы. Белгілі нәтижелердің разрядты торларының толуы кезінде, бұл жалау 1 - ге орнатылады. Белгілі сандармен жұмыс істеген кезде қолданылады (қосымша кодтарда ұсынылған).
2 бит - Кері мәндегі жалау. Егер, операция нәтижесінің үлкен (7-ші) разряды 1 - ге тең болса, онда бұл жалау 1 - ге орнатылады. Ал кері жағдайда жалау 0 тең.
1 бит - Нөлдік мәндегі жалау. Егер, операцияны орындау нәтижесінде нолге тең болса, онда бұл жалау 1 - ге орнатылады.
бит - Тасымалдау жалауы. Егер, операцияны орындау нәтижесінде байттың шегінен шықса, онда бұл жалау 1 - ге орнатылады.
ATmega8535 микроконтроллерінде, А, В, Сжәне D енгізушығарудың 4 параллель порттары бар. А порты 8 - разрядты екі бағыттағы порт ьолып табылады. А портымен әрекеттесу, мәліметтер жадындағы енгізушығару кеңістігіндегі үш тізімдер арқылы жүзеге асырылады: мәліметтер тізімі - PORT А, $1В($ЗВ) (2 кесте), мәліметтерді бағыттау тізімі - DDRA, $1А($ЗА) (2 кесте), кіріс мәліметтерінің тізімі - PINA, $19($39) (4 кесте). PINA тізімі тек оқу мүмкіндігін, ал PORTA және DDRA тізімдері - оқу және жазу мүмкіндіктерін қамтамасыз етеді. PINA тізімі, осы сөздің толық мағынасындағы тізімдері болып табылмайды. Оларға деген бұрылу, әр шығу порттарындағы физикалық оқуды қамтамасыз етеді. Баламалық түрде А порты, сонымен қатар аналогты сигналдарды енгізу үшін пайдаланылады.
Кесте 2
А - PORTA портының мәліметтер тізімі
Бит
7
6
5
4
3
2
1
0
$1В($ЗВ)
PORT
A7
PORT
A6
PORT
A5
PORT
A4
PORT
A3
PORT
A2
PORT
A1
PORT
АО
ОқуЖазу
RW
RAV
RW
RW
RW
RW
RW
RW
Алғашқы мәні
0
0
0
0
0
0
0
0
Кесте 3
А - DDRA портының мәліметтерді бағыттау тізімі
Бит
7
6
5
4
3
2
1
0
S1A (S3A)
DDA7
DDA6
DDA5
DDA4
DDA3
DDA2
DDA1
DDA0
ОқуЖазу
RW
RW
RW
RW
RW
RW
RW
RAV
Алғашқы мәні
0
0
0
0
0
0
0
0
Кесте 4
А - PINA портының кіріс мәліметтер тізімі
Бит
7
6
5
4
3
2
1
0
S19 (S39)
PINA7
PINA6
PINA5
PINA4
PIN АЗ
PINA2
PINA1
PINA0
ОқуЖазу
R
R
R
R
R
R
R
R
Алғашқы мәні
NA
NA
NA
NA
NA
NA
NA
NA
Қалған порттар (В, С және 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 вход подключение внешнего кварцевого
Кесте 7.
D порттар шығаруларының баламалы функциялары
Шыгыс
Альтернативті функция
PD0
RxD - қабылдағытың кіруі USART
PD1
TxD -- жібергіштің шығысы USART
PD2
INTO - сыртқы үздіксіз кіру 0
PD3
INT1 - сыртқы үздіксіз кіру 1
PD4
ОС1В - В таймердіесептеуішті салыстыру 1
PD5
ОС1А - А таймердіесептеуішті шығысты салыстыру 1
PD6
ЮР - таймердіесептеуішті 1 шығару
PD7
ОС2 - таймердіесептеуішті 2 салыстыру шығысы
мысал. Стендпен жұмыс істеуді үйрену үшін, бір жеті сегментті индикаторды басқару бойынша зертханалық жұмыстар орындалады. Төменде бағдарламалар мысалы келтірілген: SA6 (РА4 кірісіне 1 береміз) тумблерін қосқан кезде, HG4 индикаторында 1 саны жанады, SA7 тумблерін қосқан кезде
- 2 саны жанады. Егер батырмалар қосылмаған болса немесе екуіде бір уақытта қосылған болса - индикатор сөнеді. 8 кестеде, контроллердің кіріс және шығыстарының қосылу схемасы келтірілген.
Кесте 8
Контроллердің кіріс және шығыстарының қосылу схемасы
Кіріс :
SA6
РА4
SA7
РА5
Шығыс:
Сегменты A ... G
РС0...РС6
Индикатор HG4
РВО
Жеке тапсырмалар нұсқасы
Жеті сегментті HG2 индикаторында екі 2-разрядты сандар мен индикация нәтижелерінің қосылуын ұйымдасытру. Басқару блогында батырмалар мен тумблерлер орналасады. РА4...РА5 кірістерінде, бірінші қосылғыштың разрядтары бар, яғни 0-ден 3 - ке дейін сандарды теру мүмкіндігі бар. РА6...РА7 кірістерінде сәйкесінше 2-ші қосылғыштың разрядтары болады. Индикаторда, ондық форматтағы нәтижелер шығады, мәндер диапазоны 0 6
дейін болады.
4 ұяшықтар жадында 0-ден F-ке дейінгі сандар жазылған. Негізгі жағдайда HG4 индикаторында, бірінші ұяшықтағы он алтылық форматтағы сандар шығады, SB1 батырмасын басқан кезде - екінші ұяшықтың мәліметтері, SB2 батырмасын басқан кезде - үшінші ұяшықтың мәліметтері, SB 1 және SB2 екі батырмасын басқан кезде - төртінші ұяшықтың мәліметтері шығады.
SВ1 батырмасын басқан кезде 1 саны және VD4 жарық диоды жанады. SВ2 батырмасын басқан кезде 2 саны және VD5 жарық диоды жанады. SВ1 және SВ2 батырмаларын бірге басқан кезде 3 саны және VD6 жарық диоды жанады.
Оң 2 санын 3-ке көбейтіп және SB1 батырмасын басқан кезде HG1 индикаторында нәтижелер шығады. Батырманы жіберген кезде индикаторда 0 символы жанады.
Микроконтроллерді жұмысқа қосқан кезде HG3 индикаторда 0 саны жанады. SB1 батырмасын басып және оны жіберген кезде 1 саны жанады. SA6 тумблерін қосқан кезде VD8 жарық диоды жанады және HG3 индикаторында 8 саны жанады. SB2 батырмасын басқан кезде барлық жарық диодтары мен индикаторлар сөнеді.
3 және 4 екі сандарының қосылуын ұйымдастыру. Микроконтроллерді қосқан кезде VD5 жарық диоды жанады. SB1 батырмасын басқан кезде HG2 индикаторында бірінші қосынды жанады, ал SB2 батырмасын басқан кезде - екінші қосынды жанады, SA5 тумблерін қосқан кезде - нәтиже шығады.
16 ұяшықты жадылы массивте, 0 - ден F-ке дейінгі он алтылық сандар орналасады. Массивте тек бір сан бар, ол бірнеше рет қайталанады. Осы сан қандай екенін және неше рет қайталанатынын табу керек. SB1 батырмасын басқан кезде HG1 индикаторында қайталанатын сан жанады. SB2 батырмасын басқан кезде HG2 жеті сегментті индикаторында, оның қайталанатын саны шығады. Егер қайталанатын сан болмаса, онда SB1 батырмасын басқан кезде HG1 индикаторында Ж (жоқ) белгісі жанады.
Микроконтроллерді қосқан кезде HG2 индикаторында 0 жанады. Он алтылық түрдегі HG2 индикаторында SB1 батырмасын басып,санның есебін және индикациясын ұйымдастыру, яғни 0-ден F-ке дейін және ара қарай қайталау. Батырмаларды басу, VD5 жарық диодының жануымен жүргізіледі.
№3 жұмыс. AVRмикроконтроллерінде динамикалық индикацияны жүзеге асыру
Жұмыстың мақсаты:
Динамикалық индикацияның көмегімен жеті сегментті индикаторды басқаруды зерттеу.
Жұмысқа түсіндірме:
Бұл жұмыс алдыңғы жұмыстың логикалық жалғасы болып табылады. Мұндағы тапсырмалар күрделендірілілген және бағдарлдамалаық ұстаулардың көмегімен жүзеге асырылған динамикалық индикация қолданылады.
1 мысал. HG2...HG4 индикаторларында 123 саны шығарылған. Кірістерді байланыстыру схемасы 1 кестеде келтірілген.
Кесте 1.
HG2...HG4 индикаторларында кірістерді байланыстыру схемасы
Шығыс:
Жоқ
Бар
Шығыс:
Сегменты A . . . G
PC0...PC7
Индикаторы
HG2
PB2
HG3
PB1
HG4
РВО
Жеке тапсырмалар нұсқалары:
Қоректі бергенде және SB1 батырмасын басқанда HG1 және HG2 индикаторларында 7 және 5 саны жанады. SB2 батырмасын басқанда индикаторларда 5 және 7 саны жанады және VD4 және VD6 жарық диодтары жанады. SA6 (Тастау бұйрығына еліктеу) тумблерін қосқан кезде, барлық индикаторлар мен жарық диодтары сөнеді.
Қоректі бергенде және SB1 батырмасын басқанда VD4 және VD6 жарық диодтары жанады және HG1 және HG2 индикаторларында сәйкесінше 0 және 1 саны жанады. SA7 тумблерін қосқан кезде VD4 және VD6 жарық диодтары сөнеді, VD5 жарық диоды жанады және HG1 және HG2 индикаторларында сәйкесінше 8 және 9 саны жанады. SA7-ні өшірген кезде схема бастапқы қалпына келеді.
Бастапқы қалпы - VD1 жарық диоды жанады, ал HG1 және HG2 индикаторларында 01 саны жанады, яғни жарық диодының номері. SB1 батырмасын басып және жібергенде VD1 жарық диоды сөнеді, ал VD2 жарық диоды жанады, яғни сәуле таратуы оңға қарай жылжиды. Индикаторларда 02 саны жанады. SB1 батырмасын басқанда сәуле таратуы оңға қарай жылжып отырады, яғни VD1, VD2, VD3 бақыланады және процесс ары қарай қайталанады. Осы кезде индикаторларда сәйкесінше 01, 02, 03, 01, 02 және т.б. сандары пайда болады.
Бағдарламалық ұстаудың көмегімен қума отты ұйымдастыру: HG1 және HG2 индикаторларының сегменттері бойыныша. Сағат тілімен жүргенде сегменттердің алмасуы келсі: а, Ь, с, d, е, f және т.б. SA7 тумблері қосылып тұрған кезде, қума оты сағат тілі бойынша жүзеге асырылады, ал өшірулі кезінде - сағат тіліне қарсы болады. SA8 тумблері қосылып тұрған кезде, қума оты HG1 индикаторының сегменттері бойынша жүзеге асырылады, ал өшірулі кезінде - HG2 индикаторының сегменттері бойынша.
SB1 және SB2 батырмаларын басып, сандар есебін ұйымдастыру. Қоректі берген кезде HG1 және HG2 индикаторларында 00 саны жанады. SB1 батырмасын қайта басқанда индикатордағы сандар бірге артады. Есебі 20 дейін мүмкін. Егер есеп 20 санына жетсе, онда ары қарай SB1 батырмасын басқанда сандар өзгермейді. SB2 батырмасын қайта басқанда индикатордағы сандар бірге кемиді. 00 санына жеткеннен кейін ары қарай SB2 батырмасын басқанда схемаға әсер етпейді.
SB1 батырмасын басып, сандар есебін ұйымдастыру. Қоректі берген кезде барлық жарық диодтары мен индикаторлар сөнеді. SB1 батырмасын қайта басқанда индикатордағы сандар бірге артады. 10-нан кейін батырманы басқанда VD1 жарық диоды жанады, HG1 индикаторында 1 саны жанады. Екінші ондықтан кейін батырманы басқан кезде қосымша VD2 жарық диоды жанады, және HG2 индикаторында 2 саны жанады. Ары қарай SB2 батырмасын басқанда схемаға әсер етпейді. SB2 батырмасын басқанда барлық жарық диодтары мен индикаторлар сөнеді, және схема қалыпты жағдайға келеді.
HG1 және HG2 индикаторларында 33 санының сәуле таратуының қалыптасуын жүзеге асыру. Қоректі берген кезде барлық жарық диодтары мен индикаторлар сөнеді. SA9 тумблерін қосулы тұрған кезде, жүйелі түрде HG1 және HG2 индикаторларының сегменттері қосылады: а, Ь, с, d,
g. Осыдан кейін VD8 жарық диоды қосылады. Индикаторда 33 саны жанады. SA9 тумблерін сөндірген кезде жүйелі түрде HG1 және HG2 индикаторларының сегменттері сөнеді: g, d, с, b, а.
№ 4 жұмыс. AVR микробақылаушы таймер-есептеуішін үйрену
Жұмыстың мақсаты:
Программалаудың дағдылау практикасы н алу, Atmega 8535
микробақылаушы таймер есептеу ішінің міндеттерін үйрену.
Жұмысты анықтау:
Барлық мағлұмат
ATmega8535 микробақылаушылары үш та ймер-есептеуішін иемденеді.
Олардың екеуі ТО және Т2 сегізразрядты, ал Т1 - 16-разрядты.
ТО және Т1 таймері барлық 10-разрядты алдын-ала бөлушіні қолданады.
Олар уақыт аралығын құру қондырғысы ретінде қолданылуы мүмкін(таймерлер) немесе РВО (ТО) және РВ1 (Т1) сәйкес сыртқы қорытындының жағдайы бойынша қосылатын сыртқы оқиғалардың есептегіші ретінде қолданылуы мүмкін.
Т2 таймері өзінің 10-разрядты алдын-ала бөлушісін иемденеді.Бұдан өзге, РС6 (T0SC1) қорытындысы дабылыментәсілденуі мүмкін, бұл сағат ретінде нақты уақытты қолдануға мүмкіндік береді. Олай болса, 32768 Гц жиілігімен кварцтық резонаторы РС6 (T0SC1) және РС7 (T0SC2) қорытындылары аралығында бірігеді.
Барлық таймерлер кең-импульсивті (ШИМ) модуляция тәртібін жүзеге асырады.
ATmega8535 микробақылаушыларынбасқару үшін таймерді тоқтатуды және TIMSK таймересептегішімен арнайы регистрлі маскасын тоқтатады.
Кесте 1.
TIMSK таймерін тоқтатуға арналған регистр маскасы
Бит
7
6
5
4
3
2
1
0
$39($59)
OCIE2
TOIE2
TICIE1
OCIE1A
OCIE1B
TOIE1
OCIE2
TOIE0
ОқулықЖазу
RW
RW
RW
RW
RW
RW
RW
RW
Бастапқы мәні
0
0
0
0
0
0
0
0
Бит 7 - OCIE2: Т2 таймерімен түйісу арқылы үзілуіне рұқсат ету.
OСIE2 қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге Т2 түйсіуімен үзілуіне рұқсат ету мазмұны регистрін Т2-нің салыстыруы мен жағдайын қарау.Орындалу ($003 векторымен) үзілісіне сәйкес, егертаймер
есептеуші2 жағдайы мен салыстыруы регистр мазмұнын салыстыру жанындағы түйісуі болады. Бит 6 - TOIE2: Т2 асыра толтыруымен рұқсатын үзу. Т2 түйісу жалауы орнатыла TIFROCF2 регистр жалауы үзіледі.
TOIE2 қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге Т2 асыра толтыруымен үзілуіне рұқсат ету. Орындалу ($004 векторымен) үзілісіне сәйкес, егер таймері есептеуіші 2 асыра толтыруы болады. TIFR регистр жалауында Т2 асыра толтыру TOV2 жалауы орнатылады.
Бит 5 - TICIE1: Т1 таймерін қармау арқылы үзілуіне рұқсат ету.
T1CIE1қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге Т1 қармауымен үзуін рұқсат ету. Орындалу ($005 векторымен) үзілісіне сәйкес, егер
PD6 (ICP) қорытындысымен қармау жіберілуі болады.TIFR регистр жалауында Т2 асыра толтыру ICF1 жалауы орнатылады.
Бит 4-OCIE1A: Разрешение прерывания по совпадению регистра А таймера Т1 OСIE2 қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге таймері есептеуіші1 жағдайында А регистрініңтүйісуімен үзу рұқсат етіледі. Орындалу ($006 векторымен) үзілуіне сәйкес, егер А регистрінің түйісу мазмұны таймеріесептеуші1-дің жағдайымен ш ығу сәйкестігі болса. TIFR регистр
жалауында Т1 асыра толтыру ОCFIА жалауы орнатылады.
Бит 3 - OCIE1B: Т1 таймерімен В регистрінің түйісу арқылы үзілуіне рұқсат
ету.
QСIE1В қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге В
регистрінің түйсіуімен үзілуіне рұқсат етутаймеріесептеуші1жағдайын қарау.Орындалу ($007 векторымен) үзілісіне сәйкес, егер В регистрінің түйісу мазмұны таймеріесептеуші1-дің жағдайымен шығу сәйкестігі болса. TIFRрегистр жалауында В регистрінің Т1 таймерімен түйісуі асыра толтыру ОCFIВ жалауы орнатылады.
Бит 2 - TOIE1: Т1 таймерін асыра толтыру арқылы үзілуіне рұқсат ету.
ТОIE1 қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге таймері есептеуіші1 жағдайында А регистрінің асыра толтыруымен үзілуі рұқсат етіледі. Орындалу ($008 векторымен) үзілуіне сәйкес, егер таймеріесептеуші1 асыра толтыруы болса. TIFR регистр жалауында Т1 таймері асыра толтыруында TOV1 жалауы орнатылады.
Бит 1 - OCIE0: Т0 таймерін түйісу арқылы үзілуіне рұқсат ету.
OСIE0 қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге ТО жағдайымен салыстыруы регистрдің мазмұнымен түйісуімен үзілуі рұқсат етіледі.Орындалу ($013 векторымен) үзілуіне сәйкес, егер ... жалғасы
АУЫЛ ШАРУАШЫЛЫҒЫ МИНИСТРЛІГІ
С. СЕЙФУЛЛИН атындағы ҚАЗАҚ АГРОТЕХНИКАЛЫҚ УНИВЕРСИТЕТІ
АҚПАРАТТЫҚ ЖҮЙЕЛЕР КАФЕДРАСЫ
Курстық жұмыс
ПӘН: Микропроцессорлық кешендер және өндірістік бағдарламалау
ТАҚЫРЫБЫ: Микропроцессорлық жүйелер
Орындаған: 05-057-19-03 топ студенті Калиева Жансая
Жетекші: Задаұлы Даулет-Бек
Курстық жұмыс қорғауға жіберілді:
______________________________
Нұр-Сұлтан 2021
4. АССЕМБЛЕРДЕ БАҒДАРЛАМАЛАУ
Жұмыс №1. Ассемблерде AVR микроконтроллерін бағдарламалау ерекшеліктері
Жұмыстың мақсаты:
AVR Studio бағдарламалық қамтымасыздандыру мүмкіндіктерімен микроконтроллердің ассемблерімен танысу. Ассемблерге енгізушығару бағдарламасын тексеру және енгізу.
Жұмысқа түсініктеме:
Ассемблерде бағдарламаны даярлау:
Бағдарлама эмуляциясы және орындалатын құпия сөзді жасау, оның бағдарлама компиляциясын енгізу үшін AVR Studio бағдарламасы қолданылады.
Бағдарлама даярлау реті:
Бағдарлама енгізу;
Бағдарлама компиляция;
Симмуляторда жұмыс қабілеттілігін тексеру;
Микроконтроллерде бағдарламаны жазу;
Бағдарламаны тексеру және қосу. Бағдарламаны енгізу:
Бағдарлама енгізу үшін AVR Studio қолданылады. AVR Studio бағдарламасын қосыңыз. Жаңа жоба бағдарлама немесе бар жобаны ашу диалог терезесі пайда болады (1 сурет)
Сурет 1. Бағдарлама жобасын таңдау терезесі
Жаңа жоба жасайық, ол үшін "New Project" пернесін басамыз. Экран бетінде жоба типін, "Project name" жоба аты және "Location" дискнде файлды орнатуын көрсету қажетті жаңа терезе пайда болады (сурет 2)
Сурет 2. Жоба атын енгізу терезесі
Орналастыру үшін папка және жоба атын енгізу, ассемблерді (Atmel AVR Assembler) таңдаудан кейін "Next" пернесі басылады. Экран бетінде "Debug platform" платформа таңдау және "Device" қозғалтқыш диалогті терезе пайда болады.
Сурет 3. Құрылғыны таңдау терезесі
"Debug platform" пунктінде "AVR Simulator", таңдаймыз, "Device" пунктінде "ATmega8535" стендінде қолданылатын контроллер түрін таңдаймыз және кейін "Finish" пернесін басу қажетті.
Құрамында 3 жұмыс облысы бар, бағдарламаны өңдеу интегралды орта осыдан кейін ашылады:
Сол жақтан "Project" жоба терезесі ашылады;
Оң жақтан ассемблерде бағдарлама жиынтық терезесі ашылады;
Астында "Build" хабарлама терезесі ашылады.
Ассемблерде бағдарламаны оң терезесінде тереміз.
Сурет 4. Ассемблерде бағдарлама енгізу терезесі Бағдарлама компиляциясы
Бағдарлама терілгеннен кейін, оның компиляциясын орындау қажетті. Ол үшін "Build" пернесі басылады. Сонымен қатар "*.hex" кеңейтуі бар файл жасалады, сосын оны микроконтроллерге жазу керек.
Сурет 5. Бағдарлама компиляция терезесі
"Build" төменгі терезесінде компиляциядан кейін қателіктердің жоқ болуы немесе бар болуы туралы хабарлама және бағдарламада сөз көлемі, қолданылатын кітапхана файлдары, қандай файл ассемблерлеуі көрсетеді. Кейінгі әрекет үшін қателіктердің жоқ болуы туралы хабарламаға қол жеткізу керек: "Assembly complete, 0 errors, 0 warnings". Егер қателік бар болса, бұл терезеде қателік түрі , қателікпен номер жолы және соңында ортақ қателік саны көрсетіледі. Қателіктерді түзелту үшін редакцияланатын файлға қайта оралу және қажетті түзелту қажетті. Ол сосын қайтадан бағдарламаны кешендеу керек.
Эмуляторда бағдарламаны реттеу
AVR Studio бағдарламасы тек бағдарламаны компилировать етуден басқа және оны өңдеу кезенінде отлаживать етуге рұқсат береді. Сонымен қатар, AVR Studio АСТ және ШИМ үзілулерді таймерлересепшілердің барлық енгізушығару порттарының, микроконтроллердің жұмысын эмулирлейді. Бағдарлама жұмыс эмуляциясы егер осы микроконтроллерге жазылған болса, оның дұмысын қарауға рұқсат береді. Белгілеп айтқан жөн,құрамында қателіктер жоқ бағдарламаны ғана , эмуляция жасауға болады. Сондықтан, эмуляциясы алдында AVR Studio бағдарлама компиляциясын өндіреді және қателіктер бар болса, бағдарламаны эмуляциялауға болмайды.
Бағдарлама жазылғаннан кейін, оның откладкасы үшін бағдарлама мәзіріндегі Build and run пернесін басу керек. Бағдарлама басы сары сызықтармен белгіленгеннен кейін, жоғарыда компилятордың директивы орналасады,
Сурет 6. Бағдарлама эмулятор терезесі
Сурет 7. Бағдарлама төсеу терезесі
Бағдарлама функциялануын тексеру
Микроконтроллерде жазылған және дайындалған бағдарлама функциялануын дұрыстығын тексеру қажетті схеманы модульде жинағаннан
кейін жалғанған сымдармен тексереді. Ол үшін микроконтроллер кірістері - тумблер сымдарымен, пернелермен, потенциометрлермен, шығысы - жарықдиодтармен, жетісигментті индикаторлармен, қозғалтқыштармен, дыбыссәулелендіргішпен жалғану керек. Қажеттілік туындаған кезінде осциллографты пайдалануға болады. Бағдарлама жазылғаннан кейін, ол автоматты түрде жұмысқа қосылады. Оны қайта қосу үшін Сброс немесе модулятор корегін қайта қосу арқылы жасауға болады.
Бағдарламаланған есеп түріне қарай, пернелермен және тумблерлермен қажетті командалар беріледі және бағдарлама жұмысын визуалды бақылауға мүмкіндік береді.
Егер барлық берілген функциялар орындалатын болса, жұмыс орындалған болып есептеледі.
Мысал 1, Ассемблерде жазылған, РА4 бит күйінен тәуелді PORTD биттерін өшіретін және қосатын микроконтроллер үшін ең оңай "Hello AVR" бағдарламасын қарастырайық
Орындауға арналған тапсырма:
Бағдарламаны терініз және бағдарлама құрастыру барлық этаптарын орыңданыз. Контроллерде бағдарламаның дұрыс орындалғанын тексерініз
RS-триггер орындалатын бағдарлама құрастырыныз: РА4 кірісіне сигнал беру кезінде, триггер қосылады және РА4 жоқ болып кету кезінде өзінің мағынасын сақтайды
Бегущий огонь бағдарламасын құрыңыз және енгізініз.
№2 жұмыс. Енгізушығару порттары және жеті сегментті индикатор
Жұмыстың мақсаты
ATmega8535 микроконтроллерінің енгізушығару порттарын зерттеу, жеті сегментті индикатордың басқару бағдарламасын дайындау, оларды жөндеу және бағдарлама жұмыстарын ұсыну.
Жұмысқа түсіндірме
Жұмысты орындау үшін, ATmega8535 микроконтроллердің құрылымы мен жұмыс істеуін, мекен - жай әдістері мен бұйрық жүйесін білу қажет. 3 бөлімде AVR микроконтроллердің бұйрық жүйесі ұсынылған. Микроконтроллердің техникалық құжаттарына бұйырықтар әліппе қатарында беріледі. 3 бөлімде бұйрықтар 3 бұйрық топтарына бөлінген: арифметикалық және логикалық бұйрықтар, жылжу бұйрықтары және биттері бар опреациялар, мәліметтерді жіберу бұйрықтары, өту бұйрықтары. IN және OUT бұйрықтарын пайдалану кезінде $00-ден $3F дейінгі енгізу-шығару мекен-жайы қолданылады. Бірақ, оларға ішкі ОЗУ ұяшықтарына сияқты бұрылуға болады. Осы кезде енгізу- шығару тізімдер мекен-жайына $20-ды қосу керек. $00 - ден $1F аралығындағы енгізу-шығару тізімдер мекен-жайында бағдарламалы түрде биттер қолжетімді болып табылады. Оларға бұрылу SBI және CBI бұйрықтарымен, ал олардың күйін тексеру SBIS және SBIC бұйрықтарымен жүзеге асырылады.
Арифметикалық операциялар кезінде $3F($5F) мекен-жайында орналасқан, SREG (1 кесте) тізімдері қолданылады. Бұл тізімдердің форматы төмендегілер:
Кесте 1
SREG күйінің тізімдері
Бит
7
6
5
4
3
2
1
0
S3F (SSF)
I
т
Н
S
V
N
Z
с
ЧтениеЗапись
RW
RW
RW
RW
RW
RW
RW
RW
Исходное
0
0
0
0
0
0
0
0
7 бит - Үзілулердің жалпы рұқсаттары. Үзілулерге рұқсат болу үшін, жалау 1 деген түрде орнатылуы керек. Жеке үзілулердің рұқсаттыйымы, сәйкес тізімдердің разрядтарының үзілу беттерінің орнатылуы немесе тасталуымен жүзеге асырылады (үзілудің басқару тізімдері). Егер жалау тасталса, онда бұл тізімдердің разрядтар күйіне тәуелсіз түрде үзілулеріне тыйым салынады. Жалау, үзілуге енгенне кейін аппаратты түрде тасталады және келесі үзілулерді өңдеуге рұқсат ету үшін RETI бұйрығымен қайта қалыптасады.
6 бит - Көшірме биттерін сақтау. Бұл тізімдердің разряды BLD (BitLoaD) және BST (BitStore) биттерінің көшіру бұйрықтарының көздері немесе қабылдағышы ретінде қолданылады. Кез - келген РОН, осы разрядқа BST бұйрығымен көшіріле алады немесе BLD бұйрығының разрядтар мәліметтеріне сәйкес орнатылуы мүмкін.
5 бит - Жартылай тасымалдау жалауы. Егер кіші жартылай биттен, 3-ден 4-ге, немесе кейбір арифметикалық опреациялар кезінде үлкен жартылау байттрадан қарызға алған кезде тасымаладау болса, онда бұл флаг 1 -де орнатылады.
4 бит - Белгі жалауы. N (кері нәтиже) және V (қосымша кодтағы сандардың толуы) жалаулары арасындағы НЕМЕСЕ - ден басқа (XOR) операциясының нәтижелеріне тең болады. Сәйкесінше, егер орындалатын арифметикалық операцияның нәтижесі нолден төмен болса онда бұл жалау 1- де орнтатылады.
3 бит - Қосымша кодттар жалауының толуы. Белгілі нәтижелердің разрядты торларының толуы кезінде, бұл жалау 1 - ге орнатылады. Белгілі сандармен жұмыс істеген кезде қолданылады (қосымша кодтарда ұсынылған).
2 бит - Кері мәндегі жалау. Егер, операция нәтижесінің үлкен (7-ші) разряды 1 - ге тең болса, онда бұл жалау 1 - ге орнатылады. Ал кері жағдайда жалау 0 тең.
1 бит - Нөлдік мәндегі жалау. Егер, операцияны орындау нәтижесінде нолге тең болса, онда бұл жалау 1 - ге орнатылады.
бит - Тасымалдау жалауы. Егер, операцияны орындау нәтижесінде байттың шегінен шықса, онда бұл жалау 1 - ге орнатылады.
ATmega8535 микроконтроллерінде, А, В, Сжәне D енгізушығарудың 4 параллель порттары бар. А порты 8 - разрядты екі бағыттағы порт ьолып табылады. А портымен әрекеттесу, мәліметтер жадындағы енгізушығару кеңістігіндегі үш тізімдер арқылы жүзеге асырылады: мәліметтер тізімі - PORT А, $1В($ЗВ) (2 кесте), мәліметтерді бағыттау тізімі - DDRA, $1А($ЗА) (2 кесте), кіріс мәліметтерінің тізімі - PINA, $19($39) (4 кесте). PINA тізімі тек оқу мүмкіндігін, ал PORTA және DDRA тізімдері - оқу және жазу мүмкіндіктерін қамтамасыз етеді. PINA тізімі, осы сөздің толық мағынасындағы тізімдері болып табылмайды. Оларға деген бұрылу, әр шығу порттарындағы физикалық оқуды қамтамасыз етеді. Баламалық түрде А порты, сонымен қатар аналогты сигналдарды енгізу үшін пайдаланылады.
Кесте 2
А - PORTA портының мәліметтер тізімі
Бит
7
6
5
4
3
2
1
0
$1В($ЗВ)
PORT
A7
PORT
A6
PORT
A5
PORT
A4
PORT
A3
PORT
A2
PORT
A1
PORT
АО
ОқуЖазу
RW
RAV
RW
RW
RW
RW
RW
RW
Алғашқы мәні
0
0
0
0
0
0
0
0
Кесте 3
А - DDRA портының мәліметтерді бағыттау тізімі
Бит
7
6
5
4
3
2
1
0
S1A (S3A)
DDA7
DDA6
DDA5
DDA4
DDA3
DDA2
DDA1
DDA0
ОқуЖазу
RW
RW
RW
RW
RW
RW
RW
RAV
Алғашқы мәні
0
0
0
0
0
0
0
0
Кесте 4
А - PINA портының кіріс мәліметтер тізімі
Бит
7
6
5
4
3
2
1
0
S19 (S39)
PINA7
PINA6
PINA5
PINA4
PIN АЗ
PINA2
PINA1
PINA0
ОқуЖазу
R
R
R
R
R
R
R
R
Алғашқы мәні
NA
NA
NA
NA
NA
NA
NA
NA
Қалған порттар (В, С және 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 вход подключение внешнего кварцевого
Кесте 7.
D порттар шығаруларының баламалы функциялары
Шыгыс
Альтернативті функция
PD0
RxD - қабылдағытың кіруі USART
PD1
TxD -- жібергіштің шығысы USART
PD2
INTO - сыртқы үздіксіз кіру 0
PD3
INT1 - сыртқы үздіксіз кіру 1
PD4
ОС1В - В таймердіесептеуішті салыстыру 1
PD5
ОС1А - А таймердіесептеуішті шығысты салыстыру 1
PD6
ЮР - таймердіесептеуішті 1 шығару
PD7
ОС2 - таймердіесептеуішті 2 салыстыру шығысы
мысал. Стендпен жұмыс істеуді үйрену үшін, бір жеті сегментті индикаторды басқару бойынша зертханалық жұмыстар орындалады. Төменде бағдарламалар мысалы келтірілген: SA6 (РА4 кірісіне 1 береміз) тумблерін қосқан кезде, HG4 индикаторында 1 саны жанады, SA7 тумблерін қосқан кезде
- 2 саны жанады. Егер батырмалар қосылмаған болса немесе екуіде бір уақытта қосылған болса - индикатор сөнеді. 8 кестеде, контроллердің кіріс және шығыстарының қосылу схемасы келтірілген.
Кесте 8
Контроллердің кіріс және шығыстарының қосылу схемасы
Кіріс :
SA6
РА4
SA7
РА5
Шығыс:
Сегменты A ... G
РС0...РС6
Индикатор HG4
РВО
Жеке тапсырмалар нұсқасы
Жеті сегментті HG2 индикаторында екі 2-разрядты сандар мен индикация нәтижелерінің қосылуын ұйымдасытру. Басқару блогында батырмалар мен тумблерлер орналасады. РА4...РА5 кірістерінде, бірінші қосылғыштың разрядтары бар, яғни 0-ден 3 - ке дейін сандарды теру мүмкіндігі бар. РА6...РА7 кірістерінде сәйкесінше 2-ші қосылғыштың разрядтары болады. Индикаторда, ондық форматтағы нәтижелер шығады, мәндер диапазоны 0 6
дейін болады.
4 ұяшықтар жадында 0-ден F-ке дейінгі сандар жазылған. Негізгі жағдайда HG4 индикаторында, бірінші ұяшықтағы он алтылық форматтағы сандар шығады, SB1 батырмасын басқан кезде - екінші ұяшықтың мәліметтері, SB2 батырмасын басқан кезде - үшінші ұяшықтың мәліметтері, SB 1 және SB2 екі батырмасын басқан кезде - төртінші ұяшықтың мәліметтері шығады.
SВ1 батырмасын басқан кезде 1 саны және VD4 жарық диоды жанады. SВ2 батырмасын басқан кезде 2 саны және VD5 жарық диоды жанады. SВ1 және SВ2 батырмаларын бірге басқан кезде 3 саны және VD6 жарық диоды жанады.
Оң 2 санын 3-ке көбейтіп және SB1 батырмасын басқан кезде HG1 индикаторында нәтижелер шығады. Батырманы жіберген кезде индикаторда 0 символы жанады.
Микроконтроллерді жұмысқа қосқан кезде HG3 индикаторда 0 саны жанады. SB1 батырмасын басып және оны жіберген кезде 1 саны жанады. SA6 тумблерін қосқан кезде VD8 жарық диоды жанады және HG3 индикаторында 8 саны жанады. SB2 батырмасын басқан кезде барлық жарық диодтары мен индикаторлар сөнеді.
3 және 4 екі сандарының қосылуын ұйымдастыру. Микроконтроллерді қосқан кезде VD5 жарық диоды жанады. SB1 батырмасын басқан кезде HG2 индикаторында бірінші қосынды жанады, ал SB2 батырмасын басқан кезде - екінші қосынды жанады, SA5 тумблерін қосқан кезде - нәтиже шығады.
16 ұяшықты жадылы массивте, 0 - ден F-ке дейінгі он алтылық сандар орналасады. Массивте тек бір сан бар, ол бірнеше рет қайталанады. Осы сан қандай екенін және неше рет қайталанатынын табу керек. SB1 батырмасын басқан кезде HG1 индикаторында қайталанатын сан жанады. SB2 батырмасын басқан кезде HG2 жеті сегментті индикаторында, оның қайталанатын саны шығады. Егер қайталанатын сан болмаса, онда SB1 батырмасын басқан кезде HG1 индикаторында Ж (жоқ) белгісі жанады.
Микроконтроллерді қосқан кезде HG2 индикаторында 0 жанады. Он алтылық түрдегі HG2 индикаторында SB1 батырмасын басып,санның есебін және индикациясын ұйымдастыру, яғни 0-ден F-ке дейін және ара қарай қайталау. Батырмаларды басу, VD5 жарық диодының жануымен жүргізіледі.
№3 жұмыс. AVRмикроконтроллерінде динамикалық индикацияны жүзеге асыру
Жұмыстың мақсаты:
Динамикалық индикацияның көмегімен жеті сегментті индикаторды басқаруды зерттеу.
Жұмысқа түсіндірме:
Бұл жұмыс алдыңғы жұмыстың логикалық жалғасы болып табылады. Мұндағы тапсырмалар күрделендірілілген және бағдарлдамалаық ұстаулардың көмегімен жүзеге асырылған динамикалық индикация қолданылады.
1 мысал. HG2...HG4 индикаторларында 123 саны шығарылған. Кірістерді байланыстыру схемасы 1 кестеде келтірілген.
Кесте 1.
HG2...HG4 индикаторларында кірістерді байланыстыру схемасы
Шығыс:
Жоқ
Бар
Шығыс:
Сегменты A . . . G
PC0...PC7
Индикаторы
HG2
PB2
HG3
PB1
HG4
РВО
Жеке тапсырмалар нұсқалары:
Қоректі бергенде және SB1 батырмасын басқанда HG1 және HG2 индикаторларында 7 және 5 саны жанады. SB2 батырмасын басқанда индикаторларда 5 және 7 саны жанады және VD4 және VD6 жарық диодтары жанады. SA6 (Тастау бұйрығына еліктеу) тумблерін қосқан кезде, барлық индикаторлар мен жарық диодтары сөнеді.
Қоректі бергенде және SB1 батырмасын басқанда VD4 және VD6 жарық диодтары жанады және HG1 және HG2 индикаторларында сәйкесінше 0 және 1 саны жанады. SA7 тумблерін қосқан кезде VD4 және VD6 жарық диодтары сөнеді, VD5 жарық диоды жанады және HG1 және HG2 индикаторларында сәйкесінше 8 және 9 саны жанады. SA7-ні өшірген кезде схема бастапқы қалпына келеді.
Бастапқы қалпы - VD1 жарық диоды жанады, ал HG1 және HG2 индикаторларында 01 саны жанады, яғни жарық диодының номері. SB1 батырмасын басып және жібергенде VD1 жарық диоды сөнеді, ал VD2 жарық диоды жанады, яғни сәуле таратуы оңға қарай жылжиды. Индикаторларда 02 саны жанады. SB1 батырмасын басқанда сәуле таратуы оңға қарай жылжып отырады, яғни VD1, VD2, VD3 бақыланады және процесс ары қарай қайталанады. Осы кезде индикаторларда сәйкесінше 01, 02, 03, 01, 02 және т.б. сандары пайда болады.
Бағдарламалық ұстаудың көмегімен қума отты ұйымдастыру: HG1 және HG2 индикаторларының сегменттері бойыныша. Сағат тілімен жүргенде сегменттердің алмасуы келсі: а, Ь, с, d, е, f және т.б. SA7 тумблері қосылып тұрған кезде, қума оты сағат тілі бойынша жүзеге асырылады, ал өшірулі кезінде - сағат тіліне қарсы болады. SA8 тумблері қосылып тұрған кезде, қума оты HG1 индикаторының сегменттері бойынша жүзеге асырылады, ал өшірулі кезінде - HG2 индикаторының сегменттері бойынша.
SB1 және SB2 батырмаларын басып, сандар есебін ұйымдастыру. Қоректі берген кезде HG1 және HG2 индикаторларында 00 саны жанады. SB1 батырмасын қайта басқанда индикатордағы сандар бірге артады. Есебі 20 дейін мүмкін. Егер есеп 20 санына жетсе, онда ары қарай SB1 батырмасын басқанда сандар өзгермейді. SB2 батырмасын қайта басқанда индикатордағы сандар бірге кемиді. 00 санына жеткеннен кейін ары қарай SB2 батырмасын басқанда схемаға әсер етпейді.
SB1 батырмасын басып, сандар есебін ұйымдастыру. Қоректі берген кезде барлық жарық диодтары мен индикаторлар сөнеді. SB1 батырмасын қайта басқанда индикатордағы сандар бірге артады. 10-нан кейін батырманы басқанда VD1 жарық диоды жанады, HG1 индикаторында 1 саны жанады. Екінші ондықтан кейін батырманы басқан кезде қосымша VD2 жарық диоды жанады, және HG2 индикаторында 2 саны жанады. Ары қарай SB2 батырмасын басқанда схемаға әсер етпейді. SB2 батырмасын басқанда барлық жарық диодтары мен индикаторлар сөнеді, және схема қалыпты жағдайға келеді.
HG1 және HG2 индикаторларында 33 санының сәуле таратуының қалыптасуын жүзеге асыру. Қоректі берген кезде барлық жарық диодтары мен индикаторлар сөнеді. SA9 тумблерін қосулы тұрған кезде, жүйелі түрде HG1 және HG2 индикаторларының сегменттері қосылады: а, Ь, с, d,
g. Осыдан кейін VD8 жарық диоды қосылады. Индикаторда 33 саны жанады. SA9 тумблерін сөндірген кезде жүйелі түрде HG1 және HG2 индикаторларының сегменттері сөнеді: g, d, с, b, а.
№ 4 жұмыс. AVR микробақылаушы таймер-есептеуішін үйрену
Жұмыстың мақсаты:
Программалаудың дағдылау практикасы н алу, Atmega 8535
микробақылаушы таймер есептеу ішінің міндеттерін үйрену.
Жұмысты анықтау:
Барлық мағлұмат
ATmega8535 микробақылаушылары үш та ймер-есептеуішін иемденеді.
Олардың екеуі ТО және Т2 сегізразрядты, ал Т1 - 16-разрядты.
ТО және Т1 таймері барлық 10-разрядты алдын-ала бөлушіні қолданады.
Олар уақыт аралығын құру қондырғысы ретінде қолданылуы мүмкін(таймерлер) немесе РВО (ТО) және РВ1 (Т1) сәйкес сыртқы қорытындының жағдайы бойынша қосылатын сыртқы оқиғалардың есептегіші ретінде қолданылуы мүмкін.
Т2 таймері өзінің 10-разрядты алдын-ала бөлушісін иемденеді.Бұдан өзге, РС6 (T0SC1) қорытындысы дабылыментәсілденуі мүмкін, бұл сағат ретінде нақты уақытты қолдануға мүмкіндік береді. Олай болса, 32768 Гц жиілігімен кварцтық резонаторы РС6 (T0SC1) және РС7 (T0SC2) қорытындылары аралығында бірігеді.
Барлық таймерлер кең-импульсивті (ШИМ) модуляция тәртібін жүзеге асырады.
ATmega8535 микробақылаушыларынбасқару үшін таймерді тоқтатуды және TIMSK таймересептегішімен арнайы регистрлі маскасын тоқтатады.
Кесте 1.
TIMSK таймерін тоқтатуға арналған регистр маскасы
Бит
7
6
5
4
3
2
1
0
$39($59)
OCIE2
TOIE2
TICIE1
OCIE1A
OCIE1B
TOIE1
OCIE2
TOIE0
ОқулықЖазу
RW
RW
RW
RW
RW
RW
RW
RW
Бастапқы мәні
0
0
0
0
0
0
0
0
Бит 7 - OCIE2: Т2 таймерімен түйісу арқылы үзілуіне рұқсат ету.
OСIE2 қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге Т2 түйсіуімен үзілуіне рұқсат ету мазмұны регистрін Т2-нің салыстыруы мен жағдайын қарау.Орындалу ($003 векторымен) үзілісіне сәйкес, егертаймер
есептеуші2 жағдайы мен салыстыруы регистр мазмұнын салыстыру жанындағы түйісуі болады. Бит 6 - TOIE2: Т2 асыра толтыруымен рұқсатын үзу. Т2 түйісу жалауы орнатыла TIFROCF2 регистр жалауы үзіледі.
TOIE2 қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге Т2 асыра толтыруымен үзілуіне рұқсат ету. Орындалу ($004 векторымен) үзілісіне сәйкес, егер таймері есептеуіші 2 асыра толтыруы болады. TIFR регистр жалауында Т2 асыра толтыру TOV2 жалауы орнатылады.
Бит 5 - TICIE1: Т1 таймерін қармау арқылы үзілуіне рұқсат ету.
T1CIE1қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге Т1 қармауымен үзуін рұқсат ету. Орындалу ($005 векторымен) үзілісіне сәйкес, егер
PD6 (ICP) қорытындысымен қармау жіберілуі болады.TIFR регистр жалауында Т2 асыра толтыру ICF1 жалауы орнатылады.
Бит 4-OCIE1A: Разрешение прерывания по совпадению регистра А таймера Т1 OСIE2 қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге таймері есептеуіші1 жағдайында А регистрініңтүйісуімен үзу рұқсат етіледі. Орындалу ($006 векторымен) үзілуіне сәйкес, егер А регистрінің түйісу мазмұны таймеріесептеуші1-дің жағдайымен ш ығу сәйкестігі болса. TIFR регистр
жалауында Т1 асыра толтыру ОCFIА жалауы орнатылады.
Бит 3 - OCIE1B: Т1 таймерімен В регистрінің түйісу арқылы үзілуіне рұқсат
ету.
QСIE1В қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге В
регистрінің түйсіуімен үзілуіне рұқсат етутаймеріесептеуші1жағдайын қарау.Орындалу ($007 векторымен) үзілісіне сәйкес, егер В регистрінің түйісу мазмұны таймеріесептеуші1-дің жағдайымен шығу сәйкестігі болса. TIFRрегистр жалауында В регистрінің Т1 таймерімен түйісуі асыра толтыру ОCFIВ жалауы орнатылады.
Бит 2 - TOIE1: Т1 таймерін асыра толтыру арқылы үзілуіне рұқсат ету.
ТОIE1 қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге таймері есептеуіші1 жағдайында А регистрінің асыра толтыруымен үзілуі рұқсат етіледі. Орындалу ($008 векторымен) үзілуіне сәйкес, егер таймеріесептеуші1 асыра толтыруы болса. TIFR регистр жалауында Т1 таймері асыра толтыруында TOV1 жалауы орнатылады.
Бит 1 - OCIE0: Т0 таймерін түйісу арқылы үзілуіне рұқсат ету.
OСIE0 қондыру биті жанындағы және қондыру биті I регистрлі мәртебеге ТО жағдайымен салыстыруы регистрдің мазмұнымен түйісуімен үзілуі рұқсат етіледі.Орындалу ($013 векторымен) үзілуіне сәйкес, егер ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz