Приклад 4.1

Провести ініціалізацію портів на наступні режими роботи:

· Р0 – всі лінії порту є приймачами;

· Р1 – всі лінії порту є передавачами, початковий стан ліній 00001111b;

· Р2 - всі лінії порту є приймачами;

· Р3 – старша тетрада порту працює в режимі альтернативних функцій, молодша тетрада знаходиться в режимі передавачів, на виходах яких логічний «0».

;------------------------------------------------------------------------------------------------

ini_P0 equ 11111111b;константа ініціалізації порту Р0

ini_P1 equ 00001111b;константа ініціалізації порту Р1

ini_P2 equ 11111111b;константа ініціалізації порту Р2

ini_P3 equ 11110000b;константа ініціалізації порту Р3

;------------------------------------------------------------------------------------------------

org 0H; адреса вектора рестарту після пуску

INIT:; мітка, що відповідає адресі блоку ініціалізації

mov P0,#ini_P0;передача в порт Р0 константи ініціалізації

mov P1,#ini_P1;передача в порт Р1 константи ініціалізації

mov P2,#ini_P2;передача в порт Р2 константи ініціалізації

mov P3,#ini_P3;передача в порт Р3 константи ініціалізації

end; директива асемблеру про закінчення програми

;------------------------------------------------------------------------------------------------

4.2. Робота з портами

Деякі команди читання порту використовують сигнал "читання засувки", інші "читання виводу".

Читання інформації з виводів мікросхеми здійснюється командами:

· MOV A, P3;передати дані з ліній порту P3 в акумулятор;

· JB P3.4,М1;якщо на лінії P3.4 логічна 1,то перейти на мітку М1.

Читання регістра - засувки здійснюється командами читання - модифікація – запис:

· CPL P3.1; проінвертувати сигнал на виводі порту P3.1;

· ORL P2, #10000001b;Встановити логічну “1”на лініях 7,0 порту P2;

· ANL P3,#11111100b;Встановити логічний “0”на лініях 0,1 порту P3.

Для запису числа в порт можна скористатися командами для роботи з байтовими даними, що встановлюють логічні рівні одразу на всіх виводах портів:

1. Пересилання (команда MOV).

MOV P2, # 11110000b;встановити “1” на виводах Р2.4 – Р2.7 та “0”на решті;ліній порту P2

MOV P1, # 01110011b;передати на порт P1 число 01110011b

MOV P3, A;передати на порт Р3 вміст акумулятора;

2. Логічне «І» (команда ANL).

ANL P1, # 11110011b;встановити “0” на ніжках P1.2 і P1.3

3. «Виключаюче АБО» (команда XRL).

XRL P3, # 01000100b;інвертувати логічні рівні на виводах P3.2 і P3.6

4. Логічне «АБО» (команда ORL).

ORL P1, # 00001100b; встановити “1” на ніжках P1.2 і P1.3

Для зміни логічних рівней на окремих виводах портів можна скористатися командами з бітовою адресацією:

1. Пересилання (команда MOV).

MOV P1.2, C;передача вмісту біту «С» на лінію порту P1.2

2. Інверсія (команда CPL).

CPL P1.2;інверсія другого біту порту P1

3. Встановлення біту (команда SETB).

SETB P2.3;встановити “1” на лінію порту порту P2.3

3. Скидання біту (команда CLR).

CLR P2.3;встановити “0” на лінію порту порту P2.3



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: