Изучение архитектуры и основ программирования микроконтроллеров. Индришенок В.И - 31 стр.

UptoLike

-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