新聞中心

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

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

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

本文引用地址:http://www.2s4d.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)部來(lái)判斷。在FUSE2未熔斷時(shí),只能在SV=0時(shí),對(duì)SC區(qū)進(jìn)行比較操作,對(duì)其它區(qū)的比較操作均為無(wú)效操作。SV=1時(shí),芯片不做任何比較操作。在FUSE2熔斷后,只能在SV=0時(shí),對(duì)SC區(qū)進(jìn)行比較操作,對(duì)其它區(qū)的比較操作均為無(wú)效操作。

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

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

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

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

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

  (C)在這個(gè)為“1”的單元寫(xiě)“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 ;寫(xiě)0

  NOP

  SETB ICCLK

  NOP

  CLR ICPGM

  NOP

  LCALL DELY5

  CLR ICCLK

  NOP

  SETB ICSDA

  NOP

  MOV C,ICSDA

  JNC BJMM6

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

  BJMM6: SETB ICPGM

  NOP

  SETB ICSDA ;寫(xiě)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)閉