ВУЗ:
Составители:
-31-
(запись единицы во все биты памятей программ и данных)запись
значений из hex-файла и проверку соответствия записанной в
память программы и исходной. Ход процесса прошивки
отображается в строке состояния группы элементов Flash.
Успешное завершение процесса отмечается появлением
сообщения "OK" в строке состояния.
После завершения процесса программирования процессор
готов к работе. Окно программатора
может оставаться активным
во время работы ассемблера/симулятора, что дает возможность
оперативно модифицировать программу.
Пример кода программы, реализующей вывод на
светодиоды результата (n
2
+1), где n – число, закодированное
положениями переключателя:
.include "8515def.inc"
.def temp=r16
.def a=r20
.def b=r21
.def i=r22
.org 0
rjmp start
start:
ldi temp,LOW(RAMEND) ;инициализация указателя стека
для AVR,
out spl,temp ;имеющих програмный стек, ОБЯЗАТЕЛЬНО
выполняется
ldi temp,HIGH(RAMEND) ;в начале программы
out sph,temp
rcall port_init ;инициализация портов
;основной цикл программы
loop:
in temp,pina ;значение (pinA)->temp
rjmp umnogenie ;temp=(temp)^2
follow: inc temp ;temp=temp+1
com temp ;инвертируем ответ,
out portb,temp ;чтобы "1" отображалась
светящимся диодом
rjmp loop ;бесконечный цикл
;подпрограмма инициалиции портов
port_init:
ldi temp,0xff
-31- (запись единицы во все биты памятей программ и данных)запись значений из hex-файла и проверку соответствия записанной в память программы и исходной. Ход процесса прошивки отображается в строке состояния группы элементов Flash. Успешное завершение процесса отмечается появлением сообщения "OK" в строке состояния. После завершения процесса программирования процессор готов к работе. Окно программатора может оставаться активным во время работы ассемблера/симулятора, что дает возможность оперативно модифицировать программу. Пример кода программы, реализующей вывод на светодиоды результата (n2+1), где n – число, закодированное положениями переключателя: .include "8515def.inc" .def temp=r16 .def a=r20 .def b=r21 .def i=r22 .org 0 rjmp start start: ldi temp,LOW(RAMEND) ;инициализация указателя стека для AVR, out spl,temp ;имеющих програмный стек, ОБЯЗАТЕЛЬНО выполняется ldi temp,HIGH(RAMEND) ;в начале программы out sph,temp rcall port_init ;инициализация портов ;основной цикл программы loop: in temp,pina ;значение (pinA)->temp rjmp umnogenie ;temp=(temp)^2 follow: inc temp ;temp=temp+1 com temp ;инвертируем ответ, out portb,temp ;чтобы "1" отображалась светящимся диодом rjmp loop ;бесконечный цикл ;подпрограмма инициалиции портов port_init: ldi temp,0xff