歡迎您訪問鄭州興邦電子股份有限公司官方網站!
    阿里巴巴誠信通企業
    全國咨詢熱線:40000-63966
    興邦電子,中國水控機第一品牌

    聯系興邦電子

    全國咨詢熱線:40000-63966

    售后:0371-55132951/55132952

    工廠:河南省 鄭州市 高新區蓮花街電子電器產業園

    IS23SC1604芯片介紹

    文章出處:http://www.xujuanpiju.com 作者:辛鐵鋒   人氣: 發表時間:2011年09月04日

    [文章內容簡介]:IS23SC1604芯片介紹

       關鍵字: ISSI公司  IS23SC1604芯片  

      IS23SC1604是采用ISSI公司先進的CMOS技術生產的低成本、低功耗、安全性高的帶有保密功能的16K位串行EEPROM。
      IS23SC1604的安全特性為智能卡應用提供了較高級別的存儲器安全保護。存儲器分為四個不等分應用區,每個應用區有多個密碼保護,能夠有效保護對該區的讀/寫/擦除操作。
      IS23SC1604的存儲區分布如表1所示。

      表1存儲器分布表




      另外,在每一區都有一個讀寫允許標志位。其中一、二、三、四區的寫允許標志位的位地址(十進制)分別是:216、9816、11904、13992;而一、二、三、四區的讀允許標志位的位地址(十進制)分別為:217、9817、11905、13993。是否允許對芯片存儲區讀寫,除了和相應的密碼有關之外,還與相應的讀寫標志有關。
      以下為IS23SC1604的匯編語言讀寫程序,僅供有關技術人員參考。
      ; R1=DATA TO CHIP

      ; R0=DATA FROM CHIP

      ; R2=8 BIT COUNTER

      ; R7=TIME DELAY COUNTER

      ; R3=BYTE NUMBER

      ; 40H=ATR INPUT ADDRESS

      ; 50H=READ DATA OUT

      ; 79H=WRITE/ERASE OK/NOT OK ID

      ; 71H=READ DATA ADDRESS HIGH 8 BIT

      ; 72H=READ DATA ADDRESS LOW 8 BIT

      ; 73H=DATA BYTE

      ; 76H=BYTE NUMBER

      ; 77H=FIRST PSC BYTE

      ; 78H=SECOND PSC BYTE

    ORG 00H

    START:

       PIN_CLK EQU P1.0

       PIN_IO EQU P1.1

       PIN_RST EQU P1.4

       PIN_FUS EQU P1.3

       PIN_PGM EQU P1.2

    ; * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    ; 讀 復 位 應 答

    ; * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    READ_ATR:

         MOV R0,# 40H

         MOV R3,# 40H

         SETB PIN_RST

         SETB PIN_CLK

         SETB PIN_PGM

         SETB PIN_IO

         LCALL DELAY_10US

         CLR PIN_PGM

         CLR PIN_CLK

         LCALL DELAY_5US

         CLR PIN_RST

    LOOP_1_BYTE:

         LCALL READ_8_BIT

         MOV @R0,A

         INC R0

         DJNZ R3,LOOP_1_BYTE

         RET

    ADDRESS:

         MOV P1,# 0FFH

         SETB PIN_RST

         SETB PIN_CLK

         SETB PIN_PGM

         SETB PIN_IO

         LCALL DELAY_10US

         CLR PIN_PGM

         CLR PIN_CLK

         LCALL DELAY_5US

         CLR PIN_RST

         LCALL DELAY_3US

         LCALL MUL_8

         MOV A,71H

         MOV B,72H

         ORL A,B

         JZ ZERO_BACK

         MOV A,71H

         JZ HIGH_ZERO

         MOV A,72H

         JZ LOW_ZERO

         LCALL HIGH_Z

         LCALL LOW_Z

         JMP ZERO_BACK

    HIGH_ZERO:

         LCALL HIGH_Z

         JMP ZERO_BACK

    LOW_ZERO:

         LCALL LOW_Z

    ZERO_BACK:

         RET


    HIGH_Z:

        MOV R0,72H

        CLK_LOOPH:

        SETB PIN_CLK

        LCALL DELAY_3US

        CLR PIN_CLK

        LCALL DELAY_3US

        DJNZ R0,CLK_LOOPH

        RET


    LOW_Z:

       MOV R0,# 0H

       MOV R1,71H

    CLK_LOOPL:

       SETB PIN_CLK

       LCALL DELAY_3US

       CLR PIN_CLK

       LCALL DELAY_3US

       DJNZ R0,CLK_LOOPL

       DJNZ R1,CLK_LOOPL

       RET

    MUL_8:

       MOV R2,# 03H

       CLR C

    MUL_LOOP:

       MOV A,72H

       RLC A

       MOV 72H,A

       MOV A,71H

       RLC A

       MOV 71H,A

       DJNZ R2,MUL_LOOP

       RET

    ; * * * * * * * * * * * * * * * * * * * * * * * * * * *

    ; 讀 數 據

    ; * * * * * * * * * * * * * * * * * * * * * * * * * * *

    READ_EE:

        LCALL ADDRESS

        MOV R0,# 40H

        MOV R3,76H

    LOOP_BYTE:

        LCALL READ_8_BIT

        MOV @R0,A

        INC R0

        DJNZ R3,LOOP_BYTE

        RET

    ; * * * * * * * * * * * * * * * * * * * * * * * * * * *

    ; 擦 除 數 據 ( 將 字 節 寫 成 “ FFH” )

    ; * * * * * * * * * * * * * * * * * * * * * * * * * * *

    ERASE_BYTE:

        LCALL ADDRESS

        MOV R3,76H

    ERASE_LOOP:

        SETB PIN_IO
        SETB PIN_PGM
        LCALL DELAY_3US
        SETB PIN_CLK
        LCALL DELAY_3US
        CLR PIN_PGM
        LCALL DELAY_5MS
        CLR PIN_CLK
        LCALL DELAY_3US
        SETB PIN_CLK
        LCALL DELAY_3US

        MOV C,PIN_IO

        JNC LOOP_ERASEWRONG ; ERASE CHECK ERROR

        CLR PIN_CLK

        DEC R3
        CJNE R3,# 0H,ERASE_NEXT

        JMP ERASE_END

    ERASE_NEXT:

        LCALL READ_8_BIT

        JMP ERASE_LOOP

    LOOP_ERASEWRONG:

        MOV 79H,# 00H ; SET THE ID TO ZERO

    ERASE_END:

        RET

    ; * * * * * * * * * * * * * * * * * * * * * * * * * * *

    ; 寫 字 節 ( 將 相 應 的 位 寫 成 “ 0” )

    ; * * * * * * * * * * * * * * * * * * * * * * * * * * *

    WRITE_BYTE:

        LCALL ADDRESS

        MOV R3,76H

        MOV R0,# 30H

    WRITE_LOOP:

        MOV A,@R0

        LCALL WRITE_1_BYTE

        INC R0

        DJNZ R3,WRITE_LOOP

        RET


    WRITE_1_BYTE:

        MOV R2,# 08H

    WR_BYTE_LOOP:

        RLC A

        JC NEXT_BIT

        CLR PIN_IO

        SETB PIN_PGM

        LCALL DELAY_3US

        SETB PIN_CLK

        LCALL DELAY_3US

        CLR PIN_PGM

        LCALL DELAY_5MS

        CLR PIN_CLK

        LCALL DELAY_3US

        SETB PIN_CLK

        LCALL DELAY_3US

        MOV C,PIN_IO

        JC LOOP_WRITEWRONG ; WRITE CHECK ERROR

        CLR PIN_CLK

        LCALL DELAY_3US

        JMP SKIP_BIT

    NEXT_BIT:

        SETB PIN_CLK

        LCALL DELAY_3US

        CLR PIN_CLK

        LCALL DELAY_3US
    SKIP_BIT:

        DJNZ R2,WR_BYTE_LOOP

    LOOP_WRITEWRONG:

        MOV 79H,# 00H ; SET WRITE ERROR ID TO ZERO

        RET


    ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    ; 核 對 密 碼

    ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    COMPAR_CODE:

         LCALL ADDRESS

         MOV R0,# 77H

         MOV R3,76H

         COMPAR_LOOP:

         MOV A,@R0

         LCALL COMPARE

         INC R0

         DJNZ R3,COMPAR_LOOP

         SETB PIN_IO

         RET
    CODE_VALI:

         LCALL COMPAR_CODE

         MOV R2,# 08H

    FIND_NEXT:

         LCALL DELAY_3US

         MOV C,PIN_IO

         LCALL DELAY_3US

         JC FOUND_ONE

         SETB PIN_CLK
         LCALL DELAY_3US

         CLR PIN_CLK

         DJNZ R2,FIND_NEXT

         JMP NO_ONE

    FOUND_ONE:

         CLR PIN_IO

         SETB PIN_PGM

         LCALL DELAY_3US

         SETB PIN_CLK

         LCALL DELAY_3US

         CLR PIN_PGM

         LCALL DELAY_5MS

         CLR PIN_CLK

         LCALL DELAY_3US

         SETB PIN_IO

         SETB PIN_PGM

         LCALL DELAY_3US

         SETB PIN_CLK

         LCALL DELAY_3US

         CLR PIN_PGM

         LCALL DELAY_5MS

         CLR PIN_CLK

         LCALL DELAY_3US

         NO_ONE:

         NOP

         RET

         COMPARE:

         MOV R2,# 08H

         LOOP_COMPAR:

         RLC A

         MOV PIN_IO,C

         LCALL DELAY_3US

         SETB PIN_CLK

         LCALL DELAY_3US

         CLR PIN_CLK

         DJNZ R2,LOOP_COMPAR

         RET

        
    ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    ; 熔 斷 熔 絲

    ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    FUS_BLOW:

         MOV 71H,# 07H

         MOV 72H,# 0F4H

         LCALL BLOW_BYTE

         RET
        
    BLOW_BYTE:
        
         LCALL ADDRESS

         SETB PIN_CLK

         LCALL DELAY_3US

         CLR PIN_CLK

         LCALL DELAY_3US

         SETB PIN_RST

         LCALL DELAY_3US

         CLR PIN_IO     

         SETB PIN_PGM

         LCALL DELAY_3US

         SETB PIN_CLK

         LCALL DELAY_3US

         CLR PIN_PGM

         LCALL DELAY_5MS

         CLR PIN_CLK

         LCALL DELAY_3US

         SETB PIN_CLK

         LCALL DELAY_3US

         CLR PIN_CLK

         LCALL DELAY_3US

         CLR PIN_IO

         SETB PIN_PGM

         LCALL DELAY_3US

         SETB PIN_CLK

         LCALL DELAY_3US

         CLR PIN_PGM

         LCALL DELAY_5MS

         CLR PIN_CLK

         LCALL DELAY_3US

         CLR PIN_RST     

         LCALL DELAY_3US

         RET

         READ_8_BIT:

         MOV R2,# 08H

         LOOP_8BIT_OUT:

         SETB PIN_CLK

         MOV C,PIN_IO

         RLC A

         CALL DELAY_3US

         CLR PIN_CLK

         LCALL DELAY_3US

         DJNZ R2,LOOP_8BIT_OUT

         RET

        
    DELAY_10US:

         MOV R7,# 05H

    LOOP_10:

         DJNZ R7,LOOP_10

         RET

    DELAY_5US:

         MOV R7,# 02H

    LOP_5:

         DJNZ R7,LOP_5

         RET

    DELAY_3US:

         MOV R7,# 01H

    LOP_3:

         DJNZ R7,LOP_3

         RET

    DELAY_5MS:

         MOV R7,# 0FFH

    LOOP_5MS:

         DJNZ R7,LOOP_5MS

         RET

    本文關鍵詞:IS23SC1604芯片介紹
    回到頂部