AT88SC1608加密卡Word格式文档下载.docx
- 文档编号:6915473
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:44
- 大小:19.36KB
AT88SC1608加密卡Word格式文档下载.docx
《AT88SC1608加密卡Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《AT88SC1608加密卡Word格式文档下载.docx(44页珍藏版)》请在冰点文库上搜索。
Q1_ADDRESSEQU0E8H
Q2_ADDRESSEQU0F0H
AUTHENTICATIONSUBS=f2
----------------------------------------------
CALCULSTATE:
IN:
RI/SI/TI
OUT:
R_I(0-7)/S_i(0-7)/T_i(0-4)
USEDREGISTERS:
R1R0R2ATEMP
MOVR1,#R_I_O_ADDRESS
MOVR0,#R_I_ADDRESS
MOVR2,#8
CALS001:
MOVA,@R1
MOV@R0,A
INCR1
INCR0
DJNZR2,CALS001;
LOADR_I_OUTMEMORYDATAMOVA,R_6
MOVR2,#4
CALS002:
RRA
DJNZR2,CALS002
ANLA,#1
MOVBIT0,A
MOVA,R_6
RLA;
R_6*2
ORLA,BIT0
ANLA,#1FH
MOVTEMP,A
MOVR_6,R_5
MOVR_5,R_4
MOVR_4,R_3
MOVA,R_2
XRLA,RI
MOVR_3,A
MOVR_2,R_1
MOVR_1,R_0;
1998.4.8加
MOVA,R_4
ADDA,TEMP
MOVR_0,A
CLRC
SUBBA,#32;
IFR_0>
31
JCCALS003
MOVB,#31
MOVA,R_0
DIVAB
MULAB
SUBBA,TEMP
MOVR_0,A;
R_0%=31
JNZCALS003
MOVR_0,#31
CALS003:
MOVR1,#R_I_O_ADDRESS
CALS004:
MOVA,@R0
MOV@R1,A
DJNZR2,CALS004MOVR1,#S_I_O_ADDRESS
MOVR0,#R_I_ADDRESS;
=S_I_ADDRESS
CALS005:
DJNZR2,CALS005
MOVR2,#6
CALS006:
DJNZR2,CALS006
RLA
ANLA,#7FH
XRLA,SI
MOVR_5,A
MOVR_3,R_2
MOVR_1,R_0
SUBBA,#128
JCCALS007
MOVB,#127
JNZCALS007
MOVR_0,#127
CALS007:
MOVR1,#S_I_O_ADDRESS
CALS008:
DJNZR2,CALS008
MOVR1,#T_I_O_ADDRESS;
=T_I_ADDRESS
MOVR2,#5
CALS009:
DJNZR2,CALS009
MOVTEMP,R_4
MOVA,R_1
XRLA,TI
MOVR_2,A
MOVA,R_3
SUBBA,#32
JCCALS0010
JNZCALS0010
CALS0010:
MOVR1,#T_I_O_ADDRESS
CALS0011:
DJNZR2,CALS0011
RET
---------------------------------------
CALCUL(VOID)OUT:
RISITISI_LASTCALC
RISITISI_R_I(0-7)TEMPR1
CALCULV:
MOVLASTCALC,#0
MOVSI,#0
MOVRI,#0
MOVTI,#0
LCALLCALCULSTATE
MOVA,@R1
MOVR1,#R_I_O_ADDRESS+4
MOVR_4,A
XRLA,R_0
MOVRI,A
MOVR1,#T_I_O_ADDRESS
MOVR1,#T_I_O_ADDRESS+3
MOVTI,A
MOVR1,#S_I_O_ADDRESS
MOVSI,A
*********SI_=~S[0]?
MOVA,#0FFH
SUBBA,SI
MOVSI_,A
MOVA,RI
ANLA,SI_
MOVA,SI
ANLA,TI
ORLA,TEMP
ANLA,#0FH
MOVLASTCALC,A
-------------------------------------------
CALCULIN:
NBREOUT:
LASTCALC
CALCUL:
ACALLCALCULV
CALC=LASTCALC
DJNZNBRE,CALCUL
------------------------------------------
CALCULKEY(KEY)USETEMPKEYA
IN:
KEYOUT:
R_I(0-7)S_I(0-7)T_I(0-4)
CALCULKEY:
MOVA,KEY
MOVA,KEY
ANLA,#78H
RRA
ANLA,#7
ANLA,#1fh
AUTHENTICATIONINCRYPTO0-7,GC0-7,Q0-7
OUTQ1,Q2
A,R1,COUNT
AUTHENTICATION:
MOVCOUNT,#0
AUT001:
MOVA,COUNT
*2
MOVR1,#CRYPTO_ADDRESS
ADDA,R1
MOVR1,A
MOVKEY,A
ACALLCALCULKEY
AUT0011:
MOVR1,#CRYPTO_ADDRESS
MOVA,COUNT
AUT0012:
MOVR1,#Q0_ADDRESS
INCCOUNT
CJNEA,#4,AUT001
MOVCOUNT,#0
AUT002:
MOVR1,#GC_ADDRESS
MOVR1,#Q0_ADDRESS+4
CJNEA,#4,AUT002
AUT003:
MOVNBRE,#2
LCALLCALCUL
MOVA,LASTCALC
MOVQ2_T,A
MOVNBRE,#2
MOVA,Q2_T
ORLA,LASTCALC
MOVQ1_T,A
MOVA,Q1_T
MOVR1,#Q1_ADDRESS
MOVA,R1
ADDA,COUNT
MOVR1,#Q2_ADDRESS
CJNEA,#8,AUT003
AUTH:
密码认证子程序
功能:
密码认证
输入:
CI,GC,Q0
输出:
MOVR1,#90H;
清内部RAM90H--FFH
MOVR3,#70H
CLRA
AUTH01:
MOV@R1,A
DJNZR3,AUTH01
MOVR1,#CRYPTO_ADDRESS;
保存CI,GC,Q0
MOVR3,#18H
MOVR0,#31H
AUTH02:
DJNZR3,AUTH02
LCALLAUTHENTICATION;
生成Q1,Q2
MOVR0,#40H
MOVR1,#Q0_ADDRESS
AUTH03:
DJNZR3,AUTH03
LCALLIA;
初始化认证
MOVA,30H
CJNEA,#03H,AUTH06
LCALLWAIT10;
延时10MS
LCALLVA;
校验认证
MOV32H,#20H
MOV33H,#10H
MOVA,23H
CJNEA,#0A2H,AUTH031
LCALLRCZ;
读AAC及CI
MOVR0,#3AH;
比较CI及Q2
MOVR1,#50H
MOVR3,#08H
SJMPAUTH032
AUTH031:
MOV32H,#0E0H
LCALLRD153
MOVR0,#33H;
MOVR1,#51H
MOVR3,#07H
AUTH032:
MOVA,32H
CJNEA,#0FFH,AUTH07
AUTH04:
MOVA,@R0;
MOVB,A
CJNEA,B,AUTH06
DJNZR3,AUTH04
MOV30H,#03H
MOV31H,#00H
AUTH06:
MOV30H,#04H
AUTH07:
MOV31H,#01H
ATR:
复位响应子程序
复位响应,输出32位应答信息,数据放入@R0
ATR:
CLRP1.3;
IC的RST端低
SETBP1.2;
SDAISHIGH
NOP
CLRP1.1;
SCLISLOW
SETBP1.3;
IC的RST端开始变高
MOVR4,#4;
计数器赋值
MOVR0,#32H;
放数据地址
SETBP1.1;
IC的SCL端开始变高
IC的SCL端开始变低
IC的RST端开始变低
ATR1:
MOVR3,#8
ATR2:
SETBP1.1;
MOVC,P1.2
RRCA
NOP;
脉冲宽度10us
DJNZR3,ATR2
DJNZR4,ATR1
JCATR3;
IO为高则复位完成
MOV30H,#04H
ATR3:
MOV30H,#03H
MOV31H,#04H
SUZA:
设置用户区地址SetUserZoneAddress
31H:
用户区高位敌址
30H=#03H,正确;
30H=#04H,卡不反应
SUZA:
LCALLSTART
MOVA,#0B2H
LCALLSPOUT
JCER1
MOVA,31H
LCALLSTOP
ER1:
RUZ:
读用户区数据ReadUserZone
32H:
用户区低位地址33H:
用户区读数据字节数
数据放入@R0
RUZ:
MOV31H,33H
MOVR0,#32H
LCALLSTART
MOVA,#0B1H
JCER2
MOVA,32H
MOVR3,33H
RUZ1:
DECR3
CJNER3,#00H,RUZ2
SJMPRUZ3
RUZ2:
LCALLSPIN;
读一个数据到A,有回答信号
SJMPRUZ1
RUZ3:
LCALLSPIN2;
读一个数据到A,没有回答信号
ER2:
RCZ:
读用户区数据ReadConfigurationZone
低位地址33H:
读数据字节数
RCZ:
MOVA,#0B5H
JCER3
RCZ1:
CJNER3,#00H,RCZ2
SJMPRCZ3
RCZ2:
SJMPRCZ1
RCZ3:
ER3:
WR1608:
写数据子程序Writedata(ATMEL1608/153)
写用户区和写Configuration区标志
(01:
写用户区地址;
00:
写Configuration区;
02:
写ATMEL88SC153)
写地址;
33H:
用户区写数据字节数
MOVR0,#34H
MOVA,33H
DECA
ADDA,32H
JNCWR1
MOV30H,#01H;
地址超出分区,返回错误代码
WR1:
MOVA,32H;
判断起始地址低4(3)位是否为全'
0'
MOVR2,A
ANLA,25H
J
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AT88SC1608 加密