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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机电子时钟课设汇编语言代码和proteus仿真( f- w: E: I4 c' W4 g
, b# Y3 S, x, d& i

6 ?" Y- g- O, C- @  q在附件里   电子时钟课设proteus仿真原理图:/ H$ Y7 u( C$ a7 J' F2 t

" ~4 I3 E$ N0 `) L! ^) {! ?
4 _2 z% ?4 Q  j5 A单片机汇编语言源码:

9 [  C0 y- i+ kORG 0000H
: V2 ]/ h" P3 J. ^- U9 pAJMP MAIN
- `; B% L- l: y" _$ o" z& tORG 000BH
, t! I) S" i5 {4 U- z4 X( oLJMP INTT0
# W1 S9 x' w3 J! u
1 M" X0 l5 |$ Q  R
) f) t' X3 f& h# j* S, f# A, d
ORG 0030H
; O1 T8 \, B9 I  @  W# WMAIN:* a6 w9 F, j: U' R: g  X" S% `
MOV SP,#60H ;确立堆栈区
7 ~* k4 w, {' o: i  o) QMOV PSW,#00H9 Y- q: h5 E; V  E: l
MOV R0,#20H   ;RAM区首地址1 m% l4 C" L* b' V, |
MOV R7,#5FH ;RAM区单元个数
5 D$ T* t5 ?1 g9 s
8 h6 H- ], E) q* k# I
) x! b% A7 v, Q
QL:
4 g" r2 }- d* {: X7 Z% lMOV @R0,#00H ;RAM清零        
1 I2 t5 t& k* L/ f, ]# aINC R07 i$ N# e+ f4 N
DJNZ R7,QL4 e9 k. g- L% A5 A) R

: c0 F- Q7 B- l
2 E+ y% H* P9 i
MOV IP,#02H ;IP初始化,优先定时器0$ R: p1 @7 o  ?- \
MOV IE,#82H ;IE初始化
$ A) s) K. g/ e, |; jMOV TMOD,#01H ;定时器0方式1工作
- e" J; v1 F# i5 \/ ILCALL PP ;调P.子程序
- c' o; o1 y; F; F9 t/ u  g7 S) N
* s7 D. J+ b% R4 y% C

' O( G& _6 Y/ O  d( m1 kNEXT:  n% {, H* ]. I1 `
LCALL KEY ;按键检测子程序4 T! i) P/ D/ h  J- L/ N# J- @
JB ACC.0,RUNF ;A键按下运行
# u6 n9 C0 U& z, M1 v0 U2 t  [- y8 dLCALL DISP ;调用显示子程序
! k% m5 O: ]' d3 @5 WSJMP NEXT% S" j# Y& z0 p# M
$ L5 |4 f; Y; H5 D& g5 \  C) [9 w* B

" \( y/ p. }. @, |3 bRUNF:
! N* k: Y" K/ _0 a# sLCALL OUTT ;调传送子程序
" o1 o* t5 A/ P- bLCALL TIME ;开电子钟
2 ]* g; Z) h' Q: }  \1 D* _1 P  NJK:- y! w" q5 I  S3 f8 [7 W# t
LCALL DISP) ^/ o6 y9 J* g. E
LCALL KEY  d4 ?9 M2 V1 L; s5 ^
JZ JK; ^2 d# k  [, i
LCALL ANKEY        ;调用键功能子程序: _% _6 a1 R; S6 c; s: T$ E
LCALL DISP
* x( g' S6 e# D: vSJMP JK
# t& N( h5 z: w/ D( C
1 @  k1 {! v3 F* {

! A& k8 W5 \8 e" x# g( W* f! J点显示子程序
; w, d) A3 Y  ^! R7 m$ |( e* dPP:
: s7 X4 w* E' D- p* c% @  nMOV 37H,#12 点编码送寄存器' P) x; ^. g- @. c8 d, L
MOV R0,#30H 点编码送寄存器9 _5 H( Q( M9 _
MOV R7,#07H
4 k6 `$ z; V" H  h  d0 [+ \PPP:# V; D8 [. g2 A, z  I
MOV @R0,#10  ;???; e- F$ I# V* h7 B, L
INC R0
- P0 E1 t6 G0 r  wDJNZ R7,PPP, {3 Q. p) M& v+ J! R
RET
/ g3 Q! x8 Y% @- M  a" B6 u/ _; [- `# y# c* p/ R

2 c6 _* x6 R# y8 r3 t9 n5 Z5 _: B;键扫描子程序
" O7 j/ t6 w' e) c: x% XKEY:* M; c, Z( ^4 w7 X
LCALL KEYS ;调用键值处理子程序
" @: z! Z0 n0 a) i) t0 Y) {4 rJZ EXIT ;没有键按下转到返回# J2 k8 b" x  u/ _- }, r1 L7 B
LCALL DISP
( ^. ~& X' E6 o+ i+ z) qLCALL DISP ;调用显示去抖动
, x, U. L6 {* P2 |; S! BLCALL KEYS. K" g2 z# i& n3 V4 X) b
JZ EXIT: @. q+ ~( Y/ P1 s% o
MOV B,20H ;保存键值
5 F. C4 x# [3 p# `2 J( fKEYSF:
  m; |' q, c- @6 t" X1 }! fLCALL KEYS
3 \) O" p! U, @- q. R% ^JZ KEYY ;键释放,转到恢复键值& ~) C! Z  [7 G" Z2 v) @
LCALL DISP ;调显示子程序延时
  P7 Y( b9 I9 P. }AJMP KEYSF ;等到键释放
3 n' B: C  g2 Q7 E- m7 l6 U
; N" |; J$ {% r" D( R6 N; M
7 p/ y: X% _1 n7 {
KEYY:
' x# Q4 e2 b3 Y& W* x6 S+ i+ cMOV A,B ;键值送20H单元保存??
0 C7 K# A" a8 @& MEXIT:RET
$ A1 a5 ~' T" k, F6 L3 K( a
" }- q3 Y) h4 \8 d6 E) m
3 q$ ~8 s+ k. g+ w- O& F
KEYS:
3 r( s* N8 F& _( |$ y7 E% F2 MMOV P1,#0FFH ;先向P1口写1
: Q0 [! D1 h4 X( @/ nMOV A,P1 ;P1口值送A
" v( B& l0 u( I4 u( j: a, s5 ZCPL A
+ ]" i- F( s! ~8 Q1 o' VANL A,#0FH ;保存P1口的低4位4 c9 u7 f  A) o% w
MOV 20H,A ;A值送20H保存7 K6 {: i" H1 z- i, A) E0 X
RET
, ^$ ]- E/ ]- w+ ]7 O9 ]
2 V! K, {+ z# Y& h& f+ G2 y6 q6 B

+ h& E7 z( ]7 k. U! J3 V# S;键功能子程序
/ ^" f3 r3 ^' r4 }" H- pANKEY:# D) d' _, D4 j
CLR EA ;关中断
. T* R2 m  ~% s# v& gCHECK:
. D" |* R" B9 a  N0 U3 EJB TR0,YXZ ;判断是否运行
* M- M1 g5 p/ _9 m- VK0:( R# m1 ?6 y0 e- z7 n8 [/ t
CJNE A,#01H,K11 K. N/ w# `4 f5 ~  v( K5 u1 Y" K
AJMP RUN ;转运行* `! U5 Q5 g; S; U. q
K1:
  Y3 W/ G, b# s. s; cCJNE A,#02H,K22 z- j2 u8 v8 C
AJMP KEY1 ;转时调整; j! D8 G3 |2 v! V/ a. ^
K2:
7 W4 w$ Y4 w- ]$ G0 PCJNE A,#40H,K32 @( R$ _* h- \. `! W: K
AJMP KEY2 ;转分调整0 p% r: e9 m- \2 i4 h
K3:1 B6 l  K8 c, l9 F* B( n+ M5 T
CJNE A,#08H,OUT          ;转
* ~3 _1 x( C" H6 A9 m7 yAJMP KEY3 ;转秒调整
% N. M  j% {0 U2 O& \" z  Z& [/ |- C0 B& G1 j2 Z, x

& K% d3 H9 q% FYXZ:
. M: X8 B& _3 W3 n* A1 {5 w* DJB ACC.0,STOP8 w% c% |0 b0 ~, K: m7 N
AJMP OUT
# C" c& E$ Z6 \6 f! t
: ?9 A; g6 t: j3 l) T

8 v& P. w% o7 q$ n/ WKEY1:' q: d  y. _$ _# U
MOV R0,#45H ;时调整5 @7 y6 b' F; T4 _
LCALL ADD1 ;调加一子程序
3 k3 b% w0 g( _4 rCLR C' X1 V# f/ {0 r, _4 t# b
CJNE A,#24H,OUTT ;转传送显示数据子程序: v. R4 E' D' \: q  q
ACALL CLR0 ;调时间清理子程序, }5 X5 f, @) j& s8 p$ G7 _/ B! T
AJMP OUTT
# d7 o& M; C$ A  UKEY2:8 c7 i5 `- l* n! R9 }
MOV R0,#43H ;分调整( B% ?: D6 Y% X6 |4 V8 x9 `
LCALL ADD1
8 i5 ^. l$ c: @! u2 O) BCLR C
: ~- C- G$ S4 _2 J3 P  HCJNE A,#60H,OUTT
8 V" E" p. l+ GACALL CLR0
. p1 X2 e2 c$ @( h0 G2 YAJMP OUTT& g! z* ~- s: v; t* I& A
KEY3:" b4 K/ |2 V& p( u
MOV R0,#41H ;秒调整
0 b9 U9 a# W3 T1 K$ r( U9 SACALL ADD11 c! |2 E# [1 L* B
CLR C5 W0 \) j2 X! h% s8 ?+ v6 ~
CJNE A,#60H,OUTT
% E. M1 n5 ^3 ~& v4 o( U7 YACALL CLR0: z/ `9 R! d  s' ?/ m. ]8 F. n
& d' _' I6 a* s) a* _$ J) L

) X4 B0 R" W' ~. q' w2 T;传送显示数据子程序- m" y7 r! ?5 f0 j, @. {) C
OUTT:. {" `: h1 K: u. Z$ ?
MOV 30H,40H ;秒显示单元40H-41H
+ j' f2 Q7 v. d& s* T" P3 O+ rMOV 31H,41H. {$ k  R: M+ V! T) m# n) F  a
MOV 32H,#11 ;"-"4 N# ~: _7 Q5 E2 k# J: {
MOV 33H,42H ;分显示单元42H-43H
+ g( F. H# Q) Q8 D0 _# Z: o& ZMOV 34H,43H) u; p+ g0 i# Z/ y
MOV 35H,#11 ;"-"
5 c2 g9 j2 x8 A2 UMOV 36H,44H ;时显示单元44H-45H               
# H3 Q7 g; |4 `# C2 |& M$ }MOV 37H,45H
9 j& }! T5 L. R( Y% dRET
+ J% X& K9 T0 q1 Q6 |6 c3 j5 FSTOP:
' M. v/ x2 z9 i7 o& p. C3 tCLR TR0* o' i4 q: j5 @+ c8 o# K8 h, A: M& s3 T
RET! ~' {2 C+ c/ c! g' ]: ^2 {8 U
RUN:
  k: z% ]8 W5 M! e4 \; [LCALL TIME ;调运行电子钟子程序
1 P7 g( ?4 F1 A( [& o. uOUT:+ x& Z' ~" ?4 h, H( f. D5 [7 t* _
SETB EA ;无键按下或完成功能跳出
+ _, i! n3 n" o" d6 @. q& MRET# {7 W8 k  b& p! {/ c0 c

1 }+ l2 w3 W* N
1 {9 M' q  w4 x" i0 e" r& ~" M' ]
;运行电子钟子程序                                                                          ~* Y: k# o  g* @, [) M; F+ Z
TIME:
/ G- {$ H4 f: w4 SSETB EA9 ^3 z9 J3 O1 O. F2 R- i5 o
MOV TL0,#0B0H  ;3CB0H
" b6 l  k) J. ]' K! yMOV TH0,#3CH( E* M5 v+ ^) B3 `- k, u! g2 ~2 h  {8 i
MOV R4,#20  ;50ms,20次循环
7 z( u: Y. d1 _- d% [SETB TR0 ;启动定时器0: M. ~! K- w$ w7 }
RET
( p9 f5 F- x1 `8 s3 }) Z: i' Z7 w( \) h
( {- F. j4 ~2 D  H
;定时器0中断处理子程序
" x6 O( [9 q' F, R' o( j2 N8 mINTT0:1 e2 b# ]+ t" |) z# H+ _
PUSH ACC
8 p$ Y* q  O1 a/ q6 |; ~+ _8 v3 V$ bPUSH PSW  z$ B. x" T( g3 K
CLR ET0. J9 a- j, G% T( [9 s
CLR TR0                                                                         $ ^; \( {) u* g" K; e+ y7 w$ D
MOV TL0,#0B0H  ;重新设置定时初值- ^0 v- }9 T: _0 t5 b. l
MOV TH0,#3CH
" ^' a# s1 K4 pSETB TR0, c% y( P$ L, a( Z
DJNZ R4,OUTT0  ;1秒到
. l8 E4 c  A- G7 y$ pADDSS:" X2 h* h* P  {  j- Z; c8 l( J8 h
MOV R4,#14H  ;20次计数! H) y& X' v6 L7 ?! D2 Z4 b
MOV R0,#41H  ;秒十位
# h8 z$ |9 x; A9 ^! YACALL ADD12 j# _) u; A" p# o3 H+ F  V
CLR C( x" {5 l$ g- |5 r+ o7 g
CJNE A,#60H,ADDMM ;1分到
, r& m! M0 c6 }  lADDMM:, |0 V  u+ l5 z) Q8 Q% O* Q7 ]& a( D
JC OUTT04 c1 \5 a# v. S8 [8 G
ACALL CLR0
, m  f7 h& y1 e' M# N4 rMOV R0,#43H1 \  ?- Z* f, l. J* o# q9 r) p
ACALL ADD1, C6 G4 p9 {- t$ g$ V3 ]
CLR C
  S$ r  X5 q3 Q" [8 s, @CJNE A,#60H,ADDHH ;1小时到- m1 Z& d( l' A* p; D( o: g
ADDHH:
' n# S: ], m1 M0 {6 NJC OUTT0
- g( G/ ?9 V  U5 g' M# mACALL CLR0
7 d  q; L4 M) m3 K+ }, |5 nMOV R0,#45H
9 q) J& g2 d$ v! }8 rACALL ADD1
6 a7 t1 d& W; e9 O. I2 DCLR C
9 c; u1 P3 W0 |# G/ w- {1 [: g; LCJNE A,#24H,HOUR ;1天到
- d, H5 T7 y# Y; _" iHOUR:
; h+ Q# @+ f$ T$ r( h: g) G" a7 bJC OUTT03 ?9 q, m% [0 H& H7 K
ACALL CLR0
' J! x1 g- {# s" D+ o9 B; v* ]0 c: e4 D# w! Y* u
8 i* ^- J% @, @2 a: B" i# f: s
OUTT0:$ F! s: h1 g! k& S. ]3 ~
MOV 30H,40H ;秒显示单元40H-41H
; d0 B5 F( V5 x* x; qMOV 31H,41H
& ]0 s$ \4 i5 gMOV 32H,#11 ;"-"
- h4 W7 R! {1 `& uMOV 33H,42H ;分显示单元42H-43H& A: p! @$ R7 j8 x# V- g+ g
MOV 34H,43H; x* N. Y0 @4 {5 @
MOV 35H,#11 ;"-"
* c7 [& z) F, _MOV 36H,44H ;时显示单元44H-45H               
* |6 B: q% L5 |' w- Y. Y: ]MOV 37H,45H+ M. [! W7 ~  }' ]' k# |
POP PSW9 Q: z/ _, `: n0 F
POP ACC
4 i4 s7 `: {' lSETB ET06 L! Z3 T' y' R# E3 A' v, r. _
RETI
5 i) _  C' {9 r! ?2 s0 ]9 B
  K- l8 T1 B* _( N' ?. \' O

4 h' t' P3 N4 f% F0 a9 I8 W$ v;时间清理子程序
& y1 a! f9 U7 ]1 |  ]CLR0:
' p) Q3 `( I  h, ?0 R) k  |CLR A' w9 F& q" D# t. W: r. t
MOV @R0,A/ I! i! l8 a3 r
DEC R02 E4 S5 s0 \1 {: G
MOV @R0,A
+ i. `/ C* j: e8 h( p! b5 p& i; KRET
6 Q. E3 V9 q9 b6 m! A' F& p9 f7 q$ _4 k
  k# G5 U2 Y: @- C4 i
;加一子程序
# |+ a' C$ }. @ADD1:
5 R, p" G) Z9 F; m* s0 X6 E6 M- k# @MOV A ,@R0  ;取十位0 t* x. j3 I) ?9 @+ `7 l) X
DEC R0
  Y! p: i( \$ h( k3 ^6 A# I( sSWAP A
' D' a+ k3 Q( |0 Y1 d/ E9 \# E1 BORL A,@R0  ;组合十位与个位           8 F8 l6 m+ N. M) ^+ g. `8 H3 e  H
ADD A,#01H  ;加1
% l3 N# B  s  O7 K7 }" i0 `DA A ;十进制调整
: U1 z0 H) P$ O9 Q- p  @MOV R3,A  ;暂存
6 q2 U7 n+ b* b! R4 RANL A,#0FH  ;屏蔽十位2 Q+ B4 n1 V/ R7 S$ @$ k8 p
MOV @R0,A  ;放入个位单元
4 W" F% [1 \" iMOV A,R3  ;取值
8 O0 Q$ L' ~% `INC R0
; z9 t# J3 A, @8 n1 E& {SWAP A
  {" C0 Z+ {% v0 dANL A,#0FH  ;屏蔽个位
9 B7 _; b6 j$ z, Q8 V2 QMOV @R0,A  ;放入十位单元
1 ^2 @/ G% C+ ]MOV A,R3  ;数值放入A中等待判断! p  s. {( o/ ~& S3 Z) x# }
RET% n9 [' @; L- k  q. ]
; Z% i1 M, v2 z% c% w3 p" Z
/ g: @8 E# N) V! O
;显示子程序. E0 j7 Y3 [  M
DISP:9 g3 C$ q6 C3 J. F: V# C9 X( \
MOV R1,#30H  ;显示缓冲存储单元首地址
8 @, p; ?5 B4 Q1 @- s! H' C) V  ?MOV R2,#80H  ;从右至左显示
% A$ l  d# `; |2 T0 E, YDISP1:: a/ w& b; ?) D% X
MOV P2,R2  ;送位控# k: U$ V. \+ P9 {: i  S5 z6 \
MOV A,@R16 x+ U, i( l. p/ z, c* N- ^% a
MOV DPTR,#TAB
; [! [. a! D. L3 gMOVC A,@A+DPTR7 n* u; a4 W9 ^" A) v4 q
MOV P0,A  ;送段控
( `" X8 C& p" R: yACALL DL  ;延时
8 w  j# Y% v1 D7 V  S2 aMOV A,R2  ;???
/ l+ v) J: f' i3 W* [$ c% UJB ACC.0,DISP2          ;从右至左8位LED显示一遍
& m4 K. M8 }5 J, R/ ]. {RR A, m- L4 E- l, _+ J8 m
INC R17 j7 h, z/ v3 z! u0 [8 ^' O
MOV R2,A
' |7 F/ Y* p/ I% i* TAJMP DISP1
8 S7 M/ g0 L: \$ n8 r: ~% K# J/ bDISP2:RET# W, Q1 @& J, n0 y9 x- f8 {6 ~, m1 v
TABB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0CH# c5 W$ \% u" D% w8 p7 K: h1 A

# k! @8 m5 x) Q

, s  \0 Q) d5 Z5 K3 D& };显示延时子程序8 @, ]3 u  [3 B( d6 C( ^
DL:
" V* s+ S0 {; ?7 g7 X5 b; N* XMOV R6,#14H  3 S/ |  N4 d: X3 ]$ L* V1 e
DL1:
! W, R3 S' q  d0 D' b5 `% iMOV R7,#19H% p: W& H- a; V3 T* W# v- P
DL2:0 a5 F9 E& z! ~
DJNZ R7,DL2+ C8 |5 D4 U  c/ I
DJNZ R6,DL1
6 [! R6 K8 Q1 o' B  r" `RET
  r, I3 e- ^- w9 L; t# O0 f- NEND
/ U8 }) U# f1 v* x2 Z' P
# m* p6 L: r) m0 r下载:3 Q4 ^! h$ e* w7 M2 l
游客,如果您要查看本帖隐藏内容请回复
3 ]# s: e0 n0 K1 B) w* y
+ v  [, n) k9 ~) b

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-23 23:36 , Processed in 0.093750 second(s), 26 queries , Gzip On.

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

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

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