Однокристальные PIC-микроконтроллеры. Технология разработки и отладки программ для микроконтроллеров PIC16, страница 14

Продолжите проверку программы в режиме Step Over. До команды вызова подпрограммы  call  fill_reg  он  выполняется аналогично режиму  Step Into. Однако после выполнения команды  call  fill_reg  программа остановится на команде  movlw  Number, а в ячейках с адресами  0x10 – 0x1F появятся числа  0x08. Таким образом, произошло ускоренное выполнение подпрограммы в течение одного шага. Продолжите проверку работы программы в режиме Step Over  до последней команды  goto  begin.

Теперь протестируйте программу в режиме Animate. По содержимому ячеек ПД убедитесь в правильности ее работы.

И, наконец, выполните программу в автоматическом режиме  Run. Убедитесь, что в этом режиме содержимое окна  File Registers  не обновляется. Остановите выполнение программы. Зеленая стрелка укажет на точку останова работы программы, в окно File Registers обновится.

Сделайте выводы об удобстве режимов Step Out  и  Step Over при отладке подпрограмм. Представьте себе, что подпрограмма содержала бы несколько сотен циклов!

                     4. Задания для самостоятельной работы

1.  Для заданного МКУ напишите программу, которая включает светодиоды VD1, VD3 и VD6.

2.  Для заданного МКУ напишите программу, которая производит сложение содержимого ячеек памяти данных с адресами 10h и 1Fh. Если в результате сложения будет переполнение, то включается светодиод VD4.

3.  Для заданного МКУ напишите программу, которая производит вычитание константы 25h из содержимого регистра Temp1. Если в результате вычитания получится отрицательное число, то включается светодиод VD7.

4.  Для заданного МКУ напишите программу, которая проверяет равенство содержимого ячеек памяти данных с адресами 25h и 35h. В случае равенства загорается светодиод VD7. Напишите два варианта программы сравнения: с использованием логической команды и с помощью вычитания.

5.  Для заданного МКУ напишите программу, которая преобразует содержимое ячейки памяти данных с адресом 40h (двоичное целое число без знака) в дополнительный код.

6.  Для заданного МКУ напишите программу, которая инвертирует биты 7, 6, 5 порта B.

7.  Для заданного МКУ выдать на линию 0 порта B значение 4-го бита регистра Temp2.

8.  Напишите программу настройки портов МК PIC16F84A на  следующую конфигурацию. Порт A : линии RA0 и RA1 на вывод, остальные – на ввод. Порт B: линия RB0 на ввод, остальные – на вывод.

9.  Для заданного МКУ напишите программу, которая последовательно выводит в порт В содержимое ячеек памяти данных с адреса 20h по адрес 40h (используйте косвенную адресацию ячеек памяти).

5.  Содержание отчета

Наименование и цель работы. Принципиальная схема МКУ. Текст базовой программы. Тексты программ к заданиям для самостоятельной работы по пп. 3.1 – 3.12. Тексты разработанных программ по п. 4. Комментарии во всех программах обязательны!

                                          Контрольные вопросы

1.  Как производится настройка портов МК PIC16F84A?

2.  Какие команды арифметических операций может выполнять PIC16F84A?

3.  При выполнении вычитания содержимого ячейки 1Ch из ячейки 20h памяти данных установился флаг C. О чем это говорит?

4.  Как можно проверить равенство содержимого двух ячеек памяти данных?

5.  Как можно проверить на нуль сигнал на линии 3 порта A, настроенного на ввод?

6.  Как выполняется в МК PIC16 косвенная адресация?

7.  Как можно проинвертировать  4-й разряд порта B, настроенного на вывод?

8.  Объясните различия в выполнении команд  return,  retlw,  retfie.