Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабРабота_2.docx
Скачиваний:
18
Добавлен:
04.05.2019
Размер:
252.62 Кб
Скачать

Void main(void)

{

init( ); // вызов функции инициализации

diagn( ); // вызов функции диагностики

loop:

if( PORTBbits.RB0 ==0)

PORTCbits.RC0 = 1;

else

PORTCbits.RC0 = 0;

if( PORTBbits.RB7 ==0)

PORTCbits.RC7 = 1;

else

PORTCbits.RC7 = 0;

goto loop; // зацикливание программы

}

void init(void) // функция инициализации МК

{

PORTB = 0; // очистить регистр данных порта В

PORTC = 0; // очистить регистр данных порта С

TRISB = 0b10000001; // настроить линии RB0 и RB7 порта В

// на ввод, остальные – на вывод

TRISC = 0; // настроить все линии порта С на вывод

EnablePullups( ); // вызов функции подключения подтягивающих

// резисторов ко входам порта В

}

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 > New Workbook , при этом на экране появится диалоговое окно 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 порта С. Попытайтесь понять, правильно ли работает программа?

3.8.13. Остановите выполнение программы. А затем сверните окно программы MPLAB IDE.

3.8.14. Теперь нужно создать с помощью Proteus VSM схему МКУ, приведенную на рис. 7, для проверки работы программы check.c.

Запустите программу ISIS.exe пакета Proteus VSM с помощью ярлычка с надписью ISIS на рабочем столе компьютера. Создайте новый проект, используя пункт меню File > New Design. В открывшемся диалоговом окне щелкните по варианту DEFAULT, а затем по кнопке OK.

Для выбора элементов схемы из библиотек Proteus щелкните мышью по иконке (значку) с всплывающей надписью Component Mode на панели инструментов, а затем по кнопке P в верхнем левом углу переключателя объектов Object Selector. На экране появится окно Pick Devices библиотеки компонентов.

Компоненты (элементы схемы) выбирайте по ключевым словам Keywords (названиям элементов) следующим образом:

  • сначала найдите микроконтроллер. Для этого наберите в окне Keywords слово pic18f242;

  • затем выберите светодиод с красным цветом свечения. Для этого очистите строку Keywords и введите слово LED-RED (красный светодиод);

  • далее выберите светодиод с зеленым цветом свечения. После очистки строки Keywords введите слово LED-GREEN (зеленый светодиод);

  • затем выберите резистор. С этой целью очистите строку Keywords и введите слово RES (резистор). В окне результата выберите строку RES DEVICE;

  • и в заключение выберите переключатель (кнопку). Для этого очистите строку Keywords и введите слово BUTTON (кнопка). В окне результатов выберите строку BUTTON ACTIVE.

Рис. 7. Схема МКУ для проверки работы переключателей SB1, SB2

Итак, все элементы схемы выбраны и появились в списке окна Object Selector. Закройте библиотеку нажатием на клавишу Enter.

Теперь разместите элементы МКУ в окне редактирования. Вначале поместите микроконтроллер. Постарайтесь, чтобы вывод RC0 оказался на линии точек сетки. Это в дальнейшем упростит рисование соединений в схеме. Для удобства размещения увеличьте масштаб отображения элементов. Разместите на схеме резисторы, светодиоды и кнопки согласно рис. 7.

Затем перейдите в режим Terminals Mode, для чего требуется щелкнуть мышью по иконке с соответствующей надписью на панели инструментов. После этого в окне Object Selector появится список доступных элементов. Выберите из списка клемму GROUND (земля, общий провод) и поместите ее под светодиодами. Затем выберите из списка клемму POWER (питание) и поместите ее около вывода MCLR микроконтроллера. Выполните соединение элементов между собой согласно принципиальной схеме, приведенной на рис. 7.

Далее необходимо установить параметры компонентов принципиальной схемы МКУ. С этой целью подведите курсор мыши на изображение микроконтроллера и дважды щелкните левой кнопкой. Откроется окно редактирования свойств компонента Edit Component. В строке Processor Clock Frequency (тактовая частота процессора) выставьте 4 МГц. Остальные установки пока менять нет необходимости. Щелкните по кнопке OK для подтверждения выбора параметров. Затем щелкните по пустому месту схемы для снятия выделения с МК.

Далее необходимо установить параметры резистора R1. С этой целью подведите курсор на изображение резистора R1 и дважды щелкните левой кнопкой мыши. Откроется окно редактирования свойств резистора. Введите в поле Resistance число 300 (сопротивление), а затем нажмите кнопку в поле Mode Type и выберите строку DIGITAL. Щелкните по кнопке ОК для подтверждения выбора. Для резистора R2 установите такие же параметры.

Подведите курсор к изображению клеммы POWER (питание) и дважды щелкните по ней левой кнопкой мыши. Откроется окно редактирования Edit Terminal Label. Щелкните по стрелке в окне String, и в раскрывшемся списке выделите строку VDD. Это будет означать, что на клемму POWER подано напряжение питания UDD. Щелкните по кнопке ОК для подтверждения выбора и закрытия окна диалога. В заключение сделайте надписи SB1 и SB2 около изображений кнопок на схеме.

После завершения разводки необходимо сохранить проект. Для этого выберите пункт меню File > Save Design As… Раскройте папку e:\...\proj12 и сохраните в ней проект под именем check.dsn.

В заключение закройте программу Proteus ISIS.

3.8.15. Восстановите окно MPLAB IDE. Откройте проект pr12 из папки proj12 и файл check.c.

Выберите Proteus VSM в качестве инструмента для выполнения проверки работы МКУ. Это делается с помощью пункта меню Debugger > Select Tool > Proteus VSM. На рабочем столе откроется окно Proteus VSM MPLAB Viewer (окно просмотрщика).

Щелкните по крайнему левому значку меню с всплывающей надписью Open Design. В раскрывшемся окне Load ISIS Design File найдите вашу папку e:\…\proj12 и откройте файл check.dsn. На экране появится схема разработанного МКУ.

Далее необходимо загрузить в микроконтроллер исполняемый hex-файл программы check.hex. С этой целью щелкните по заголовку окна редактора программы e:\...\proj12\check.c. Затем с помощью пункта меню Project > Build All выполните компиляцию файла check.c. После появления в окне результатов Output сообщения “BUILD SUCCEEDED” полученный файл check.hex автоматически загрузится в программную память микроконтроллера.

3.8.16. Теперь можно приступить к проверке работы МКУ с помощью просмотрщика Proteus Viewer. С этой целью щелкните по зеленой кнопке с всплывающей надписью “Start Simulation” в строке меню отладчика. При этом Proteus Viewer соединяется с MPLAB IDE. В результате активизируются значки управления отладкой в меню MPLAB, а в заголовке окна Proteus VSM MPLAB Viewer добавится надпись (Animating).

Выполните проверку работы МКУ в автоматическом режиме выполнения программы. С этой целью щелкните по значку Reset из отладочного меню, а затем – по значку Run. Согласно алгоритму программы check.c после запуска МКУ оба светодиода должны загореться на время 1 с, а затем погаснуть. Нажмите кнопку SB1 на схеме МКУ, щелкнув по кружку активатора около кнопки. Контакт кнопки должен замкнуться, а светодиод VD1 красного цвета должен загореться. Теперь нажмите аналогично на активатор кнопки SB2. Светодиод VD2 зеленого цвета должен загореться. После этого вновь щелкните мышью по кружкам активаторов кнопок SB1 и SB2. Контакты кнопок должны разомкнуться, а светодиоды погаснуть. Теперь щелкните по середине изображения кнопки SB1. Контакт кнопки SB1 должен кратковременно замкнуться, а затем разомкнуться. В это время светодиод VD1 должен загореться. Затем щелкните по кнопке SB2. Светодиод VD2 должен кратковременно загореться. Если все эти действия МКУ выполняет правильно, то можно сделать вывод, что программа работает согласно заданному алгоритму.

Щелчком по значку Halt остановите выполнение программы.

Для завершения процесса отладки с помощью просмотрщика Proteus Viewer нужно щелкнуть по краcной кнопке с всплывающей надписью Stop Simulation. Произойдет рассоединение отладчика MPLAB IDE и просмотрщика Proteus Viewer.

В заключение закройте все окна и проект в MPLAB IDE.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]