Вивчення способів формування часових інтервалів різної тривалості, організації сторінкової пам'яті програм і даних, страница 4

5. Якщо є помилки , то вони зберігаються у файлі лістінгу або у файлі помилок (lst, err). Виправляю помилки.

6. Debug –> Simulator Stimulus –> Clock Stimulus ... – задаю зовнішні сигнали на входи портів вводу/виводу.

7. Window –> Special Function Registers – відкриття вікна регістрів спеціального призначення.

Рис.4. Вікно Special Function Registers.

В ході програми я можу спостерігати за станом регістрів спеціального призначення за допомогою цього вікна.

8. Debug –> Run –> Reset – скидання мікроконтролера.

9. Debug –> Run –> Step – покрокове виконання програми.

10. File –> Exit – вихід із програми.

Методика тестування:

В ході лабораторної роботи я повинна була створити програму що виконує ділення зовнішньої частоти F, що надходить на вивід RA4/T0CKI мікроконтролера PIC16F84 з коефіцієнтом ділення К1. Отриману частоту вивести на вивід RB0  мікроконтролера. І другу програму щоб проаналізувати функціонування сторожового таймера в режимі SLEEP.

    Після написання тексту програми виконую її компіляцію:

Рис. 5 Компіляція програми.

          Після компіляції я можу спостерігати покроково за роботою програми за допомогою вікна Special Function Registers:

Рис. 6 Вікно Special Function Registers до виконання програми.

Після першого кроку виконання (Debug –> Run –> Step) я можу побачити наступне:

Рис. 7 Вікно Special Function Registers.

Рис. 8 Вікно Special Function Registers.

Формування одиниць на вході порту В :

Рис. 9 Вікно Special Function Registers – формування „1”.

Формування нуля на першому розряді порту В, затримка в 3 цикла (з 8 до 11):

Рис. 10 Вікно Special Function Registers – формування „0” на першому розряді.

На порт В –одиниці:

Рис. 11 Вікно Special Function Registers- формування „1”.

          Формування нуля на першому розряді порту В, затримка в 44 цикли (58-14=44):

Рис. 12 Вікно Special Function Registers – формування „0” на другому розряді.

Формування одиниць на розрядах порту В:

Рис. 13 Вікно Special Function Registers – формування „1”.

Фомування нуля на третьому розряді порту В, затримка:

Рис. 14 Вікно Special Function Registers – формування „0” на третьому розряді.

          Таким чином, у ході тестування я отримала 3 затримки, що по тривалості співпадають з заданими.

Результати виконання програми:

В результаті лабораторної роботи виконується: на виводі RB1 мікроконтролера імпульс тривалістю t1, реалізовано часову затримку заданої тривалості; на виводі RB1 мікроконтролера імпульс заданої тривалості, на виводі RB2 мікроконтролера - імпульс тривалістю t2.

В програмі реалізується часова затримку без використання таймера, на виводі RB2 мікроконтролера, формується імпульс заданої тривалості., на виводі RB3 мікроконтролера формується імпульс тривалістю t3.

Конфігурацію пристроїв мікроконтролера зроблено без використання команд TRIS і OPTION, використовуючи спеціальні регістри банку 1.

Затримку реалізовано за допомогою пустих команд nop ,але за рахунок часу потрібного на виконання команди скидання сигналу nop буде на 1 менше ніж час затримки у циклах.

Одна затримка на декремент лічильника , друга на встановленя константи лічильника таймера (очікування переповнення таймеру та перехід у цикл).

Явний виклик процедури – сall мітка підпрограми. Програма по заданій адресі пишеться за допомогою org<зсув>.

Неявний виклик підпрограми виконується у 4 такта : старша адреса у регістр PC\ATH, молодша адреса в PCL і перехід. Поверненя з підпрограмми – RETURN .

Висновки: В результаті лабораторної роботи я навчилася формувати затримки

необхідної тривалості. Навчилася реалізувати часову затримку без використання таймеру. В ході роботи я навчилася подавати імпульси різної тривалості на різні виводи мікро контролеру (вивід у різні розряди порту В : 1, 2, 3). Також я навчилася виконувати конфігурування пристроїв мікроконтролера без використання команд TRIS і OPTION, використовуючи спеціальні регістри банку 1.