找回密码
 注册
关于网站域名变更的通知
查看: 850|回复: 5
打印 上一主题 下一主题

单片机电子时钟课设汇编语言代码和proteus仿真

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-17 10:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
单片机电子时钟课设汇编语言代码和proteus仿真# c" L. a7 ^: }$ ~
$ u$ J# w% w* D4 T7 r) t% ]

/ \, ?8 X* y8 M* k* G$ k, e6 y在附件里   电子时钟课设proteus仿真原理图:. Y" E* @$ u7 m5 D
% g* k$ Z" Z. z, B5 S
4 o! G/ F2 D1 _+ M. b+ a
单片机汇编语言源码:

( U9 x6 F" E! {  t' dORG 0000H( N) x* y+ O. e/ v( u1 T
AJMP MAIN! z  ~* h) m+ t& I% @' |
ORG 000BH% A5 K" u4 E# Z# @5 k
LJMP INTT0# B" R1 Q& q$ t, K4 m) b
8 L9 ~' {' s4 ]0 O. L# ^1 c) l: ?

. X& z2 r6 w2 ^, r+ |) jORG 0030H$ g! q0 Z( w3 q: v$ o
MAIN:$ \1 [' J) W# C3 c
MOV SP,#60H ;确立堆栈区4 i4 m& T7 [) ]6 Q" i
MOV PSW,#00H0 N; O6 H- X/ |2 Z/ J) c* z) c+ `/ Y4 |8 k
MOV R0,#20H   ;RAM区首地址' G, k5 t9 @  M$ ?9 e
MOV R7,#5FH ;RAM区单元个数
$ j8 V: _3 Z' g3 `6 q- q6 e7 C3 [
3 S8 q1 ?% n' d

' l8 x) ]  s8 n1 G: U7 L/ bQL:
0 K; T* k" \4 SMOV @R0,#00H ;RAM清零        
" |  |( w, V4 y4 k& L" EINC R0
  O' S' v0 |8 K+ E6 B4 Z5 \DJNZ R7,QL
1 U; D  x* p1 ^: Z. X4 }( A# Q6 k0 R3 q6 O- M6 S4 j# e. z4 ?
; ]; Y# A* X" ~; [) L7 H' C7 l
MOV IP,#02H ;IP初始化,优先定时器06 R) Q' r4 Z4 D0 ~4 P- T
MOV IE,#82H ;IE初始化1 {" [: d- _7 S0 @
MOV TMOD,#01H ;定时器0方式1工作
7 i* i, g  h  g; v8 iLCALL PP ;调P.子程序
, [6 j; [% Y+ I, `! i+ X# ]: E8 Q; |& {3 o

6 X, D7 d- Q/ O! Y" I( ~NEXT:
+ |* a2 r; `8 M; q- m* _& }LCALL KEY ;按键检测子程序
3 [  K5 O: T) O" F% d- \JB ACC.0,RUNF ;A键按下运行
! k7 h. r! u: U9 N; H9 o  oLCALL DISP ;调用显示子程序
7 S9 x- i0 X) ]' Q: N/ \SJMP NEXT. F0 Q; p$ [9 C7 T* o' n9 S. B

1 i$ }: Z" w$ O/ ?) _! v" V
1 j* ^+ `1 s9 s' ~& S6 ~
RUNF:
! S! @# U& `& Z, ^1 r) {$ bLCALL OUTT ;调传送子程序
) i$ S1 T: W, b7 ^3 v, ~1 [LCALL TIME ;开电子钟% h) q, p* j5 T( m8 G
JK:$ x4 _: O! q  p
LCALL DISP& V, U+ n/ }# `) ?& A  R9 S1 ~6 b8 o
LCALL KEY
. ^0 S2 v* m) rJZ JK) {3 Y  ?1 {0 \8 m
LCALL ANKEY        ;调用键功能子程序
5 V/ u2 S, e4 l$ x8 u# a* O- K( `LCALL DISP- v7 ^( L, n  i) Q
SJMP JK
2 G% @: A: Y; h" e. |! E# q+ t5 b# ~: ?

1 T3 G" }0 B1 Q3 q; [! C/ u8 e# j* j$ N点显示子程序
1 w$ E; E6 n1 c; e/ ~5 z6 }3 iPP:% }# k# k0 k+ @
MOV 37H,#12 点编码送寄存器0 n5 y: }8 M' u6 q, k$ }- Q* T
MOV R0,#30H 点编码送寄存器  l3 C4 w4 T1 C3 n" P
MOV R7,#07H: [# U6 g, _. Y0 j) m' l2 C) b# ?# U
PPP:
7 D% f1 E- x: A' p0 aMOV @R0,#10  ;???) T( n) O: ]/ q& s- O9 Z/ T
INC R0
6 s6 X$ C) A# G6 k0 \: {DJNZ R7,PPP
% x3 v8 f( q; ^+ w  PRET( I8 y9 z- C% ?( n' ?2 c8 d( ~8 Y
: b- w7 w; `8 e, e, ~& J' [* U& y

  n3 T, q6 m- d7 X1 D& I;键扫描子程序: n0 d/ e% o5 K1 g2 A' H' e; b
KEY:
$ f1 J9 y) O. j/ Y* hLCALL KEYS ;调用键值处理子程序7 B9 N8 C1 Q. ?
JZ EXIT ;没有键按下转到返回
: _" q& h/ I0 t) X& tLCALL DISP
  M( r8 I" Y& Z1 T9 k; W4 qLCALL DISP ;调用显示去抖动
, m: d2 C1 @% [7 R, dLCALL KEYS& e$ I4 B! K# n. F/ h
JZ EXIT
- C" x" q/ V3 T% CMOV B,20H ;保存键值  P' y. n% }* H, h( p
KEYSF:0 k. j0 C. }  Y- W
LCALL KEYS* ^2 ]0 N( g/ q) o" c
JZ KEYY ;键释放,转到恢复键值0 M: E8 u7 b- ]. d  Q( s8 R
LCALL DISP ;调显示子程序延时8 }5 |3 s' v7 b! O1 U  ?
AJMP KEYSF ;等到键释放
  V$ W6 |2 U: W3 P1 d2 `5 F. t4 a8 @+ N& w
& T! Y3 |* a7 z$ J7 r0 ?8 l+ S1 z
KEYY:
# b+ q! G/ D: T, _/ S6 QMOV A,B ;键值送20H单元保存??7 r5 ^5 i( h+ Y& l8 e9 ~, ~! U4 z
EXIT:RET
) I8 L4 X- Z& \7 s& Z2 q% O: _4 b6 H3 G( }

( d/ K, f; s. g- \! l" DKEYS:4 o5 ]# d! n9 \% k6 p' u
MOV P1,#0FFH ;先向P1口写18 L, ]7 [  R7 i5 b$ X
MOV A,P1 ;P1口值送A4 B+ `4 c: p$ _7 q, x* a
CPL A
) t+ U5 Y* k# ]" I% b2 c4 H, EANL A,#0FH ;保存P1口的低4位
4 P$ d  F& [' R. h! O) CMOV 20H,A ;A值送20H保存$ i2 d  o+ r, L6 A/ F3 ?& ?4 W
RET7 u" w! P6 Z* B$ ]# ]
: v" h& b$ n" ?( d9 Z

* A# R& J' O: D5 h0 h& ~5 k! |;键功能子程序+ |) N# P+ X- q, e1 h
ANKEY:
. g! A! ]# `0 m6 G: }CLR EA ;关中断
9 S6 o  f  L6 c% b1 sCHECK:
3 ]& u# ^3 o( e. V/ n4 [JB TR0,YXZ ;判断是否运行
/ E, n' D9 |1 i2 j4 {. c$ @K0:
) t! e5 F! y6 j7 L& ECJNE A,#01H,K1; u2 g: ^$ ?$ e8 F1 Q/ @; q0 o& W/ a
AJMP RUN ;转运行
- O, }: M6 g, lK1:
4 d4 z. ~8 J. u1 X# mCJNE A,#02H,K2
1 l4 \% k" d9 j. jAJMP KEY1 ;转时调整5 H( [5 g0 {+ Q( f% w: z
K2:
& J! F- i5 z8 l  p9 FCJNE A,#40H,K3
2 k$ O, f3 a8 PAJMP KEY2 ;转分调整
$ v' ^3 U6 K) D5 k- f! \K3:- e0 ~; w% F8 w' g- H/ M# d: V
CJNE A,#08H,OUT          ;转. i: j4 {4 D, m2 e& Y  U% T+ l7 _
AJMP KEY3 ;转秒调整% ]9 D: Z8 t! w1 K

1 M4 E" f7 h; P! g7 c

; @, O$ ~6 W  F, ^YXZ:
" V( b$ Q2 [* w# n% v. _JB ACC.0,STOP
. z$ E; w7 Z0 ~( e( V# \# T" Y2 UAJMP OUT
7 r+ z& L3 G1 U( L$ k- T6 G
/ ^8 z/ G' m# R, ~2 h
4 f& H9 i$ V( e6 d
KEY1:
$ V! k! N! O# @2 x) J0 x5 H2 yMOV R0,#45H ;时调整6 x7 p7 V8 A& ]7 R# g. c
LCALL ADD1 ;调加一子程序# A, V# C0 d1 _6 D1 M$ S  L7 [
CLR C
: t$ B) ?: q3 Z( m# hCJNE A,#24H,OUTT ;转传送显示数据子程序* W+ e3 }" F2 M0 Z1 N
ACALL CLR0 ;调时间清理子程序
8 p/ C6 S- \! q# W1 \+ P# xAJMP OUTT
7 C* b1 @6 P; W6 M3 b. p2 oKEY2:
; I6 o8 \0 {# W# DMOV R0,#43H ;分调整
& V" X7 x7 R) N4 pLCALL ADD1
/ v, h; D8 R( E" e! \* eCLR C/ c6 ?9 c0 o9 s/ {8 u. O$ y
CJNE A,#60H,OUTT% Z3 H" Z. ~, j* ^
ACALL CLR07 a* w" P+ b2 I, j
AJMP OUTT' v" D9 T0 |& P+ Y( D# I( d
KEY3:) L& L0 t/ [9 b- ]8 G8 ~' e
MOV R0,#41H ;秒调整! I' r  V) T* p2 Z; B2 U
ACALL ADD1
! Q" j$ z3 G2 g3 i7 L/ i/ H" p4 OCLR C& Z; C, h( @, t3 ?* k( p
CJNE A,#60H,OUTT$ |& d6 ^0 }' F; j4 c
ACALL CLR01 d5 p. X9 \( t) G# S2 `1 h

- H0 v& o/ V4 i# q7 P
$ g* V: D! {& _1 m* u
;传送显示数据子程序
7 Q1 U1 e) j: G9 M/ ~) {OUTT:
9 ~7 W% u4 m& ~' m8 R8 m9 fMOV 30H,40H ;秒显示单元40H-41H) H9 m) _. ^8 t0 c% ~3 ^
MOV 31H,41H/ Z/ F. ?$ n& x# z+ N7 {# I
MOV 32H,#11 ;"-"
1 w* S$ W* z6 j( {/ R, h, j+ ?. ^MOV 33H,42H ;分显示单元42H-43H
. q$ R6 m& a1 {5 j4 M9 W$ |MOV 34H,43H
# U( B9 M- i) Y5 o( AMOV 35H,#11 ;"-"' R  C+ y: Z* l* g0 @/ e
MOV 36H,44H ;时显示单元44H-45H                * C, x* a7 r3 A; ~# M8 D# R+ c* l# A% o8 a
MOV 37H,45H7 i$ x) ~  H) d- j; {
RET( W1 r4 d  E7 T& O
STOP:
5 ^% \4 P3 z/ L- y$ s0 k8 \CLR TR0
1 D7 c# s8 Y+ C! B, zRET
" a1 |. c6 w7 N: \RUN:
6 Q8 q; \: x, _0 j: L8 v8 J3 L( g- s3 OLCALL TIME ;调运行电子钟子程序+ L& |% t3 P4 w4 d- i- O5 o
OUT:
  T+ e1 q9 Y) HSETB EA ;无键按下或完成功能跳出
$ v% M5 Y1 M2 w- F1 kRET0 x+ i+ z1 @' X, [! e: \% b- j
/ H$ }" C* F) ^$ A0 c6 f5 }
' V! ~1 v# E! N! J9 s
;运行电子钟子程序                                                                        
: y' o5 Q* V7 p4 {4 x6 V2 LTIME:
- J! o9 D4 |9 N1 BSETB EA  S' O1 m; w6 `* K! y& C
MOV TL0,#0B0H  ;3CB0H3 ~. _3 X8 }7 b! g
MOV TH0,#3CH
3 q+ T# s3 C" N3 c7 RMOV R4,#20  ;50ms,20次循环
" D' \% E" l& P0 K3 Y& }' T: Z. CSETB TR0 ;启动定时器0) D) u( s0 j6 |8 O1 \- U
RET" T8 b9 s% K6 z! k  g' U" A

  @: |7 m( l7 b3 D
/ ?3 j. b6 @) p. O' i2 F
;定时器0中断处理子程序; E2 K7 b* y9 P4 c/ `  ?* H
INTT0:
+ Z5 h) t4 d4 k, _. E( xPUSH ACC, T5 ~# U2 `; x' k/ R; v$ _9 S
PUSH PSW. E  M( E/ d5 _" Z2 Z2 R
CLR ET0
! h/ U; m1 ^8 I3 C* ZCLR TR0                                                                        
& \! g! w7 C8 P  lMOV TL0,#0B0H  ;重新设置定时初值
) Y3 }  \* @6 dMOV TH0,#3CH( B" A% O' L3 g- X
SETB TR0
% z5 c1 k! @" H' N6 M/ QDJNZ R4,OUTT0  ;1秒到/ i* e- w% p+ |2 o2 h: p
ADDSS:/ V! H# x7 t* L# g' s  s
MOV R4,#14H  ;20次计数: i, ^7 C5 v' N+ z  C
MOV R0,#41H  ;秒十位4 b9 x( E( z# C. F0 l7 V
ACALL ADD12 y8 _3 @! i* I* W$ P; z
CLR C
% j, @( z! K  x4 sCJNE A,#60H,ADDMM ;1分到
( W. j6 u9 _, Q6 a/ y2 v- ZADDMM:& w5 L4 I2 `( S" Q8 d* G
JC OUTT07 w* Q. W5 `; L% f, f9 P5 E
ACALL CLR01 T+ [% S! P9 _) [, S4 A
MOV R0,#43H
. Z7 {5 R6 c: L- r8 ?ACALL ADD1
+ I! F; d4 B- [; E, QCLR C
+ E3 U, R+ H  W2 d/ tCJNE A,#60H,ADDHH ;1小时到
) s6 |0 L% C" C9 z2 AADDHH:0 k/ Z% s; V/ K4 B% s$ S1 f0 O
JC OUTT05 ^$ D1 P# V) P
ACALL CLR0! [8 j+ ?# ~9 {  s$ P/ e( D$ ^% K
MOV R0,#45H
8 y! g9 I8 W  C2 ^, pACALL ADD1: D$ P6 S' G8 ?1 S, b5 s( @. i
CLR C: i- R, j6 E, g) Z4 N$ A
CJNE A,#24H,HOUR ;1天到- i; c7 D9 d. l0 n9 d9 e
HOUR:
* C" F# F0 @: R& e' eJC OUTT0
9 i1 e+ z4 ~" WACALL CLR0
# _& a. p% w3 Q. |& ^, X4 e8 B/ z& M! k7 b
3 l/ v4 Q( W% \9 W
OUTT0:& Y. t4 s9 C# d9 Q% T
MOV 30H,40H ;秒显示单元40H-41H' H2 {5 R! w( ?% v& W- B
MOV 31H,41H/ J8 D% ?' Q3 O% P$ t# G- [5 M: p
MOV 32H,#11 ;"-"6 l) B8 a; i: R- _! K' b% |
MOV 33H,42H ;分显示单元42H-43H
& j7 ^3 Q, Z* ^' k. M9 LMOV 34H,43H
5 D& J; ~! ?" h: T5 DMOV 35H,#11 ;"-"
8 c6 \# L5 @& t" FMOV 36H,44H ;时显示单元44H-45H                ' V% i3 S8 L* j. D# u
MOV 37H,45H8 p# }& S1 o. U! H
POP PSW
1 Y1 s$ `: _* p5 C0 ZPOP ACC, K6 }% C9 f6 `% J; p9 g" M
SETB ET0
7 G$ r2 E) x7 a0 t5 U% `, G. PRETI/ w  O7 o! B9 O! p8 ?' a/ y

0 M/ L, v% K& b# v7 i' W& }- g5 t

$ P$ O3 k$ ~" j& g( C% o9 X; S8 _;时间清理子程序
8 I& D  c# R7 X6 w! w' {CLR0:
" q/ K9 G. Y3 r  eCLR A$ N: x! I& N, V
MOV @R0,A' J% U# }9 v* H& A" c1 C
DEC R0
2 J5 _4 V. P8 l+ }8 H. i- c, yMOV @R0,A* K# r$ N0 h* q0 I- N& m: [) Q
RET
5 R& ^6 l& l. Y- l  }/ [1 l
! u7 V# {. O! N; J8 J' s( N7 U

8 K, i$ f( w4 }3 X6 Z8 N;加一子程序) v, S5 |$ L& }1 Z5 @' e* a
ADD1:
' T$ U( C& @2 y/ A( }, AMOV A ,@R0  ;取十位
6 H0 d7 E7 s+ r$ P- [* F+ S& o' r& MDEC R0
% S, Q5 W& r3 Z+ Z6 G% }SWAP A+ j0 j: Q7 E7 o
ORL A,@R0  ;组合十位与个位           
. l+ v  |. _; M1 b6 h( cADD A,#01H  ;加1: _: \! x- W4 i: ]! V7 u* Z
DA A ;十进制调整# u+ N" J8 s2 E. o- C: ^
MOV R3,A  ;暂存
. ^8 p* }% R) q. y- L' d3 P: ~ANL A,#0FH  ;屏蔽十位) q2 F7 q6 y! _/ t
MOV @R0,A  ;放入个位单元. u0 @' _/ i3 d
MOV A,R3  ;取值: j- O" o2 ?. Q: S4 @; P
INC R0( n) P1 x9 j, L& o8 N* q/ z& L4 O
SWAP A
/ R) a4 v& a$ S) n! T3 Z. ]ANL A,#0FH  ;屏蔽个位
: x4 P" }$ V/ |8 J, ^0 @MOV @R0,A  ;放入十位单元% B1 |& ^8 v4 q" n# U
MOV A,R3  ;数值放入A中等待判断& ]5 w$ T- T$ ]3 j
RET0 M! P9 [3 q0 g# B, h- u: T0 V
- N% ?4 y; v7 @+ k

! S1 Q) d# M6 e! I7 x1 U;显示子程序2 ~! v2 B& b) H) v3 P. w
DISP:
7 s; K% q5 k, p" aMOV R1,#30H  ;显示缓冲存储单元首地址4 t3 A* `1 l  K: x/ G
MOV R2,#80H  ;从右至左显示
% F# l6 M2 W' Z  qDISP1:, O* u9 t) ]7 e
MOV P2,R2  ;送位控
9 D8 ]" t  o, z7 c! R9 e+ E3 z4 c& QMOV A,@R1
7 K/ k( A( C: e" g. N3 f+ ~; eMOV DPTR,#TAB0 Y4 n7 X- U* u
MOVC A,@A+DPTR
& J; |! J: }' V9 S& f) KMOV P0,A  ;送段控
  ^+ Y, X# B3 `  d/ eACALL DL  ;延时+ s4 w7 t0 h. C7 @& W, e5 r( ^0 n+ Q
MOV A,R2  ;???
' {7 A) W" h8 w; N5 uJB ACC.0,DISP2          ;从右至左8位LED显示一遍, n+ i, _  z( n/ c
RR A: A( X" ?" a* C# E# A" ?* M" \
INC R1
$ c  B8 g  j# |2 G7 ^MOV R2,A
0 ?, @3 p( ^! L0 }1 dAJMP DISP19 Z: a; |- `/ k7 H* I, g3 U
DISP2:RET
1 s, U+ k0 l0 }2 M" H: b6 ITABB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0CH, K, c6 N/ Z2 k. z# o# Y

- Z2 |9 G2 M. M# m( m& J
- d% ?+ x6 U( j: z6 _: I( Y
;显示延时子程序# m9 x& C  p7 w# n! ~! c3 u+ w
DL:
$ o: \: L6 x& SMOV R6,#14H  & \% E1 Q7 v& d* i6 C& R5 n) ?
DL1:
1 o5 S+ \  L3 {& wMOV R7,#19H% W8 E  c  \7 [" Z. c6 A4 V
DL2:2 e9 v8 E+ A+ s- K# h4 t
DJNZ R7,DL2+ S+ p, [, o% \! @. {& c
DJNZ R6,DL16 ?  y6 {2 [: q0 `/ K
RET
, a' I( j; c3 f: b2 m# A+ W+ lEND
  g) b- J- k  L8 E5 o
. ~% {. k8 H6 E# ?下载:$ l6 A2 W' B# [* ~
游客,如果您要查看本帖隐藏内容请回复

6 E: z5 w3 ~6 [6 ~  t

" ^6 {& O0 s9 N( v3 r

该用户从未签到

4#
发表于 2020-5-22 12:14 | 只看该作者

该用户从未签到

5#
发表于 2020-6-12 09:22 | 只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-9-23 02:41 , Processed in 0.156250 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表