Главная » Просмотр файлов » Гребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel

Гребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel (1044208), страница 25

Файл №1044208 Гребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel (Гребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel) 25 страницаГребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel (1044208) страница 252017-12-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 25)

Присоедините блок из 8 светодиодов на ЯТК500 плоским кабелем к разьему порта В. Логический "0" иа выводах АЧК будет соответствовать включенному состоянию светодиодов. Программа ЬЕР.АБМ генерирует на выводах порта В двоичную счетную последовательность. Для того, чтобы ири помощи светодиодов наблюдать эту последовательность визуально, в программе вводится задержка, СОВЕТ. При отладке программы в симуляторе АЧКБТЬ'01О заком- ментируйте вызов подпрограммы задержки.

145 Примеры программ для микроконтроллеров семейства АЧк ПРОГРАММА 1 ЕО.А$М .1пс1цде "8515ое1,1пс": Подключить файл описаний имен ; регистров ввода/вывода ;Инициализация 101 г31, ЕОЫ(ВАИЕЧ0) ; Инициализация указателя стека для АЧЯ, имеющих сит вр1, г31 ; программный стек, обязательно выполняется 1о1 г31,Н1ЯН(ВАМЕИ0);в начале программы сит зрЬ, г31 :Программирование порта В на вывод 101 г31,$11 сит ЬдгЬ, г31 ;Бесконечный цикл Есор: (пс г16 ; Регистр г16 используется как двоичный ;счетчик. ; Вывести содержимое г16 в порт В ;Вызов подпрограммы задержки ;Возврат на метку Есор оцт рогтЬ. г16 гса11 ха1т г1шр Есор ;Возврат из подпрограммы ген П10.2. КЫ.аяп позволяет освоить работу с портами, с таймером, познакомиться с системой прерываний, научиться работать с простейшей клавиатурой. Присоедините блок из 8 кнопок на ЯТК500 плоским кабелем к разъему порта А, Нажатая кнопка будет соответствовать логическому "0" на входе АЧК.

Программа КВГ).АЯМ периодически по прерыванию от таймера 0 приблизительно 1 раз в 70 мс (при Ес!1;=3,68МГц) опрашивает клавиатуру. При однократном нажатии кнопки в каком-либо разряде порта А программа инвертирует состояние соответствующего разряда порта В (зажигает или гасит светодиод).

Однократным нажатием считается нажатие и последующее отпускание кнопки. ; Подпрограмма задержки иа1т: 1о1 г1?,100 ш: 1с11 г18,255 ш1; бес г18 Ьгпе ш1 оес г17 Ьгпе ш ; Внешний цикл ш выполняется 100 раз ; Внутренний цикл ш1 выполняется 255 раз, ; пока не обнулится г18 ; Возврат, если еще не выполнили 100х255 вычитаний 146 Приложвния СОВЕТ.

Дребезг контактов клавиатуры при нажатии и отпускании кнопки длится не более 20 мкс. Поэтому, если опрашивать клавиатуру не чаще, чем через 100 мкс (с запасом), то можно не предпринимать никаких дополнительных программных действий для подавления дребезга. ПРОГРАММА КВО.А$М .

1пс1оое "8515ое~, 1пс" .ае1 гещр=г16 .Ое1 1авт втате=г18 ,ое1 ргевепт втате=г19 прерывания таймера 0 ; 8 зту точку процессор попадает после сброса ; Инициализация вта гт:1о1 тещр.(.ОИ(НАМЕМО); Инициализация указа~еля стека для АЧН, имеющих сит вр1.1ещр ; программный стек, обязательно выполняется 1О1 тещр.Н10Н(НАМЕМО):в начале программы сит зрп."ещр гса11 рогт 1п1т са11 тилО 1п(т ;Инициализация портов :Инициализация таймера 0 ве1 : Основная про рамма в атом примере ;ничего не делает ; Подпрограмма обработки тил0; рцвп тещр 1п тещр, вгед рьвп тещр сощ " авт вта-.е : Если прошлый раз кнопка была нажата ( "0" ) 1п ргевепт втате, рфпа апо' 1авт втате.ргевепт втате:И в этот раз отпущена( '1").

то 1п Тещр,рогто : Установка вектора .огд 0 г1щр в".агт .огд ОЧЕОасог г1щр т1щО ; Бесконечный цикл: Ссор: г;щр Есор ; Подключить файл описаний имен : оегистоов ввода/вывода ;Задание символических имен регистрам ;Состояние клавиатуры при прошлом опросе :Состояние клавиатуры при текущем опоосе , Адрес век~оса прерывания по переполнению ; таймера 0 (имя "ОЧЕОаоо г" определено в : файле "8515ое~. (пс") ;Установка глобального бита разрешения ; прерывания должна быть самой последней командой ; инициализирующей части программы. прерывания от таймера О. :Сохранение регистров в стеке (станет необходимым, : когда основная программа будет выполнять : какие-либо действия) Примеры программ дпв микроконтроллеров семейства АИ~ еог тещр.

1авт втате :инвертировать состоя~ив бита порта В оцт ро гтЬ, тешр шоу 1авт втате, ргевепт втате : Сохранить текущее состояние клавиатуры ; для следующего входа в подпрограмму. ;Восстановление регистров из стека рор тешр оцт вгео. тешр рор тешр гет1 ; Подпрограмма инициализации портов рогг 1п1т: 101 '.ешр, $1т оцт Ьс гЬ, тешр 101 тешр.$00 гЗажечь все светодиоды оц', рогтЬ.;ещр сит ббга.тешр 101 1авт втате, $Гт гет Программирование порта В на вывод Программирование порта Д на вввод Считаем, что сначала ни одна кнопка не была нажа~а ; Подпрограмма инициализации таймера 0 тплО 1пфт: 1бт 1егпр, $5 сит тсс гО, тешр ; Коэффициент деления предделителя — 1024 1О1 тещр,( 1«то1еО ) ; Разрешение прерывания от таймера 0; сит 11швК, тешр : (1«то1еО) -число 1, сдвинутое влево на то1еО ;позиций, Это выражение вычислит ассемблер.

гет ;Используя такие выражения, можно не запоминать , реальный номер разряда управляющего бита П10.3. %)агт,.авва знакомит со способом организации работы последовательного асинхронного адаптера 11АКТ при помощи опроса флагов готовности. Эта простая программа позволяет тестировать в обоих направлениях целостность аппаратных узлов последовательного интерфейса, связывающего АЧК, например, с компьютером. На стороне компьютера необходимо использовать какую-либо терминальную программу, например стандартную программу НурегТегпппа1, которая выводит на экран компьютера символы, АЯС11-коды которых поступают на вход последовательного канала компьютера, и посылает в последовательный канал АЯС11-коды, соответствующие нажатым на клавиатуре компьютера клавишам. Соедините выводы ТХВ и КХВ при помощи гибких кабелей с узлом КЯ-232 па БТК500 (см.

описание ЯТК500). Соедините (при выключенном питании) при помощи стандартного кабеля КБ232 плату ЯТК500 с компьютером. Приложения 148 СОВЕТ. Создавая новый проект, всегда удобно сначала настроить работу устройств вывода, таких как последовательный канал и индикатор. ПРОГРАММА ОАКТ.А$М . 1пс1цое "8515бе1. 1пс" : Подключить файл описаний имен ; регистров ввода/вывода . Задание символических имен регистрам ',Состояние клавиатуры при прошлом опросе ;Состояние клавиатуры при текущем опросе ; Счетчик цикла :Данные для передачи в последовательный канал .бе1 тешр=г18 .бег' 1авт втате=г18 .бе1 ргевепт втате=г19 .сей соипт=г20 .оег вег(а!=г21 ; Установка векторов прерывания .ог9 О ; В эту точку процессор попадает госле сброса г)щр втагт .ог9 ОЧГОаоог г)'шр т1щО ;Адрес вектора прерывания по переполнению ; таймера О (имя "ОЧЕОаббг" определено в ;файле "8515ое1.1пс") ; Инициализация втагт; 161 тешр, СОИ(НАМЕМО); Инициализация указателя стека для АУН, имеющих сит вр1,тещр ; программный стек, обязательно выполняется 1о( тещр,Н1ОН(НАМЕМО);в начале программы сит врп, тещр гса11 рогт 1п1т гса11 т1щО 1п(т гса11 иагт (п1т ; Инициализация портов ;Инициализация таймера О ; Инициализация САНТ зе1 : Установка глобального бита разрешения : прерывания должна быть самой последней командой :инициализирующей части программы.

Программа 1)АКТ.АЯМ дополнительно к отображению состояния клавиатуры (РОСТА) на блоке светодиодов (РОКТВ) выводит состояние каждого разряда порта В в последовательный канал в АЯС11-кодах и наоборот коды принятых из последовательного канала байтов выводит в порт В для отображения на блоке светодиодов. Параметры асинхронной передачи данных: ° скорость — 9600 бит/с; ° количество бит данных — 8; ° контроль четности — отсутствует; ° количество стоп бит — 1. Лримеры программ для микроконтроллеров семейства АУЯ 149 ;Бесконечный цикл; Еоор: г)'шр Еоор : Основная программа в этом примере ;ничего не делает. ; Подпрограмма обработки прерывания от таймера 0 ; вызывается — 1 раз в 70 мс. т1шО: ривЬ тешр ;Сохранение регистров в стеке (станет необходимым.

1п тешр,вгед ; когда основная программа будет выполнять риэЬ тешр ; какие-либо действия ) сов 1авт этате ; Если прошлый раз кнопка была нажата ("0") 1п ргевепт этате, р1па апЬ 1авт зтате, ргевепт втате ; И в этот раз отпущена( "1" ), то 1п теюр, рогтЬ еог тешр, 1авт втате ,инвертировать состояние бита пор~а В оц' рогтЬ, тешр шов 1авт втате, ргевепт вта1е : Сохранить текущее состояние клавиатуры ; для следующего входа в подпрограмму. 1б~ вегфа1,$0а гса11 тгапв 101 вег1а1,$00 гса11 тгапв ;Послать в последовательный канал управляющий ;АВС11-код "перевод строки" : Послать в последовательный канал управляющий ;АВС11-код "возврат каретки" гса11 гесефче : Восстановление регистров из стека рор тешр сит вгед,теюр рор тевр гет1 ; Подпрограмма передачи байта в последовательный канал ; Если передатчик еще не передал предыдущий байт, ;то вернуться к тгапв и ждать. тгапвгвЬ1в ОВЯ,ООЯЕ Чшр тгапв ;Для каждого разряда порта В ;или "1"($31) в зависимости 1б~ соипт, В пехт Ьфт: го1 тешр с1г вег1а1 го1 вег~а1 сцЬ1 вег1а1, -$30 гса11 Тгапв бес соипт Ьгпе пехт Ь11 посылаем в последовательный канал АВС11-код "0"($30) от состояния разряда.

Инициализировать счетчик разрядов Сдвинуть в бит С старший бит регистра тевр Очистить регистр Поместить в него бит С Получить АВС11-код Передать его в буфер последовательного канала Уменьшить на 1 счетчик числа бит Если биты еше не кончились, вернуться назад 150 Прнложения оцт ОРЯ.

вег1а1 гет ; Подпрограмма опроса гесе1че: вЬ1с РВЯ. ЯХС приемника последовательного канала г1шр 1прцт ;Подпрограмма инициализации РАЯТ цагт 1п1т 1о1 тешр,ОЬ00011000 :Инициализация БАЯТ: сит ВСЯ,тешр : ТХЕМ=1, ЯХЕМ=1 1Ь1 тешр, 23 : 9600 бит/с при ~с1М=З, 68МГц сит РВЯЯ. тешр гет :Подпрограмма "рогт 1п11" приведена в примере П10.2 ; Подпрограмма "11шО 1п11" приведена в примере П10. 2 П10.4.

Характеристики

Тип файла
DJVU-файл
Размер
3,74 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6310
Авторов
на СтудИзбе
312
Средний доход
с одного платного файла
Обучение Подробнее