}
void diagn(void) // функция диагностики светодиодов
{
PORTCbits.RC0 = 1; // включить светодиод VD1
PORTCbits.RC7 = 1; // включить светодиод VD2
Delay10KTCYx(100); // задержка на 1 с
PORTCbits.RC0 = 0; // выключить VD1
PORTCbits.RC7 = 0; // выключить VD2
Delay10KTCYx(100); // задержка на 1 с
}
3.8.1. Создайте проект с именем pr12 в новой папке, которую можно назвать proj12.
3.8.2. Наберите текст программы check.c в окне редактора (с использованием цветовой кодировки текста при наборе).
3.8.3. Теперь необходимо внести исходный файл check.c и файл сценария линкера 18f242.lkr в созданный проект pr12.
3.8.4. Далее необходимо проверить установки опций для создания проекта с помощью пункта меню Project > Build Options... > Project.
3.8.5. После того, как были выполнены все указанные выше пункты по предварительной подготовке проекта, можно приступить к его построению, используя пункт меню Project > Build All .
3.8.6. В случае успешной компиляции проекта выполните тестирование программы с помощью симулятора MPLAB SIM. С этой целью выберите пункт меню Debugger > Select Tool > MPLAB SIM . Затем с помощью пункта меню View > Watch откройте окно наблюдения Watch и занесите в него переменные PORTB и PORTC (выбрать из списка SFR – регистры специальных функций).
3.8.7. Далее нужно подготовить средства для измерения временных параметров программы check.c. С этой целью необходимо установить тактовую частоту работы МК. Для этого выберите пункт меню Debugger > Settings…. В открывшемся окне Simulator Settings выберите вкладку Osc/Trace. Установите в поле Processor Frequency число 4, что соответствует тактовой частоте 4 МГц. Вид окна для установки частоты процессора приведен на рис. 2.
3.8.8. С помощью пункта меню Debugger > Stopwatch откройте окно секундомера Stopwatch, как показано на рис. 3.
3.8.9. В программе check.c проверяется состояние линий RB0 и RB7 порта В при различном положении контактов переключателей SB1 и SB2. Для моделирования логических сигналов на входах порта В будем использовать асинхронные стимулы. Для создания асинхронных стимулов выберите пункт меню Debugger > Stimulus > NewWorkbook, при этом на экране появится диалоговое окно Stimulus. В этом окне выберите вкладку “Asynch”. Установите для линий портов RB0 и PB7 опции Set High, Set Low и Toggle по методике, изложенной в п. 3.6.2. Вид окна асинхронных стимулов для линий RB0 и RB7 должен иметь вид, приведенный на рис. 5.
Рис. 5. Вид окна асинхронных стимулов для линий RB0 и RB7
После выбора настроек нажмите кнопку Apply в диалоговом окне с целью разрешения их использования.
3.8.10. Активизируйте окно редактирования файла …..\check.c и поставьте точки останова в функции diagn( ), как показано на рис. 6.
Рис. 6. Точки останова в функции диагностики diagn( )
3.8.11. Выполните программу в автоматическом режиме. С этой целью щелкните по значку Reset, а затем по значку Run. Выполнение программы остановится на первой точке останова, что индицируется зеленой стрелкой внутри нее. В окне секундомера индицируется время (Time) в микросекундах, которое прошло от момента запуска до момента останова программы. Секундомер покажет 52 мкс.
Сбросьте секундомер нажатием на кнопку Zero. Вновь запустите программу в режиме Run. Выполнение программы остановится на второй точке останова. Секундомер покажет 1 секунду. Это число и будет определять величину задержки, реализуемой функцией Delay10KTCYx(100). Как видно, задержка реализована с очень высокой точностью.
Остановите выполнение программы нажатием на кнопку Halt. Уберите точки останова в функции diagn( ).
3.8.12. Теперь исследуйте работу программы в режиме Animate. С этой целью щелкните по одноименному значку в меню управления отладкой. Зеленая стрелка будет перемещаться внутри оператора цикла while(1). Щелкая мышью по кнопкам “>” поля Fire в окне Stimulus подавайте на входы RB0 и RB7 различные уровни сигналов. Наблюдайте в окне Watch за значениями битов RB0, RB7 порта В и битов RC0, RC7 порта С. Попытайтесь понять, правильно ли работает программа?
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.