|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机密码锁proteus仿真和汇编语言源代码 数码管显示( t$ B- Z. _/ u2 p y+ g
4 W) y3 B2 W9 K% d7 S* \
单片机汇编语言源程序:* S8 s, M$ e2 I0 I4 U- B1 K
LED_BIT_1 EQU 30H# G: e- m1 z j# Q+ Z/ N
LED_BIT_2 EQU 31H2 M8 g* P: \8 Z% b% `/ i
LED_BIT_3 EQU 32H
8 |& V6 n- z7 d2 C8 r ? LED_BIT_4 EQU 33H
* x" N1 V D9 G LED_BIT_5 EQU 34H
0 d/ _5 Y" |& ]" W3 J8 f LED_BIT_6 EQU 35H7 L' n" U) B! ]. W$ ?3 l6 e9 F
LED_BIT_7 EQU 36H, y: \6 [$ n6 p6 z+ o; c
LED_BIT_8 EQU 37H) Z8 Z1 @1 \# u" I" U
WORD_1 EQU 38H
" \/ r" L% \; Y! g! iWORD_2 EQU 39H- o: B2 g0 p( X- t
WORD_3 EQU 3AH$ a8 U3 o' {. b9 z8 t
WORD_4 EQU 3BH+ F* g" L* B X' a
WORD_5 EQU 3CH
1 V' ]. E, h* P. r. l3 pWORD_6 EQU 3DH2 D- s, B6 D6 \5 v- A8 w$ Q7 R
KEY_1 EQU 3EH
& U% r& n5 M+ i/ E! ^) IKEY_2 EQU 3FH+ y+ X; \' {: X- E, L) l0 ~
KEY_3 EQU 40H, D4 Y# i3 H$ N
KEY_4 EQU 41H
& E" t4 O2 {1 lKEY_5 EQU 42H
% J/ z2 h. Q; s0 B8 k( WKEY_6 EQU 43H% t4 z. T, @/ T" ]( T7 j& ?2 ~5 m
CNT_A EQU 44H; f4 j3 @2 ~; ]7 p& d2 Z$ {0 F. }
CNT_B EQU 45H' l7 Z5 ], Z. g4 A6 P
KEY_CNT EQU 46H
( Q, j3 Q+ a, ILINE EQU 47H* C; B- m9 Y) @" \: K/ J2 a
ROW EQU 48H
) f1 j' T( J; S, h, B/ vVAL EQU 49H/ t- b& {8 ^. {
ORG 00H
6 }* i0 I% f- _) @* X. [! K- DSJMP START
+ k0 V" a7 G: Q! p+ T" Z5 V% B' ~# uORG 0BH+ Z3 f, v0 }1 O" w* p) u
LJMP INT_T0: [) V. v7 c# R# v1 D5 d
START: MOV CNT_A,#00H
A: e( L8 ]6 `8 g* `$ } MOV CNT_B,#00H; r0 B( x) H ?
MOV KEY_CNT,#00H
+ D a* k! D" @& ^3 m, x7 u MOV LINE,#00H
3 D/ ^, c! j+ M' k# ^! e, Y MOV ROW,#00H
$ p7 ^3 r1 R9 T6 B+ c0 c MOV VAL,#00H
$ n0 O3 Z! Q0 f6 Z( _: S" L SETB P1.0
1 T9 d5 _0 l% m3 q* l6 r0 Q: E0 t MOV LED_BIT_1,#00H' ~+ J* k' s+ t2 j0 C& S& N. C
MOV LED_BIT_2,#00H
' i7 N8 V0 ?* p9 D- Q! p MOV LED_BIT_3,#00H8 `3 Q+ u# S: Q8 i3 e* \$ D/ J& m
MOV LED_BIT_4,#00H
# [) w8 \9 N1 f% c' \, O, z MOV LED_BIT_5,#00H# a, U9 |# L& r( _; j+ I! S
MOV LED_BIT_6,#00H/ A. H- { P: W& h" Y% v6 p; G
MOV LED_BIT_7,#79H c4 T! I# v: C& U
MOV LED_BIT_8,#73H
0 g, Q9 G8 s+ W4 ?- g3 [ MOV KEY_1,#00H6 m; }/ O- k0 _
MOV KEY_2,#00H7 V! b' _6 j4 I9 }
MOV KEY_3,#00H
. F4 K1 |6 T; L+ S; V MOV KEY_4,#00H
) r5 o r2 d4 c MOV KEY_5,#00H
. r! a" M* P9 b MOV KEY_6,#00H
( c3 |- G* L. N& r) N$ H- S MOV WORD_1,#69 b+ Y5 C5 q; |% x+ H/ [' q( y$ l: J
MOV WORD_2,#5
" x1 V( `6 O! ?5 ] MOV WORD_3,#4; P: B% r! Z) d5 T0 Q% A
MOV WORD_4,#3
1 Q4 ~: x! F2 M6 o. q$ y1 y MOV WORD_5,#27 W5 g% \, M) D6 K- Z0 Y4 U! R% g
MOV WORD_6,#1
& j/ O5 P1 ?8 ]" L# A MOV TMOD,#01H
. |1 m; O+ }3 A6 A) | MOV TH0,#(65536-700)/256+ _! P2 o8 {9 I% b/ O) [
MOV TL0,#(65536-700)/256
5 ]+ i8 ]$ D7 k MOV IE,#82H/ n8 W B! G; H0 g% {
A0: LCALL DISP! b3 s: F7 V% ~: H. p
/ { V8 x! Z, \8 P
1 F+ H9 r% q( P9 R& w9 {' b4 FLSCAN: MOV P3,#0F0H! E* [) |' v/ u6 m8 l3 T. V
L1: JNB P3.0,L2
( n4 d B, F! a1 Q/ p LCALL DLY_S5 z- ]$ i. X( S' c% A) K5 J
JNB P3.0,L2* \2 h. d% J4 H2 P( e( W# Z
MOV LINE,#00H9 A8 @% X/ d' w: N: p
LJMP RSCAN
& X, n* X* ], Z1 U. zL2: JNB P3.1,L3
N; }* t# i6 G LCALL DLY_S- m: \2 d# a ]! v: \
JNB P3.1,L36 Y- A$ N* U; V% w4 r
MOV LINE,#01H
2 M3 [" d( W" C/ F, o LJMP RSCAN
J, d5 K# e2 oL3: JNB P3.2,L46 Q; i3 m+ o$ `4 s, ]7 b6 T& x
LCALL DLY_S
1 P, h% q% r* [- R) i: V JNB P3.2,L4
5 k! q3 v0 U6 F2 p+ F. ~+ b% I MOV LINE,#02H/ N7 ^3 \, U% s& y B4 y
LJMP RSCAN
/ t% D) m1 A) C+ _L4: JNB P3.3,A0- f$ ?6 T4 S1 y5 ]) p
LCALL DLY_S
% z8 v! @# a. K7 I JNB P3.3,A0; F+ t/ ~3 n+ L4 t. K
MOV LINE,#03H
1 _; t6 ]! ^* J- j" [3 ?
9 B1 ?3 {" Z7 K! @$ n3 C
0 j( L4 } |# q5 ~ RSCAN: MOV P3,#0FH: r% U3 U1 b$ j1 G
C1: JNB P3.4,C26 ]& W% g6 d0 u1 |
MOV ROW,#00H7 x" l8 w2 C- J: U
LJMP CALCU* b- Q- V- ~, o
C2: JNB P3.5,C3
- m. N6 I* P# E MOV ROW,#01H: F; W- ]$ F9 O& K( {
LJMP CALCU
+ d8 e5 T8 a: ]9 H' ?- T& b' Y C3: JNB P3.6,C1
) D/ v( B% J7 w; x/ F( S MOV ROW,#02H
- d; @% I2 x1 I6 @2 l CALCU: MOV A,LINE7 E7 _1 f; s8 |* u+ S* l: E2 y: W
MOV B,#03H
& l' \0 E7 r# x4 s( D2 ?. H MUL AB, O- F: i4 i# d" ~
ADD A,ROW% g5 F, w- I6 O! \# S0 y
MOV VAL,A
% a; N' o7 g5 D5 C9 O! Q CJNE A,#0AH,J1
1 T- d. J+ o. E7 {2 E MOV R1,KEY_CNT) c T' B3 b7 A- e0 ^
CJNE R1,#00H,J2, W2 x _" |. |
LCALL ALARM_14 Q7 N4 W! {- D8 n* D1 Y+ ~
LJMP START" ?" }8 L4 m8 ?/ a
0 w4 ]% v/ M2 ^3 w" o( k0 f
0 n6 Q E/ D% h% Y0 w
2 x1 s6 B3 Q: r6 bJ2: DEC KEY_CNT
" z. g p B. ]' R9 e$ y' T6 U, ~# \ \2 j" J) E8 y, W Y
LCALL SHIFTL2
7 n5 g9 s0 ^7 g2 [! ?6 _" {) k; L6 }. ]* m' w
5 ~/ d+ E4 S- |* l% l* _2 e+ R7 [
, z. b, S* [) q8 V1 D% o( y1 W$ a F' y3 O5 a& j
2 w/ l+ t4 I. x% Z' l" f0 f
W00: LCALL DISP
* }6 {# A( P2 G; F) }: O! w MOV A,P3! I* h( }. t. i
CJNE A,#0FH,W01
6 l8 B" l% U& I. ]( A) d) e LJMP A0
# V0 W" z5 p* u4 r7 GW01: MOV A,P3
5 v, A+ a$ U4 ]$ X CJNE A,#0F0H,W02! V/ j) r: N5 n# y3 k4 ?
LJMP A0
8 t7 ^1 a- T/ K& n* WW02: SJMP W00/ _( R- A: x. l
J1: MOV A,VAL
! F/ q( ^6 [: } CJNE A,#0BH,J3 U6 a4 X8 \3 o! I. d7 _5 l9 e/ y
MOV R1,KEY_CNT
: O9 b3 P# \, r# F2 ~( }& { CJNE R1,#06H,J4
- {3 U h0 Q; v9 D/ M MOV A,WORD_1
; s1 Q# ~, m3 g% M2 p3 b* g% N# X3 ` CJNE A,3EH,J5
4 w: i3 ?. G/ ]% G9 A) p3 P MOV A,WORD_21 b3 U( w0 F( X# @$ e
CJNE A,3FH,J5; q9 h( k0 p4 w; e0 c1 u# E4 c3 Z2 I
MOV A,WORD_3
6 P5 N6 y- K) D' X. l+ c5 a CJNE A,40H,J5
2 w0 J5 b! c" x: j% y3 I MOV A,WORD_4
' G2 [/ O* w; J1 P CJNE A,41H,J59 a! A% y# ?* }/ Y) @; k: f7 @& f
MOV A,WORD_54 h4 |+ V4 I" }
CJNE A,42H,J5" r9 V d* Z# R6 E- q
MOV A,WORD_6! h, ]; |. X2 u. t } K
CJNE A,43H,J5
8 G+ T. o, @ O( k! V CLR P1.0
! s C. N4 ]9 X/ Y4 J LCALL DLY_L# ~) u# p, s' Q+ z2 x
LJMP FINI
0 O; q9 n ?) O) x0 ~) H+ y$ `J5: LCALL ALARM_2
7 [0 i) Z8 J5 x5 c U9 J$ _9 A LJMP START3 Q$ w" i+ P* _% |) {" P: Y
J4: LCALL ALARM_1
5 l0 \$ F. b8 K& K, z0 k. P( M LJMP START
9 N! L( o+ P% p& b7 }; i( P9 GJ3: INC KEY_CNT( }2 ^1 V- m5 r, P0 I$ C o
MOV A,KEY_CNT$ i: S' o, N6 z& X- P" N
CJNE A,#07H,K1
6 G0 X. C3 n. K0 Z. u+ S LCALL ALARM_18 c) a5 F6 c8 v- A0 V0 p7 h
W10: LCALL DISP
& M! y$ g# u4 C+ _8 _ I MOV A,P3
, A' W$ [7 A# \+ ~: h; ] CJNE A,#0FH,W11
. _. j: p/ u! x; w& d LJMP START
6 J. p' p B# P. B; w# fW11: MOV A,P3! D4 t, e* _% @# X
CJNE A,#0F0H,W12* o$ X/ r% s* a5 n8 B3 M. ^# s* I
LJMP START
: s, u6 N* |9 i! E. y9 KW12: SJMP W10
1 j+ }" ^; y ?) r `5 J( Z, ?" F LJMP START
) B- `, ^, Y1 K: G; x% V LJMP START" d. N6 k- u5 f8 c v( g
K1: LCALL SHIFTL0 C# w/ ]" U0 G: g
W20: LCALL DISP) o( C& s) L; k2 {
MOV A,P3/ }, O$ O4 _/ O A
CJNE A,#0FH,W21) `/ }7 K0 y7 o/ D/ v, W
LJMP A0
2 ?, y# d( Q/ b tW21: MOV A,P3
; ?) m6 f7 q% N- Y% u# c9 y0 {: z CJNE A,#0F0H,W22
% K8 S# t, X `6 [1 V LJMP A0
, b: \" {4 P9 n2 _6 L( w XW22: SJMP W20
0 J0 {+ x1 {/ }0 d- ], P( F LJMP A00 W9 F1 j4 K$ ~
ALARM_1:SETB TR0
/ N; F6 Q# Z1 n JB TR0,$
5 _9 n4 F8 L- k0 h( _ RET
- a) @8 Y1 L# Y* k& P4 E$ YALARM_2: SETB TR01 _) Q# o& c p
JB TR0,$
( G- C! C. s) V E S3 `- X LCALL DLY_L
2 f( d/ M$ ?% N RET9 ? U& I$ P/ J! Y4 A. ?
4 Z1 Q1 I: T% r6 P4 H6 M7 n
INT_T0:CPL P1.7/ O, O$ s4 y" Z" w6 ~
MOV TH0,#100
2 k8 f: c3 M* J3 }2 g0 BMOV TL0,#253
7 ~9 Y6 w6 S% z! [! g; B1 _5 {INC CNT_A, i1 _. o/ {6 u, X$ J$ ]4 |
MOV R1,CNT_A6 Z, z2 r' U$ {+ ]! q- {: q% N# I
CJNE R1,#30,RETUNE& p U- R2 B8 k$ [. y
MOV CNT_A,#00H
# \" D* D" }8 B2 i* j# ^# o- wINC CNT_B
: Z9 M7 Y* w, L- rMOV R1,CNT_B5 t! c) p( O, S3 G( B! i
CJNE R1,#20,RETUNE+ b+ X. f6 v) }( v! q6 ?& L
MOV CNT_A,#00H. f: @" }( m% N% I
MOV CNT_B,#00H# H' Q# O# ?& T1 V; k
CLR TR0
7 i) s# i- C) ?5 jRETUNE:RETI
5 `3 L2 \/ Z' L+ u8 |
# Y0 ^* Q2 g1 W# L& L' n- k) r% y7 ~. i# V. `& o3 Z( i
SHIFTL: MOV LED_BIT_6,LED_BIT_5
( ]% c q& q: q: _$ W+ R MOV LED_BIT_5,LED_BIT_4# s' z: |* L0 h3 B
MOV LED_BIT_4,LED_BIT_3
# X5 B, \1 t3 t: Z7 _) ~* b4 c( @ MOV LED_BIT_3,LED_BIT_2
9 V9 e( k7 D" }6 w MOV LED_BIT_2,LED_BIT_1
F* @$ Z) D: v) g. v1 U' D MOV LED_BIT_1,#40H
; J# |4 q1 v1 y# f) r# k MOV KEY_6,KEY_59 y) t& j- R/ h: Y/ ]: `; { O7 c! x
MOV KEY_5,KEY_4* h, v* f" B, U2 ~# m; `. v! l
MOV KEY_4,KEY_3
1 F& t3 D/ ]3 L/ D8 Y MOV KEY_3,KEY_29 ^7 o) |, G" L: `7 f
MOV KEY_2,KEY_1
6 X5 j, E ^* r MOV KEY_1,VAL
8 s$ p7 V6 D: P4 w2 p; ~RET
: P) B i9 O9 I) c5 J) K
" P3 [9 g" V3 ]/ J0 l0 \ O! t) s. k( F# Q' G) S) y
( ^! y. r8 A, P& F$ [2 h9 S4 _7 ~6 t) ]0 n8 U4 o; b
SHIFTL2:
7 B9 g9 f: r1 B4 A" G! y: \; L, s' p1 A0 F. |" C
MOV LED_BIT_1,LED_BIT_2
4 N7 h1 Z$ k; Q" R: D MOV LED_BIT_2,LED_BIT_3
D- D5 D( e# k; z8 o8 S# z) P MOV LED_BIT_3,LED_BIT_4
) C6 Q- H7 d. U, m MOV LED_BIT_4,LED_BIT_5& X8 Y/ Y1 \, x( y+ t6 ^0 e
MOV LED_BIT_5,LED_BIT_66 y- }1 O* ~! Y8 ?) j
MOV LED_BIT_6,#00H
& f0 i- ~+ p* Z* b1 H* N' |' Z, P, f; J MOV KEY_1,KEY_2
) @$ k) n( X3 e0 N- u8 j7 V$ n MOV KEY_2,KEY_3! d7 m" E p. n( E4 R
MOV KEY_3,KEY_47 A3 d1 U! S4 d6 L# k! d9 _6 n, _
MOV KEY_4,KEY_5! H) Y& k( n& {, n( E3 U4 S
MOV KEY_5,KEY_6/ s; Z9 u# ~- i! ~5 r: B
MOV KEY_6,#00H+ L- v; h( A+ s( k& ]) q- ?* o1 Q5 B
; }) W% V$ l# B" J
RET3 P4 A7 h) r# Z) t; s1 C2 c N+ X
D+ c3 ~2 a0 f& `4 w, }& [( j. `3 E4 q: B. [
DISP:CLR P2.7
3 Q% {8 @: {& k# X' ] MOV P0,LED_BIT_8$ z* n' Z" w- O7 T# H d
LCALL DLY_S# T* P# q1 g9 y& j. C/ o
SETB P2.7
2 d9 A7 T9 r: J- q CLR P2.62 B( i' _2 Z, e- w: F
MOV P0,LED_BIT_7
1 Y3 l3 x. u3 Y1 r. R4 q4 t LCALL DLY_S) ?. `/ c! R R3 B
SETB P2.6+ U. N5 h G1 n( z) m
CLR P2.5
3 g l" Y& x1 _+ q7 F- m1 T MOV P0,LED_BIT_6& l6 j! l) O) d; l; W
LCALL DLY_S7 @/ s) |6 t5 |4 k+ v! Z2 F5 J
SETB P2.5
/ g" h" n u9 I6 J* \ CLR P2.40 V6 l% i$ Q. B
MOV P0,LED_BIT_5
! Z) m0 v# |( d: } LCALL DLY_S4 l) b4 p% G, G0 e
SETB P2.41 \; R9 M+ j, B4 s
CLR P2.3( T& c2 f2 n$ X# |0 G9 }
MOV P0,LED_BIT_4- q# T- j/ F. P9 O$ W+ W) f
LCALL DLY_S! Y+ ~* ?7 P$ a4 c) t
SETB P2.3
- E+ F2 Z$ c: y; O7 [" J/ c; g CLR P2.2/ D- \, B3 d: U
MOV P0,LED_BIT_3
7 T& _$ A7 u6 S$ j! D/ r- M/ @ LCALL DLY_S+ ^! N% t( a, f( C" q
SETB P2.2
: I) g3 P7 c' c4 D; n7 p' L& O CLR P2.15 p( x: M2 P& Y# c0 p) `' `
MOV P0,LED_BIT_2
3 \! w# a8 [# m' [ LCALL DLY_S
& `( W" j/ Y" k: c SETB P2.1/ R: Q- _: f" P C5 B" f
CLR P2.0' Z' \& `- u* A2 u- y
MOV P0,LED_BIT_1
* M) s& G/ ?# F LCALL DLY_S0 ^) K$ n- A4 p+ c
SETB P2.0/ T' v9 M z+ v9 m4 W4 }) r
RET
) H( F! q2 F1 U; l5 Y DLY_S:MOV R6,#10
/ z e i7 F: L3 ~3 r, V! p D1:MOV R7,#250/ E! T8 y( a3 ?( e. k
DJNZ R7,$# G. D! b9 k6 f5 l Z
DJNZ R6,D1+ E z) K: j6 O, y. N! q2 P* {
/ v p+ g* Z$ g+ V4 l
% ]4 O. T( g$ n( ~0 W6 {) L( Y…………限于本文篇幅 余下代码请从论坛下载附件…………1 u, w6 z1 d2 }5 W: U% p
% q8 F. D' @7 h+ p# e8 n- w6 R+ M+ r7 v" A' s* n2 {; x0 C
|
|