Td>
mov DPL, A
; запис значення в DPTR
jmp exit
; Кінець програми
nul:
mov A, R6
; немає
mov R0, A
; Збереження Першого операнда
inc R7
; Наступний буде вводітіся другий операнд
setb EX0
; Дозволу переривані
jmp ex
; вихід Із процедури Уведення
exit:
mov R7, # 0
; для Закінчення програми
ex:
reti
4. Секундомір. Програма вікорістає апаратні засоби відліку Тимчасових інтервалів - таймер 0 (200Bh). Година виводу на ССІ помощью стандартної процедури 0940 (для цього потрібне Значення нужно помістіті в Регистр R0). Програма віконується в зациклених стані.
Алгоритм роботи програми:
В
Текст програми:
cseg
org 2000h
jmp main
; Перехід до Виконання головної програми
org 200Bh
jmp timer
; Перехід до Виконання програми ОБРОБКИ переривані
main:
mov TMOD, # 01h
; включаємо 16 - розрядно таймер
mov IE, # 10000010b
; дозволяємо переривані від таймера
mov TL0, # LOW (555)
; завантаження значення для відліку - 50мс
mov TH0, # HIGH (555)
mov R0, # 1
; качану з 1 секунда
call 0940h
; візуалізація секунд
setb TR0
; старт таймера
loop:
sjmp loop
; нескінченній цикл
timer:
clr TR0
; зупинка таймера
inc R7
; 20 * 50мс = 1С
cjne R7, # 20, out
; пройшла 1С? /Td>
mov R7, # 0
; так - Обнуління лічільніка ціклів по 50мс
inc R0
; пройшла 1С - інкремент сертифіката № секунд
cjne R0, # 60, out1
; пройшла 1 хвилина? /Td>
mov R0, # 1
; так - Секунди = 1
out1:
call 0940h
; показати Секунда
out:
mov TL0, # LOW (555)
; завантаження значення для відліку - 50мс
mov TH0, # HIGH (555)
setb TR0
; ...