Завданя 3
ORG 0 ;програма віднімаючого шістнадцяткового лічильника.
mov A,#011b ;запис 11b в акумулятор (00000011b код керування розрядами індикатора).
mov DPTR,#0A004h ;запис у вказівник даних DPTR адреси А004
;регістру керування точками і гасінням розрядів індикатора HG-1.
movx @DPTR,A ;запис в регістр з адресою, що міститься в DPTR,
;вміст A, тобто погасити ліві 2 розряди статичного індикатора
mov A,#0FFh ;записати в акумулятор число FFh.
Continue: ;початок циклу декрементування
mov DPTR,#0A001h ;запис у вказівник даних DPTR адреси молодших (правих)
;розрядів статичного індикатора.
movx @DPTR,A ;відобразити на HG1 вміст лічильника (А).
DEC A ;декремент акумулятора.
call DEL ;виклик підпрограми затримки.
Jmp Continue ;перехід на наступний цикл декрементування й відображення
DEL: ;підпрограма затримки приблизно на 1 сек.
mov R1, #002h
C1: mov R2, #0FFh
C2: mov R3, #0FFh
C4: djnz R3, C4
djnz R2, C2
djnz R1, C1
ret ;команда повернення в основну програму.
end
Завданя 4
ORG 0 ;програма біжучого вогнику на світлодіодах HL1-HL8.
mov DPTR,#0A004h ;гасіння розрядів
mov A,#00Fh ;статичного індикатора.
movx @DPTR,A
mov A,#00000001b ;запис в А числа 00000001.
mov DPTR,#0A006h ;встановлення у вказівник DPTR
cont:
RL A ;циклічний зсув акамулятора вліво
movx @DPTR,A ;засвічення діода
call delay ;виклик підпрограми затримки
jmp cont ;зациклення програми
delay: ;підпрограма затримки
mov R2,#0FFh
C2: mov R1,#0FFh
C1: djnz R1,C1
djnz R2,C2
ret
end
Завданя 5
ORG 0 ;програма засвічення літери Я.
mov DPTR,#0A004h ;гасіння розрядів
mov A,#00Fh ;статичного індикатора.
movx @DPTR,A
cont:
mov A,#00010000b ;занесення в А числа 10000b.
mov DPTR,#08000h ;встановити у DPTR адресу стовпців.
movx @DPTR,A ;засвітити перший зліва стовпчик(світить 1).
mov A,#086h ;занести в А число 86h(10000110b).
mov DPTR,#08002h ;встановити у DPTR адресу рядків.
movx @DPTR,A ;засвітити необхідні рядки першого зліва стовпчика(світить 0).
call delay ;виклик підпрограми затримки.
mov A,#00001000b ;занесення в А числа 00001000b.
mov DPTR,#08000h ;встановити у DPTR адресу стовпців.
movx @DPTR,A ;засвітити другий зліва стовпчик.
mov A,#010110101b ;занести в А число 010110101b.
mov DPTR,#08002h ;встановити у DPTR адресу рядків.
movx @DPTR,A ;засвітити необхідні рядки другого стовпця.
call delay ;виклик підпрограми затримки.
mov A,#00000100b ;занести в А число 00000100b.
mov DPTR,#08000h ;встановити у DPTR адресу стовпців.
movx @DPTR,A ;засвітити третій стовпчик.
mov A,#00110011b ;занести в А число 00110011b.
mov DPTR,#08002h ;встановити у DPTR адресу рядків
movx @DPTR,A ;засвітити рядки третього стовпчика.
call delay ;виклик підпрограми затримки.
mov A,#00000010b ;занести в А число 00000010.
mov DPTR,#08000h ;встановити у DPTR адресу стовпців.
movx @DPTR,A ;засвітити четвертий стовпчик.
mov A,#00000000b ;занести в А число 00000000b.
mov DPTR,#08002h ;встановити у DPTR адресу рядків
movx @DPTR,A ;засвітити рядки четвертого стовпчика.
call delay ;виклик підпрограми затримки
jmp cont ;зациклення програми
;підпрограма затримки
delay:
mov R2,#002h
C2: mov R1,#0FFh
C1: djnz R1,C1
djnz R2,C2
ret
end