新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)控制AT88SC1604卡的應(yīng)用實(shí)例

        單片機(jī)控制AT88SC1604卡的應(yīng)用實(shí)例

        作者: 時(shí)間:2011-10-08 來源:網(wǎng)絡(luò) 收藏
        (2)讀出操作: 在進(jìn)行讀出操作時(shí),必須保證使RST腳和PGM腳同時(shí)保持為低。如果對(duì)芯片各密碼區(qū)進(jìn)行讀出操作,只能是在FUSE2未熔斷且SV標(biāo)志“1”時(shí)才能進(jìn)行。

        本文引用地址:http://www.104case.com/article/172457.htm

          如果對(duì)芯片各標(biāo)識(shí)數(shù)據(jù)區(qū)進(jìn)行讀出操作,除FZ和IZ區(qū)外,需要使SV標(biāo)志置“1”后才能執(zhí)行。

          如果對(duì)芯片各數(shù)據(jù)區(qū)進(jìn)行讀出操作,需要在SV=1且Rn=1(n=1,2,3,4)狀態(tài)下才能執(zhí)行。

          注:在CLK的下降沿時(shí),地址計(jì)數(shù)器加1,地址計(jì)數(shù)器當(dāng)前所指的地址單元的數(shù)據(jù)被輸出到I/O線上。因此,在整個(gè)時(shí)鐘周期Tdk期間,包含了地址加1(INC)和讀出(REA)兩項(xiàng)操作。

          讀IC數(shù)據(jù)子程序(R2:需讀IC卡字節(jié)數(shù),R0:數(shù)據(jù)區(qū)存放低位首地址)

          RICDAZ: MOV A,#KXXDZ ;卡信息地址送A

          LCALL SADR ;尋卡地址

          RICDA: MOV R3,#08

          RICDA1: SETB ICSDA

          NOP

          MOV C,ICSDA ;位讀到A

          RLC A

          SETB ICCLK

          NOP

          CLR ICCLK

          NOP

          DJNZ R3,RICDA1

          MOV @R0,A ;8位數(shù)據(jù)送數(shù)據(jù)區(qū)

          DEC R0

          DJNZ R2,RICDA

          RET

          ; 尋IC卡位地址子程序(調(diào)用前16進(jìn)制地址送ACC)

          SADR: LCALL FWZCX

          MOV B,#08

          MUL AB ;計(jì)算位地址: 16進(jìn)制地址*8

          MOV R4,A ;低位位地址送R4

          MOV R5,B ;高位位地址送R5

          JNZ SADR1 ;低位地址不為0轉(zhuǎn)

          MOV A,R5

          JZ SADR3

          DEC R5

          SADR1: SETB ICREST ;復(fù)位端置1

          SETB ICSDA

          CLR ICPGM

          CLR ICCLK

          CLR ICREST

          SADR2: SETB ICCLK

          SETB ICCLK

          CLR ICCLK

          CLR ICCLK

          DJNZ R4,SADR2

          MOV A,R5

          JZ SADR3

          DEC R5

          SJMP SADR2

          SADR3: RET

          ;

          (3)比較操作:在進(jìn)行比較操作時(shí),必須保證使RST腳和PGM腳同時(shí)保持為低。比較操作只能對(duì)芯片密碼區(qū)執(zhí)行,且由芯片內(nèi)部來判斷。在FUSE2未熔斷時(shí),只能在SV=0時(shí),對(duì)SC區(qū)進(jìn)行比較操作,對(duì)其它區(qū)的比較操作均為無效操作。SV=1時(shí),芯片不做任何比較操作。在FUSE2熔斷后,只能在SV=0時(shí),對(duì)SC區(qū)進(jìn)行比較操作,對(duì)其它區(qū)的比較操作均為無效操作。

          注:上述芯片密碼比較時(shí)序圖中是假設(shè)密碼計(jì)數(shù)器中前兩位為0,第三位尋到1的處理時(shí)序。

          有關(guān)芯片SC的時(shí)序關(guān)系如圖2~5圖所示:

          從操作(B)到(F),地址計(jì)數(shù)器不變,密碼比較的過程是:

          (A)比較安全密碼/擦除密碼序列

          (B)在密碼輸入比較計(jì)數(shù)器中找出一位為“1”的位

          (C)在這個(gè)為“1”的單元寫“0”

          (D)芯片輸出“0”

          (E)如果比較成功,在PGM的上升沿安全密碼/擦除密碼的相應(yīng)標(biāo)志

          (SV,Sn或En)被置“1”,同時(shí)安全密碼/擦除密碼輸入比較計(jì)數(shù)器

          (SCAC,SnAC或EnAC)被擦除。

          (F)如果擦除成功,相應(yīng)安全密碼/擦除密碼標(biāo)志被置“1”,芯片將輸出“1”,否則芯片輸出“0”。

          (G)在CLK的下降沿,地址計(jì)數(shù)器加1,并輸出下一位的狀態(tài)。

          比較用戶密碼子程序(地址0AH,0BH)

          CPSC: MOV R0,#CMM+2

          MOV R1,#06

          MOV R2,#02

          LCALL MVITI

          MOV A,#0AH

          LCALL SADR ;尋址

          MOV R0,#06

          LCALL BJMMRET

          ; 比較密碼程序

          BJMM: CLR ICREST

          CLR ICPGM

          MOV R2,#02

          BJMM1: MOV A,@R0

          MOV R3,#08

          BJMM2: RLC A

          MOV ICSDA,C

          NOP

          SETB ICCLK

          NOP

          CLR ICCLK

          NOP

          DJNZ R3,BJMM2

          INC R0

          DJNZ R2,BJMM1

          MOV R2,#08;查8位

          BJMM4: SETB ICSDA

          NOP

          MOV C,ICSDA

          JC BJMM5 ;是1轉(zhuǎn)

          SETB ICCLK ;指向下一位

          NOP

          CLR ICCLK

          NOP

          DJNZ R2,BJMM4

          LJMP BJMM8 ;計(jì)數(shù)器為00,卡鎖死轉(zhuǎn)

          BJMM5: SETB ICPGM

          NOP

          CLR ICSDA ;寫0

          NOP

          SETB ICCLK

          NOP

          CLR ICPGM

          NOP

          LCALL DELY5

          CLR ICCLK

          NOP

          SETB ICSDA

          NOP

          MOV C,ICSDA

          JNC BJMM6

          LJMP BJMM7 ;未寫入0,轉(zhuǎn)出錯(cuò)

          BJMM6: SETB ICPGM

          NOP

          SETB ICSDA ;寫1(擦除)

          NOP

          SETB ICCLK

          NOP

          CLR ICPGM

          NOP

          LCALL DELY5

          CLR ICCLK

          NOP

          SETB ICSDA

          NOP

          MOV C,ICSDA

          NOP

          SETB ICCLK

          JNC BJMM7 ;擦除不成功(密碼錯(cuò))轉(zhuǎn)

          SETB FGICG1 ;置已校對(duì)密碼標(biāo)志

          RET

          BJMM7: CLR FGICG1 ;建密碼錯(cuò)標(biāo)記

          RET

          BJMM8: SETB FGICG2 ;置卡鎖死標(biāo)志

          RET

        液位計(jì)相關(guān)文章:磁翻板液位計(jì)原理




        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 浠水县| 渝中区| 原平市| 莱阳市| 庆元县| 汉中市| 泽州县| 临武县| 扎囊县| 厦门市| 舞钢市| 镇雄县| 海阳市| 新干县| 江永县| 巴南区| 应城市| 尉氏县| 金坛市| 贵溪市| 晋中市| 涞源县| 甘肃省| 方城县| 泽州县| 临夏县| 淮滨县| 射阳县| 普安县| 惠东县| 维西| 来凤县| 乌兰县| 平湖市| 德阳市| 柞水县| 深水埗区| 曲阜市| 武冈市| 金阳县| 中卫市|