|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机密码锁proteus仿真和汇编语言源代码 数码管显示
: x5 U6 l9 J O; z; }6 _. F
" T1 N" o, X4 a5 U. D+ i2 m( F& {* G单片机汇编语言源程序:
( a& f' ]; N2 b2 v LED_BIT_1 EQU 30H% t0 e ?4 p1 v
LED_BIT_2 EQU 31H
7 _+ g* [+ }- `) s LED_BIT_3 EQU 32H
- d( W9 }5 |& J+ r LED_BIT_4 EQU 33H
* Q B; _4 O. L; }& |% B LED_BIT_5 EQU 34H# g, y8 N0 s- z
LED_BIT_6 EQU 35H
: R1 M. h# k& W6 N LED_BIT_7 EQU 36H
/ d1 M6 G! i$ J3 f& q+ w# m8 M% y LED_BIT_8 EQU 37H
, s- {; n6 T7 G, F: j* w8 u1 |WORD_1 EQU 38H
% J! x' E8 Y7 m5 w( f* jWORD_2 EQU 39H
$ z/ D1 S% j5 ]- e! ^WORD_3 EQU 3AH: j7 g/ K, N: Y& r, _
WORD_4 EQU 3BH
9 K3 x' V3 P3 b$ P" gWORD_5 EQU 3CH4 F) ]4 I) P. \; k% c
WORD_6 EQU 3DH
- O0 k& F; y t% H- q8 ~KEY_1 EQU 3EH, Q4 Y, P h$ ^6 N7 A
KEY_2 EQU 3FH
- P' X* l% h1 l$ x. u" jKEY_3 EQU 40H' x7 I7 T4 `# P5 s( C* {- q
KEY_4 EQU 41H
, g9 G& y/ p( i0 J6 `9 UKEY_5 EQU 42H9 h6 }2 j& @2 y2 R" P, n6 ]
KEY_6 EQU 43H2 J3 }# O2 W& i
CNT_A EQU 44H% I5 X( Y9 W" E2 n S0 \
CNT_B EQU 45H( x% b( p/ z+ l8 `5 ~* P5 @
KEY_CNT EQU 46H x4 z) Q9 h# ?' R. Y/ T, F
LINE EQU 47H% A" e/ _8 J4 T [& ]8 x0 A. D
ROW EQU 48H" S- Z4 D- X0 L# A+ W5 v: b! _
VAL EQU 49H
$ f$ ]% U' m, _/ E* ?& a* ^ ^ORG 00H$ J5 k. ^+ C' f* t' P2 |
SJMP START4 Y" i1 z: k5 |/ B! O; y* y
ORG 0BH* [9 L; s+ D6 S0 V1 g
LJMP INT_T0
- [% Y, u: V$ `, nSTART: MOV CNT_A,#00H" F1 _& h; s' W$ e* F4 o1 D
MOV CNT_B,#00H, c5 m8 Z1 [) p1 u
MOV KEY_CNT,#00H
% a M# B# P: P" ?. ?1 ^) ~ MOV LINE,#00H* A8 E: L) |+ y9 w& o) v
MOV ROW,#00H
# s) V' O* U0 k: M; E. C3 H& q MOV VAL,#00H
. ^% d2 n2 ~8 s3 C SETB P1.09 S5 q% c# y( x& [3 }6 g
MOV LED_BIT_1,#00H( e( q+ @. Q0 q, o3 Y8 F- O
MOV LED_BIT_2,#00H
) W$ l, `& ^8 _* e, O MOV LED_BIT_3,#00H
" Y3 y2 V) r. H5 B0 W; m MOV LED_BIT_4,#00H
# _/ q2 x; S7 z+ O MOV LED_BIT_5,#00H( d& N- b4 u6 i6 E" y9 ~0 f6 D% @( A
MOV LED_BIT_6,#00H
! _ [( D1 Q4 _ MOV LED_BIT_7,#79H
6 I r: v+ R9 @# |7 p MOV LED_BIT_8,#73H. ^) G- z; r% u* t
MOV KEY_1,#00H
4 G: ~1 ^6 v. t& Y% ]: b MOV KEY_2,#00H
3 h* [/ s3 _" c) B% A' y MOV KEY_3,#00H) M# g" w+ W+ A V
MOV KEY_4,#00H9 a$ n- `" C" Y- A3 a9 X' G
MOV KEY_5,#00H
7 q' q( p/ o+ q! i g MOV KEY_6,#00H+ h ]5 [' s' R7 E5 |8 `
MOV WORD_1,#6
6 V' G( m0 U; U" ?0 ?- o# c% O: N MOV WORD_2,#5
3 h) f' P( J9 ^ W4 T5 ^3 }$ t MOV WORD_3,#4
# I3 B) w0 L# S' M8 `% _ MOV WORD_4,#3
7 j. `6 X1 @, g- ` MOV WORD_5,#2
1 u. P3 [: @5 g1 E4 k4 k MOV WORD_6,#1
1 T0 b. J* h. x0 G; w8 t, Y, i# U MOV TMOD,#01H6 o, V# \% C: V1 }
MOV TH0,#(65536-700)/256+ c0 E1 Z) ]+ n8 M+ v! L; l- f& j
MOV TL0,#(65536-700)/256
% [ e! e4 d3 n MOV IE,#82H
) g: Y" t! e) I! v* i2 BA0: LCALL DISP
# E& ]1 G/ r( C1 v# I/ d3 I
) E( B1 \$ L6 B
7 E- s7 A6 @# }+ B0 K5 @8 }; oLSCAN: MOV P3,#0F0H2 C6 g# H) m3 y; @6 o
L1: JNB P3.0,L2
3 _+ p! T, K& [6 z: k( ` LCALL DLY_S
% L. x4 X( A! N9 y3 Z2 {3 I9 X$ ^ JNB P3.0,L29 S, a) o( `6 O' k0 C0 c
MOV LINE,#00H
/ z6 b: a0 y% j/ R% n LJMP RSCAN
( Y( D4 R: v- aL2: JNB P3.1,L3
8 w" G) h6 d$ ~# K4 m) V% x LCALL DLY_S! N' ]" p& D0 ^+ K
JNB P3.1,L3
% `: n4 p4 Q7 ]' I& q& h8 Q4 I$ H MOV LINE,#01H
# v* b! p2 @( S0 ~1 z$ s LJMP RSCAN% B& q" D7 }' [9 T
L3: JNB P3.2,L4 N. q; W5 g. w8 I. K0 U: n# ~
LCALL DLY_S
7 a* p, j2 \2 `: ], E JNB P3.2,L4
6 e% ?' Z: u3 I$ `( v MOV LINE,#02H
' y% _2 a' a2 ]% S( h8 X LJMP RSCAN
6 S+ P) o4 }* n9 q' [* S8 k% i% UL4: JNB P3.3,A0 Z9 b, f3 A4 n6 w$ A
LCALL DLY_S
0 u; m, _, I! L! H, G$ G4 _* r JNB P3.3,A0
0 _/ P& Z7 A+ A4 D, Y! b* ]. ]1 f MOV LINE,#03H% B' [) L N1 W2 T, I
) `5 w, g0 R% q! V% q
1 t/ A% ]$ ^2 r
RSCAN: MOV P3,#0FH
6 g( @& F' f' [8 |$ u C1: JNB P3.4,C2
) K' I+ ]) I" o' o3 n7 P MOV ROW,#00H
& D" H: ~ E8 p+ v6 B* m# n8 @, u LJMP CALCU
( f2 A, x4 k4 ]5 D% m5 R: D* b. N C2: JNB P3.5,C3
) s) I0 e9 N3 d* X W MOV ROW,#01H
) C7 O; B/ c7 J1 y LJMP CALCU
' W: W/ f3 X4 t' x C3: JNB P3.6,C18 o* ^% J3 n( k0 z' F4 r
MOV ROW,#02H
8 f+ i7 S( g% a# ^ H+ d9 Y' E4 q CALCU: MOV A,LINE, F4 r, n8 _, y/ S
MOV B,#03H
5 [1 S( @0 {9 O/ a+ k' k/ |9 A, l MUL AB3 e% i# {7 k+ E/ V) D' E8 i: R
ADD A,ROW
, V v( O3 a, x; J t. T$ L MOV VAL,A
( [) H2 E' V; K( c) r5 e: x CJNE A,#0AH,J1( P( l; |2 T" I. N
MOV R1,KEY_CNT
/ c; ]$ O" M0 K+ i! ?8 P) \ CJNE R1,#00H,J2
9 }3 a0 {& T' A LCALL ALARM_1
5 G4 D& F4 P' `& t4 | LJMP START
0 Q% ?: U4 M: ?6 v. ~3 B: Q$ w) e- Q
( s: t% n" r; e! N8 A) P% J+ Q+ |, k! ^
6 d1 j/ y( _& x; d
J2: DEC KEY_CNT8 X& S0 j1 Z' j
u! r _7 `& h- g
LCALL SHIFTL25 M5 H2 ]0 q. b' C9 s
- ~$ o! r; ]) }3 T; J' g0 g
6 r) b q, M" N, P4 O6 g" X9 z: f( |; K2 r) W
2 e4 ?; Q+ u+ _0 e% V6 v2 X
3 ~) \9 o6 ?. D6 x+ z! K1 j0 {1 U, r, K! E7 K- c
W00: LCALL DISP/ y+ h/ s* H$ i5 M- O
MOV A,P3
: i* h* H; Z: I; j. U5 d CJNE A,#0FH,W015 y" D# N$ Z5 F. C5 _# S8 L1 T
LJMP A06 f, U3 z! t# Y! j
W01: MOV A,P3
# m' Y. `$ H$ S( N3 _ CJNE A,#0F0H,W02
: t9 h0 B! I0 `6 E7 ]- t LJMP A0
2 A* L& H. y% Z2 g/ S# X. n6 yW02: SJMP W007 f- `3 z+ k+ ~! D/ b
J1: MOV A,VAL! ^9 \5 \' O% ^2 [" [
CJNE A,#0BH,J3, i; d5 h/ U( E3 q4 l
MOV R1,KEY_CNT: V. D, U: j' a5 P( e
CJNE R1,#06H,J4; j( |# x# [! |2 q- D( t
MOV A,WORD_1& E1 D: a- i+ h! X
CJNE A,3EH,J57 p& }# C% R7 R1 }( j% a0 Z+ O
MOV A,WORD_2
a- z6 q; `) e$ F( e5 v CJNE A,3FH,J5
8 X4 e$ [# L4 Q2 b2 T2 U1 B+ [ MOV A,WORD_33 h% b6 |/ ]0 I, B! G) k
CJNE A,40H,J53 } z: A# }( }- f: J
MOV A,WORD_4
/ L5 }' y' V( Q! }- e# @" E1 ? CJNE A,41H,J5' Y* z9 l! s! s# Q: b5 O
MOV A,WORD_5& b1 U1 u; [* i! y9 ^( h& b2 q3 f
CJNE A,42H,J5& i: w5 g5 J) p6 ^& v v9 N/ t
MOV A,WORD_69 a$ j. m& N9 K& j
CJNE A,43H,J5: g6 z" f4 X0 g% u$ T( r+ k
CLR P1.0" Z9 ?5 W h. v" ~' B
LCALL DLY_L3 N# m# ?. u% ?4 u6 k# P7 e) M
LJMP FINI
8 S) _3 `: S: UJ5: LCALL ALARM_20 H- k1 {) L& S! y% m7 ~% F6 g
LJMP START
) {7 x) J6 {+ m. ^$ w, E1 D( oJ4: LCALL ALARM_1
c6 W# ?2 b* k& Z( ?7 y. W LJMP START6 l6 r0 z3 j; Z
J3: INC KEY_CNT+ i* c/ ? t4 | L5 m$ |' E4 B
MOV A,KEY_CNT
0 Z% u- H2 d6 m CJNE A,#07H,K1
' V" s6 n) F# P* _5 A" I LCALL ALARM_1" \5 y! _7 b1 L& U
W10: LCALL DISP
# c5 O; }9 U8 j1 |) [+ T MOV A,P3
1 |' w. L) \7 g6 h( I CJNE A,#0FH,W115 N x0 G. d7 B2 s* D
LJMP START
; u% p, u6 _ Z ~W11: MOV A,P3$ y9 Z: U9 {: J' ^ V, N9 y( I
CJNE A,#0F0H,W12
2 r* @+ W8 M: U D' ? LJMP START. h9 Q6 L3 n( f3 S5 Q2 q
W12: SJMP W10. k: @! K% p0 p/ O% o3 L
LJMP START
1 a. i0 N6 A/ d LJMP START2 a. O$ e2 C' T% x3 J/ N/ E# \6 C
K1: LCALL SHIFTL1 z- b3 |5 f. c7 p- |" Q0 J$ `* x
W20: LCALL DISP( q+ P9 Z3 x2 N8 W. @; O# C
MOV A,P3/ s" y/ c. A/ n( S
CJNE A,#0FH,W21
! v. h [) F N6 G LJMP A09 N/ R6 D* v: Y# t
W21: MOV A,P3
. I3 T7 J3 x! s! v/ M- Z CJNE A,#0F0H,W22
5 ]2 g; q Z/ W. P! u% } LJMP A0, y3 {2 E' w- d. o2 k- N8 u" D6 ?
W22: SJMP W20
/ s, a2 y' r; o1 d4 M LJMP A0
' J- F9 Z* j- S2 u) k+ S8 sALARM_1:SETB TR0: _: B# d0 ]4 E3 m2 G
JB TR0,$: T; j0 `9 B" ^2 N* K& y1 E( E, x
RET& I1 O, L. h. \# _% M
ALARM_2: SETB TR0
: k' |, c B! Z0 ` JB TR0,$1 R0 |4 m9 ^4 r
LCALL DLY_L. G/ l% Z3 J# f/ C
RET
1 k9 Q( |, `6 @' @& u6 U# ]; I
, v# l! H8 J8 q, qINT_T0:CPL P1.7
2 y s5 [- l3 Z' A0 q0 r: [MOV TH0,#100
1 g$ v: Y+ H2 }6 P9 \MOV TL0,#253
. t; \2 k3 k% ?% K, AINC CNT_A
& A4 s1 v( Z3 k7 F" ?6 gMOV R1,CNT_A
: w. f8 a( J fCJNE R1,#30,RETUNE
; E# _# V' K* {) K! GMOV CNT_A,#00H
0 N$ p6 m8 Q7 D" ^8 }INC CNT_B* K% ~, o- T1 }% [
MOV R1,CNT_B
" Y Y; O+ A# j9 f/ l! U0 L7 I! _CJNE R1,#20,RETUNE
* ~8 `1 {+ _8 h9 qMOV CNT_A,#00H( i; p @& y9 ^7 O) N: c& F
MOV CNT_B,#00H
9 Z0 T- {7 F/ U, c7 S. w3 qCLR TR0/ U: V5 s7 \! i' o O; y+ C
RETUNE:RETI: H2 \# G# L" [9 p0 y) M
2 K5 I+ X7 C/ Y" u
$ v3 i, d* j5 W) M d) fSHIFTL: MOV LED_BIT_6,LED_BIT_5
7 ?9 _% R; c; Q: B MOV LED_BIT_5,LED_BIT_47 o( |" Y; M6 z# \$ t, m
MOV LED_BIT_4,LED_BIT_3
* a J% D; G4 v& N, g1 h \ MOV LED_BIT_3,LED_BIT_2. Q/ \$ T5 ^7 U
MOV LED_BIT_2,LED_BIT_1
* e6 @/ E; }# e: j( |8 ~9 ^ MOV LED_BIT_1,#40H
! Y x: c% Q1 j& U0 ~ MOV KEY_6,KEY_55 H: i: }( E1 o" i# c
MOV KEY_5,KEY_4, G! [+ N: y# p7 S! d6 `& I
MOV KEY_4,KEY_3
# A# S C; k( |) J% ?6 y) @ MOV KEY_3,KEY_2% K* u" W! j* E7 m t9 `$ M6 f, L7 N
MOV KEY_2,KEY_14 R8 A5 | n' X+ E5 c0 S
MOV KEY_1,VAL! D# ^! U: P2 `$ H! B
RET& ]) e# y1 ^! a
) m" e$ e; {8 j) h. o! j9 y" ~- ^' t1 q: w2 Z2 V
8 d' G8 ^& \& ^$ u% ^" H
6 Z t& [" M' m( U: b1 Q SHIFTL2:$ R7 k" x9 ^$ H
- ?- Y% I- l# @5 q q; p MOV LED_BIT_1,LED_BIT_2) T1 D$ a- L6 z, L! I
MOV LED_BIT_2,LED_BIT_35 t% M$ [) p7 F( G* U6 F
MOV LED_BIT_3,LED_BIT_4
3 X9 ^* ]; M& [# n: D' J MOV LED_BIT_4,LED_BIT_5
5 F" p/ {& D7 v( o4 f5 Y MOV LED_BIT_5,LED_BIT_6
" L# m/ b! f8 x+ s/ C MOV LED_BIT_6,#00H5 ?7 ~9 ~" q. E; M' H
MOV KEY_1,KEY_2
2 e+ a* Z- K6 V: P6 B MOV KEY_2,KEY_3
1 \) a, `* |$ c/ Q MOV KEY_3,KEY_4* m$ e7 @$ Q% C2 p# m
MOV KEY_4,KEY_5
4 p3 P- w# K p2 |- d MOV KEY_5,KEY_6; K+ P2 U- G5 g" ?. Q+ d
MOV KEY_6,#00H8 ?6 B1 p6 D& n
. y2 o* \/ |* L+ x; t: v RET y3 i" k3 R+ O. ]# n
. T6 K3 U& b( A7 E- D3 X4 u" m ?9 t5 i: E/ n- T
DISP:CLR P2.7
5 G8 n2 `+ b6 u/ k7 N* G% ` MOV P0,LED_BIT_8
9 Y& a' L) T1 T; b$ s m, p# Z7 \ LCALL DLY_S& D6 y1 |5 W C5 _
SETB P2.7
3 e2 Y0 @3 M2 S' F- m, D9 [+ L CLR P2.60 F( F% d' g8 W: o$ ?5 ~) u
MOV P0,LED_BIT_7
: i4 m+ ?9 V* N( Q. N+ T LCALL DLY_S; _* n$ s% d2 Y$ x9 C' E s9 ^
SETB P2.6: w) U3 u2 Y3 L8 X @! p
CLR P2.52 P1 r9 l$ o4 D! B' Z, h; y& t
MOV P0,LED_BIT_6
9 e8 z g; g$ C s; D6 n0 O0 j. e LCALL DLY_S
, {$ m2 \8 S0 K- q2 w' x& o' o SETB P2.5% V# ]8 l- F, q0 m0 Y
CLR P2.4
# }$ Z9 \8 X- R5 J; G MOV P0,LED_BIT_5; N# W8 r' Q/ C
LCALL DLY_S
& T" v- R% m/ {2 F" E SETB P2.4+ K% ]- _* z+ `8 [! \
CLR P2.3
% K* r- A! b; K$ h' P3 ~ MOV P0,LED_BIT_4
) U) I0 ^4 C# Z' J: L- [& h LCALL DLY_S
/ ^2 n: t, n0 b( ~ ] SETB P2.34 ^/ D9 K3 w" }$ c: w5 ^
CLR P2.2
. l- g6 P+ P* ~$ W4 E( c MOV P0,LED_BIT_37 ^6 {( P' J7 U2 p. \# a
LCALL DLY_S
, y M. q/ Y D" b; Q+ a6 e SETB P2.2/ D) v' G5 F. y ?) o
CLR P2.1
2 \4 g. X& T" b8 t L* @* K MOV P0,LED_BIT_2
8 _" V# b* h# y LCALL DLY_S
( q$ C8 G' \0 G SETB P2.1
2 g: W5 h3 q- R' |2 ]! } CLR P2.01 N7 W- X( n, ?/ r% Y- r- S6 p+ x
MOV P0,LED_BIT_1 V& }4 s, U0 m( K
LCALL DLY_S
! F1 y! B2 Y# H% o0 h SETB P2.0
1 l$ O% D2 u1 v |. Z/ { RET; w3 y' o/ f) _! r
DLY_S:MOV R6,#10
. g9 |' | N5 }7 b5 b D1:MOV R7,#250
* b; X$ E) |( h$ ^ DJNZ R7,$1 R4 C, x$ z& h* f# }+ D! `5 q) e
DJNZ R6,D13 T ?$ u$ E2 v, n' b& @) X
+ ]+ Q. j" ]6 t) f O; u
1 b) L3 o# ^7 e. T5 T6 @
…………限于本文篇幅 余下代码请从论坛下载附件…………" X+ J0 B0 c! G; p6 b9 D
; T4 l' M6 S9 X2 b
' M7 B( x+ i0 y# \ K( z |
|