Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Текст программы на языке Ассемблер




Текст программы на языке АССЕМБЛЕР составлен в соответствии с блок-схемой показанной на рис.4.

 

  LJMP STRT;  
Инициализация
STRT: MOV PSW, 0#;  
Начальные условия
  MOV A, R6;  
  ADD A, #46;  
  CLR C;  
  SUBB A, #35H;  
  JZ, B2;  
  MOV A, R7;  
  JB ACC.2, B1 4  
Выполнение условий
B2: MOV A, 7DH;  
  CPL A;  
  XRL A, 35H;  
  MOV R0, #55;  
  MOV @R0,A;  
  MOV 29H, #135;  
  SJMP, END;  
Невыполнение условий
B1: MOV DPTR, # 0072H;  
  CLR A;  
  MOVC A, @(A+DPTR);  
  MOV R1, A;  
  MOV A, #1;  
  MOVC A, @(A+DPTR);  
  MOV R2, A;  
  CLR C;  
  MOV A, R1;  
  ADD A, 3CH;  
  MOV 54, A;  
  MOV A, R2;  
  ADD A, 3DH;  
  MOV 55, A;  
  SETB 29.5H;  
  CLR 29.1H;  
  LJMP C100H;  

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


Адр Код Мет Мнемокод Комментарий
Стартовая точка программы
  02 00 30   LJMP STRT; Переход к началу программы
Инициализация
  75 D0 00 STRT: MOV PSW, 0#; Выбор регистрового банка 0
Начальные условия
  EE   MOV A, R6; Пересылка в аккумулятор из регистра R6
  24 2E   ADD A, #46; Сложение аккумулятора с константой #2EH
  C3   CLR C; Сброс переноса
  94 35   SUBB A, #35H; Вычитание из аккумулятора константы #35H и займа
  60 04   JZ, B2; Переход на B2, если аккумулятор равен нулю
003B EF   MOV A, R7; Пересылка в аккумулятор из регистра R7
003C 20 E1 0D   JB ACC.2, B1 Переход на В1, если бит равен единице
Выполнение условий
003F E5 7D B2: MOV A, 7DH; Пересылка в аккумулятор прямо-адресуемого байта 7DH
  F4   CPL A; Сброс аккумулятора
  65 35   XRL A, 35H; Исключающее ИЛИ аккумулятора и прямо-адресуемого байта 35H
  E8 37   MOV R0, #55; Загрузка в регистр константы #37H
  F6   MOV @R0,A; Пересылка в РПД из аккумулятора
  75 29 87   MOV 29H, #135; Пересылка по прямому адресу 29H константы #87H
004A 80 1A   SJMP, END; Переход внутри страницы
Невыполнение условий
004C 90 00 72 B1: MOV DPTR, # 0072H; Загрузка указателя данных
004F E4   CLR A; Сброс аккумулятора
      MOVC A, @(A+DPTR); Пересылка в аккумулятор байта из ПП
  F9   MOV R1, A; Пересылка в регистр R1 из аккумулятора
  74 01   MOV A, #1; Загрузка в аккумулятор константы #1
      MOVC A, @(A+DPTR); Пересылка в аккумулятор байта из ПП
  FA   MOV R2, A; Пересылка в регистр R2 из аккумулятора
  C3   CLR C; Сброс переноса
  E9   MOV A, R1; Пересылка в аккумулятор из регистра R1
  25 3C   ADD A, 3CH; Сложение аккумулятора с прямо-адресуемым байтом 3CH
005A F5 36   MOV 54, A; Пересылка по прямому адресу 36H аккумулятора
005C EA   MOV A, R2; Пересылка в аккумулятор из регистра R2
005D 25 3D   ADD A, 3DH; Сложение аккумулятора с прямо-адресуемым байтом 3DH
005F F5 37   MOV 55, A; Пересылка по прямому адресу 37H аккумулятора
  D2 4D   SETB 29.5H; Установка бита
  C2 49   CLR 29.1H; Сброс бита
  02 C1 00 END: LJMP C100H; Конец программы

 

Табл.2. Таблица текста программы (листинг) в машинных кодах и параллельно на языке Ассемблер с комментариями для каждой операции.

После перевода производён ввод текста откомпилированной программы с пульта учебного МК в его память с помощью команд монитора. Необходимо помнить, что программа должна начинаться с адреса 0030Н.

Отладка.

Отладка выполнена с различными вариантами исходных данных, которые подобраны таким образом, чтобы отследить выполнение программы по всем ветвям алгоритма программы. Для этой цели заранее подготовлена таблица исходных данных и результатов.

Дл выполнения отладки, по очереди, ввели в память все данные для каждого варианта, затем с помощью пошагового режима отследили выполнение переходов для каждого из вариантов. Пошаговый режим выполняется с помощью нажатия клавиш «G» - «S» - «˽» - «J». Далее программа запустили на выполнение с помощью команд «G»-«G». Убедились, что все условные переходы выполняются верно и результаты совпадают с заранее подготовленными результатами, которые представлены в табл.3.

1 вариант Первое условие выполняется 2 вариант Второе условие выполняется 3 вариант Оба условия не выполняются
R6 =#35Н + #46= 7H R7.2 = #0(не выпол.) R7.2 = 7FH=1111111В 35H =10 7DH = 25 R6 = #35Н + #46(не выпол.) R6=5H R7.2 = #0 R7.2 = 39H= 111001B 35H = 10 7DH = 25 R6 = #35Н + #46(не выпол.) R6=5H R7.2 = #0(не выпол.) R7.2 = 7FH=1111111В 0072 = 20 0073 = 30 3DH = 18 3CH = 17
Результат: 29H = 135 37H =35H + / 7DH=#48   Результат: 29H = #87 37H = 35H + / 7DH =48 Результат: 37H =3DH+ 0073Hp= 48 36H =3CH + 0072Hp= 37 29H = А5 = 10100101 В

 

Табл.3. Таблица вариантов исходных данных для выполнения программы.

 

Отладка является конечным пунктом выполнения работы. В ходе отладки проверяется работоспособность программы, правильность выполнения условных переходов, правильность результатов, при различных вариантах исходных данных.

Заключение.

В ходе выполнения практики мы познакомились с принципом работы и системой команд микроконтроллера.

Познакомились с основами языка программирования АССЕМБЛЕР Приобрели навыки по программированию микропроцессорных контроллеров на языке программирования АССЕМБЛЕР. Научились переводить все мнемокоды операций программы в машинный код, с использованием таблиц системы команд, проводить отладку программы с различными вариантами исходных данных.





Поделиться с друзьями:


Дата добавления: 2016-10-22; Мы поможем в написании ваших работ!; просмотров: 562 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Либо вы управляете вашим днем, либо день управляет вами. © Джим Рон
==> читать все изречения...

2230 - | 1969 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.