Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Павел 21 апреля 2005 г. 19:13
В ответ на: ммм...сюда и кидай, мб кто другой че скажет. отправлено ы 21 апреля 2005 г. 19:02

SET_SDA_OUT
;################################################last

mov M,#$0F ;настройка SDA и SCL на выход
mov W,#$03
mov !RB,W

ret

SET_SDA_IN
;################################################last

mov M,#$0F ; 1 in 0 out
mov W,#$07
mov !RB,W

ret

SEND_BIT_0
;################################################last
call DELAY_10us
clrb SDA
call DELAY_10us
setb SCL
call DELAY_10us
clrb SCL
call DELAY_10us
clrb SDA
call DELAY_10us
ret

SEND_BIT_1
;################################################last
call DELAY_10us
setb SDA
call DELAY_10us
setb SCL
call DELAY_10us
clrb SCL
call DELAY_10us
clrb SDA
call DELAY_10us
ret

GET_ACK
;################################################last
call DELAY_10us
call SET_SDA_IN
call DELAY_10us
setb SCL
call DELAY_10us
mov W, RB
mov status_ack, W
clrb SCL
call DELAY_10us
call SET_SDA_OUT
call DELAY_10us
clrb SDA
call DELAY_10us
ret


SET_FLAG
;################################################last
call SET_SDA_OUT ;настройка SDA и SCL на выход
setb SCL ; all signal to up
call DELAY_10us
setb SDA ; all signal to up
call DELAY_10us

;-----------------------
; start bit
clrb SDA
call DELAY_10us
clrb SCL
call DELAY_10us


; control word
call SEND_BIT_1
call SEND_BIT_0
call SEND_BIT_1
call SEND_BIT_0
call SEND_BIT_0
call SEND_BIT_0
call SEND_BIT_0
call SEND_BIT_0 ; write bit
; get acknowlege
call GET_ACK
snb status_ack. 2
jmp SET_FLAG
; address
call SEND_BIT_0
call SEND_BIT_0
call SEND_BIT_0
call SEND_BIT_0
call SEND_BIT_0
call SEND_BIT_0
call SEND_BIT_0
call SEND_BIT_0
; get acknowledge
call GET_ACK
; data
call SEND_BIT_1
call SEND_BIT_1
call SEND_BIT_1
call SEND_BIT_1
call SEND_BIT_1
call SEND_BIT_1
call SEND_BIT_1
call SEND_BIT_1
; get acknowledge
call GET_ACK


; stop condition
setb SCL
call DELAY_10us
setb SDA
call DELAY_10us
ret



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

Ответы



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

E-mail: info@telesys.ru