ВИСНОВКИ
Для реалізації поставленої задачі в дипломній роботі:
– проведено аналіз інтерфейсу програми AVR Studio 4;
– розглянуті можливості програми AVR Studio 4 для реалізації діагностичних завдань;
– розроблено алгоритми у відповідності з поставленими завдання діагностики зовнішніх пристрої та внутрішніх компонентів МК AVR;
– розроблено діагностичну програму звернення до портів вводу-виводу МК AVR для керування зовнішніми пристроями;
– розроблено діагностичну програму додавання та віднімання двійкових та двійково-десяткових чисел для МК AVR з метою перевірки їх виконання;
– здійснено компіляцію, налаштування та завантаження
діагностичних програм в пам'ять МК AVR.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Баранов В.Н. Применение микроконтроллеров AVR: схемы, алгоритмы, программы: - М.: ИП РадиоСофт, 2006. - 300с.
2. Белов А.В. Самоучитель разработчика устройств на микроконтролерах AVR: - Санкт-Петербург.: Наука и техника, 2010. - 400с.
. Вострикова З. П. Программирование на языке ассемблера ЕС ЭВМ. -М.: Наука, - 1985.
. Голубцов М.В. Микроконтроллеры AVR от простого к сложному: - М.: Наука и техника, 2009. - 300с.
. Гребнев В.В. Микроконтроллеры семейства AVR фирмы Atmel: - М.: ИП РадиоСофт, 2002. - 250с.
. Гумеров Р.И. Практикум по микропроцессорам. Часть первая: микроконтроллеры AVR. Руководство: - Казань.: КГУ, 2009. - 37 с.
. Евстифеев А.В. Микроконтроллеры AVR семейства Mega. Руководство пользователя: - М.: МГТУ им. Н.Э. Баумана, 2010 - 325с.
. Керб Л.П. Основи охорони праці: -К, 2003. - 250с.
. Королев Н., Королев Д. Программирование в среде AVR Studio: - М.: Компоненты и технологи, 2004. - 15-20с.
. Королев Н., Королев Д. AVR-микроконтроллеры второго поколения: средcтва разработчика: - М.: Компоненты и технологии, 2003, № 7 - 12-15с.
. Королев Н., Королев Д. AVR-микроконтроллеры второго поколения: новые аппаратные возможности: - М.: Компоненты и технологии, 2003, №4, 7-10с.
. Королев Н., Королев Д. AVR-микроконтроллеры: большое в малом: - М.: Схемотехника, 2001, №5, 21-37с.
. Королев Н., Королев Д. AVR-микроконтроллеры: программные средства: - М.: Компоненты и технологии, 2000, № 4, 4-10с.
. Королев Н., Королев Д. AVR: аппаратные средства разработчика: - М.: Компоненты и технологии, 1999, № 1, 17-26с.
. Королев Н., Королев Д. RISC- микроконтроллеры фирмы ATMEL : - М.: Chip-News 1998, №2, 11-16с.
. Королев Н., Королев Д. AVR: новые 8-разрядные RISC-микроконтроллеры фирмы ATMEL: - М.: Микропроцессор Ревю, 1998, №1, 9-16с.
. Мортон Д. Микроконтроллеры AVR. Вводный курс: -М.: Издательский дом «Додэка-XXI», 2006. - 273с.
. Пирогов В. Ассемблер и дизассемблирование: - СПб.: БХВ-Петербург, 2006. - 464с.
. Предко М. Руководство по микроконтроллерам: - М.: Наука и техника, 2001.- 275с.
. Трамперт В. AVR-RISС микроконтроллеры: - К.: МК- Пресс, 2006. -464с.
21. Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих: - М.: Изд-во МГТУ им. Н.Э. Баумана, 2007. - 240с.
22. Юров В., Хорошенко С. Assembler: учебный курс: СПб.: - Питер, 2000. - 672с.
23. Software and Technical Library 2004/ 8-bit AVR microcontroller with 8K bytes In-System Programmable Flash ATmega8515/ Atmel Corporation, 2004.
24. www.atmel.com
. www.controllersystems.com/programmisapr/programmirovanie-avr-avrstudio.html
ДОДАТОК А
Програма для перевірки операцій додавання та віднімання двійково-десяткових однобайтних чисел в середовищі AVR Studio 4
;*************************************************************
; Тестова програма додавання та віднімання однобайтних операндів
;*************************************************************
.include "8515def.inc"
.def BCDa=r30
.def BCDb=r31
.def tempadd=r29
.def temp=r28
.org 0INIT
;*************************************************************
; Підпрограма додавання двійково-десяткових упакованих беззнакових чисел
; BCDa та BCDb. Результат повертається в BCDa , перенос - в BCDb
;*************************************************************:
ldi tempadd,$66 ;
add BCDa,BCDb ;
add BCDa, tempaddBCDbadd_0add_1_0: ldi BCDb,1 ; встановити вихідний перенос
add_1: brhs add_2 ; якщо міжтетрадний перенос дорівнює 0,BCDa,$06 ; LSD = LSD - 6
add_2: sbrs BCDb,0 ; якщо вихідний перенос дорівнює 0,
subi BCDa,$60 ; MSD = MSD - 6
ret
;*************************************************************
; Підпрограма віднімання двійково-десяткових упакованих беззнакових чисел
; BCDa та BCDb (BCDa - BCDb).
; Результат повертається BCDa, знак різниці - в BCDb
;************************************************************* BCDsub:
sub BCDa,BCDb ;BCDb ;sub_0 ; якщо біт запозичення дорівнює 1,
ldi BCDb,1 ; зберігати його
sub_0: brhc sub_1 ; якщо міжтетрадний заїм дорівнює 1,
subi BCDa,$06 ; LSD = LSD - 6_1: sbrc BCDb,0 ; якщо збережений біт запозичення
;дорівнює 0,; вийти,BCDa,$60 ; інакше відняти $60
ret ;
;*************************************************************
; Основна програма
;*************************************************************: ldi temp,low(RAMEND)
out SPL,temp
ldi temp,high(RAMEND)SPH,temp
;*************************************************************
; Додавання двійкове
;*************************************************************: ldi BCDa,51 ; в r30 - двійкове число 33BCDb,-79BCDa,BCDb ; Результат: BCDa = $E4
;*************************************************************
; Віднімання двійкове
;*************************************************************BCDa,72BCDb,28
sub BCDa,BCDb ; Результат: BCDa = $2C
;*************************************************************
; Додавання двійково-десяткове без знака
;*************************************************************BCDa,$51BCDb,$79BCDadd ; Результат: BCDa + BCDb = $130
;*************************************************************
; Віднімання двійково-десяткове без знака
;*************************************************************BCDa,$72BCDb,$28BCDsub ; Результат: BCDb = $00 - додатній, BCDa = 44BCDa,$00BCDb,$90BCDsub ; Результат: BCDb = $01 - від’ємний,
; BCDa = 10
rjmp loop
; end program
;*************************************************************
Додаток Б
Програма, яка показує процес програмування і читання пам’яті EEPROM МК AT90S8515
|
.include "8515def.inc" |
|
|
||
|
.equ AdrWr=$100 |
; Адреса програмування |
|
||
|
.equ AdrRd=$100 |
; Адреса читання |
|
||
|
.def EEdrd=r0 |
; Байт, що прочитали з пам’яті EEPROM |
|||
|
.def EEdwr=r16 |
; Байт, що належить записати в пам’ять EEPROM |
|||
|
.def Temp=r17 |
; Допоміжний тимчасовий регистр зберігання |
|||
|
|
|
|||
|
RESET: |
|
|
||
|
rjmp Initial |
; Перехід до ініціалізації |
|||
|
|
|
|||
|
EEWrite: |
; Підпрограма "Запис в EEPROM" |
|||
|
sbic |
EECR,EEWE |
;Якщо EEWE не лог.0, |
||
|
rjmp |
EEWrite |
;то чекати далі |
||
|
ldi |
Temp,High(AdrWr) |
;Старший байт адреси ;запису в EEPROM |
||
|
out |
EEARH,Temp |
; В регістр адреси ; (старша частина) |
||
|
ldi |
Temp,Low(AdrWr) |
; Молодший байт адреси ; запису в EEPROM |
||
|
out |
EEARL,Temp |
; В регістр адреси ; (молодша частина) |
||
|
out |
EEDR,EEdwr |
; Байт даних - в регістр ; даних |
||
|
sbi |
EECR,EEMWE |
; Розряд EEMWE ; дозволяє програмування |
||
|
sbi |
EECR,EEWE |
; Розряд EEME: встановлено ; початок програмування. ; Команда виконується ; протягом 4-х тактів, ; оскільки затримка ЦП ; складає 2 такти |
||
|
ret |
|
|
||
|
|
|
|
||
|
EERead: |
; Підпрограма "Читання EEPROM" |
|||
|
sbic |
EECR,EEWE |
|
||
|
rjmp |
EERead |
|
||
|
ldi |
Temp,High(AdrRd) |
|
||
|
out |
EEARH,Temp |
|
||
|
ldi |
Temp,Low(AdrRd) |
|
||
|
out |
EEARL,Temp |
|
||
|
sbi |
EECR,EERE |
|
||
|
in |
EEdrd,EEDR |
|
||
|
ret |
|
|
||
|
|
|
|
||
|
Initial: |
; Підпрограмам ініціалізації |
|||
|
ldi |
Temp,Low(RAMEND) |
|
||
|
out |
SPL,Temp |
|
||
|
ldi |
Temp,High(RAMEND) |
SPH,Temp |
; Встановити початок стеку |
|
|
ldi |
Temp,$ff |
; Напрям передачі - вивід |
||
|
out |
DDRA,Temp |
; В регістр передачі даних |
||
|
ldi |
Temp,$00 |
; Напрям передачі - ввід |
||
|
out |
DDRC,Temp |
; В регістр передачі даних |
||
|
out |
PORTC,Temp |
; Обрати порт С |
||
|
in |
EEdwr,PinC |
; Загрузити байт з порту С |
||
|
rcall |
EEWrite |
; Записуємо байт за адресою $100 |
||
|
rcall |
EERead |
; Читаємо байт даних за ; адресою $101 |
||
|
out |
PortA,EEdrd |
|
||
|
|
|
|
||
|
Endlos: |
|
|
||
|
rjmp Endlos |
|
|
||
Відгук
керівника дипломного проекту освітньо-кваліфікаційного рівня “спеціаліст” виконаного на тему: «Відмовостійкі операційні системи реального часу»
студентом Мірошником Сергієм Сергійовичем
Кваліфікаційна робота присвячена актуальній проблемі, а саме: підтримка відмовостійких обчислювальних систем засобами операційних систем реального часу.
В диплому проекті розкриті такі теми, як механізми операційних систем реального часу, їх класи, концепція побудови і роботи системи з максимальним рангом відмовостійкості.
В ході роботи над темою студент Мірошник С.С. виявив достатній професійний рівень, а також спроможність самостійно вирішувати поставлені завдання.
Кваліфікаційна робота студента Мірошника С.С. повністю відповідає виданому технічному завданню. Тема роботи розкрита глибоко та повністю. Пояснювальна записка написана належною технічною мовою, графічні матеріали оформлені якісно, у відповідності із вимогами ЄСКД.
Вважаю, що в цілому кваліфікаційну роботу виконано на достатньо високому технічному рівні і відповідає необхідним вимогам. Автор роботи Мірошник С.С, заслуговує присвоєння кваліфікаційно-освітнього рівня “спеціаліст спеціалізованих комп’ютерних систем”.
Керівник дипломного проекту
д.т.н., професор кафедри СКС ___________ Гроль В.В.
(посада, вчені звання, ступінь) (підпис) (ініціали, прізвище)