ВУЗ:
Составители:
  247
          CLR         MCO                 ; 
          CALL        Pod_DEL_I2C         ; 
          SETB        MDO                 ; 
          CALL        Pod_DEL_I2C         ; 
          SETB        MCO                 ; 
          CALL        Pod_MON_SCL         ;дожидаемся перехода SCL в выс уров 
          CLR         MDO                 ;START 
          CALL        Pod_DEL_I2C         ; 
          CLR         MCO                 ; 
          RET 
;------------------------------------------------------------------------------ 
;Подпрограмма генерации условия STOP I2C 
;------------------------------------------------------------------------------ 
Pod_STOP: SETB        MDE                 ;SDA - выход 
          CLR         MCO                 ; 
          CALL        Pod_DEL_I2C         ; 
          CLR         MDO                 ; 
          CALL        Pod_DEL_I2C         ; 
          SETB        MCO                 ; 
          CALL        Pod_MON_SCL         ;дожидаемся перехода SCL в выс уров 
          SETB        MDO                 ;STOP 
          RET 
;------------------------------------------------------------------------------ 
;Подпрограмма опроса подтверждения на линии SDA I2C. 
;В случае отсутствия подтверждения (выс уровень на линии SDA) устанавливается 
;флаг ошибки шины I2C - _ERR_I2C. 
;------------------------------------------------------------------------------ 
Pod_ZACK: CLR         MDE                 ;SDA - вход 
          SETB        MCO                 ;------------------------------------ 
          CALL        Pod_MON_SCL         ;дожидаемся перехода SCL в выс уров 
          JNB         MDI,Zack_0          ;есть ли подтверждение ? 
          SETB        _ERR_I2C           ;подтверждения нет - уст флаг ошибк I2C 
Zack_0:   CLR         MCO                 ;------------------------------------ 
          RET 
;------------------------------------------------------------------------------ 
;Подпрограмма выдачи неподтверждения на линию SDA I2C. 
;------------------------------------------------------------------------------ 
Pod_NACK: SETB        MDE                 ;SDA - выход 
          SETB        MDO                 ; 
          CALL        Pod_DEL_I2C         ; 
          SETB        MCO                 ;------------------------------------ 
          CALL        Pod_MON_SCL         ;дожидаемся перехода SCL в выс уров 
          CLR         MCO                 ;------------------------------------ 
          RET 
;------------------------------------------------------------------------------ 
;Подпрограмма передачи байта по шине I2C. Передаваемый байт следует 
;предварительно поместить в аккумулятор.  Используется счетчик циклов R3. 
;Аккумулятор портится. 
;------------------------------------------------------------------------------ 
Pod_OUT_BYTE: 
          SETB        MDE                 ;SDA - выход 
          MOV         R3,#8               ;нач уст ст циклов 
Out_0:    RLC         A                   ;сдвиг А влево через С, бит 7 идет в С 
          MOV         MDO,C               ;передача бита 
          CALL        Pod_DEL_I2C         ; 
          SETB        MCO                 ;----------------------------------- 
          CALL        Pod_MON_SCL         ;дожидаемся перехода SCL в выс уров 
          CLR         MCO                 ;----------------------------------- 
          DJNZ        R3,Out_0            ; 
          RET 
;------------------------------------------------------------------------------- 
;Подпрограмма приема байта по шине I2C. Принятый байт оказывается в аккумуляторе. 
;Используется счетчик циклов R3. 
Страницы
- « первая
 - ‹ предыдущая
 - …
 - 245
 - 246
 - 247
 - 248
 - 249
 - …
 - следующая ›
 - последняя »
 
