Робота з портами вводу/виводу. Вивчення пакета MPLAB, страница 2

                    00002

  00000005          00003 PORTA EQU 0x05

  00000006          00004 PORTB EQU 0x06

  00000013          00005 MEM   EQU 13

                    00006

0000                00007 ORG   0x000    ; processor reset vector

0000 0A02           00008 GOTO  BEGIN    ; go to beginning of program

0001 0000           00009 NOP

                    00010

0002                00011 BEGIN              ; начало програмы

                    00012 ; ************* настройка портов в/в ************

0002 0040           00013 CLRW               ; W:=0

0003 0005           00014 TRIS PORTA         ; TRISA:=0 вывод по всем линиям

                    00015

0004 0CFF           00016 MOVLW  0xFF        ; W:=FFh

0005 0006          00017 TRIS PORTB    ; TRISB:=1111 1111 ввод по всем линиям

                    00018

0006 0066           00019 CLRF PORTB         ; Clr PORTB

0007 0065           00020 CLRF PORTA         ; Clr PORTA

                    00021

0008             00022 MAIN  ;*********** Начало основной программы *********

0008 0206           00023   movf   PORTB,0    ;W=98 (пересылка мз PORTB в W)

0009 0033           00024   movwf  MEM        ;W=MEM

                    00025

000A 0025           00026   movwf  PORTA      ;W -> PORTA  (младшая тетрада)

000B 0393           00027   swapf  MEM,0      ;обмен тетрад числа в МЕМ и запись в W

000C 0025           00028   movwf  PORTA      ;W -> PORTA  (старшая тетрада)

000D 0A08           00029   GOTO   MAIN

                    00030 END

MPASM 02.20 Released           LAB_1.ASM   3-11-2004  19:59:17        PAGE  2

SYMBOL TABLE

  LABEL                             VALUE

BEGIN                             00000002

MAIN                              00000008

MEM                               00000013

PORTA                             00000005

PORTB                             00000006

__16C56                           00000001

MEMORY USAGE MAP ('X' = Used,  '-' = Unused)

0000 : XXXXXXXXXXXXXX-- ---------------- ---------------- ----------------

All other memory blocks unused.

Program Memory Words Used:    14

Program Memory Words Free:  1010

Errors   :     0

Warnings :     0 reported,     0 suppressed

Messages :     0 reported,     0 suppressed

Відладка та перевірка працездатності програми

Відладка програми виконувалась за допомогою MPLAB Simulator Stimulus, де можна задавати послідовніст вхвдного байту. Для цоьго необхідно створити файл з розширенням .sti та підключити його перед виконанням програми (меню Debug/Simulator Stimulus/Pin Simulus/Enable). Тобто був створений файл nn.sti, який має слідуючий вигляд:

STEP    RB7    RB6    RB5    RB4    RB3    RB2    RB1    RB0

1       0       0      0      0      0      0      0      0

10      0       1      1      0      0      0      1      0

де STEP – кількість кроків за які виконується програма.

Для перевірки працездатності програми, її необхідно відлагодити шляхом послідовного натискання клавіши F8 та дивлячись на стан усіх використаних регістрів, який можна побачити за допомогою вікна  watch (меню Window/Load Watch Window Lab_1.wat – файл,який можна створити за допомогою Window/New Watch Window та підключити необхідні регістри). Вікно Watch зображено на рис.2.

Також необхідно перевірити зміни значення вхідного байту, яке задано у файлі nn.sti, чи відповідають зміни значення вхідного байту заданому такту.

Це можна зробити за допомогою просмотру кількості тактів роботи програми у вікні Stop Watch (меню Window) (див. рис.2.)

Для того щоб зробити відладку програми необхідно виконати наступні дії:

1.  Відкрити проект Lab_1.pjt.

2.  Відкомпілювати його (Project/Buld All) та впевнитися, що помилок немає.

3.  Підключити файл nn.sti, у якому задані значення вхідного байту.

4.  Вивести на екран вікна Watch та Stop Watch

5.  Для початку відлатки необхідно зробити скидання процесу (F6).

6.  Почати пошагову відладку за допомогою клавіши F8 та аналізувати стан регістрів.

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

Рис.2. Процес відладки програми

Висновок:  Під час виконання лабораторної роботи, вивчили на прикладі мікроконтролера PIC16C56 режими роботи портів вводу/виводу, способи й особливості їх ініціалізації. Розглянути ввід/вивід дискретних сигналів. Набули практичні уміння роботи з пакетом MPLAB, засвоїли способи задання зовнішніх впливів на виводи портів мікроконтролера.