这是描述信息

AT88SC153 and AT88SC1608 encryption card

  • Categories:Thesis
  • Author:
  • Origin:
  • Time of issue:2007-12-04 17:08

(Summary description)AT88SC153 and AT88SC1608 encryption card

AT88SC153 and AT88SC1608 encryption card

(Summary description)AT88SC153 and AT88SC1608 encryption card

  • Categories:Thesis
  • Author:
  • Origin:
  • Time of issue:2007-12-04 17:08
  • Views:
Information

51 Microcontroller Program 
(Quoted from Beijing Kalienton Electronic Technology Co., Ltd.) 
; --------------------------------------------------------------------

; ATMEL 88SC1608 Read-Write Subroutine 
; P1.0 - Power On P1.1 - SCL P1.2 - SDA P1.3 - RES 
; P1.4 - P1.5 - P1.6 - P1.7 
; --------------------------------------------------------------------

COUNT EQU 3AH

COUNT1 EQU 3BH

; AUTHENTICATION

RI EQU 3DH

SI EQU 3EH

TI EQU 3FHR_I_ADDRESS EQU 40H

S_I_ADDRESS EQU 40H

T_I_ADDRESS EQU 40H

R_0 EQU R_I_ADDRESS

R_1 EQU R_I_ADDRESS+1

R_2 EQU R_I_ADDRESS+2

R_3 EQU R_I_ADDRESS+3

R_4 EQU R_I_ADDRESS+4

R_5 EQU R_I_ADDRESS+5

R_6 EQU R_I_ADDRESS+6

R_7 EQU R_I_ADDRESS+7

KEY EQU 48H

TEMP EQU 49H

BIT0 EQU 4AH

SI_ EQU 4BH

LASTCALC EQU 4CH

Q1_T EQU 4DH

Q2_T EQU 4EH

NBRE EQU 4FH

R_I_O_ADDRESS EQU 0B0H

S_I_O_ADDRESS EQU 0B8H

T_I_O_ADDRESS EQU 0C0H

CRYPTO_ADDRESS EQU 0D0H ; CI

GC_ADDRESS EQU 0D8H ; GRAINE

Q0_ADDRESS EQU 0E0H ; HOST

Q1_ADDRESS EQU 0E8H

Q2_ADDRESS EQU 0F0H

; AUTHENTICATION SUBS=f2

; ----------------------------------------------

; CALCULSTATE: IN: RI/SI/TI

; OUT: R_I(0-7)/S_i(0-7)/T_i(0-4)

; USED REGISTERS:R1 R0 R2 A TEMP

; ----------------------------------------------

CALCULSTATE: MOV R1,#R_I_O_ADDRESS

MOV R0,#R_I_ADDRESS

MOV R2,#8

CALS001: MOV A,@R1

MOV @R0,A

INC R1

INC R0

DJNZ R2,CALS001 ; LOAD R_I_OUT MEMORY DATAMOV A,R_6

MOV R2,#4

CALS002: RR A

DJNZ R2,CALS002

ANL A,#1

MOV BIT0,A

MOV A,R_6

RL A ; R_6*2

ORL A,BIT0

ANL A,#1FH

MOV TEMP,A

MOV R_6,R_5

MOV R_5,R_4

MOV R_4,R_3

MOV A,R_2

XRL A,RI

MOV R_3,A

MOV R_2,R_1

MOV R_1,R_0 ; April 8, 1998 
MOV A,R_4

ADD A,TEMP

MOV R_0,A

CLR C

SUBB A,#32 ; IF R_0>31

JC CALS003

MOV B,#31

MOV A,R_0

DIV AB

MOV B,#31

MUL AB

MOV TEMP,A

MOV A,R_0

CLR C

SUBB A,TEMP

MOV R_0,A ; R_0%=31

JNZ CALS003

MOV R_0,#31

CALS003:

MOV R1,#R_I_O_ADDRESS

MOV R0,#R_I_ADDRESS

MOV R2,#8

CALS004: MOV A,@R0

MOV @R1,A

INC R1

INC R0

DJNZ R2,CALS004MOV R1,#S_I_O_ADDRESS

MOV R0,#R_I_ADDRESS ; =S_I_ADDRESS

MOV R2,#8

CALS005: MOV A,@R1

MOV @R0,A

INC R1

INC R0

DJNZ R2,CALS005

MOV A,R_6

MOV R2,#6

CALS006: RR A

DJNZ R2,CALS006

ANL A,#1

MOV BIT0,A

MOV A,R_6

RL A

ORL A,BIT0

ANL A,#7FH

MOV TEMP,A

MOV R_6,R_5

MOV A,R_4

XRL A,SI

MOV R_5,A

MOV R_4,R_3

MOV R_3,R_2

MOV R_2,R_1

MOV R_1,R_0

MOV A,R_6

ADD A,TEMP

MOV R_0,A

CLR C

SUBB A,#128

JC CALS007

MOV B,#127

MOV A,R_0

DIV AB

MOV B,#127

MUL AB

MOV TEMP,A

MOV A,R_0

CLR C

SUBB A,TEMP

MOV R_0,A

JNZ CALS007

MOV R_0,#127

CALS007: MOV R1,#S_I_O_ADDRESS

MOV R0,#R_I_ADDRESS

MOV R2,#8

CALS008: MOV A,@R0

MOV @R1,A

INC R1

INC R0

DJNZ R2,CALS008

MOV R1,#T_I_O_ADDRESS ;

MOV R0,#R_I_ADDRESS ; =T_I_ADDRESS

MOV R2,#5

CALS009: MOV A,@R1

MOV @R0,A

INC R1

INC R0

DJNZ R2,CALS009

MOV TEMP,R_4

MOV R_4,R_3

MOV R_3,R_2

MOV A,R_1

XRL A,TI

MOV R_2,A

MOV R_1,R_0

MOV A,R_3

ADD A,TEMP

MOV R_0,A

CLR C

SUBB A,#32

JC CALS0010

MOV B,#31

MOV A,R_0

DIV AB

MOV B,#31

MUL AB

MOV TEMP,A

MOV A,R_0

CLR C

SUBB A,TEMP

MOV R_0,A

JNZ CALS0010

MOV R_0,#31

CALS0010: MOV R1,#T_I_O_ADDRESS

MOV R0,#R_I_ADDRESS

MOV R2,#5

CALS0011: MOV A,@R0

MOV @R1,A

INC R1

INC R0

DJNZ R2,CALS0011

RET

; ---------------------------------------

; CALCUL(VOID) OUT: RI SI TI SI_ LASTCALC

; USED REGISTERS:RI SI TI SI_ R_I(0-7) TEMP R1

; ---------------------------------------

CALCULV: MOV LASTCALC,#0

MOV SI,#0

MOV RI,#0

MOV TI,#0

LCALL CALCULSTATE

MOV R1,#R_I_O_ADDRESS

MOV A,@R1

MOV R_0,A

MOV R1,#R_I_O_ADDRESS+4

MOV A,@R1

MOV R_4,A

XRL A,R_0

ANL A,#1FH

MOV RI,A

MOV R1,#T_I_O_ADDRESS

MOV A,@R1

MOV R_0,A

MOV R1,#T_I_O_ADDRESS+3

MOV A,@R1

MOV R_3,A

XRL A,R_0

ANL A,#1FH

MOV TI,A

MOV R1,#S_I_O_ADDRESS

MOV A,@R1

MOV SI,A

; *********SI_=~S[0] ?

MOV A,#0FFH

CLR C

SUBB A,SI

MOV SI_,A

; *********SI_=~S[0] ?

MOV A,RI

ANL A,SI_

MOV TEMP,A

MOV A,SI

ANL A,TI

ORL A,TEMP

ANL A,#0FH

MOV LASTCALC,A

RET

; -------------------------------------------

; CALCUL IN: NBRE OUT: LASTCALC

; -------------------------------------------

CALCUL: ACALL CALCULV

; CALC=LASTCALC

DJNZ NBRE,CALCUL

RET

; ------------------------------------------

; CALCULKEY(KEY) USE TEMP KEY A

; IN:KEY OUT:R_I(0-7) S_I(0-7) T_I(0-4)

; ------------------------------------------

CALCULKEY: MOV A,KEY

ANL A,#1FH

MOV RI,A

MOV A,KEY

RL A

RL A

RL A

ANL A,#78H

MOV TEMP,A

MOV A,KEY

RR A

RR A

RR A

RR A

RR A

ANL A,#7

ADD A,TEMP

MOV SI,A

MOV A,KEY

RR A

RR A

RR A

ANL A,#1fh

MOV TI,A

LCALL CALCULSTATE

RET

; ------------------------------------------

; AUTHENTICATION IN CRYPTO0-7,GC0-7,Q0-7

; OUT Q1,Q2

; USED REGISTERS: A,R1,COUNT

; ------------------------------------------

AUTHENTICATION: MOV COUNT,#0

AUT001: MOV A,COUNT

RL A ; 2 
MOV R1,#CRYPTO_ADDRESS

ADD A,R1

MOV R1,A

MOV A,@R1

MOV KEY,A

ACALL CALCULKEY

AUT0011: MOV R1,#CRYPTO_ADDRESS

MOV A,COUNT

RL A

ADD A,R1

MOV R1,A

INC R1

MOV A,@R1

MOV KEY,A

ACALL CALCULKEY

AUT0012: MOV R1,#Q0_ADDRESS

MOV A,COUNT

ADD A,R1

MOV R1,A

MOV A,@R1

MOV KEY,A

ACALL CALCULKEY

INC COUNT

MOV A,COUNT

CJNE A,

Scan the QR code to read on your phone

Address:Room1802, Kint Building, No. 238, Zhongshan Avenue West, Tianhe District, Guangzhou, China.

Service Hotline:020-85662866  13710680786