Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Программирование микропроцессорных систем на языке ассемблер

РефератПомощь в написанииУзнать стоимостьмоей работы

AVR ядро объединяет богатую систему команд и 32 рабочих регистра общего назначения. Все 32 регистра непосредственно связаны с арифметико-логическим устройством (АЛУ), что позволяет получить доступ к двум независимым регистрам при выполнении одной команды. В результате эта архитектура позволяет обеспечить в десятки раз большую производительность, чем стандартная CISC архитектура. Для… Читать ещё >

Программирование микропроцессорных систем на языке ассемблер (реферат, курсовая, диплом, контрольная)

Микроконтроллер ATtiny2313 — низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny2313 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.

AVR ядро объединяет богатую систему команд и 32 рабочих регистра общего назначения. Все 32 регистра непосредственно связаны с арифметико-логическим устройством (АЛУ), что позволяет получить доступ к двум независимым регистрам при выполнении одной команды. В результате эта архитектура позволяет обеспечить в десятки раз большую производительность, чем стандартная CISC архитектура.

ATtiny2313 имеет следующие характеристики: 2 КБ программируемой в системе Flash память программы, 128 байтную EEPROM память данных, 128 байтное SRAM (статическое ОЗУ), 18 линий ввода — вывода общего применения, 32 рабочих регистра общего назначения, однопроводный интерфейс для встроенного отладчика, два гибких таймера/счетчика со схемами сравнения, внутренние и внешние источники прерывания, последовательный программируемый USART, универсальный последовательный интерфейс с детектором стартового условия, программируемый сторожевой таймер со встроенным генератором и три программно инициализируемых режима пониженного потребления.

В режиме Idle останавливается ядро, но ОЗУ, таймеры/счетчики и система прерываний продолжают функционировать. В режиме Power-down регистры сохраняют свое значение, но генератор останавливается, блокируя все функции прибора до следующего прерывания или аппаратного сброса. В Standby режиме задающий генератор работает, в то время как остальная часть прибора бездействует. Это позволяет очень быстро запустить микропроцессор, сохраняя при этом в режиме бездействия мощность. Блок-схема ATtiny2313 приведена на рисунке 1.

Рисунок 1 Блок-схема микроконтроллера Attiny2313.

Прибор изготовлен по высокоплотной энергонезависимой технологии изготовления памяти компании Atmel. Встроенная ISP Flash позволяет перепрограммировать память программы в системе через последовательный SPI интерфейс или обычным программатором энергонезависимой памяти. Объединив в одном кристалле восьми битное RISC ядро с самопрограммирующейся в системе Flash памятью, ATtiny2313 стал мощным микроконтроллером, который дает большую гибкость разработчика микропроцессорных систем. Расположение выводов ATtiny2313 показано на рисунке 2.

Расположение выводом Attiny2313.

Рисунок 2 Расположение выводом Attiny2313.

ATtiny2313 поддерживается различными программными средствами и интегрированными средствами разработки, такими как компиляторы C, макроассемблеры, программные отладчики/симуляторы, внутрисхемные эмуляторы и ознакомительные наборы.

Для программирования микроконтроллера Attiny2313 можно использовать языки программирования, ассемблер и C. Для реализации программного кода для микроконтроллера Attiny2313 был написан код прошивки на языке программирования Си в среде AtmelStudio, эта программа позволяет пользователям с легкостью написать алгоритм работы микроконтроллера.

Полученный в результате компиляции исходного кода программы на языке С исполняемый модуль (файл прошивки) может быть непосредственно записан в память программ микроконтроллера.

Работа программы начинается с инициализации:

movlw .0.

bcf STATUS, 5.

movwf T2CON; Помещаем в регистр T2CON — 0.

bsf T2CON, 0; Устанавливаем бит T2CKPS0 (Предделитель).

bsf T2CON, 2; Включаем таймер TMR2 битом TMR2ON.

bsf T2CON, 3; Устанавливаем бит TOUTPS0 (Постделение) На этом инициализация таймера закончена. Теперь при включении контроллера от будет служить источником для нашего ШИМ модуля.

Инициализация ШИМ модуля происходит следующим образом:

movlw 10 1111b; Подготавливаем конфигурацию.

movwf CPPCON; Конфигурируем ШИМ.

bsf CPPCON, 2; Включаем модуль ШИМ.

Все, на этом инициализация закончена. Теперь мы можем помещать в регистр CPP1L число от 0 до 255, тем самым меняя скважность выходных импульсов.

Краткая заметка по командам, использованных в программе:

equ — Присвоение имени на определенный адрес.

goto — Переход программы на метку, либо определенную строку.

call — Вызов подпрограммы.

movlw — Поместить в регистр W, число.

movwf — Переместить из регистра W число.

bsf — Установить бит в регистре, в состояние 1.

bcf — Установить бит в регистре, в состояние 0.

addlw — Прибавить в регистр W число.

btfss — Проверить бит в регистре на 1.

incf — Инкриминировать регистр (прибавить 1).

decf — Декриминировать регистр (вычесть 1).

decfsz — Вычесть 1 из регистра + проверка на 0.

Показать весь текст
Заполнить форму текущей работой