Умный дом

Введение в работу с MPLAB

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

Мы создадим новый проект в основном меню Project ^ New (Проект ^ Новый). Задаем название relay проекту в пап­ке Relay, которую я советую создать в основном разделе диска в папке MPLAB. Неоднократно я сталкивался с проблемой, которая не всегда очевидна. Многие программы, да это и удобно, предлагают хранить проект в папке Мои документы. Проблемы не возникает, если вы пользуетесь англоязычной версией Windows или русскоязычной версией программы. Но многие специализированные англоязычные программы начинают вытворять чудеса, если вы работаете в русскоязыч­ной версии операционной системы. Впервые я столкнулся с этим, когда одна из сред программирования при компиляции программы стала выдавать ошибку в строке -1. Что она име­ла в виду под строкой с отрицательным номером, я не знаю. Но отыскать ошибку в правильно написанной программе ока­залось не так просто. Ошибка крылась в том, что программа, предлагая сохранить проект в папке Мои документы, при компиляции эту папку распознать не могла.

После создания нового проекта появляется окно навига­тор проекта. Теперь выберем микросхему контроллера в раз­деле основного меню Configure Select Device (Конфигура­ция Выбор устройства). Выбираем PIC16F628A (рис. 1.37).

Завершив выбор, следует создать файл основной програм­мы. Выбираем File ^ New (Файл Новый). Появляется окно редактора. Сохраним файл под именем relay. asm (File Save As (Файл ^ Сохранить как...)). Добавим этот файл в проект. Для этого щелкнем правой кнопкой мыши раздел Source Files (Исходные файлы) в окне навигатора. В открывшемся меню выберем Add Files (Добавить файлы) и укажем свой файл.

Для начала перенесем в окно редактора небольшой фраг­мент программы: инициализацию, ожидание команды и две подпрограммы: CALL adrsim и CALL cmnd. Последние подпрог­раммы - в усеченном виде. В данный момент будем использо­вать адрес модуля «01». Не забудьте поставить END в конце программы!

Adrsim: CLRW ; Если адрес 1 запишем символы "О" "Iй (30h и 31h).

ADDLW 0x30 MOVWF 0x21 CLRW

ADDLW 0x31 MOVWF 0x22 MOVF 0x20, 0

BCF STATUS, Z XORLW 0x1 BTFSC STATUS, Z RETURN

Cmnd: BCF STATUS, Z MOVF RCREG, 0

XORLW 0x52 ; Проверим наш ли модуль R (52h).

BTFSS STATUS, Z ; Если нет, вернемся.

RETURN

Inl: BTFSS PIRl, RCIF ; Ждем прихода первого символа адреса.

GOTO inl ; Если совпадает, продолжим. MOVF RCREG, О BCF STATUS, Z

XORWF 0x21, 0 ; Первый символ адреса в регистре

21h.

BTFSS STATUS, Z RETURN

In2: BTFSS PIRl, RCIF ; Ждем прихода второго символа адреса.

GOTO in2 ; Если совпадает, продолжим. MOVF RCREG, 0 BCF STATUS, Z

XORWF 0x22, 0 ; Второй символ адреса в регистре

22h.

BTFSS STATUS, Z RETURN

Для отладки откроем окно наблюдения View Watch (Вид Наблюдение), в котором выберем регистры STATUS, WREG, PIRl, EEDATA, RCREG, 2Oh, 21h, 22h, 30h. Необходимые регистры открываются кнопкой с обозначением стрелки вниз, правее располагается названия регистра рядом с кноп­кой ADD SFR (Добавить наблюдаемые). Ее следует щелкнуть после выбора регистра (рис. 1.38).

Регистры без имени (2Oh, 21h и т. д.) мы добавляем, про­сто вводя адрес в колонку Address (Адрес) на новой строке.

Добавим и EEPROM через выбор View EEPROM (Вид ■> EEPROM). Установим в качестве текущего симулятора про­граммный (Debugger Select Tool MPLAB SIM (Отладчик"* Выбор средства MPLAB SIM)). Создадим два файла input. txt

Введение в работу с MPLAB

Рис. 1.38. Окно наблюдения Watch

И output. txt (File New (Файл Новый)). В файле input. txt, ко­торый открывается в окне редактора, запишем слово команды R01 $ в виде строки в кавычках. Сохраним этот файл (File Save (Файл Сохранить)). Теперь сделаем установки отладчика (Debugger Settings... (Отладчик Установки...)): зададим ча­стоту процессора 4 МГц, на вкладке Uartl IO установим опцию Enable Uartl Ю, укажем входной файл input. txt (browse) и вы­ходной output. txt. Подтвердим замену последнего файла и уста­новим опцию Rewind Input. Изменим значение на вкладке Animation/Realtime на 1 мс. Щелкнем Применить и ОК. Вклю­чим в окна View Output (Вид Вывод). Создадим новый сценарий, который позволит ввести адрес, имитируя пере­ключатель. Для этого выберем в основном меню Debugger Stimulus Controller New Scenario (Отладчик Управление симуляцией Новый сценарий). Выберем вывод RB4 в окне Pin/SFR (Вывод/Наблюдаемые). В окне Action (Действие) выберем Set High (Установить в высокое состояние). Щелк­нем кнопку со стрелкой вправо в колонке Fire (Запустить).

Сохраним сценарий под именем relay и свернем его (не закро­ем, а свернем!). Теперь откроем окно (Configure Configuration Bits (Конфигурация ^ Биты конфигурации)), где установим биты, записываемые по адресу 2007h. Должно получиться слово 3FlAh. Закроем это окно (рис. 1.39).

Введение в работу с MPLAB

Рис. 1.39. Установки наблюдения и отладки

В завершение этих процедур упорядочим окна (Windows ^ Tile Horizontally (Окна ^ Расположить горизонтально)), сохра­ним все (File ^ Save All (Файл Сохранить все)) и добавим в проект файл todo. txt, который предварительно создадим и по­местим в раздел Other Files (Другие файлы) менеджера про­екта. В файле todo. txt будем вести план работы.

Теперь откомпилируем проект Project Build All (Про­ект Компоновать все). Сохраним и вид проекта File Save

Workspace (Файл Сохранить рабочую область). Мы готовы к отладке программы.

После выхода из программы MPLAB и подтверждения сохра­нения вида проекта, новой загрузки программы и открытия проекта (Project Open (Проект Открыть)) мне приходит­ся обнулять адрес Oh в EEPROM, щелкать Fire (Запустить) в Scenario (Сценарий), и вводить адреса 20h, 21 h и т. д. в окне Watch (Наблюдение), которые, как пишет программа, Not Found (Не найдены). Я не уверен, что дернул за все веревоч­ки, но... пока ничего лучшего не получилось.

Если вы правильно перенесли программу, то, щелкнув на инструментальной панели кнопку запуска программы, вы увидите анимацию, а в регистре RCREG (приемный регистр USART) появятся шестнадцатеричные коды символов из строки файла input. txt. Можно вписать в ячейку по адресу Oh EEPROM значение lh и увидеть, как оно переписывается в регистр 30h.

Есть еще несколько полезных возможностей. Одна из них - проверить работу с определенного места. Для этого остано­вим анимацию (кнопкой паузы на инструментальной панели), установим курсор в нужной строке и щелкнем правой кнопкой мыши. Выберем в раскрывающемся меню Set PC at Cursor (Установить счетчик команд к курсору). Теперь, щелкая зна­чок Step Into (Шаг внутрь) на инструментальной панели, мы можем отследить все изменения.

В окончательном виде я работаю в среде, которая показа­на на рис. 1.40.

Кроме написания программы на ассемблере среда MPLAB поддерживает написание программ на языке С. Существуют компиляторы разных производителей. Я использую демонст­рационную версию кросскомпилятора Hi-Tech. Посмотрим, не будет ли проще написать программу на языке С?

Введение в работу с MPLAB

Рис. 1.40. Окончательный вид окна проекта

Умный дом

Вторая версия основной программы на языке С++

/****************^ * TOC o "1-3" h z Copyright (С) 2006 by Vladimir Gololobov * * vgololobov@yandex. ru * * * * This program is free software; you can redistribute it …

Циклы

Циклы выполняют выражения или блоки выражений до тех пор, пока выражение условия не становится истинным. Наша программа требует двух циклов (один вложен в дру­гой). Пока пользователь желает угадывать последовательно­сти: { …

Две полезные схемы

Первая схема относится к настенному выключателю, работа­ющему по протоколу XI0. Что полезного можно почерпнуть из этой схемы? Например, организацию сканирования сети и управления триаком. Схему я привожу, как она сохранилась …

Как с нами связаться:

Украина:
г.Александрия
тел./факс +38 05235  77193 Бухгалтерия
+38 050 512 11 94 — гл. инженер-менеджер (продажи всего оборудования)

+38 050 457 13 30 — Рашид - продажи новинок
e-mail: msd@inbox.ru
msd@msd.com.ua
Схема проезда к производственному офису:
Схема проезда к МСД

Оперативная связь

Укажите свой телефон или адрес эл. почты — наш менеджер перезвонит Вам в удобное для Вас время.