|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于单片机设计的简易计算器 能实现基本的加减乘除和清零2 d3 r, _) G+ g4 e, C/ M5 B0 l
# @( W& |* ]2 r8 Q( ~
6 Y5 K: a9 Z# t H8 T* ?6 n* ~5 N% N. F
这是用STC59C52单片机做的计算器,使用数码管显示,能实现基本的加减乘除和清零+ [) U; {4 f3 s" ^9 n
( A: m1 r; H6 s1 M& w6 i
7 K' {% `' p: }+ h
% v- i. v8 d, {
; g9 r, m6 O0 y* A0 X
源程序:% ^: b. R2 \7 {, {
/*****利用单片机设计的简易计算器********/0 A. _2 L; Y' N: w
/***** 单片机型号:STC59C52 ********/1 J9 b2 x5 s+ d0 K$ k
/*
9 |9 p6 M i1 f" O7 t *采用4*4键盘,4行线,4列线- j @( a- ~; K _2 g
*键盘行线列线接P1 IO口
; F* V" d% Q* ]& ]6 F$ {0 d *数码管接P0口
& i! s# u( S) |$ X9 K0 O*/
9 c+ \; M9 O" w( G. D#include <reg52.h>2 k; R. S, c2 z; h
#define uchar unsigned char' F( X9 o. m% ?# {8 B+ f
#define uint unsigned int
$ D: ^+ B' S0 c" V# bsbit dula=P2^6;//573段选使能& z0 A2 S7 U! N3 I' ]6 ?( B
sbit wela=P2^7;//573位选使能! s$ @: u- ?2 h, M" w, a7 Z. T
$ T5 Q: V+ Q6 o* w1 X8 n1 @7 n6 @3 y3 ?/ R! F7 f* E
sbit beep=P3^2;//蜂鸣器. I) y+ Y1 b0 y( [9 v6 Z! j
! R6 _ K$ Y! U* `/ p& O5 e/ F8 m! u* @
7 K) i# L1 z- J1 b3 q y# B
( l6 K6 {" M+ T- v {
uchar temp,key;//按键变量4 {. J4 P6 z$ y/ \. X) j3 }
uchar fun;//加,减,乘,除,标志位
" w% f1 D; a' J3 L) wlong int num1,num2,res;//num1与num2是2个要运算的变量,res是结果
* `" o' R0 l. Vuchar aa,dis;//aa 2个运算数标志位 dis 2个运算数与结果标志( v3 B o/ m+ a, h; N- V' Q
uchar code table[]={
$ ~+ b; e4 [: f* p: M9 ] 0x00,0x3f,0x06,0x5b,
& ] u+ w1 N) a5 R x- ~ 0x4f,0x66,0x6d,0x7d,- X% H8 q/ x) m$ _, N
0x07,0x7f,0x6f,0x77,
4 F" \% Y: j U# Y$ O 0x7c,0x39,0x5e,0x79,0x71};//数码管段码
0 u$ I* T# Q8 C( g' I+ guchar code weixuan[]={
- q) ^* B6 G7 p' Y 0xdf,0xef,0xf7,0 ?3 \+ |& Y% k1 ?( h4 F1 d
0xfb,0xfd,0xfe};//数码管位码
]- P0 f9 T' b/ Q4 z, T
; K3 {# Q* l- |- z4 J: [" [- K' V& V& v6 `' p/ G9 p8 U+ [7 r
void delay(unsigned char i)//延时
7 I. M+ {" |3 l& P0 n. Y. ^9 d' B7 d{2 d M! I2 q% V( {2 R4 N# U+ l% r6 Z) [
uchar j,k;
* l3 E% Q A9 ~8 s. j6 J for(j=i;j>0;j--)1 n8 T' R! ]! H5 p
for(k=125;k>0;k--);* t* {9 }" e; @7 y1 ~+ w" f% ]
}, W. E( s/ s8 s+ r) L. _ o
; S: `5 H0 ~+ A. V
! }& ?2 @! x3 `! Evoid bee()//蜂鸣器
" w- w" g/ E$ n5 ] r- Y{
, ?! ~( i$ A/ v3 D! Q9 I1 F beep=0; $ l% ?8 o0 I3 m; q0 |5 v- N9 _
delay(255);6 m/ ^; Q; K0 Q% B+ g
delay(255);
( N3 x/ ` Z* b% i+ Y beep=1; : U# O9 h. `; e
}
0 Y6 b4 d( R8 L( V0 d* n/ X$ Z) V
8 x% g5 ^4 C) A! T; J
//按键检测
9 U0 i8 w8 R3 T4 e! s8 ?- c//如果没有按键按下,则key取Init()函数中所赋值为16
4 Y6 B* @: z8 ]void key_scan() L3 Q+ C) B" S9 l
{1 h1 C4 O% S' K3 ? E$ h# z, v
P1=0xfe;//先置第一行线为低,其余为高
% A8 ^/ K! K i( \ //高四位为列线,低四位为行线- }! G: n, O. }- k5 n! l
temp=P1;+ A: d& \. Y# m: F1 Q& P: u
temp=temp&0xf0;1 A" x& a0 R; s3 `- o( W
//进行与运算,把结果赋给temp
; [$ ?) h' |% G$ P //此时temp = 0xf0
K& ^8 R Z& l8 \5 k7 o if(temp!=0xf0) /*判断temp的高四位是否有0,如果有零的话,则此时temp != 0*/
: L0 O) T6 L* W/ s* u! j. I' h {
3 }9 V! x T' @ delay(10);
; ^0 c D, e2 B' E. s temp = P1;
1 f4 ~# k# F5 d7 G temp=temp&0xf0;* ]. S2 o7 r( ~
if(temp!=0xf0)
- k# Q; F/ o4 d0 j {
3 j7 ^; [2 Q: R* Y j0 @2 R3 e temp=P1;
9 B: T$ L6 g% E. O# K2 O8 u5 y5 { switch(temp)9 f G' l& y) z- ~- ]5 |
{
6 y( C9 Q: `. p3 U case 0xee: //此时按键坐标为1行1列
/ Q1 ~) H6 h$ }) X key=1;
1 Y) g+ G! B7 o$ H0 y break;. A5 A. m/ \ t9 _5 J# k
case 0xde:
+ ~: i: R5 [5 o: w0 K$ D9 ? key=2;- w9 P* l8 |7 j% ^+ Z- A
break;
2 y; z j; Z j6 e: p) m case 0xbe:
2 W5 ~7 W* K- l$ p/ P key=3;! h" g* J7 N. T* @( a0 F Q
break;
0 ^8 Q/ ]5 l6 z5 |7 h N9 n case 0x7e:
' {% ^1 u" d* j: {3 F: @/ O key=12;# V9 x5 l! p, t7 m9 Y2 h1 W
break;3 H4 t. N3 k6 E9 w
}7 G) e3 ~; X* _1 x: b
while(temp!=0xf0) //等待按键释放
& r# `6 _* l/ u& w4 V7 y {
Z9 j `* U& f: `. |2 B temp=P1;
1 A9 C2 W/ g+ B8 Y9 B( ? temp=temp&0xf0;
3 N- J- l# g9 F' b9 N$ j# i, g }% c! b# v8 u( t) t. B& Y) \: M
}! a* `# m8 }& e, |6 Q& _0 N- e
}$ z1 P% S# C' y9 a
P1=0xfd;7 O2 c2 y4 c2 o0 u2 g' ~
temp=P1;4 O- y' B6 C X1 {
temp=temp&0xf0;1 l8 v% @) y; t; A
if(temp!=0xf0)
( M- W- a3 B- Q2 Q8 G* q, ?9 o {& G( o J2 _' T9 G' @
delay(10);
: {7 Y, g. n% I( l! l8 p: m( K temp = P1;
1 G( W9 ~) B5 @9 e" i1 D* E temp=temp&0xf0;
- T+ q$ ~% s( m4 {- i5 } if(temp!=0xf0)2 K' c0 A9 I" P# l m- g2 @
{
( u3 V) y2 W8 H; C1 M7 e temp=P1;
/ S4 m: E( _( _4 T# M4 T" T switch(temp)* m, F( B2 a' ^0 A0 r4 P! I
{
2 K. I4 k2 s8 Y% F! e' ]' T case 0xed:
8 A6 I. q% _: p' l, c key=4;/ @8 v- K: Y7 H. B8 x1 D
break;
1 d- J. ?# s: M1 O% ` case 0xdd:
3 E. v/ M! _9 @8 E key=5;# Q* ^& q. e' \8 L6 @9 k
break;
4 @: b$ p4 z0 p$ ~: L case 0xbd:
4 t4 ]4 |% p0 v6 Y1 p6 H0 t key=6;; n8 n/ T, w# w- G
break;$ @3 _) }) [ q! Z
case 0x7d:2 C: |8 _% Z; `
key=13;% h9 `" R: O# J+ C; D& }, U2 s4 K0 [
break;$ t1 b+ A" e9 v- V7 Y/ Z/ }
}1 C7 l% ?- j7 A
while(temp!=0xf0)4 ?: X9 J+ f8 X5 ]6 g& d
{
) C+ k* s% }) ?8 P! l7 H temp=P1;
2 z1 |+ m( C% j5 n9 j, A$ S temp=temp&0xf0;
& |. D Y+ n$ Z* g5 m1 h, H6 X1 I }
2 X5 v; ?# F1 p8 Q2 g( D }
3 i4 J1 V, |. [( r4 a( `7 q# |$ t, z }
/ u# O7 }! l9 Y P1=0xfb;
# _' f6 I4 L5 [$ Q temp=P1;
6 B' I1 i) J6 r P* Q$ Q$ e temp=temp&0xf0;2 R) m! N" a0 w- |) d ]
if(temp!=0xf0)
9 K) ]1 S( |$ [: h6 r- T {; U* k6 w2 X, z' z
delay(10);
/ @$ j. a* b7 s* A3 D7 x temp = P1;
& y% h. j4 ^3 s5 f* X temp=temp&0xf0;# _- D. L; \3 Y. } ~1 o
if(temp!=0xf0)5 e. c5 c5 [) A
{3 C& t9 m' s* H2 N% x- [$ i: Y/ H
temp=P1;
& m$ ^8 m- C! J+ H switch(temp)
0 q7 |4 B5 v2 j$ y% R {
8 R- I' x% X% Z8 T2 w- x0 K4 _ case 0xeb:
. ?( o( B, T4 d) a' i) J: j key=7;
9 o. R h i: t7 I/ g- |$ w break;
' O( C- ]4 v6 _$ y; G" l case 0xdb:1 a" E, s- t- w2 ?
key=8;
+ D2 d; G; w, c& Q" Q) O! V break;. J) F; u$ \$ I1 L7 u' Y! _
case 0xbb:
7 E0 o* D' o! M: m* H5 _. v key=9;4 M% p5 i* h5 G8 p- Z
break;4 a( K& d. G1 z, `
case 0x7b:. q6 ?' ~; B* R$ ~7 @, G8 k P
key=14;2 T% c1 U0 T: g) u* e, R
break;1 _5 P! a6 ]! Q( \8 n: O
}
0 \3 ?7 ]; W& ~) s3 ^; a3 ` while(temp!=0xf0)1 ?# P# r- }6 K1 j/ Q
{5 E. j! l/ W# f$ @4 `0 Q' E
temp=P1;
' h+ ], F' U4 N temp=temp&0xf0;- B3 S- q9 a8 L5 f6 l( o1 c
}" E7 s# R- ~2 z9 O
}9 g9 Y8 s9 h! u# N+ w7 C
}5 g8 a" v8 M' s" x1 N
P1=0xf7;. u3 _! t9 I+ U6 @% F/ G9 I
temp=P1;' o) z, w8 ]" }4 W. o+ N
temp=temp&0xf0;
7 \+ n T3 ^, V if(temp!=0xf0)6 n9 e5 b, z8 B3 G# D0 K
{& _8 {% \8 V& F3 R& a' C* v
delay(10);7 D; v' h" f) P: ]
temp = P1;
. L" d) Z6 K* v6 Y( U! x8 v temp=temp&0xf0;& {) b: Z. D/ h* b& q* r8 o# q
if(temp!=0xf0)
z6 A% H, H1 ]5 y) K+ h9 A1 u: [ {
$ a. a3 O$ |8 T( B) }8 m9 ` temp=P1;
l- b' |" X( B switch(temp)( {9 f. {) r; o* h7 l# I5 j# s5 v
{% K" J( o& z# q0 _0 t+ i: H
case 0xe7:3 E: }1 Y/ z4 y% s9 D% f
key=10;
. _9 x" p4 Y z; b9 o9 y4 h& U break;5 y) n) D- U6 R' T
case 0xd7:6 ?) q1 ?: X1 U, B- f5 g/ d
key=0;0 e% ]. w4 S! t }6 {, Q* G; P
break;
3 m* o8 E$ v* a# _. H$ r6 R case 0xb7:
7 D# X) S( j4 d. P+ N' j key=11;
( M f" M/ x) y | break;. D8 l/ r( n; @" q8 {8 y" y. y
case 0x77:# t4 b# K! [8 L b* K
key=15;
/ n* q. d' v! b- [! n. x+ z! e break;' f9 M4 L* N- O9 n+ Y
}
6 F# S% i3 i. I" P while(temp!=0xf0); z, a" a0 [5 k7 ?7 r/ [8 n) U
{- o3 j. {5 H& X; N( p D, ?
temp=P1;- y4 W4 p% G" D. d1 m7 p
temp=temp&0xf0;
6 c( x# |% a# A v }" q1 H. e0 H( b# g
}6 ~. t+ }! }/ u9 z
}. M' t5 q& R' S4 n) e/ G
}
: I4 ?2 P; ?" P8 N/*uchar temp,key;//按键变量5 k8 F* g0 h5 l0 d N/ R8 }8 _7 o
uchar fun;//加,减,乘,除,标志位
6 ?% V, g$ V' y# c. O3 }long int num1,num2,res; //num1与num2是2个要运算的变量,res是结果/ v2 Q7 b( z: Y' o* F& w
uchar aa,dis;//aa 2个运算数标志位 dis 2个运算数与结果标志) w+ Y0 v: ~$ ]& [, N& x
*/ n! {9 O) D d
void Init()//初始化( R8 J$ W0 N5 }; p/ b; P
{
) k( P+ h; {, C% N! d( ^! Y; L num1=0;
6 K3 ^* h5 F: L8 |9 f2 R2 o num2=0;6 H- U: J, s- P: u1 {+ k6 e
4 V, U# `8 \) h2 K4 I //P0 = 0; //关闭所有段选
0 u; R$ v( H! L1 c wela=1;
! @ x- P/ K* f4 n$ G+ D0 A P0=0xdf;//11011111+ n+ s4 {( [/ {4 _9 c" m5 O. ?
wela=0;
5 U# t. |+ l- P5 _' p, [$ X1 O7 F
+ M6 t4 `4 B8 q! b3 Y dula=1;' U5 |1 @2 |& Y" E) S
P0=table[1];//显示0* z8 R# x, V) U2 g" u* q' Y/ `9 V
dula=0;
[! j; P6 ~; ~) d' ^9 F
3 E B. [) I4 M( G5 P* `& i) h3 B key=16;- ]: B8 G3 V, x5 \7 b$ ~- P
aa=0;
2 b4 O) q" r- i; Y' H' s1 k; a- y dis=0;0 C" X O2 q. a( b9 V( Y" J# T
res=0;
. b; I. l3 G5 ^) G" N( D8 \+ P$ j. j}" S: a8 h# d0 Y3 A( @4 n1 |5 G: K
* `; M. u: A0 j! h+ E+ P: l& ~/ \5 s6 ?' O; ^8 c4 r2 q y6 S
void dis_play(long int nm)//显示函数 z" M3 e% V) \7 `+ |
{2 z+ V/ }$ K! ` a' h
uchar a1,a6;//a1位段选变量,a6为位选变量
7 \7 r2 ]& }+ j O9 I& { | long int shu;
2 \ m* L1 ^3 B5 _. i shu=nm;1 U! r/ C' ]% h1 @$ m; R5 I3 `
if(shu==0)
/ Z. u: M- k9 m: X' a- @3 o {6 y6 [* o- ]. R+ D" }% O1 {
wela=1;. y- P3 }$ y2 j- e) W3 t4 ]
P0=0xdf;& q& I, g5 |0 Y/ H% x
wela=0;
5 l0 Q$ K8 F( p& d z/ T dula=1;
3 A' W/ h% N8 @- p; P" [9 _ P0=table[1];
" y* m A: w$ ~5 T: L$ m dula=0;
, y+ |' T- X. J4 Q }
7 h' w4 l6 h: E else
7 M1 A3 s$ V2 J* ?+ f: b {
0 P( b4 h7 Q, |) C f4 x/ z2 ^+ G( Z for(a6=0; a6<6; a6++), \# B7 b% a5 D% O# ~. \' S3 a$ }
{7 h8 M1 m) L! ^3 G5 }
a1=shu%10;//shu%10 shu比10小 a1=shu本身$ N9 l0 ^: B& E( b$ s6 d
if(shu!=0). a0 s3 R! N9 w
{4 x; t# t/ \. s$ W
a1=a1+1;# o6 K9 L0 n, V; s( M& H
}5 ]3 ^" I% V" I
shu=shu/10;//shu/10 shu比10小 shu为0% U+ X% j2 p4 I# ^ s5 R8 Y
P0=table[a1];6 ], o% Y5 ]7 n) L Q$ R0 p; ]5 X
dula=1;- o7 s( O' F8 ^% [& V' ?
dula=0;; M# I/ x4 Z. V2 b- I
P0=weixuan[a6];
6 ^1 w( M1 e/ \9 C$ m! z wela=1;
$ B* ]' ?& ]) s' m. z+ W wela=0;
. r `7 A1 N' K3 e9 S6 ` delay(5);1 [2 e5 A9 R3 H& y
} + r' v% ?/ b2 Z( h1 y& \* L! g) Y
}
' O3 k/ X2 a1 k; }" X}
3 B U8 B8 G: u: J2 Ivoid display()//显示选择函数,dis 0或1显示运算数,dis为2显示结果
1 d1 g. y, t8 o% p" Y{) F; X: D0 \! r2 s6 j$ R r
switch (dis)
3 d" ]+ x4 \0 s" ], ~- y1 _' @ {/ @" w0 \* `! O6 |1 [) j
case 0:
, h; h6 G( @) A$ O4 Q {1 z Z# y+ p& y: j4 n
dis_play(num1);8 i3 L3 c# r( O) b! m
} + D" f( x Y% t: `1 L. M9 w: g. R! q
break;: S1 U; U4 c3 S2 q7 b
case 1:$ q1 L1 M4 ^- m( i* |0 X
{5 e# s6 Y' ^& u9 J
dis_play(num2);3 J* N+ C8 V" c( _# [" z9 A
} . V+ p0 ~% e/ g" Q
break;" ^- ] E* E: p4 r4 z! n
case 2:
: I9 z; e d+ c5 n# V' a9 l {0 x) h' ]4 J9 H- Z
dis_play(res);
9 m, `6 {4 ~+ w' H" L L v9 v } 9 w" i) G/ n7 d3 u0 ]
break;
$ N- H4 a* U3 X3 Z+ E e7 e" K } ) N6 N% d9 [3 T
}" s! l/ I _' r
" ?( y& {9 h) }; Q
4 X& `" r- f4 i% y2 tvoid shanshuo()//数码管闪烁) ~4 ?2 j4 w* [8 c9 ?1 P- o
{$ I, I8 U- w- o- A
wela=1;. }. f) {- F }( `8 @( ^! B3 n- Q
P0=0xff;
! B9 v) ~% ?8 `- a' n, D& | wela=0;
' D7 [2 ]+ |, b W" S% u% S delay(255);3 |: h' D5 e; y8 _/ ?
}& I% D; C+ g: V- M) X
& F8 G& N% H2 Q$ l# j5 ^8 Q; C! V& a( Z( U6 e# q S0 P
/*uchar temp,key;//按键变量
' r. u5 W' [$ \0 c1 luchar fun;//加,减,乘,除,标志位
/ t2 q' t, z$ i, o! t) w Z8 V+ C, Vlong int num1,num2,res; //num1与num2是2个要运算的变量,res是结果! L! m+ @+ L5 |4 \6 J# E% |: T
uchar aa,dis;//aa 2个运算数标志位 dis 2个运算数与结果标志6 }$ w& o3 }, \, o: z8 R" U; ?
*/
# s! r# h8 c6 J3 \void check()//运算函数9 E% h6 o/ R H" r+ U( ]
{
6 _" o2 c% F* a$ N; W; B if(key!=16)7 q& m7 b$ z ?/ P1 b* u( O
{4 I$ ^5 J% _7 ]( V! [5 ]8 W
bee();
9 {0 P0 o# L3 b' y) w* [ if(key>=10)
: X8 w5 C. _, i# s+ T {
6 A( j A4 ?5 N9 O& f, U) A( T switch (key)
- U2 O$ k" V4 g. `$ j( }, W {
& k. V/ T5 X; Z1 l: V // CE
$ X" H& ]7 Z" W% F. w case 10:3 T' v4 }* b" x6 a" V! P4 x
Init();
* @* ^6 y1 H6 u( {% ]7 `: P break; / D. y+ U( ^" B& D1 b1 `
// =
! }% i1 S* S) W W' E O0 k' m" u case 11:
7 U: ]6 P0 {( Z0 t/ m2 ^+ q* J {
. Y* w% ^- e( a switch (fun)//加,减,乘,除选择标志位8 G6 ?6 o, g6 H% |8 F! R
{
6 Y1 T4 h- c6 N case 0:
/ B( n/ U- D$ ~; B9 Z) H res=num1+num2,dis=2;
" z" [6 f' r4 Q break;//加法( j; s3 [/ y# P( a9 x0 c
case 1:$ x$ W" \9 I c) A0 Q# }* O3 ~
res=num1-num2,dis=2;5 O& P# Z* u4 r4 E$ [. `' f
break;//减法
; w9 _" F7 y" {3 @& w case 2:res=num1*num2,dis=2;
$ S8 a1 J& B ~; S2 P9 N break;//乘法: n. `" R# ]7 s5 K! ]! T: Y+ _5 w
case 3:res=num1/num2,dis=2;
3 D7 \2 M" z2 I& K0 Y+ K+ G break;//除法# L/ u: \5 w% _. [
}
* f' L7 ]% G- R$ E% |$ r- N, W7 V }; }1 D7 y a n0 n6 c
break;+ p0 i- _, V! |1 _) @- d* w
// +
G' t2 p. O2 M! U5 m [ g case 12: n! o. J* f% {( i1 D6 M. B% y
fun=0,aa=1,shanshuo();
: q" I* J. d4 W" x break;
& V7 D% g+ Q) _5 U s' R // -
% a: U9 O T9 C# {+ {2 n" d& { case 13:% U% a! e3 z. j% }9 s5 Q, M2 [7 c
fun=1,aa=1,shanshuo();
& a- g5 ]0 L8 c; ?5 G+ \9 O break;
0 l. F0 i& j y8 x0 j // *
$ O9 [6 j. K! h/ I+ r( N; ] case 14:/ E# ~) _; o4 }8 V9 C3 p% E8 v
fun=2,aa=1,shanshuo();0 ]; F% X! D3 N1 d* w8 }5 b
break;
, \: g; @0 y5 [ // / / B/ f3 Z2 s m/ Z' _ O5 n
case 15:9 I# M/ \1 |3 Y$ E! P2 W
fun=3,aa=1,shanshuo();% a- p- E+ b% Q s& }' v
break;
6 Y1 Q/ j, }$ g4 d }- a' Z3 F) B; G1 m. x
}2 |) q' l/ l X- F$ d5 k# V7 I
else+ V* H% T' x. ~& C4 U/ [
{
' D ^& b3 ?8 h7 Z+ N4 o2 ? switch (aa)//运算变量赋值标志位) E( b' P* N. K$ A7 P6 {
{+ \2 P! s: O8 R K
case 0:9 _4 R2 m" |, L4 J) y9 R t% D
{
% g; n) ^% x& h5 y/ G' @1 b. X. ^ num1=num1*10+key;//把按键检测到的值赋给num1运算变量1
; U9 e& ?5 G2 ?' i8 W };7 Y* K% B$ o; T- d! Z; p p: b
break;
$ L& N0 e o0 \ case 1:2 t& ~8 @# o2 F' t% o; B4 r
{
! P' _3 D* G: {. x+ l8 z dis=1;9 C) `+ e0 o2 W( K
num2=num2*10+key;//把按键检测到的值赋给num2运算变量2' K6 d6 P, V4 r; [- i+ X
};& R; ^/ Y. A7 S% E4 h
! r& C% ^+ E2 G( P9 Y9 G: l1 b* t
8 e X9 B F# T1 }+ B9 e
) x1 G( p% U& x4 f0 Y* O+ S
0 I; d; {) ~2 a) Q" I. g- d) C$ ^ O…………余下代码请下载附件…………
) ?9 D+ A5 k* Z% \) ]( [* x {$ J" e6 j# m. F& {0 Q4 f
. z+ `% [/ S+ ?! |2 ~2 ~
下载:
8 Q0 T$ C. @0 ?$ ?
" Y$ N1 X8 k8 T! H |
|