имеется код на ассемблере для MCS-51. Не могу разобраться с его работой, помогите пожалуйста. При его выполнении на 2 семисегментных индикаторах одновременно должны выводиться цифры, которые задаются через dip переключатель в двоичном коде. Дип переключатель состоит и 8 переколючателей, на первых 4 задаются одни цифры, на остальных 4 цифры для второго семисегментника. Код рабочий.
ORG 0
mov 0xD9,#0
mov 0xE2,#0x40
mov 0xA0,#0x7F
mov 0xB0,#0x30
mov TMOD,#00000001b
jmp L1
L25:
clr TF0
mov TH0,#high(-100)
mov TL0,#low(-100)
setb TR0
ojidantimer3:
jnb TF0,ojidantimer3
ret
table: db 0xC0,0x80,0x99,0x00,0xA4,0x00, 0x82,0x00,0xF9,0x90,0x92,0x00, 0xb0,0x00,0xf8,0x00
l1:
mov 0xB0,#0x10
mov A,0xC7
anl A,#0x0F
mov DPTR,#table
movc A,@A+DPTR
mov 0xC7,A
mov 0xB0,#0x34
mov 0xB0,#0x30
mov A,#0xEF
mov 0xC7,A
mov 0xB0,#0x32
mov 0xB0,#0x30
call L25
mov 0xB0,#0x10
mov 0xB0,#0x30
anl A,#0x0F
mov 0xC7,A
mov 0xB0,#0x32
mov 0xB0,#0x30
mov 0xB0,0x10
mov A,0xC7
anl A,#0xF0
rrc A
rrc A
rrc A
rrc A
movc A,@A+DPTR
mov 0xC7,A
mov 0xB0,#0x34
mov 0xB0,#0x30
mov A,#0xFE
mov 0xC7,A
mov 0xB0,#0x32
mov 0xB0,#0x30
call L25
mov 0xB0,#0x10
mov A,0xC7
mov 0xB0,0x30
anl A,#0xF0
rrc A
rrc A
rrc A
rrc A
mov 0xC7,A
mov 0xB0,#0x32
mov 0xB0,#0x30
jmp L1
end
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |