;-----------------------------------------------------------------------------------------------------------
;Чтение из Eeprom
bsf STATUS,RP0 ;Bank 1
movlw CONFIG_ADDR ;
movwf EEADR ;
bsf EECON1,RD ;EE Read
movf EEDATA,W ;Move data to W
` movwf Byte ;
;-----------------------------------------------------------------------------------------------------------
;Передача
Tx
clrwdt
bsf p_tx
movlw 8 ; load bit counter with 8
movwf BitCount ; счетчик битов
bcf p_tx ; pin_tx to low
call Delay480ms ; delay RESET
bit_next
bcf STATUS,C ; clear status bit
rrf Byte,F ; load next bit in the Status C register
btfsc STATUS,C ; bit is Hight?
bsf p_tx ; Yes, set pin_tx
btfss STATUS,C ; bit is Low?
bcf p_tx ; Yes, reset pin_tx
call Delay90ms ; delay bit
decfsz BitCount,F ; all 8 bit Tx?
goto bit_next ; No, jump to next bit
bsf p_tx ; Yes, pin_tx to high (stop bit)
call Delay ;
retlw 0 ; End
;-----------------------------------------------------------------------------------------------------------
;Задержки
Delay480ms
Delay90ms
Delay1ms
;----------------------------------------------------------------------------------------------------------- |