- •Шина керування (Control bus)
- •1.Організація однокристальних еом
- •1.3 Організація вводу/виводу інформації
- •1.4. Блок керування
- •1.5. Логічна схема умовних переходів
- •1.6.Режим преривання
- •1.7.Таймер/лічильник
- •2.Повноекраний налагоджувач ассемблерних програм для однокристальних еом кр1816ве48
- •2.2.Команди налагоджувача.
- •2.3.Повноекранне редагування.
- •2.4.Режим Ассемблера.
- •2.5. Робота з точками преривання.
- •3.Система команд оеом кр1816
- •3.1.Група команд пересилки данних
- •Рпзп Програм і
- •Порт р1
- •Порт р2
- •3.2.Група команд арифметичних та логічних операцій
- •3.3.Група команд вводу-виводу інформації.
- •3.4.Група команд передачі керування.
- •3.5.Група команд операцій з таймером
- •3.6.Група команд керування режимом роботи оеом
- •4.Приклади написання програм для оеом кр1816 ве48
- •4.1. Приклади використання команд передачі данних
- •4.2. Приклади використання команд арифметичних операцій.
- •4.3. Приклади використання команд логічних операцій
- •4.4. Приклади використання команд передачі керування і команд керування режимом оеом
4.Приклади написання програм для оеом кр1816 ве48
4.1. Приклади використання команд передачі данних
1.1
Записати в резидентну память данних (РПД) в елементи памяті з адресaми 41 та 42 число 1С3FH.
LOAD: MOV R0,#41 ; завантаження в R0 показчика РПД
MOV @R0,#1CH ;завантаження в РДП числа 1СH
INC R0 ; переміщення показчика адреси РПД
MOV @R0,#3FH ; запис в РПД числа 3FH.
1.2.
Переслади поточний вміст таймера в R5 з збереженням вмісту аккумулятора.
XCHNG: XCH A,R5 ; обмін R5 і аккумулятора
MOV A,T ; пересилка вмісту таймера в аккумулятор
XCH A,R5 ; обмін R5 і аккумулятора
1.3
Передати вміст регістрів банка 0 в ЗПД, починаючи з адреси 50H:
MOV A,#10000B ; вибір банка регістрів 1
MOV PSW,A ;
MOV R0,#50H ; визначення посаткової адреси ЗПД
MOV R1,#0 ; визначення початкової адреси банку
регістрів
MOV R2,#8 ; лічильник регістрів (циклів) (----8
LOOP: MOV A,@R1 ; пересилка байта з регістра в ЗПД
MOVX @R0,A ; через аккумулятор
INC R0 ; переміщення показчика
INC R1
DJNZ R2,LOOP ; продовжити, якщо передані не всі
регістри
1.4
Ввести байт з порта 1 та перпедати його в порт 2.
TRAN: MOV A,#0FFH ; перевід порта 1 на режим вводу
OUTL P1,A ;
IN A,P1 ; ввод байта з порта 1 Вивести данні з порту в аккумулятор
OUTL P2,A ; вивод байта в порт 2
1.5
Вивести данні з порта P7
INPUT: MOVD A,P7 ; пересилка чотирьох бітів з порта 7 в
молодшу тетраду аккумулятора
1.6.
Обчислити добуток двох 4-бітних чисел, розміщених в молодших тетрадах ре-гістрів R0 i R1. Для обчислення використовується таблиця добутків для всіх комбінацій співмножників (всього 256). Добуток двох тетрад має формат 1 байт. Таким образом, необхідна таблиця добутків займає одну сторінку памяті. Дану таблицю удобно розмістити на третій сторінці РПП.
;ОБЧИСЛЕННЯ Z=XY
;R0=0000.XXXX
;R1=0000.YYYY
;X iY приймають значення 0 та 1
ORG 0 ; директива ассемблера, що задає початкову
адресу програми
MOV A,R0 ; пересилка множимого в аккумулятор
SWAP A ; облмін тетрадами аккумулятора
ORL A,R1 ; формування в аккумсуляторі адреси добутку
MOVP3 A,@A ; завантаження в аккумулятор добутку
ORG 0300H ; директива ассемблера, що задає початкову
адресу таблиці на третій сторінці РПП
;ДИРЕКТИВИ АССЕМБЛЕРА, ЩО ФОРМУЮТЬ ТАБЛИЦЮ ДОБУТКУ
DB 0,0,0,0,0,0,0,0; ;Z=0Y
DB 0,0,0,0,0,0,0,0
DB 10,11,12,…..10FH ;Z=1Y
. . .
. . .
DB 0FH0,0FH1,0FH2,. . . 0FH0FH; Z=0FY