⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untitled document.htm

📁 内附IC读卡器设计方案,该设计使用89C52和MCM200,里面有详细的设计过程及程序代码,相信有一定IC卡经验
💻 HTM
📖 第 1 页 / 共 2 页
字号:
      H_NEXT_BIT<BR>    RET<BR>;===========================<BR>INIT_DISP_BUF:<BR>    SETB 
      PSW.3<BR>    SETB PSW.4<BR>    MOV R0,#0AH<BR>    MOV 
      R1,#31H<BR>INIT_AGAIN: MOV @R1,#00H  ;SET 31H--40H UNITS AS 00H<BR>    INC 
      R1<BR>    DJNZ R0, INIT_AGAIN<BR>    CLR PSW.3<BR>    CLR 
      PSW.4<BR>    RET<BR>;--------------------------<BR>SEND_TO_BUF01:<BR>    SETB 
      PSW.3<BR>    SETB PSW.4<BR>    MOV B,A<BR>    MOV 3AH,A        
      ;(3AH)<BR>    SWAP A<BR>    MOV 39H,A        ;(39H)<BR>    MOV 
      A,B<BR>    CLR PSW.3<BR>    CLR 
      PSW.4<BR>    RET<BR>;--------------------------<BR>SEND_TO_BUF23:<BR>    SETB 
      PSW.3<BR>    SETB PSW.4<BR>    MOV B,A<BR>    MOV 38H,A        
      ;(38H)<BR>    SWAP A<BR>    MOV 37H,A        ;(37H)<BR>    MOV 
      A,B<BR>    CLR PSW.3<BR>    CLR 
      PSW.4<BR>    RET<BR><BR>;--------------------------<BR>SET_POINT0:<BR>    SETB 
      PSW.4<BR>    SETB PSW.3<BR>    MOV R1,#36H       ;(36H)<BR>    MOV 
      @R1,#01H<BR>    MOV R1,#31H       ;(31H)<BR>    MOV @R1,#02H<BR>    CLR 
      PSW.3<BR>    CLR PSW.4<BR>     
      RET<BR>;--------------------------<BR>INDICATE:<BR>    CLR P2.6      
      ;INDICATE P2.6 AS 0-1-0<BR>    SETB P2.6 <BR>     ACALL D500MS<BR>    CLR 
      P2.6 <BR>     RET<BR>;-----------------------------   </P>
      <P>;====================MCM REQUEST 
      OPERATION====================<BR>request:<BR>    RET<BR>;--------------------------------------------------------------------<BR>;===============MCM 
      ANTICOLLISION 
      OPERTION=============<BR>anticollision:<BR>    RET<BR>;--------------------------------------------------------------------<BR>;====================MCM 
      SELECT 
      OPERATION=====================<BR>select:<BR>    RET<BR>;--------------------------------------------------------------------<BR>;========================= 
      AUTHENTICATION ========================<BR>authentication:</P>
      <P>      
      RET<BR>;--------------------------------------------------------------------<BR>;========================= 
      LOAD KEY =========================<BR>LOAD_KEY:</P>
      <P>  
      RET<BR>;--------------------------------------------------------------------<BR>;====================MCM 
      WRITE OPERATION=====================<BR>write:<BR>    
      RET<BR>;--------------------------------------------------------------------<BR>;====================MCM 
      read OPERATION=====================<BR>read:<BR>    
      RET<BR>;--------------------------------------------------------------------</P>
      <P>;========================= 
      HALT OPERATION==============================<BR>halt:<BR>    MOV 
      A,#10H<BR>    MOV R0,#03H<BR>    MOVX @R0,A        <BR>    MOV 
      A,#04H<BR>    MOV R0,#04H<BR>    MOVX @R0,A        <BR>    MOV 
      A,#50H<BR>    MOV R0,#00H<BR>    MOVX @R0,A        <BR>    MOV 
      A,#00H<BR>    MOV R0,#00H<BR>    MOVX @R0,A        
      <BR>;------------------------- SET TOC()= 0AH 
      --------------------------<BR>    MOV A,#0AH<BR>    MOV 
      R0,#06H<BR>    MOVX @R0,A        ;TOC() = 
      0AH<BR>;--------------------------- READ STACON() 
      -------------------------<BR>HALT_RD_STACON_AGAIN:<BR>    MOV 
      R0,#01H<BR>    MOVX A,@R0       ;READ 
      STACON()<BR>;-------------------JUDGE DV FLAG 
      ----------------------------------<BR>    JNB 
      ACC.7,HALT_RD_STACON_AGAIN<BR>;------------------- CLOSE TOC() 
      -----------------------------------<BR>    MOV B,A<BR>    MOV 
      A,#00AH<BR>    MOV R0,#06H<BR>    MOVX @R0,A        ;TOC() = 
      00H<BR>    MOV A,B<BR>;-------------------------JUDG ANY ERRORS 
      --------------------------<BR>    JB ACC.6, HALT_OK_EXIT  ;TE=1 IS HALT OK 
      FLAG<BR>;-----------------------HAVE ANY ERRORS 
      ----------------------------<BR>    MOV B,#06H<BR>    LJMP 
      HALT_ERR_EXIT<BR>;-------------------------- EXIT 
      -----------------------------------<BR>HALT_OK_EXIT:<BR>    MOV B,#66H 
      ;“ok”disp_flag<BR>    SETB P2.6        ;OK LAMP NOW WORKING 
      P2.3<BR>    ACALL SPK_ON      ;if ok then spk 
      on<BR>HALT_ERR_EXIT:<BR>    MOV A,B<BR>    ACALL SEND_TO_BUF01   
      ;SEND RETURN_VALE TO DISP_BUF_LOW<BR>    RET<BR>;========================= 
      End of MCM HALT OPERATION =======================</P>
      <P>;-------------------- DISPLY READ BLOCK VALUE(16 BYTES) 
      ---------------<BR>DISP_RD_BLK:<BR>    MOV R0,#50H<BR>    MOV 
      R7,#04H<BR>DISP_RD_BLK_LOOP:<BR>    MOV A,@R0<BR>    LCALL 
      H_SEND_TO_BUF23   ;SEND RETURN_VALE TO DISP_BUF_LOW<BR>    INC 
      R0<BR>    MOV A,@R0<BR>    LCALL H_SEND_TO_BUF01  ;SEND RETURN_VALE TO 
      DISP_BUF_HIGH<BR>    INC R0<BR>    MOV A,@R0<BR>    LCALL SEND_TO_BUF23  
      ;SEND RETURN_VALE TO H_DISP_BUF_LOW<BR>    INC R0<BR>    MOV 
      A,@R0<BR>    LCALL SEND_TO_BUF01   ;SEND RETURN_VALE TO 
      H_DISP_BUF_HIGH<BR>    INC R0<BR>    LCALL DISPLAY<BR>    LCALL 
      H_DISPLAY<BR>    LCALL D500MS<BR>    LCALL D500MS<BR>    DJNZ 
      R7,DISP_RD_BLK_LOOP<BR>  RET<BR>;-------------CLEAR DISPLY_READ_BLOCK 
      VALUE(16 BYTES) IN CPU RAM 
      ----------<BR>CLEAR_DISP_RD_BLK_IN_CPU:<BR>    MOV R0,#50H<BR>    MOV 
      R7,#10H<BR>CLEAR_DISP_RD_BLK_LOOP:<BR>    MOV @R0,#11H       ;SEND #11H TO 
      DISP_RD_BLK_IN_CPU<BR>    INC 
      R0<BR>    DJNZ R7,CLEAR_DISP_RD_BLK_LOOP<BR>  RET</P>
      <P>;---------------------KB SCANNING 
      ----------------------------<BR>KB_SCAN:<BR>    MOV 
      A,#11110000B<BR>    mov p1,a        ;send line value:0000 
      &lt;---P1.0~~P1.3<BR>    CLR P2.0        ;enable KB scan 
      function<BR>    mov a,p1        ;if there is a key_pad 
      pressing?<BR>    orl a,#00001111b    ;if no keypressing, A should be = 
      1111 1111b<BR>    cpl a<BR>    jz KB_nothing      ;if A = 00h, then no key 
      is pressed<BR>    lcall kb_look_pad    ;if A &lt;&gt; 00h,then one key is 
      pressed<BR>    SETB P2.6<BR>    LCALL SPK_ON<BR>KB_nothing:<BR>    setb 
      p2.0<BR>    RET<BR>;========================= KB LOOK ONE PAD 
      ========================</P>
      <P>(待续)</P>
      <P><BR><BR><BR>来源: 《金卡工程》2000.11 <BR><BR><BR><BR></P>
      <P><BR><BR></P>
      <P><BR><BR></P>
      <P align=right></P>
      <P align=right></P>
      <P align=right></P>
      <P align=right><A href="file:///E|/index/index.htm">返回首页</A> 
  </P></TD></TR></TBODY></TABLE><B></B></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -