ic卡、电话卡彻底解密.htm
来自「可以用单片机做一个卡」· HTM 代码 · 共 769 行 · 第 1/3 页
HTM
769 行
+-----------+-----+
11 81 --> 88 | | | ---> $11 为瑞典
+-----------+-----+
12 89 --> 96 | 0001 1110 | $1E | ---> 瑞典
| 0011 0000 | $30 | ---> 挪威
| 0011 0011 | $33 | ---> 安道尔
| 0011 1100 | $3C | ---> 爱尔兰
| 0100 0111 | $47 | ---> 葡萄牙
| 0101 0101 | $55 | ---> 捷克
| 0101 1111 | $5F | ---> 加蓬
| 0110 0101 | $65 | ---> 芬兰
+-----------+-----+
13-31 97 --> 248 | | | ---> 计数单元区: 每消耗一单位,该位被写
| | | 为“1”,一般开始2为为工厂作熔丝
| | | 测试写为“1” 。
| | |
| | |
| | |
| | |
+-----------+-----+
32 249 --> 256 | 0000 0000 | $00 |
+-----------+-----+</PRE>
<H2><BR>Ⅲ)电气参数:</H2><PRE>
+--------+------+------+------+
| Symbol | Min | Max | Unit |
+----------------------+--------+------+------+------+
| Supply voltage | Vcc | -0.3 | 6 | V | 电源电压
+----------------------+--------+------+------+------+
| Input voltage | Vss | -0.3 | 6 | V | 输入电压
+----------------------+--------+------+------+------+
| Storage temperature | Tstg | -20 | +55 | | 储存温度
+----------------------+--------+------+------+------+
| Power dissipassion | Pd | - | 50 | mW | 功率
+----------------------+--------+------+------+------+
直流参数:
+--------+-----+-----+-----+------+
| Symbol | Min.| Typ.| Max.| Unit |
+---------------------------+--------+-----+-----+-----+------+
| Suplly current | Icc | - | - | 5 | mA | 电源电流
+---------------------------+--------+-----+-----+-----+------+
| Input Voltage (low) | Vl | 0 | - | 0.8 | V | 输入电压(低)
+---------------------------+--------+-----+-----+-----+------+
| Input voltage (high) | Vh | 3.5 | - | Vcc | V | 输入电压(高)
+---------------------------+--------+-----+-----+-----+------+
| Input current R | Ih | - | - | 100 | uA | 输入电流(复位)
+---------------------------+--------+-----+-----+-----+------+
| Input current Clk | Il | - | - | 100 | uA | 输入电流(时钟)
+---------------------------+--------+-----+-----+-----+------+
| Output current (Low) | Iol | - | - | 10 | uA | 输出电流(低电平)
+---------------------------+--------+-----+-----+-----+------+
| Output current (High) | Ioh | - | - | 0.5 | mA | 输出电流(高电平)
+---------------------------+--------+-----+-----+-----+------+
动态参数:
+--------+------+------+------+
| Symbol | Min. | Max. | Unit |
+----------------------+--------+------+------+------+
| Pulse duration | tr | 50 | - | us |
| R address reset | | | | | 复位时复位脉冲持续时间
+----------------------+--------+------+------+------+
| Pulse duration | ts | 10 | - | us |
| R write | | | | | 写位时复位脉冲持续时间
+----------------------+--------+------+------+------+
| High level Clk | th | 8 | - | us | 时钟高电位时间
+----------------------+--------+------+------+------+
| Low level Clk | tl | 12 | - | us | 时钟低电位时间
+----------------------+--------+------+------+------+
| Write window | Twrite | 10 | - | ms | 写位时间
+----------------------+--------+------+------+------+
| Erase window | Terase | 10 | - | ms | 擦除时间
+----------------------+--------+------+------+------+
| | tv1 | 5 | - | us |
+----------------------+--------+------+------+------+
| | tv2 | 3.5 | - | us |
+----------------------+--------+------+------+------+
| | tv3 | 3.5 | - | us |
+----------------------+--------+------+------+------+
| | tv4 | 3.5 | - | us |
+----------------------+--------+------+------+------+
| | tv5 | 3.5 | - | us |
+----------------------+--------+------+------+------+
| | tv6 | 5 | - | us |
+----------------------+--------+------+------+------+
| | tv7 | 5 | - | us |
+----------------------+--------+------+------+------+
| | tv8 | 10 | - | us |
+----------------------+--------+------+------+------+</PRE>
<H2>Ⅳ)读卡器电路图:</H2>
<P>简易读卡器电路图(利用电脑打印口,可读一类、二类卡)</P><PRE> 外接5V (可选)
5V o------,
| / T2 PNP d13 r7 10
0V o--, | / BC 177 |\ | _____
| | ,-------o/ o--*------. E C .--| >+-[_____]--------,
__+__ | | | \ / |/ | |
\\\\\ | __|__ Batery | \ / |
| - 22.5V | --------- |
....... | | | _____ | _____ |
: | __+__ +--[_____]--*--[_____]--, |
D2 : | \\\\\ r6 150k r5 15k | |
4 o-------|---------------------------*------------------|-------------, |
: | | r3 220k / C | |
Ack : | | _____ |/ T1 - NPN | |
10 o------|--------. '--[_____]-*---| BC107 | |
: | | _____ | |\ | |
: ,-, ,-, +--[_____]-' \ E | |
: | |r2 | |r1 | r4 390k | | |
: | |220 | |22k __+__ __+__ | |
: |_| |_| \\\\\ \\\\\ | |
: | |\ | | | |
: *--| >+--|----------------*----------------------------------|--*
: | |/ | | ,-----|-----------------------------, | |
: | d1 | | | ,----------,----------, | | |
: | | | *---|--* Fuse | Reset *--|---' | |
: | | | | |----------|----------| | |
D0 : | | | ,-|---|--* I/O | Clk *--|---, | |
2 o-------|--------|----------' | | |----------|----------| | | |
: | | | '---|--* Vpp | R/W *--|---|----' |
Busy : | | | |----------|----------| | |
11 o------|--------|--------------' ,---|--* Gnd | 5V * | | |
: | | | '----------'-------|--' | |
D1 : | | __+__ Chip connector | | |
3 o-------|--------|--------, \\\\\ | | |
: | | '------------------------------|------' |
Str : | |\ | | | |
1 o-------*--| >+--*----*----*----*----*-------------------' |
: d2|/ | |d3 |d4 |d5 |d6 |d7 |
: -+- -+- -+- -+- -+- |
: /_\ /_\ /_\ /_\ /_\ |
D3 : | | | | | |\ | d8 |
5 o----------------*----|----|----|----|---| >+-------*-------------------'
: | | | | |/ | |
: | | | | |
D4 : | | | | |\ | d9 |
6 o---------------------*----|----|----|---| >+-------*
: | | | |/ | |
: | | | |
D5 : | | | |\ | d10 |
7 o--------------------------*----|----|---| >+-------*
: | | |/ | |
: | | |
D6 : | | |\ | d11 |
8 o-------------------------------*----|---| >+-------*
: | |/ | |
: | |
D7 : | |\ | d12 |
9 o------------------------------------*---| >+-------'
: |/ |
:
:
25 o------.
: |
.......: | d1 to d13: 1N4148
__+__
<A href="file:///">\\\\\</A></PRE>
<H2>Ⅴ)读卡程序:</H2>
<P>下面程序为与简易读卡器相配套二类卡读卡源程序(如需一类卡源程序或需C源程序或其可执行程序请与作者联系)</P><PRE>USES crt,dos;
CONST port_address=$378; { lpr1 chosen }
TYPE string8=string[8];
string2=string[2];
VAR reg : registers;
i,j : integer;
Data : array[1..32] of byte;
car : char;
byte_number : integer;
displaying : char;
{-----------------------------------------------------------------------------}
PROCEDURE Send(b:byte);
BEGIN port[port_address]:=b;
END;
{-----------------------------------------------------------------------------}
FUNCTION Get:byte;
BEGIN get:=port[port_address+1];
END;
{-----------------------------------------------------------------------------}
{ FUNCTION dec2hexa_one(decimal_value):hexa_character_representation; }
{ }
{ - convert a 4 bit long decimal number to hexadecimal. }
{-----------------------------------------------------------------------------}
FUNCTION dec2hexa_one(value:byte):char;
BEGIN case value of
0..9 : dec2hexa_one:=chr(value+$30);
10..15 : dec2hexa_one:=chr(value+$37);
END;
END;
{-----------------------------------------------------------------------------}
{ FUNCTION d2h(decimal_byte):string2; }
{ }
{ - convert a decimal byte to its hexadecimal representation. }
{-----------------------------------------------------------------------------}
FUNCTION d2h(value:byte):string2;
VAR msbb,lsbb:byte;
BEGIN msbb:=0;
if ( value >= $80 ) then
BEGIN msbb:=msbb+8;
value:=value-$80;
END;
if ( value >= $40 ) then
BEGIN msbb:=msbb+4;
value:=value-$40;
END;
if ( value >= $20 ) then
BEGIN msbb:=msbb+2;
value:=value-$20;
END;
if ( value >= $10 ) then
BEGIN msbb:=msbb+1;
value:=value-$10;
END;
lsbb:=0;
if ( value >= $08 ) then
BEGIN lsbb:=lsbb+8;
value:=value-$08;
END;
if ( value >= $04 ) then
BEGIN lsbb:=lsbb+4;
value:=value-$04;
END;
if ( value >= $02 ) then
BEGIN lsbb:=lsbb+2;
value:=value-$02;
END;
if ( value >= $01 ) then
BEGIN lsbb:=lsbb+1;
value:=value-$01;
END;
d2h := dec2hexa_one(msbb) + dec2hexa_one(lsbb);
END;
{-----------------------------------------------------------------------------}
Function Binary( b : byte):string8;
var weigth : byte;
s : string8;
BEGIN weigth:=$80;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?