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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机电子时钟课设汇编语言代码和proteus仿真5 Q* f$ z3 q3 h& e
) b0 r) B/ b& ], y. f9 `
) }. `2 }8 d" V7 o% |/ |3 B' o
在附件里   电子时钟课设proteus仿真原理图:: N5 G; c! u* j

$ S% }1 P5 U& F* V% E
0 r+ R( w5 `3 K; ^/ B8 B, M单片机汇编语言源码:

. k7 y5 r0 N& d: TORG 0000H
* d& f$ ^# b0 E- }AJMP MAIN0 n: R, n4 Z4 H; [; a, p# _
ORG 000BH
) p- M% x0 S7 f. \/ uLJMP INTT0
9 V& K& d/ }* I  E8 i3 x4 b- c
. z% u5 E. L# y/ x1 }4 l/ P6 ]! X* ]
( Y( H8 w' j0 ^/ M
ORG 0030H
4 E0 A, P/ G; f( l1 w5 N" }1 ZMAIN:
! D; _* t$ N$ N: ~1 S5 v& ]9 zMOV SP,#60H ;确立堆栈区" y' J, b4 ~6 s- p, M* L$ d
MOV PSW,#00H1 I  X! p, K  F. n' }( r
MOV R0,#20H   ;RAM区首地址: r, P, R4 f* Z7 l
MOV R7,#5FH ;RAM区单元个数- A! M5 V- d3 M

2 p, P* P! z5 ^9 }  P$ @. s
" b: }; t; ^% s( ]
QL:
3 C+ m8 b& w5 E4 l. a, A- eMOV @R0,#00H ;RAM清零        * i' h; t. L% J4 A& S
INC R0
- ^! B/ z/ u4 pDJNZ R7,QL" s4 S- {5 J1 I! u

  Z3 k3 K  P) Z0 k! H" H3 S1 J

" s: v* {" [' L/ d5 Z7 WMOV IP,#02H ;IP初始化,优先定时器0, @+ H" I1 @# l; U
MOV IE,#82H ;IE初始化
; z" X1 r5 e# g3 D) s8 J# G; GMOV TMOD,#01H ;定时器0方式1工作
! y2 n6 p: a: yLCALL PP ;调P.子程序
: a, l. x( G3 c* e& b6 P9 W
3 V2 |& v0 a. J# }  ]

6 W# J) r. L  ]- S* YNEXT:, N" ?( e" d4 p4 _
LCALL KEY ;按键检测子程序
  i) m- M. Z) I" Q6 Y1 e4 lJB ACC.0,RUNF ;A键按下运行
- S# l. x, m6 W1 vLCALL DISP ;调用显示子程序
( |- S% L: b" x3 @0 M! R( kSJMP NEXT5 \3 _% n8 p/ y4 ~
3 s& c1 U  r0 k4 ]

" w" {- E6 M9 F$ ~4 `& GRUNF:
/ C  Y. p, U: D$ C8 e2 a& u- m' G  \LCALL OUTT ;调传送子程序
3 T( h# V$ R. KLCALL TIME ;开电子钟8 @, o5 s& O, ]
JK:
3 u$ Q9 ^& @7 TLCALL DISP9 Z) ~. y* P7 S9 q; O  U
LCALL KEY
: \, q3 |' n% YJZ JK. T- s- h* ~3 U) E+ M( t. O
LCALL ANKEY        ;调用键功能子程序
# N& p- T7 A: ^! o; y$ t- k, [LCALL DISP" P& [& y" f7 O0 r# O
SJMP JK
0 C! d& K$ a! y" m4 q& r
( \2 L7 h( Z9 K6 [

" o- J, x! V& z: B* g& B点显示子程序' A6 e2 `9 E; n, K3 E; w
PP:
; \' N4 j% R6 F( i4 F  a5 L( W; DMOV 37H,#12 点编码送寄存器
. ]. B- n4 m. B% JMOV R0,#30H 点编码送寄存器1 _; I- E" j) K! }# u. e
MOV R7,#07H
" k7 _& h- p7 {/ p* RPPP:
* a" {' h. x# P8 h6 {; J7 o% M1 _MOV @R0,#10  ;???" R7 e3 p% x$ W( e8 p
INC R0! p: \* H- ?# p# Y! n  M
DJNZ R7,PPP
# G8 u7 }  s" S* X/ \8 aRET2 N, H' w( o: c1 Y: K+ ~
' k* c  Q2 E2 Y) b9 _
/ C! Q5 z2 n# U! U
;键扫描子程序
9 D3 P0 L/ \7 w) X9 tKEY:
" M& D: i$ v+ M2 T1 V* i) j$ kLCALL KEYS ;调用键值处理子程序
" F7 P" M* [' AJZ EXIT ;没有键按下转到返回# ^8 |7 i) |8 |+ \  b6 M' S  J
LCALL DISP$ \$ W5 Y6 w) {* V
LCALL DISP ;调用显示去抖动2 l- h8 H' q. _& z
LCALL KEYS
! g( i. f- Z# C5 E$ E4 zJZ EXIT) q+ x& x' B3 r' h* N. B9 m+ h$ H
MOV B,20H ;保存键值$ n* F" @: ^$ q% E- Q
KEYSF:
0 |, G; m% E( HLCALL KEYS
- m1 r: k) z7 Q. k5 F8 bJZ KEYY ;键释放,转到恢复键值
6 m( n: q! c  [: D* wLCALL DISP ;调显示子程序延时
  d, D  L' v6 l+ g) A8 mAJMP KEYSF ;等到键释放
7 a& p% N- J4 V7 G5 G. i) a2 S, c& E5 N4 j. k2 R. j

( O4 G$ t, a% cKEYY:" }$ h4 G3 D4 i/ E. e( r4 r* O
MOV A,B ;键值送20H单元保存??; u2 C# V8 _  R5 `2 w6 F
EXIT:RET4 ]' Q0 ^: S" h7 D+ r" X
3 Y- O. m! V! _4 }. a# r

6 f/ q/ H: E& T7 R, F4 l& b0 jKEYS:$ V# e. _8 X1 t6 y
MOV P1,#0FFH ;先向P1口写1
& W5 ]/ y1 C" {- Z# KMOV A,P1 ;P1口值送A" T, }7 J1 L" @7 L  K. f. C
CPL A) V4 y$ s& v  u% r
ANL A,#0FH ;保存P1口的低4位% {; j" L) M- ^- D( H; @
MOV 20H,A ;A值送20H保存
+ U: f' o0 I! RRET- Z- j1 u$ `. N" ~
" x2 |$ ^' W8 J
+ X" N( n* i0 w* M5 i; w1 P' h5 T7 U
;键功能子程序1 k# _+ t' `/ j5 V- s* T+ o' E5 V
ANKEY:! \; l, i! o% B- Y) \: o  {8 o
CLR EA ;关中断
% S* `: l: D; `$ g2 hCHECK:. f5 N1 L" m& U* E9 n
JB TR0,YXZ ;判断是否运行* i9 w  \* P+ I% O' u' X" @
K0:
* r; F1 J8 o( wCJNE A,#01H,K1
5 c. K$ L1 I; F( z& qAJMP RUN ;转运行$ V( }. j4 U: A) b
K1:9 G# i# h$ N  }4 V" s% j
CJNE A,#02H,K2
; [0 m2 c5 y2 v6 S, A- vAJMP KEY1 ;转时调整8 U8 o% x4 Z) w
K2:; @1 b, G4 m, G- ?* l2 X
CJNE A,#40H,K3
" X4 w0 y, x0 R9 i" qAJMP KEY2 ;转分调整' m; e! M7 d4 [4 p" F, ^
K3:$ R9 U0 h& S) H4 r
CJNE A,#08H,OUT          ;转
  N2 V1 I2 V4 }9 v# OAJMP KEY3 ;转秒调整
. o8 `' B$ O4 r; p3 l. c1 Q; h  I% @+ u) h& H& L' o
8 G1 r6 t$ W. B! f9 m
YXZ:) F9 P( J: g1 X$ w
JB ACC.0,STOP
  K$ D( W% E" F% W2 wAJMP OUT* _6 }! t/ {) z8 y1 ^
' v( T4 _# {% a9 s- k" v: s* C. ]
1 q% E0 Z1 f; e! N
KEY1:# C; r5 Q) P5 O
MOV R0,#45H ;时调整
9 z0 N/ n) ?1 i8 h$ C1 L0 {8 HLCALL ADD1 ;调加一子程序& G# |6 t2 C) g) N2 H9 `) x" w& N
CLR C
) K7 @* ~7 T& K: U2 wCJNE A,#24H,OUTT ;转传送显示数据子程序" B; ]3 u" K" l* z% w  P
ACALL CLR0 ;调时间清理子程序6 |; ^7 W& K2 X8 g" C. A$ X
AJMP OUTT
6 z8 M% a: a* Y& P/ _KEY2:
* ?* O/ b0 r( |MOV R0,#43H ;分调整
8 u' a& n: ^+ H0 b+ m8 MLCALL ADD1. Y% J% `$ S$ R7 `
CLR C
/ x4 a9 C4 a! N! q) z3 |CJNE A,#60H,OUTT
! U- O) ?. b0 W' \; w  X, sACALL CLR0
9 G( z5 x, X% ^- w( T1 LAJMP OUTT9 G0 r+ _3 I$ N/ T2 }* _; i
KEY3:% `  Q6 P7 F; j
MOV R0,#41H ;秒调整5 ?+ b6 y7 V9 Y! k% [6 w/ \3 K
ACALL ADD1( {- b  v1 T$ I
CLR C
# Z0 [" @7 v- Y, w% j2 y& q$ B* }7 D' l9 ACJNE A,#60H,OUTT; l7 |6 l( j; q; K. Y
ACALL CLR0' W% {" a1 X; v
3 x7 G' r2 x/ b/ O
8 s# Y& H% `; ]7 ^6 \
;传送显示数据子程序4 u2 P$ V7 M- v- p  a0 v5 l; S" _# ^
OUTT:2 u8 [! d+ p8 R8 I+ p, n1 a- }
MOV 30H,40H ;秒显示单元40H-41H
: y% S/ q) p7 e0 m& ^MOV 31H,41H
+ N; Z" C9 b5 U( \0 dMOV 32H,#11 ;"-"
6 c' F$ t% j% n9 cMOV 33H,42H ;分显示单元42H-43H. u6 [* J# D+ z6 ~
MOV 34H,43H" x3 n) [: R! D& c
MOV 35H,#11 ;"-". h% ~( H+ z, K: H* \
MOV 36H,44H ;时显示单元44H-45H                4 Z! Y- l& R. c$ V7 l) H
MOV 37H,45H
7 |/ {7 A: N" u0 F6 oRET
: I1 f( q- O5 T( E6 x+ ESTOP:4 p- \' J0 {/ E8 i- j
CLR TR0
$ c( B  ^! }. c* }3 X& d1 _( s4 wRET4 K" g3 E) g# N" [$ }7 _1 c4 [
RUN:/ r8 e; o/ E3 h) B) E- v
LCALL TIME ;调运行电子钟子程序8 D" x4 g  ~$ U7 y; w
OUT:
# i  S4 O0 y5 E/ _% aSETB EA ;无键按下或完成功能跳出7 |; A( q/ U4 U! z  v
RET
5 z' T# t9 I+ o* ^8 z, j- k0 z
( ^! c( q9 U; a5 s. i
3 G5 ~1 D6 }5 c9 r2 A7 d
;运行电子钟子程序                                                                        
( T1 ?; v- J; s: u  R/ A5 c' M( f9 pTIME:* @7 r1 n, x( X
SETB EA" ]3 g7 K: q" m7 `6 J0 \) J2 D
MOV TL0,#0B0H  ;3CB0H
$ ]+ E5 G5 f3 q" I4 p& vMOV TH0,#3CH
/ g  U$ M) v3 O- A2 p' g8 i) KMOV R4,#20  ;50ms,20次循环
9 H; _: F" w6 _& f: K! kSETB TR0 ;启动定时器0. j& E* Y9 j* B$ e1 Y7 I
RET
# @7 c  \& O# Y" L5 S7 O) H! E$ L! u+ i

4 i: Y* Z+ G' t& i8 S1 m;定时器0中断处理子程序% h' C+ G& Z' Q: d7 Q
INTT0:. R4 V9 L9 t+ t+ [* I, o
PUSH ACC/ D* ?( e: E  F$ x/ Y5 ?$ {7 z
PUSH PSW
' s! ~0 ]7 s/ a8 U# DCLR ET0
' `8 V7 S" ?- F0 W8 T  Z7 NCLR TR0                                                                        
) u( f7 _' g, G! ?  }MOV TL0,#0B0H  ;重新设置定时初值
! w9 p  T6 {; l( H  I7 v" zMOV TH0,#3CH
  W  a  W" W' X7 @7 ]8 OSETB TR0
- V2 v' }3 l. k( RDJNZ R4,OUTT0  ;1秒到* s) G$ S/ {0 U' \
ADDSS:. K# K4 \5 x! H5 o
MOV R4,#14H  ;20次计数
, u! [# e/ ?3 VMOV R0,#41H  ;秒十位
4 N" F: {( T+ h1 ?" x, MACALL ADD1% R! ^0 u3 p) e" j- `; i6 @
CLR C
8 ^* p3 U& h; F, [. }, vCJNE A,#60H,ADDMM ;1分到- V$ \5 j: X2 e0 o
ADDMM:9 _" W$ T9 j) ~$ C/ Z
JC OUTT05 m  @  W, L1 f5 \5 z! ^
ACALL CLR03 N; I! S/ _1 z6 B5 O
MOV R0,#43H) G. E* k3 T( Z  h' f
ACALL ADD1
+ N2 C" }& L' j1 p) }$ pCLR C& |; g+ u, @) ?
CJNE A,#60H,ADDHH ;1小时到
4 u) ~; v1 U' {# vADDHH:! e$ x7 k+ j; I. ?! {5 n; ]: D, ?
JC OUTT0
0 W  |6 d( h( t, lACALL CLR0
3 u+ u7 R. S5 X8 E# y& UMOV R0,#45H
/ N6 Y3 E$ K+ W7 A" X; o) G4 FACALL ADD1; ~0 A3 K  p4 I
CLR C
2 ]" j, X# p" }& |1 \5 y, K3 sCJNE A,#24H,HOUR ;1天到
! O' T: s# D( M0 o- q; PHOUR:  M! p! x+ R/ v( ]: N2 M3 \$ o
JC OUTT0
7 d) x5 U, I) N6 eACALL CLR0
/ g( v4 X6 J  @! s: V3 K2 U' S
7 t* b9 _8 K8 F1 Y: H6 ~- u; Y$ {) J
! M2 |/ c5 d& ]  ]) p& y$ c
OUTT0:: V% X' y7 m4 j2 I
MOV 30H,40H ;秒显示单元40H-41H/ `7 ^: C8 b  y( a- x, B, P
MOV 31H,41H$ k: Y: G& ?5 F# ]4 w
MOV 32H,#11 ;"-"
( o4 v5 z$ S0 h- C% A/ JMOV 33H,42H ;分显示单元42H-43H
' j: S( l( v' zMOV 34H,43H8 E2 Y, n, F0 v; b! Y+ z! O: i+ A
MOV 35H,#11 ;"-"* _+ |1 ?' X- h" m* o
MOV 36H,44H ;时显示单元44H-45H                ! W; K+ r% C9 L( b5 l1 Q% h
MOV 37H,45H
; e- B/ F; |+ H* U, APOP PSW* b( E: }  E. l( D
POP ACC
3 Z. w1 h3 i, x0 h5 r0 dSETB ET0" b) ?* ]4 V1 \$ ]( A+ z; B6 @
RETI
5 H0 F" x4 s3 [7 \9 E/ z
/ ~( U* D& F9 L' a6 K) r% {! _

; k  R0 w7 N; b: m: C;时间清理子程序
' f/ Y, q7 C0 \/ ^% a2 SCLR0:
% y+ Y# w* \" g- G& xCLR A
2 m) F8 v4 u9 O7 C) zMOV @R0,A2 C  b/ {7 r( p, E
DEC R0! F9 t6 V5 C' x8 e
MOV @R0,A5 `$ s) R' l( I3 H( E% W
RET
; y- o9 X' }, _5 U. y' Z4 \
% x! C8 ^5 n$ ?
$ n5 U) ^8 I1 M8 g
;加一子程序+ u0 i$ k: \' B* S; q% r
ADD1:
! Y# N, ~! J9 e' b/ N6 QMOV A ,@R0  ;取十位
" a0 V1 F7 O6 D0 r3 JDEC R0- q. D7 E* i+ v- B
SWAP A
- m+ q0 s) F* E+ y; m3 k& R) m9 G  R  ^ORL A,@R0  ;组合十位与个位           
8 A, q- i; e0 p: X) [$ q# SADD A,#01H  ;加1
$ F4 c$ A8 f% `% ]9 Q( J7 f% k2 HDA A ;十进制调整
7 T0 p: a% }2 [6 t/ A3 bMOV R3,A  ;暂存
9 ]. ~5 a+ S8 \* m5 f, ]% s$ q9 v8 N; mANL A,#0FH  ;屏蔽十位( y1 M1 L) R6 S. ^: e2 E, q% Q) E
MOV @R0,A  ;放入个位单元) [3 I8 a/ i7 h2 ^0 t7 _
MOV A,R3  ;取值/ I, h" g5 `& \0 c% x( I  F
INC R01 u3 b" X" S* n9 p
SWAP A
# N, L3 D3 ^+ k  o  A) b0 tANL A,#0FH  ;屏蔽个位
( Z, m! H! s1 b4 F0 ], tMOV @R0,A  ;放入十位单元0 A6 t: }9 ~3 O  s3 x8 `, Y
MOV A,R3  ;数值放入A中等待判断
" X$ d! S' y% s( a& \  T8 ?RET6 i+ V% m4 L& t% F8 G$ _; S& h  @
9 i5 H$ t2 L% ?2 r0 V: r3 ^8 H& C

- }  l: u9 U2 ~8 ?7 D;显示子程序* c" G0 }- b# R8 y
DISP:/ I( D" v" `, n. d2 A- g$ o* \5 Z
MOV R1,#30H  ;显示缓冲存储单元首地址
. K# `0 a8 P1 t! ~MOV R2,#80H  ;从右至左显示
9 h6 [0 m' g# r! s9 W- p: ODISP1:
3 a3 l0 w9 p9 E2 P8 GMOV P2,R2  ;送位控
. p( Q5 ]3 t: J9 h& U) kMOV A,@R1
9 j4 `% f0 \, `MOV DPTR,#TAB
; |! I- `  L' w9 I8 R& IMOVC A,@A+DPTR% M* j: l8 H/ O
MOV P0,A  ;送段控
4 l( w0 O) r8 s7 T* i& WACALL DL  ;延时- L0 x; p0 K: |
MOV A,R2  ;???) P! C& [5 P5 [8 u3 N
JB ACC.0,DISP2          ;从右至左8位LED显示一遍; t! L, Y+ M5 q, T* S# i
RR A/ F& |$ n: G# X# j' t. u
INC R1+ M' R6 g6 v4 z# R- j; k
MOV R2,A
9 s4 U8 o& P( P4 p& }1 ^$ d( mAJMP DISP1! P4 y+ g  ^" _9 z2 c9 e* X/ ^
DISP2:RET
7 u0 B! C: M, ?1 ~) l3 {TABB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0CH
: d" j' s4 g# ]) u" x2 X
1 x# o# n5 _. {) h
. P+ W" l  n+ t
;显示延时子程序
: f1 q) f! e* P1 l" EDL:! v6 r. U# t+ q% z8 D4 T
MOV R6,#14H  
8 i4 B$ y2 d' w6 XDL1:, @$ w' J/ \- k% {
MOV R7,#19H1 P% k% o/ q9 @3 w
DL2:
( N9 Z9 B9 T/ F- i, F; l: ^8 F) fDJNZ R7,DL2
8 ?/ l; x& v; O$ u7 W8 B8 Z1 kDJNZ R6,DL18 l2 j2 F0 m. j! T
RET/ u) M" ^0 d2 x* E+ e
END3 n" }5 P/ G4 _. y9 {- T' [

' V% }6 N  }1 e7 F, n* Z下载:
. I0 G3 h. v5 c6 f5 A  {! j
游客,如果您要查看本帖隐藏内容请回复

. G, J' w; f7 O- v1 h" ]
% F% b) o: |0 n% L4 o" C

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-22 08:44 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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