[an error occurred while processing this directive]
Когда-то я делал это. Вот код для 51 (два канала)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ShiphT 27 января 2003 г. 15:24
В ответ на: Если именно этот диапазон тогда да .Но он может менятся пользователем. Что если необходимо работать только ночью или в любой другой период.Алгоритм должен быть универсальным.. отправлено sos 27 января 2003 г. 14:46

;==================================================
; Проверка выходов

TestOut: mov r0, #on1h ;
mov r1, #off1h ;
acall Test ;
jz TO_01 ;if on > off
mov r0, #off1h
mov r1, #rHour
acall Test
jnz Out1_Off ;if off < real
mov r0, #on1h
mov r1, #rHour
acall Test
jnz Out1_On ;if on < real
Out1_Off: setb IND1
setb OUT1
sjmp TestOut2
Out1_On: clr IND1
clr OUT1
sjmp TestOut2

TO_01: mov r0, #off1h
mov r1, #rHour
acall Test
jz Out1_On ;if off > real
mov r0, #on1h
mov r1, #rHour
acall Test
jz Out1_Off ;if on > real
sjmp Out1_On


TestOut2: mov r0, #on2h ;
mov r1, #off2h ;
acall Test ;
jz TO_02 ;if on > off
mov r0, #off2h
mov r1, #rHour
acall Test
jnz Out2_Off ;if off > real
mov r0, #on2h
mov r1, #rHour
acall Test
jnz Out2_On ;if on > real
Out2_Off: setb IND2
setb OUT2
ret
Out2_On: clr IND2
clr OUT2
ret

TO_02: mov r0, #off2h
mov r1, #rHour
acall Test
jz Out2_On ;if off > real
mov r0, #on2h
mov r1, #rHour
acall Test
jz Out2_Off ;if on > real
sjmp Out2_On

Test: mov a, @r0
clr c
subb a, @r1
jz TestLow
jnc TestOk
sjmp TestFail
TestLow: inc r0
inc r1
mov a, @r0
clr c
subb a, @r1
jz TestFail
jc TestFail
TestOk: clr a
ret
TestFail: mov a, #01h
ret

Думаю, разберетесь.
on1h, on2h, off1h, off2h, rHour - двубайтные. Первый - час, второй - минута.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru