您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机hcs301滚动码源程序 正文
hcs301滚动码源程序

hcs301滚动码源程序

点击数:7913 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   PIC单片机
        GOTO    $+1                     ; WAIT 2 US
        GOTO    $+1                     ; WAIT 2 US
        BCF     PORTB,CLK               ; CLOCK LOW
    DECFSZ    CNT1,F            ; LOOP COUNTER
        GOTO    SENDC2
        BCF     PORTB,DIO               ; AVOID CONTENTION WITH READ
        RETLW   0

;------------------------------------------------------------------------------
;
; FUNCTION         : EEWRITE ()                      
;
; DESCRIPTION      : WRITE 16 BIT VALUE TO EEPROM 
;
; NOTE        : THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------

EEWRITE

; ******* EEPROM WRITE ENABLE ******************

WRITE0   MOV LW    30H            ; WRITE ENABLE COMMAND
     MOV WF   OUTBYT                   
        CALL    SENDC            ; SEND COMMAND TO EEPROM
        BCF     PORTB,CS                ; END COMMAND, DESELECT

; ******** WRITE 16-BIT WORD TO EEPROM *********

WRITE1   MOV FW   ADDRESS            ; GET EEPROM ADDRESS
     MOV WF    OUTBYT
        BSF     OUTBYT,6        ; WRITE COMMAND
        CALL    SENDC                   ; SEND COMMAND TO EEPROM

     MOV LW    16D            ; 16 DATA BITS
         MOV WF   CNT1                    

WRITE2
        BTFSS   TMP1,7            ; TEST MSB OF 16 BIT WORD
        BCF     PORTB,DIO        ; SET DATA BIT
        BTFSC   TMP1,7            ; ... ELSE 
        BSF     PORTB,DIO               ; CLEAR DATA BIT
        GOTO    $+1                     ; WAIT 2 US
        RLF     TMP2,F                  ; SHIFT LO BYTE
        BSF     PORTB,CLK               ; CLOCK HIGH
        GOTO    $+1                     ; WAIT 2 US
        RLF     TMP1,F                  ; SHIFT HI BYTE
        BCF     PORTB,CLK               ; CLOCK LOW
    DECFSZ    CNT1,F
        GOTO    WRITE2                 ; LOOP COUNTER

WAITACK
           BCF     PORTB,CS                ; END OF WRITE COMMAND, DESELECT

         MOV LW   RDCFG
        TRIS    PORTB                   ; DIO = INPUT
        BSF     PORTB,CS        ; CS HIGH TO WAIT FOR ACK
WRITE5     
    BTFSC    PORTB,DIO        ; CHECK FOR ACK
    GOTO    WRITE6            ; WDT RESET ON NO ACK
    GOTO    WRITE5

WRITE6  BCF     PORTB,CS                ; END OF ACK

; ******* EEPROM WRITE DISABLE ****************

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]  下一页


本文关键字:源程序  PIC单片机单片机-工控设备 - PIC单片机