Гребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel, страница 29
Описание файла
DJVU-файл из архива "Гребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel", который расположен в категории "". Всё это находится в предмете "цифровая обработка сигналов (цос)" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "цифровая обработка сигналов" в общих файлах.
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 29 - страница
; Подпрограмма обработки прерывания от таймера О вызывается — 1 раз в ?О мс, ; считывает двоичные данные из ьуфера Ацп, ; выполняет двоично-десятичное преобразование, ; Установка векторов .огц 0 г) шр .огц ОЧГОаобг гавр ссш0 , огц ООНЕаоог г)шр Тгапз1пс .огц АОССасЫг г)'шр Або прерывания : В эту точку процессор попадает после сброса зсагс ; Адрес вектора прерывания по переполнению ;таймера 0 ;Адрес вектора прерывания по флагу ООНЕ ; готовности передатчика ВАНТ. ; Адрес вектора прерывания по завершению ;аналого-цифрового преобразования.
На ЖКИ выводится результат преобразования только по нулевому (соипс=8) каналу. ;Установка глобального бита разрешения ;ПрершааНИН дОЛжНа бЫТЬ саней последней командой ;инициализирующей части программы. 168 Приложения ; посылает в последовательный канал результаты преобразования АЦП по восьми ; аналоговым каналам, начиная со старшего. ;выводит на ЖКИ результат преобразования по седьмому каналу. ссщ0: рцвЬ сещр ; Сохранение регистров в стеке (станет необходимым, сп сещр, вге9 ; когда основная программа будет выполнять рцвЬ Сещр ; какие-либо действия) сг1: 1бс вег1а1, ' гса11 МочвВцс оес соцпс Ьгпе сг 1 1б1 вегса1, $0а гса11 МочвВцс 101 вегса1.
$0о гса11 МочвВц~ 1бс соипс, 5 ;Сдвинуть курсор на ЖКИ влево 5 раз впсгс: 1о1 1сд, $10 гса11 1сдсощ гса11 бе1 бес соцпс Ьгпе вп1(с вЬ1 абсвг, абсе вЬ1 абсвг, адзс ; Запуск нового цикла преобразования ;Восстановление регистров из стека рор сещр оцс яге9,сешр рор сещр гесс 1бс ~Ь, Ь19Ь(або ЬцС) 101 л1, 1ои(або Ьц~) 101 соипс, В 1д Ь1п1, ~+ 1о Ь1ПЬ, 7+ гса11 Ьсп16авсй5 0101Т оцс савс114 0161Т оцс савс113 0161Т оцс савс112 0101Т оиС Сазссс) 0101Т оцС Сазс110 ; Поместить в регистр косвенной адресации ;адрес буфера АЦП ; Инициализировать счетчик числа каналов ; Считать из буфера АЦП двоичный код ; результата преобразования : Выполнить двоично-десятичное преобразование : Вывести 5 десятичных цифр в буфер ; последовательного канала и на ЖКИ ;Вывести в последовательный канал АБСП-код ;символа "пробел". : Если еще не по всем каналам данные переданы, ;то вернуться назад ;Послать в последовательныйй канал ; управляющий АЯС11-код "перевод строки" ;Послать в последовательный канал ; управляющий АВС11-код "возврат каретки" Примеры программ для микроконтроллеров семейства Атй 1о9 ; Подпрограмма инициализации асс 1п1т: 101 1евр,$80 оцт абсяг,тевр 101 слаппе1,7 оцт аовцх,слаппе1 яЬ1 аосяг,асяс Гет АЦП Запуск преобразования ; Подпрограмма обработки прерывания по завершению преобразования АЦП адс: ; Сохранить содержимое регистров в стеке 1о1 7Ь, Ь1дб(асс Ьцт) 101 г1, 1ом(асс Ьц1) 1я1 сЬаппе1 аоо г1,сЬаппе1 ;Поместить в регистр косвенной адресации ;адрес буфера АЦП ; Увеличить вдвое номер текущего канала ;Вычислить адрес хранения результата по текущему ; каналу ; Восстановить номер влекущего канала ;считать результат преобразования ;из регистров АЦП и поместить его в буфер АЦП оес сЬаппе1 Ьгр1 або ятагт ; Уменьшить на 1 номер канала ; Если еще не все каналы в этом цикле ; кончились.
инициировать новое преобразование ; Если цикл завершился, то ;подготовиться к новому циклу, ;но пока результаты не будут считаны из буфера. ;запретить прерывания от АЦП ; и выйти из подпрограммы. 1о1 слаппе1, 7 оцт аовцх.сЬаппе1 сЬ1 аосяг,ао1е г>вр або епо асс ятагт: оцт абвих,спаппе1 яЬ1 абсяг.асяс ;запуск преобразования АЦП ; по следующему каналу.
асс епо' рор л1 рор лЬ ; Восстановление регистров из стека. рор Тевр оцт ягед,тевр рор .евр ге. рцял г1 рияЬ гЬ рияп тевр 1п тевр, ягед рцял тевр 1яг сЬаппе1 1п тевр, аос1 ят ~+,тевр 1п тевр, абсл ят г,тевр АОЕЙ=1- Епаб)е А0С;А01Е=1-ЕпаЬ)е 1птеггцрт ЕаЬс=Ес1К/32( 115 кГц при кварце 3, 6ВМГц) Выбор седьмого канала АЦП Приложения 170 ; Подпрограмма инициализации ИКИ 1сб !п(т: гса11 бе!ау 1б1 1сб,$20 гса11 1сбсов гса11 бе1 1б1 1сб, $0С гса11 1сбсов гса11 бе! 1б! !се, $20 гса11 1сбсов гса!1 бе1 1б! 1сд,$1 гса11 !саксов гса11 бе!ау : Вывод постоянного текста на дисплей: 1б! г1, 1ои(техт*2) ;Загрузить адрес буфера, содержащего 1б1 гб.б(дЬ(техт*2) :текст в регистр косвенной адресации ; Подпрограмма Ь(п1бавс(15: 1б! 1б! гса11 воч 1б1 1б! гса11 воч 1й 1б1 гса11 воч 101 1б! б!ц!т: 1б! б101т 1: 1пс вцЬ вЬс Ьгвб абб або гес двоична-десятичного преобразования тевр, 1ои(10000) тевр1, Ь~дЬ(10000) б(д(т ТАВС!!4.
Ьсдспт тевр, 1ои( 1000) тевр1, Ь(дЬ(1000) 01Я!1 тАВС11З, Ьсбспс тевр, 1ои(100) тевр1, Ь!дЬ(100) бтд1т тА50112, Ьсдспт тевр, 1аи( 10) тевр1, Мдп( 10) ; подпрограмма вычисления одной десятичной цифры Ьсбспт, -1;инициализировать счетчик числа вычитаний Ьсбспт ; инкрементировать счетчик числа вычитаний Ь(п1, тевр ; Вычесть из двоичного числа вес десятичного Ь(пЬ, тевр1; разряда о1д!т 1 ; Если остаток еще положительный, вернуться Ь(п1, тевр; Восстановить последний положительный остаток Ь!пп. тевр1 4-битный интерфейс, 1-строка, шрифт-5х? точек Включить дисплей, выключить курсор 4-битный интерфейс, 1-строка, шрифт-5х? точек очистить дисплей и установить курсор в начальную позицию Примеры программ для микроконтроллеров семейство АМ 1о1 соцпт, 11 ;инициализировать счетчик числа : выводимых символов 1сб Техт: 1 р~п шоу 1сб, гО гса11 1сббат гса11 бе1 аб1и г1.1 бес соцпт Ьгпе 1сб техт ; вывести его на индикатор, : продолжать до конца твко~а.
гет ;Подпрограмма инициализации портов рогт 1п11; 1о1 Театр, $011 оцуп Инго, тевр гет Программирование порта О на вывод ; Постоянный текст для вывода на ЖКИ записываем во ЕСАЯН-память: .ого 400 техт: .ЬЬ 'С'.'Н'.'А', 'Н','М' А С ', '0',':',' ':СНАННЕС 0 "1сбсол~" приведена в -с;~еое П10.5 "1сбдат" приведена в -о, еое П10. 5 "бе1" приведена в примере П10.5 "бе1ау"приведена в примере П10. 5 "МочвВц1" приведена в примере П10.4 "Тгапв1пт" приведена в примере П10.4 "ТлО 1п1т" приведена в примере П10.2 "цагт 1п11" приведена в примере П10,3 ; Подпрограмма ; Подпрограмма ; Подпрограмма ; Подпрограмма ; Подпрограмма ; Подпрограмма ; Подгос гоамма ;Подпрс-сачма : Считать байт данных из ССАДИН-памяти в гО.
;инкрементировать указатель адреса, 172 Литвр птур с Литература 1. Аггпе! Согрогаг1оп 8-Ъ|г К1ЯС М!сгосопгго11егз Вага Воок. Мау 1997. 2. Агп1е! Согрогаг1оп 8-Ъ|г й1ЯС М1сгосопсго11егя Вага Воок. Апрьг 1999. 3. АЪ'К Аюе|пЫег !Лег Сшде. 4. АТс!пу 151.. Рге1|пппагу. Е)ага Я11еег. 5. АТйпу 281, АТг1пу 28Ч Е)ага ЯЬеег. 6. АТ|педа 163, АТ|пе~а 1631.. Ас1чапсе 1п1оппайоп. Райа 811еес. 7. Водовоэов А. М. Микроконтроллеры для систем автоматики: Учебное пособие. — Вологда: ВоГТУ, 2002.
— 123 с. .