режим записи:
1. R/W=0
2. DS=0
3. AS=1
4. AD0-AD7 устанавливаем адрес (допустим 02H "минуты")
5. CS=0
6. AS=0 (при переходе с 1 в 0 микросхема считывает с AD0-AD7 информацию об адресе)
7. AD0-AD7 устанавливаем данные
8. DS-1 (при переходе с 0 в 1 микросхема считывает с AD0-AD7 данные)
после этого CS, AS и DS возврвщаются на исходную: AS-0, DS-1, CS-1.
Если не так поправте пожалуйста.
По поводу почему выбор пал именно на эту микросхему: Я ее извлек из старой материнской платы. Просто так получилось, что нужно сделать часы на этой микросхеме. (к сожалению я в выборе ограничен)
Добавлено спустя 2 часа 52 минуты 49 секунд:
Я тут навоял немного, но почему то не работает. Я пытаюсь записать, а потом считать из пзу DS12877.
Подскажите пожалуйста где я ошибся?
- Код: Выделить всё • Развернуть
ldi r27,$33
ldi r28,$31 (соответствует цифре1)
call clockw
ldi r27,$33
call clockr
ldi r29,$a8
call cmd
mov r29,r28
call data
clockr: cbi portd,DS ; подпрограмма чтения
nop
sbi portd,AS
cbi portd,RW;sbi portd,RW
ldi r16,$ff
out DDRC,r16
out portc,r27 в этот регстр пишется адрес
nop
cbi portd,CS
nop
cbi portd,AS
nop
clr r16
out DDRC,R16
nop
sbi portd,DS
nop
cbi portd,DS
nop
in r28,portc регистр ввода/вывода данных
nop
sbi portd,DS
nop
sbi portd,CS
ret
clockw: cbi portd,DS ; подпрограмма записи
nop
sbi portd,AS
cbi portd,RW;sbi portd,RW
ldi r16,$ff
out DDRC,r16
out portc,r27
nop
cbi portd,CS
nop
cbi portd,AS
nop
cbi portd,RW
nop
out portc,r28
sbi portd,DS
nop
sbi portd,RW
nop
sbi portd,CS
nop
sbi portd,DS
ret