📄 untitled document.htm
字号:
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
<---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 <> 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 + -