Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Будова мікроконтролера at90s2313:, огляд алгоритмів,схемних та програмних рішень поставленої задачі↑ Стр 1 из 4Следующая ⇒ Содержание книги
Поиск на нашем сайте
КУРСОВА РОБОТА
з дисципліни «Обчислювальна техніка і програмування» на тему: «Розробка програми для мікропроцесорного пристрою»
Студента 3 курсу 1ЕМп-10б групи напряму підготовки 6.050702 Електромеханіка спеціальності Електромеханічні системи автоматизації та електропривод Лаури Я.П. (прізвище та ініціали) Керівник ас. каф. ЕМСАПТ (посада, вчене звання) ас. Шевчук Ю. В. (науковий ступінь, прізвище та ініціали) Національна шкала ________________ Кількість балів: _______ Оцінка: ECTS ___
Члени комісії
м. Вінниця – 2012 рік АНОТАЦІЯ Лаура Я.П. „ Розробка програми для мікропроцесорного пристрою ” Курсова робота. Вінниця: ВНТУ. 2012 – 48 с. Бібліогр. 7. Іл.: 13.Табл.:2. В даному курсовому проекті проведено розробку та розрахунок елементів мікропроцесорного пристрою. Здійснено розробку програми роботи мікроконтролера на мові програмування С і Assembler, а працездатність пристрою засвідчена моделюванням розробленої схеми в ProteusVSM. Ключові слова: електроніка, перемикач, логічний елемент. АННОТАЦИЯ
ЛаураЯ.П."Разработка программы для микропроцессорного устройства" Курсовая работа.Винница:ВНТУ.2012 -48 с.Библиогр.7.Ил.:13.Табл.: 2. В данном курсовом проекте будет проведена разработка и расчет элементов микропроцессорного устройства. Осуществлена разработка программы работы микроконтроллера на языке программирования С и Assembler, а работоспособность устройства заверенная моделированием разработанной схемы в Proteus VSM. Ключевыеслова: электроника, переключатель, логический элемент. ANNOTATION
LauraYP " Developing software for microprocessor devise" Coursework.Vinnitsa:NTB.2012 -48 sec.Refs.7.Il.:13.Tabl. 2.In this course project carried out the design and calculation of the elements microprocessor. Carried out to develop the program of the microcontroller in the programming language C and Assembler, and performance certified device modeling scheme developed in Proteus VSM. Keywords: electronics, switchlogic element. ЗМІСТ
Вступ…………………………………………………………………………………4 1. БУДОВА МІКРОКОНТРОЛЕРА AT90S2313:, ОГЛЯД АЛГОРИТМІВ,СХЕМНИХ ТА ПРОГРАМНИХ РІШЕНЬ ПОСТАВЛЕНОЇ ЗАДАЧІ. 1.1 Огляд архітектури AT90S2313………………………………………………...5 1.2 Будова мікроконтролера AT90S2313…………………………………..…….....6 1.3 Особливості мікроконтролера AT90S2313……………………………….......25 2. РОЗРОБКА СХЕМ СТРУКТУРНОЇ,ПРИНЦИПОВОЇ ТА АЛГОРИТМУ ПРОГРАМИ: 2.1 Структурна схема……………………………………………………………28 2.2Принципова схема…………………………………………………………....29 2.3 Алгоритм програми………………………………………………………….30 3. РОЗРОБКА ПРОГРАМИ НА МОВІ ПРОГРАМУВАННЯ ASSEMBLER………………………………………………………………………..31 4. РОЗРОБКА ПРОГРАМИ НА МОВІ ПРОГРАМУВАННЯ С І МОДЕЛЮВАННЯ В PROTEUSVSM ……………………………..……………...34 ВИСНОВКИ……………………………………………………………...................36 ПЕРЕЛІК ПОСИЛАНЬ……………………………………….……………………37 Додаток А Програма на мові програмування Assembler………….…………....38 Додаток Б Програма на мові програмування С..…………………..………….....42 ВСТУП Мікропроцесор— інтегральна схема, яка виконує функції центрального процесора (ЦП) або спеціалізованого процесора. Сьогодні слово мікропроцесор є практично повним синонімом слова процесор, оскільки функціональний блок, що на ранніх стадіях розвитку обчислювальної техніки займали цілу плату чи навіть шафу, тепер вміщається в одну невеличку інтегральну схему із сотнями мільйонів транзисторів всередині. З середини 1980-х мікропроцесори витіснили інші види ЦП. Проте загалом це не так: центральні процесорні пристрої деяких суперкомп'ютерів навіть сьогодні є складними комплексами великих (ВІС) і надвеликих (НВІС) інтегральних схем. В часи стрімкого розвитку науки і техніки, дуже важливе місце в розвитку підприємств є автоматизація його основних і допоміжних ланок виробництва. В більшості автоматизованих систем головну роль грають мікропроцесори і їх програмування. Вони використовуються в схемотехніці,в системах керування електричних пристроїв,комп’ютерні техніці. В наш час не можливо уявити наше життя без комп’ютерів важко уявити. Вони використовуються у сферах обслуговування,розваг,будівництва,електротехнічних рішеннях. З часу появи першого мікропроцесора пройшло вже більше 50-ти років,вони вдосконалювалися,розроблялися нові моделі,які більше підходять для одного чи іншого пристрою. В дані курсові роботі буде йтися про мікропроцесор на розробці мікроконтролера AT90S2313. Його будову,принцип дії, застосування. В англійській мові слово процесор (англ.processor) загалом означає функціональний блок пристрою або системи (не обов'язково в електроніці), який виконує певний процес. В українській мові слова процесор, мікропроцесор закріпилися виключно для позначення електронної мікросхеми, що обробляє дані методом виконання команд із певного набору команд процесора. Першим хто подав ідею універсального обчислювального процесора був Гофф Тед, який розробив архітектуру першого мікропроцесора. Практичну реалізацію здійснив Фредеріко Фаґґін. Огляд архітектури AT90S2313 Регістровий файл швидкого доступу містить 32 8-розрядних регістра загального призначення, доступ до яких здійснюється за один машинний цикл. Тому за один машинний цикл виповнюється одна операція АЛП. Два операнда вибираються з реєстрового файлу ->виконується операція ->результат її записується в регістровий файл - все за один машинний цикл. Шість з 32 регістрів можна використовувати як три 16-розрядних покажчика в адресному просторі даних, що дає можливість використовувати високоефективну адресну арифметику (16-розрядні регістри X, Y і Z). Один з трьох адресних покажчиків (регістр Z) можна використовувати для адресації таблиць в пам'яті програм. АЛП підтримує арифметичні і логічні операції з регістрами, з константами і регістрами. Операції над окремими регістрами також виконуються в АЛП. Крім реєстрових операцій, для роботи з реєстрового файлу можуть використовуватися доступні режими адресації, оскільки регістровий файл займає адреси $00 - $1F в області даних, звертатися до них можна як до комірок пам'яті. Простір введення складається з 64 адрес для периферійних функцій процесора, таких як керуючі регістри, таймери/лічильники і інші. Доступ до простору введення/виводу може здійснюватися безпосередньо, як до комірок пам'яті розташованих після реєстрового файлу ($20 - $5F). Процесори AVR побудовані за гарвардської архітектури з роздільними областями пам'яті програм і даних. Доступ до пам'яті програм здійснюється за допомогою однорівневого буфера. Під час виконання команди, наступна вибирається з пам'яті програм. Подібна концепція дає можливість виконувати по одній команді за кожен машинний цикл. Пам'ять програм - це внутрішньо системназавантажувальна флеш-пам'ять. За допомогою команд відносних переходів і виклику підпрограм здійснюється доступ до всього адресного простору. Велика частина команд AVR має розмір 16-розрядів, одне слово. Кожен адрес в пам'яті програм містить одну 16 - або 32-розрядну команду. При обробці переривань і виклик підпрограм адреса повернення запам'ятовується в стеку. Стек розміщується в пам'яті даних загального призначення, відповідно розмір стека обмежений тільки розміром доступної пам'яті даних та її використанням у програмі. Всі програми користувача повинні ініціалізувати покажчик стека (SP) в програмі виконуваної після скидання (до того як викликаються підпрограми і дозволяються переривання). 8-розрядний покажчик стека доступний для читання/запису в області введення/виводу. Доступ до 128 байтів статичного ОЗУ, регістрового файлу і регістрів вводу/виводу здійснюється за допомогою п'яти доступних режимів адресації підтримуваних архітектурою AVR. Весь простір пам'яті AVR є лінійним і безперервним. Гнучкий модуль переривань має власний керуючий регістр у просторі введення/виводу, і мітку глобального дозволу переривань у регістрі стану. Кожному перериванню призначений свій вектор у початковій області пам'яті програм. Різні переривання мають пріоритет у відповідності з розташуванням їх векторів. За молодшими адресами розташовані вектори з великим пріоритетом.
Статичне ОЗУ даних На рисунку 1.4 показана організація пам'яті даних в AT90S2313:
Рисунок 1.4 - Організація пам'яті даних в AT90S2313
224 комірки пам'яті включають в себе регістровий файл, пам'ять вводу / виводу і статичне ОЗУ даних. Перші 96 адрес використовуються для реєстрового файлу і пам'яті вводу / виводу, наступні 128 - для ОЗУ даних. При зверненні до пам'яті використовуються п'ять різних режимів адресації: прямий, безпосередній зі зміщенням, безпосередній, безпосередній з попередніми декрементом і безпосередній з постінкрементом. Регістри R26.. R31 реєстрового файлу використовуються як покажчики для безпосередньої адресації. Пряма адресація має доступ до всієї пам'яті даних. Безпосередня адресація зі зміщенням використовується для доступудо 63 комірок, базовий адрес яких задається вмістом регістрів Y або Z. Для безпосередньої адресації з інкрементом або декрементом адреси використовуються адресні регістри X, Y і Z. За допомогою будь-якого з цих режимів виробляється доступ до всіх 32 регістрів загального призначення, 64 регістрів введення / виводу і 128 комірок ОЗУ. Покажчик стека SP Цей 8-розрядний регістр з адресою $3D ($5D) зберігає покажчик стека процесора AT90S2313. 8-ми розрядів достатньо, для адресації ОЗУ в межах $60 - $DF.
Таблиця 1.1 - Біти стека
Покажчик стека вказує на область пам'яті в якій розташований стік виклику підпрограм і переривань. Область стека в ОЗУ повинна бути задана до того, як відбудеться будь-який виклик підпрограми, чи будуть дозволені переривання. Покажчик стека зменшується на 1 при запису даних у стек командою PUSH і зменшується на 2 при виклику підпрограми командою CALL, чи обробці переривання. Покажчик стека збільшується на 1 при виборі даних з стека командою POP і збільшується на 2 при виконанні команд повернення з підпрограми або обробника переривання (RET або RETI).
Сторожовий таймер Сторожовий таймер працює від окремого вбудованого генератора працюючого на частоті 1 МГц (це типове значення частоти для живлення 5В). Керуючи попередніми дільником сторожового таймера можна задавати інтервал скидання таймера від 16 до 2048 періодів. Частота вбудованого RC генератора залежить від напруги живлення процесора. Команда WDR скидає сторожовий таймер. Для роботи сторожового таймера можна вибрати одне з 8-ми значень частоти, що дозволяє в широких межах змінювати час між виконанням команди WDR і скиданням процесора. При відпрацюванні періоду роботи сторожового таймера, якщо не надійшла команда WDR, AT90S2313 скидається, виконання програми триває з вектора скидання. Для запобігання небажаного відключення сторожового таймера, для його заборони повинна виконуватися певна послідовність, яка описана при розгляді регістра WDTCR.
Рисунок 1.5 - Регістри керування сторожовим таймером
Біти 7.. 5 - зарезервовані. У AT90S2313 ці біти зарезервовані і завжди читаються як 0. Біт 4 - WDTOE - дозвіл вимикання сторожового таймера. При очищенні біта WDE цей біт повинен бути встановлений (1). Інакше, робота сторожового таймера не припиняється. Через чотири такту після установки цього біта, він апаратно скидається. Біт 3 - WDE-дозвіл сторожового таймера. Якщо біт встановлено (1), робота сторожового таймера дозволена, якщо біт скинуто - заборонена. Скидання біта здійснюється тільки в тому випадку, якщо біт WDTOE встановлений в 1. Для заборони включеного сторожового таймера повинна виконуватися наступна процедура: 1. Однією командою записати 1 в WDTOE і WDE. Одиниця в WDE повинна записуватися навіть у тому випадку якщо цей біт був встановлений перед початком процедури зупинки таймера. 2. Протягом наступних чотирьох тактів процесора необхідно записати в WDE логічний 0, при цьому робота сторожового таймера забороняється. Біти 2.. 0 - WDP2.. 0 - Біти попереднього дільника сторожового таймера. Якщо робота сторожового таймера дозволена, ці біти визначають попередній коефіцієнт розподілу для сторожового таймера. У таблиці наведені різні значення установок попереднього дільника і відповідні їм тимчасові інтервали для напруги живлення Vcc = 5V.
Таблиця1.2 - Установок дільника сторожового таймера
Аналоговий компаратор Аналоговий компаратор порівнює вхідну напругу на позитивному вході PB0 (AIN0) і негативному вході PB1 (AIN1). Коли напруга на позитивному вході більше напруги на негативному, встановлюється біт ACO (Analog Comparator Output). Вихід аналогового компаратора можна встановити на роботу з функцією захоплення Таймера0/Таймера1. Крім того, компаратор може викликати своє переривання. Користувач може встановити спрацьовування переривання по наростаючому або знижувальному фронту, або з переключення.
ПрограмуванняFlаshпам'яті Завантажити команду "програмування флеш пам'яті" 1. Встановити XA1, XA0 в '10 '. Це дозволяє завантаження команди. 2. Встановити BS в 0 3. Встановити PB в '0001 0000 '. Це команда програмування флеш пам'яті 4. Подати позитивний імпульс на XTAL1. При цьому завантажується команда. Завантажити молодший байт адреси: 1. Встановити XA1, XA0 в '00 '. Це дозволяє завантаження адреси. 2. Встановити BS в 0. Це вибирає молодший байт адреси. 3. Встановити на PB молодший байт адреси. 4. Подати позитивний імпульс на XTAL1. При цьому завантажується молодший байт адреси. Завантажити старший байт адреси: 1. Встановити XA1, XA0 в '00 '. Це дозволяє завантаження адреси. 2. Встановити BS в 1. Це вибирає старший байт адреси. 3. Встановити на PB старший байт адреси. ($00.. $01) 4. Подати позитивний імпульс на XTAL1. При цьому завантажується старший байт адреси. Завантажити байт даних 1. Встановити XA1, XA0 в '01 '. Це дозволяє завантаження даних. 2. Встановити на PB молодший байт даних. 3. Подати позитивний імпульс на XTAL1. При цьому завантажується молодший байт даних. Запис молодшого байта даних: 1. Встановити BS в '0 '. Це вибирає молодший байт даних 2. Подати на WR негативний імпульс. Це ініціює програмування байта. RDY / BSY переходить в низький стан. 3. Перед програмуванням наступного байта почекати, поки RDY / BSY перейде у високий стан. Завантажити байт даних: 1. Встановити XA1, XA0 в '01 '. Це дозволяє завантаження даних. 2. Встановити на PB старший байт даних. 3. Подати позитивний імпульс на XTAL1. При цьому завантажується старший байт даних. Запис старшого байта даних. 1. Встановити BS в '1 '. Це вибирає старший байт даних 2. Подати на WR негативний імпульс. Це ініціює програмування байта. RDY / BSY переходить в низький стан. 3. Перед програмуванням наступного байта почекати, поки RDY / BSY перейде у високий стан. Завантажені адреси і дані зберігаються в пристрої після програмування, при цьому процес програмування спрощується. * Команду програмування флеш пам'яті необхідно подати лише перед програмуванням першого байта * Старший байт адреси можна міняти тільки перед програмуванням наступноїстроки пам'яті програм (256 слів).
Програмуванняпам'яті даних Алгоритм програмування пам'яті даних наступний (зверніться до програмування пам'яті програм за описом завантаження команди, адреси і даних): 1. Завантажити команду '0001 0001 '. 2. Завантажити молодший адресу пам'яті даних ($ 00 - $ 7F). 3. Завантажити молодший байт даних 4. Подати негативний імпульс на WR і почекати перекладу RDY / BSY в 1. Завантаження команди необхідна тільки перед програмуванням першого байта.
Читання пам’яті програм Алгоритм читання флеш пам'яті наступний (зверніться до програмування пам'яті програм за описом завантаження команди, адреси і даних): 1. Завантажити команду '0000 0010 ' 2. Завантажити молодший байт адреси ($ 00 - $ FF) 3. Завантажити старший байт адреси ($ 00 - $ 03) 4. Встановити OE в '0 ', BS в '0'. Тепер на виводахPB можна прочитати молодший байт даних. 5. Встановити BS в '1 '. Тепер на виводахPB можна прочитати старший байт даних. 6. Встановити OE в '1 '. Завантаження команди необхідна тільки перед читанням першого байта. Читання памяті даних Алгоритм читання пам'яті даних наступний (зверніться до програмування пам'яті програм за описом завантаження команди, адреси і даних): 1. Завантажити команду '0000 0011 ' 2. Завантажити молодший байт адреси ($ 00 - $ 7F) 3. Встановити OE в '0 ', BS в '0'. Тепер на виводахPB можна прочитати байт даних. 4. Встановити OE в '1 '. Завантаження команди необхідна тільки перед читанням першого байта.
1.3 Особливості мікроконтролера AT90S2313: · AVR має високу продуктивність · RISC архітектура з низьким енергоспоживанням · 118 потужних інструкцій,більшість з них виконуються за один такт · 2 Кбайт Flash-пам'яті з підтримкою внутрішньо системного програмування · SPI-послідовний · інтерфейс для завантаження програмного коду: 1000 циклів запису / стирання · 128 байти EEPROM · Робочі регістри загального призначення 32 х 8 · 15 програмованих ліній I / O · Живлення VCC: від 2.7 В до 6.0 В · Повністю статичний режим роботи: Від 0 до 10 МГц, при живленні від 4.0 В до 6.0 В Від 0 до 4 МГц, при живленні від 2.7 В до 6.0 В · Продуктивність до 10 MIPS при 10 МГц · Один 8-ми розрядний таймер / лічильник з окремим попереднім дільником частоти · Один 16-ти розрядний таймер / лічильник з окремим попереднім дільником частоти з режимами порівняння та захоплення · Повно дуплексний UART · Можливість обирати 8, 9, або 10-ти розрядні режими широтно-імпульсної модуляції (ШІМ) · Зовнішні та внутрішні джерела переривання · Програмований слідкуючий таймер з вбудованим тактовим генератором · Вбудований аналоговий компаратор · Економічні режими очікування і зниженого енергоспоживання · Програмоване блокування для безпеки програмного забезпечення · 20 виводів
Таблиця1.13 - Призначення виводів мікроконтролера AT90S2313
Структурна схема Структу́рна схе́ма — схема, яка визначає основні функціональні частини виробу, їх взаємозв'язки та призначення. Під функціональною частиною розуміють складову частину схеми: елемент, пристрій, функціональну групу, функціональну ланку. Структурна схема призначена для відображення загальної структури пристрою, тобто його основних блоків, вузлів, частин та головних зв'язків між ними. Із структурної схеми повинно бути зрозуміло, навіщо потрібний даний пристрій і як він працює в основних режимах роботи, як взаємодіють його частини. Позначення елементів структурної схеми можуть обиратись довільно, хоча загальноприйнятих правил виконання схем слід дотримуватись. Рисунок2.1 - Структурна схема мікроконтролераAT90S2313
Схема електрична принципова Електри́чна принципо́ва cхе́ма є видом електричної схемивиробу, що дає найповніше уявлення про склад і принцип його роботи. Цей вид креслення не враховує габаритних розмірів і реального розташування деталей об'єкта. За рівнем абстракції принципові електричні схеми займають середню позицію між функціональними і монтажними схемами і позначаються у шифрі основного напису символами Е3. Рисунок2.2 - Схема електрична принципова МК AT90S2313
Алгоритм роботи програми Алгор́итм — послідовність, система, набір систематизованих правил виконання обчислювального процесу, що обов'язково приводить до розв'язання певного класу задач після скінченного числа операцій. При написанні комп'ютерних програм алгоритм описує логічну послідовність операцій. Рисунок2.3 - Алгоритм роботи програми
МОДЕЛЮВАННЯ В PROTEUSVSM Після написання програми у програмному середовищі, моделюємо об’єкт нашої розробки у програмному середовищі ProteusVSM. Він являє собою систему схемотехнічного моделювання, що базується на основі моделей електронних компонентів прийнятих в PSpice. Відмінною рисою пакета PROTEUS VSM є можливість моделювання роботи програмованих пристроїв: мікроконтролерів, мікропроцесорів, DSPі інші. Бібліотека компонентів містить довідкові дані. Додатково в пакет PROTEUS VSM входить система проектування друкованих плат. Пакет Proteus складається з двох частин, двох підпрограм: ISIS-програма синтезу та моделювання безпосередньо електронних схем і ARES – програма розробки друкованих плат. Разом з програмою встановлюється набір демонстраційних проектів для ознайомлення.
Рисунок. 5.1 Моделювання програми у ProteusVSM ВИСНОВКИ Під час виконання курсової роботи,ми дослідили роботу,будову та принцип дії мікроконтролера AT90S2313. Розробили програму для поставленої задачі на двох мовах програмування,та провівши моделювання роботи мікроконтролера у програмному середовищі ProteusVSM, переконалися у правильності написання програм на мовах програмування. Отже,написання програми для роботи мікроконтролера зручніше користуватися мовою програмування С,тому що там більша бібліотека і обсяг програми значно менший ніж на Assembler,але і у Assemblerа є свої переваги:це менше функцій, внаслідок чого легше розібратися у даному програмному середовищі чим у CodeVisionAvr ПЕРЕЛІК ПОСИЛАНЬ 1. Пильщыков В. Н. «Assembler. Програмирование на языке ассемблера IBMPC»-Видання «Диалог -МИФИ» 1999 р. – мова російська – 288 ст. 2. Ревич Ю. В.«Практическое програмирование микроконтролеров AtmelAVRна языке ассемблера» – Видання «БХВ - Перербург» 2011 р. – мова російська – 354 ст. 3. Рудольф Марек «Ассемблер на примерах»(UcineseProgramovatvIazyceAssemblerproPC)- Видання «Наука и техника» 2005 р. – російська – 240 ст. 4. Александр Крупник «Ассемблер. Самоучитель»- Видання «Питер» 2005 р. – мова російська – 240 ст. 5. Зубков С. В. «Assembler. Язык неограниченных возможностей» - Видання «ДМК» 1999 р. – мова російська – 640 ст. 6. Шпак Ю. А. «Програмирование на языке Сдля AVR іPIC микроконтролеров. 1-е издание» - Видання «МК-Пресс» 2006 р. – мова російська – 487 ст. 7. Шпак Ю. А. «Програмирование на языке Сдля AVR іPIC микроконтролеров. 2-е издание» - Видання «Корона-Век,МК-Пресс» 2011р. – мова російська – 544 ст. 8. Додаток А Розробка програми на мові програмування Assembler .include "2313def.inc";підключення бібліотеки МК .list;генерація лістинга .def temp=r16;іменуємо головний робочий регістр .def loop1=r17;іменуємо регістр першого циклу затримки .def loop2=r18;іменуємо регістр другог циклу затримки .def loop3=r19;іменуємо регістр третього циклу затримки .def speed=r20;іменуємо регістр зміни швидкості .def count=r21;іменуємо регістр змінної для швидкості .def count1=r22;іменуємо додатковий регістр .cseg;вибір сегменту програмного коду .org 0;встановлення даного адреса в 0 ;--------------------------------------------------------------------- ;Ініціалізація програми rjmp Init Init: ldi temp,low(RAMEND);вибір вершини стека out SPL,temp;запис регістр стека clr temp;очищуємо temp out DDRD,temp;порт для кнопок ser temp;temp=0xff out DDRB,temp;порт для светодиодов out PORTD,temp;подаємо 1 на виводи порта D out PIND,temp;заповнюємо порт D ldi temp, 0x80 out ACSR,temp;включаємо компаратор ldi speed,2;початкова швидкість clr temp;очищуємо temp ;---------Запуск програми main: sbis PIND,PD0;перевіряємо стан кнопки, тобто коли нажмуть rjmp Line;переходимо до Line rjmp main;інакше назад на main ;---------Підпрограма бігаючого вогника Line: cpi temp,0;перевіряємо чи рівне temp 0 brne m1;якщо ні то преходимо на m1 ldi temp,0b00000001;інакше задаємо перший світодіод m1: out PORTB,temp;виводимо стан temp в порт В rcall wt;преходимо до затримки lsl temp;двигаємо біт вліво brcc PC+2;якщо відбувся перехід ldi temp,0b00000001;то задаємо перший світодіод sbis PIND, PD1;перевіряємо кнопку тормозу rcall Down;якщо нажата то переходимо до Down rjmp m1;інакше переходимо на m1 ;---------Підпрограма зменьшення швидкості в 1,8(1,75) раз Down: mov count1,speed;копіюємо значення швидкості в count1 mov count,speed;та count j1: inc speed;збільшуємо speed на 1 dec count;зменшуємо count на 1 cpi count,0;чи count=0, якщо ні brne j1;то преходимо на мітку j1, тобто продовжуємо збільшувати speed j2: dec speed;зменьшуємо speed на 1 dec count1;зменшуємо count1 на 1 cpi count1,0;чи count=0, якщо так breq Downr;то преходимо на мітку Downr dec count1;інакше ще зменшуємо count1 на 1 cpi count1,0;чи count=0, якщо ні brne j2;то преходимо на мітку j2, тобто зменьшуємо speed на 1/4 Downr: sbis PIND,PD1;чекаємо доки відіжмуть кнопку rjmp Downr rjmp wt;преходимо до затримки ;--------Підпрограма затримки wt: push loop1;встановлюємо в стек loop1 push loop2;встановлюємо в стек loop2 push loop3;встановлюємо в стек loop3 mov loop3, speed;встановлюємо швидкість wt1: dec loop3;зменьшуємо loop3 на 1 breq wt4;якщо loop3=0, то преходимо на wt4 ldi loop2,100;інакше задаємо loop2 wt2: dec loop2;зменьшуємо loop2 на 1 breq wt1;якщо loop2=0, то преходимо на wt1 ldi loop1,100;інакше задаємо loop1 wt3: dec loop1;зменьшуємо loop2 на 1 brne wt3;якщо loop1=0, то преходимо на wt3 rjmp wt2;інакше преходимо на wt2 wt4: pop loop1;зчитуємо з стека в loop1 pop loop2;зчитуємо з стека в loop2 pop loop3;зчитуємо з стека в loop3 ret;повертаємося із підпрограми Додаток Б Розробка програми на мові програмування С /***************************************************** This program was produced by the CodeWizardAVR V1.25.8 Standard Automatic Program Generator © Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project: speeddownld Version: Date: 5.11.2012 Author: F4CG Company: F4CG Comments: Chip type: AT90S2313 Clock frequency: 2,000000 MHz Memory model: Tiny External SRAM size: 0 Data Stack size: 32 *****************************************************/ #include <90s2313.h> //-бібліотека МК #include <delay.h> //-бібліотека затримок // Declare your global variables here void main(void) { // Declare your local variables here unsigned char temp; //-головна робоча змінна unsigned int i; //-змінна для циклів unsigned int count=80; //-змінна швидкості // Input/Output Ports initialization // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; //-запалюємо всі свіотодіоди DDRB=0xff; //-порт В вихід // Port D initialization // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0xff; //-задаємо 1 на вхід кнопок DDRD=0x00; //-порт D вхід // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped TCCR0=0x00; TCNT0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1 output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; OCR1H=0x00; OCR1L=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off GIMSK=0x00; MCUCR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; //-ініціалізація аналового компаратора //--------------------------------------------------------- //------Нескіньчений цикл програми мигання світодіодів----- //-в циклі виконується програма, що збільшує тривалість світіння світодіода в 1,8 рази while (1) { if(PIND.0==0) //-якщо кнопка нажата, то починається програма мигання {while(!0) { temp=0b00000001; //-задаємо біт першого світодіода for(i=0;i<8;i++) //-цикл двиганя вогню { PORTB=temp; //-запалюємо перший світодіод delay_ms (count); //-затримка на count мс temp=temp<<1; //-двигаємо біт на 1 вліво if(PIND.1==0) //-якщо кнопка тормозу нажата {if (count!=0) //-якщо count не =0 {count=count*1.8;} //-збільшуємо затримку в 1.8 рази } } }} }; } КУРСОВА РОБОТА
з дисципліни «Обчислювальна техніка і програмування» на тему: «Розробка програми для мікропроцесорного пристрою»
Студента 3 курсу 1ЕМп-10б групи напряму підготовки 6.050702 Електромеханіка спеціальності Електромеханічні системи автоматизації та електропривод Лаури Я.П. (прізвище та ініціали) Керівник ас. каф. ЕМСАПТ (посада, вчене звання) ас. Шевчук Ю. В. (науковий ступінь, прізвище та ініціали) Національна шкала ________________ Кількість балів: _______ Оцінка: ECTS ___
Члени комісії
м. Вінниця – 2012 рік АНОТАЦІЯ Лаура Я.П. „ Розробка програми для мікропроцесорного пристрою ” Курсова робота. Вінниця: ВНТУ. 2012 – 48 с. Бібліогр. 7. Іл.: 13.Табл.:2. В даному курсовому проекті проведено розробку та розрахунок елементів мікропроцесорного пристрою. Здійснено розробку програми роботи мікроконтролера на мові програмування С і Assembler, а працездатність пристрою засвідчена моделюванням розробленої схеми в ProteusVSM. Ключові слова: електроніка, перемикач, логічний елемент. АННОТАЦИЯ
ЛаураЯ.П."Разработка программы для микропроцессорного устройства" Курсовая работа.Винница:ВНТУ.2012 -48 с.Библиогр.7.Ил.:13.Табл.: 2. В данном курсовом проекте будет проведена разработка и расчет элементов микропроцессорного устройства. Осуществлена разработка программы работы микроконтроллера на языке программирования С и Assembler, а работоспособность устройства заверенная моделированием разработанной схемы в Proteus VSM. Ключевыеслова: электроника, переключатель, логический элемент. ANNOTATION
LauraYP " Developing software for microprocessor devise" Coursework.Vinnitsa:NTB.2012 -48 sec.Refs.7.Il.:13.Tabl. 2.In this course project carried out the design and calculation of the elements microprocessor. Carried out to develop the program of the microcontroller in the programming language C and Assembler, and performance certified device modeling scheme developed in Proteus VSM. Keywords: electronics, switchlogic element. ЗМІСТ
Вступ…………………………………………………………………………………4 1. БУДОВА МІКРОКОНТРОЛЕРА AT90S2313:, ОГЛЯД АЛГОРИТМІВ,СХЕМНИХ ТА ПРОГРАМНИХ РІШЕНЬ ПОСТАВЛЕНОЇ ЗАДАЧІ. 1.1 Огляд архітектури AT90S2313………………………………………………...5 1.2 Будова мікроконтролера AT90S2313…………………………………..…….....6 1.3 Особливості мікроконтролера AT90S2313……………………………….......25 2. РОЗРОБКА СХЕМ СТРУКТУРНОЇ,ПРИНЦИПОВОЇ ТА АЛГОРИТМУ ПРОГРАМИ: 2.1 Структурна схема……………………………………………………………28 2.2Принципова схема…………………………………………………………....29 2.3 Алгоритм програми………………………………………………………….30 3. РОЗРОБКА ПРОГРАМИ НА МОВІ ПРОГРАМУВАННЯ ASSEMBLER………………………………………………………………………..31 4. РОЗРОБКА ПРОГРАМИ НА МОВІ ПРОГРАМУВАННЯ С І МОДЕЛЮВАННЯ В PROTEUSVSM ……………………………..……………...34 ВИСНОВКИ……………………………………………………………...................36 ПЕРЕЛІК ПОСИЛАНЬ……………………………………….……………………37 Додаток А Програма на мові програмування Assembler………….…………....38 Додаток Б Програма на мові програмування С..…………………..………….....42 ВСТУП Мікропроцесор— інтегральна схема, яка виконує функції центрального процесора (ЦП) або спеціалізованого процесора. Сьогодні слово мікропроцесор є практично повним синонімом слова процесор, оскільки функціональний блок, що на ранніх стадіях розвитку обчислювальної техніки займали цілу плату чи навіть шафу, тепер вміщається в одну невеличку інтегральну схему із сотнями мільйонів транзисторів всередині. З середини 1980-х мікропроцесори витіснили інші види ЦП. Проте загалом це не так: центральні процесорні пристрої деяких суперкомп'ютерів навіть сьогодні є складними комплексами великих (ВІС) і надвелик
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-01; просмотров: 461; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.63.71 (0.014 с.) |