Числовые константы и системы счисления

 

MPASM поддерживает шестнадцатеричную, десятичную и двоичную системы счисления. Для обозначения числового значения используется символ «#».

Синтаксические правила числовых значений приведены в таблице 18.2.

 

Таблица 18.2 – Синтаксис числовых значений

 

Тип Синтаксис Пример
Шестнадцатеричный 0x< числовое значение > #0x9F
Десятичный <числовое значение> #123
Двоичный 0b<числовое значение> #0b11

Тренировочный пример составления исходного кода программы

Задача: Вычислить значение выражения (25 + 13) × (18 – 9), результаты промежуточных вычислений хранить в регистрах. Выделить младшую тетраду результата и поместить её в старшую. Проверить корректность выполнения алгоритма и результаты промежуточных вычислений в симуляторе. Указать результат выполнения алгоритма.

Алгоритм решения задачи представлен на рисунке 18.18.

Листинг тренировочной программы:

 

  .include "P33FJ32MC204.inc"    
  .global __reset   ;Метка начала исходного файла
__reset:      
  MOV #25, W0 ;W0 = 25
  MOV #13, W1 ;W1 = 13
  ADD W0, W1, W2 ;W2 = W0 + W1
       
  MOV #18, W3 ;W3 = 18
  MOV #9, W4 ;W4 = 9
  SUB W3, W4, W5 ;W5 = W3 – W4
  MUL.SS W2, W5, W6 ;W6 = W2 × W5
       
  AND #0x000F, W6 ;W6 = W6 ˄ #0x000F, выделение ;младшей тетрады
  SL   W6, #12, W6 ;W6 = W6 << 12, сдвиг влево на ;12 разрядов  
Результат выполнения алгоритма – регистр W6 содержит значение 0x6000.

.end         ;Конец исходного файла    

Рисунок 18.18 – Схема алгоритма к тренировочному заданию

 

ЛАБОРАТОРНАЯ РАБОТА №19

ИССЛЕДОВАНИЕ устройств ввода-вывода дискретных сигналов В МИКРОПРОЦЕССОРНЫХ СИСТЕМАХ НА БАЗЕ

МИКроконтроллера семейства dsPIC33F

Цель работы

1 Изучить структуру и особенности работы портов микроконтроллеров (МК) семейства dsPIC33F.

2 Изучить схему подключения входных и выходных дискретных сигналов к МК dsPIC33F.

3 Изучить особенности программирования ввода-вывода дискретных сигналов на языке программирования C.

4 Создать проект, составить исходный код программы ввода-вывода дискретных сигналов по заданному алгоритму, откомпилировать ее в среде MPLAB IDE 8, записать в память программ МК dsPIC33FJ32MC204 учебного стенда НТЦ-31.000 и выполнить.

5 Исследовать работу дискретных входов и выходов.

 

Подготовка к выполнению работы

1 Изучить по [1] структуру и особенности работы портов МК dsPIC33FJ32MC204.

2 Изучить по [2] схему подключения входных и выходных дискретных сигналов к МК.

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

4 Подготовить ответы на вопросы для самоконтроля.

 

Вопросы для самоконтроля

1 Дайте определение дискретного сигнала.

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

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

4 Дайте краткое описание структуры линии порта, объединенной с выводами периферийных функций

 

Приборы, оборудование и документация

 

1 Персональный компьютер.

2 Учебный стенд НТЦ – 31.000.

3 Методические указания к лабораторной работе.

4 MPLAB IDE 8. Руководство пользователя.

Порядок выполнения работы

 

1 Проверка подготовки учащихся к занятию по вопросам для самоконтроля в виде фронтального или программированного опроса и инструктаж по технике безопасности.

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

3 Подключить стенд к сети. Включить тумблер «Сеть» на задней панели стенда.

4 С помощью кабеля USB AM-BM через гнездо «USB» на задней панели стенда подключить стенд к USB – порту ПК.

5 Включить ПК и запустить MPLAB IDE 8.

6 Задание №1.Создать проект LR19_1 для учебного стенда НТЦ-31.000, который реализует следующее условие: отображать на светодиоде VD1 состояние тумблера SA1, а на VD2 – состояние SA2. Схема алгоритма и листинг (исходный код) программы к заданию №1 приведены в методических указаниях к данной лабораторной работе.

6.1 Выполнить пункты 2.1…2.7 руководства пользователя MPLAB IDE 8. При этом в пункте 2.4 в качестве инструмента программирования «Active Toolsuite» установите «Microchip C30 Toolsuite», а в качестве языка программирования «Toolsuite Сontents» выберите язык программирования C (MPLAB С30)
(рисунок 19.1), а в пункте 2.5 выбора каталога для сохранения проекта укажите LR19_1.

 

 

Рисунок 19.1 – Выбор инструмента и языка программирования

 

6.2 С помощью пункта меню «File ® Import» (рисунок 19.2) открыть исходный файл к заданию №1. В каталоге файлов исходных кодов программ «Files LR17…LR20» на локальном диске D выбрать «LR19_1.hex».

 

 

Рисунок 19.2 – Выбор исходного файла к заданию №1

 

6.3 С помощью пункта меню «Programmer ® Select Programmer» выбрать программатор PICkit2.

6.4 Запрограммировать МК стенда НТЦ-31.000 созданной программой, используя пункт меню «Programmer ® Program».

Результат программирования отобразится в окне сообщений, и в случае успешного программирования (сообщение - …PICkit2 Ready) необходимо перевести МК в рабочий режим с помощью пункта меню «Programmer ® Release From Reset».

6.5 После получения сообщения указанного на рисунке 19.3 МК запрограммирован.

 

Рисунок 19.3 – Сообщение о результатах прошивки МК программой к заданию 1

 

6.6 Проверить влияние положения датчиков дискретных сигналов (тумблеры SA1 и SA2) на дискретные светодиодные индикаторы (светодиодные индикаторы VD1 и VD2).

7 Задание №2. Создать проект для учебного стенда НТЦ-31.000, который реализует следующее условие: если SA1 = 1 и SA2 = 0 то VD1 = 0 и VD2 = 0, если SA1 = 0 и SA2 = 1, то VD1=1, VD2 = 1, если SA1 = SA2, то VD1=0, VD2 = 1. Схема алгоритма и листинг (исходный код) программы к заданию №2 приведены в методических указаниях к данной лабораторной работе.

7.1 Выполнить пункты 2.1…2.4 руководства пользователя MPLAB IDE 8. При этом в пункте 2.4 в качестве инструмента программирования установите «Microchip C30 Toolsuite»и выберите язык программирования С.

7.2 В окне выбора пути к каталогу сохранения файлов проекта выберите «Browse…». В открывшемся окне (рисунок 19.4) выберите путь: «Мой компьютер\Локальный диск D\Lan\DSPIC33\TE111\Ivanov\LR19_2\».

 

Рисунок 19.4 – Окно выбора пути к каталогу сохранения файла

Примечание – Фамилию учащегося, набранную буквами английского алфавита, выбрать из списка своей учебной группы и создать папку для лабораторной работы LR19_2 и нажать кнопку «Сохранить». Окно выбора пути к каталогу будет иметь вид, показанный на рисунке 19.5. Нажмите кнопку «Далее».

 

 

Рисунок 19.5 – Выбор каталога для сохранения проекта к заданию № 2

 

7.3 В открывшемся окне (рисунок 19.6) добавить существующие файлы в проект: «+С:\+Programm Files(x86)\+Microchip\+MPLAB C30\+support\
+dsPIC33F\+gld\+p33FJ32MC204.gld».
Нажмите кнопку «Далее».

 

Рисунок 19.6 – Окно добавления существующих файлов в проект

7.4 В открывшемся окне суммарной информации по проекту убедитесь, что МК и средство программирования выбраны правильно и нажмите кнопку «Готово» (рисунок 19.7).

 

 

Рисунок 19.7 – Суммарная информация по проекту

 

Файл появится в папке «Linker Script» инспектора проекта
(рисунок 19.8).

 

 

Рисунок 19.8 – Инспектор проекта

 

 

7.5 После создания проекта в него необходимо добавить файл с исходным кодом программы МК. Для этого необходимо воспользоваться пунктом меню «File ® New». В появившемся окне редактора исходных текстов наберите исходный код программы (рисунок 19.9).

 

Рисунок 19.9 – Редактор исходных текстов программ

 

7.5 После написания исходного кода программы к заданию №2 с помощью пункта меню «File ® Save As…»откройте окно «Сохранить как» и в строке «Имя файла» задайте название исходного кода программы, как «19_2.c» (рисунок 19.10).

Примечание –Путь к файлу проекта и имя файла не должны содержать кириллических символов и пробелов. Обратите внимание, что в окне сохранения файла исходного текста открывается папка
MPLAB C30\support\dsPIC33F\gld(рисунок 19.10), а файл с исходным текстом необходимо сохранить в папке, в которой сохраняли файл проекта. Сохраните файл исходного кода программы с тем же именем, которое дали проекту, добавив расширение (рисунок 19.11).

 

 

Рисунок 19.10 – Окно сохранения файла исходного текста программы

 

Рисунок 19.11 – Сохранение исходного кода программы к заданию №2

 

7.6 Кликните правой кнопкой мыши в окне редактора исходного кода и выберите пункт «Add To Project»(рисунок 19.12).

 

 

Рисунок 19.12 – Добавление исходного файла в проект

 

После описанных действий инспектор проекта должен иметь вид, показанный на рисунке 19.13.

 

 

Рисунок 19.13 - Инспектор проекта

 

7.7 Выполните компиляцию проекта, используя пункт меню «Project ® Build All». Компилятор выводит отчет о компиляции в окне «Output». В случае успешной компиляции получите сообщение BUILD SUCCEEDED (рисунок 19.14). В случае обнаружения ошибок в исходном коде соответствующие сообщения будут выведены в область уведомлений. В таком случае необходимо исправить ошибки и запустить заново компилирование проекта.

 

 

Рисунок 19.14 – Отчет о компиляции

 

7.8 После успешной компиляции с помощью пункта меню «Programmer ® Select Programmer» выбрать программатор PICkit2.

7.9 Запрограммировать стенд (прошить микроконтроллер) используя пункт меню «Programmer ® Program».

7.10 Результат программирования отобразится в окне сообщений, и в случае успешного программирования (сообщение – … PICkit2 Ready) необходимо перевести МК в рабочий режим с помощью пункта меню «Programmer ® Release from Reset» (рисунок 19.15).

7.11 После получения сообщения, указанного на рисунке 19.15, микроконтроллер запрограммирован.

7.12 Проверить влияние положения датчиков дискретных сигналов на дискретные светодиодные индикаторы

8 После проверки преподавателем результатов работы закрыть MPLAB IDE, выключить ПК и учебный стенд.

9 Оформить отчет и сдать зачет.

 

Рисунок 19.15 – Сообщение о результатах прошивки стенда

 

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

 

Отчет должен содержать:

 

1 Наименование и цель лабораторной работы.

2 Условия, схемы алгоритмов и листинги программ к заданиям №1 и 2

3 Ответы на контрольные вопросы.

 

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

 

1 Какую дополнительную функцию имеет линия порта RA2. Поясните, как она отключается при настройке этой линии на ввод?

2 Поясните, как настраивается линия порта RA2 МК dsPIC33F на ввод, а линия порта RB15 – на вывод?

3 Укажите команду на языке программирования С, которая настраивает линию порта RB13 на выход.