设为首页收藏本站

美丽的网站-英华家电维修论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1437|回复: 0
打印 上一主题 下一主题

使用单片机制作的6位数字钟

[复制链接]
跳转到指定楼层
楼主
发表于 2011-6-11 20:13:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
51单片机作的电子钟程序在很多地方已经有了介绍, 对于单片机学习者而言这个程序基本上是一道门槛,掌握了电子钟程序, 基本上可以说51单片机就掌握了80%。常见的电子钟程序由显示部分, 计算部分, 时钟调整部分构成。
( d' m" `' h9 N" N/ U% k    时钟的基本显示原理:时钟开始显示为0时0分0秒,也就是数码管显示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。10秒位到5后,即59秒 ,分钟加1,10秒位回0。依次类推,时钟最大的显示值为23小时59分59秒。这里只要确定了1秒的定时时间, 其他位均以此为基准往上累加。   Y0 M# h/ v& O. G* g2 I
    开始程序定义了秒, 十秒, 分, 十分,小时, 十小时,共6位的寄存器, 分别存在30h,31h,32h,33h,34h,35h单元,便于程序以后调用和理解。
! W- K. L& o& R  K' |1 t  x, O    6个数码管分别显示时、分、秒,一个功能键,可以切换调整时分秒、增加数值、熄灭节电等功能全部集一键。
) W" t( Q/ P! ^2 f3 R" I
- Q2 z9 s: C- _% a
5 {7 @+ c. v& ]$ h/ ?0 r

+ G' T* \5 ^5 A+ O/ L. [5 b+ `" e
以下是部分汇编源程序,购买我们产品后我们用光盘将完整的单片机汇编源程序和烧写文件送给客户。$ n/ r9 o5 X) S: H8 U) |9 }  J
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0 F$ ]: O* |5 k9 w8 D. q. v$ ?
;; 中断入口程序 ;;  (仅供参考), E# r% X0 T  ?! _: _5 u7 E
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1 v' S  {( ~, _! @& @2 \' `2 z
;
* ?. `- f3 ?9 ^) O/ hORG 0000H ;程序执行开始地址  ^( `0 u# v8 L- g& u5 R, Y
LJMP START ;跳到标号START执行" m$ G& }8 H  ^6 i3 h* q% [
ORG 0003H ;外中断0中断程序入口
' p, }; `$ @8 R* r) K% m9 |RETI ;外中断0中断返回; }7 q8 R) I/ `
ORG 000BH ;定时器T0中断程序入口$ I0 ^& R. s0 T0 W
LJMP INTT0 ;跳至INTTO执行
; `, w, ]" B! M1 n3 H' AORG 0013H ;外中断1中断程序入口3 F8 s, m% J  v1 X
RETI ;外中断1中断返回! U/ D' ~  p  ^  e* C
ORG 001BH ;定时器T1中断程序入口
. A2 G# [9 G& ALJMP INTT1 ;跳至INTT1执行9 P- Z' I: {6 T5 L7 c* R2 t
ORG 0023H ;串行中断程序入口地址
# D1 |' I/ w1 a/ V/ A# P+ eRETI ;串行中断程序返回

" Z+ H; O/ l. z: L6 }) M% P;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
* ^- W5 u% ^& E% l6 Q8 c6 s;; 主 程 序 ;;
2 \- Y7 |! b9 w0 W' [6 W;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;- m9 {5 X! e. p& X1 w$ m& |
;
/ I0 n* Q, n  |) R8 v2 XSTART: MOV R0,#70H ;清70H-7AH共11个内存单元1 m3 q3 L. i# X# @: Q' ?
MOV R7,#0BH
5 N/ E* k0 G. Y5 }8 l, r;clr P3.7 ;
2 @+ g7 O4 o' f* j. L  UCLEARDISP: MOV @R0,#00H ;
* d7 C$ L! j9 E" N2 o. eINC R0 ;
3 ~! x# ~0 g& v# _$ N) d  MDJNZ R7,CLEARDISP ;
% A9 d  }; y5 m( L. VMOV 20H,#00H ;清20H(标志用)9 i/ P* H7 s! r& D" B( T
MOV 7AH,#0AH ;放入"熄灭符"数据
( A2 j2 W1 M* Z% K0 Z- ~' w: _! W% S5 ?MOV TMOD,#11H ;设T0、T1为16位定时器
, V9 u, D0 ]' |4 AMOV TL0,#0B0H ;50MS定时初值(T0计时用)
  s! P/ H, ^3 _) C: R( \MOV TH0,#3CH ;50MS定时初值
9 m2 H& n  b  zMOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用)
& \* P% ~% \* M' P5 VMOV TH1,#3CH ;50MS定时初值' q* a  I$ \/ y6 \( P* x
SETB EA ;总中断开放
! V2 ]8 H' F" ?) q# `/ rSETB ET0 ;答应T0中断
% ~) U  t# z* U- U7 x  l. o2 z8 Q6 b& aSETB TR0 ;开启T0定时器
6 E2 C( j3 S0 E5 ZMOV R4,#14H ;1秒定时用初值(50MS×20). K6 [- ]% V. }" j  c9 V
START1: LCALL DISPLAY ;调用显示子程序
# ?) }: V: v: U/ F: U& Q# [' bJNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序
6 y1 K4 `! d- e6 r- h5 I3 S) _7 s0 SSJMP START1 ;P3.7口为1时跳回START1
" S+ ^: }9 }( L& z2 y  _3 ?: j  }0 qSETMM1: LJMP SETMM ;转到时间调整程序SETMM
0 L$ X/ @9 [6 f2 p;/ t/ ^( V) |& R1 ?3 R
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9 e4 k3 t/ Z; P
;; 1秒计时程序 ;;
5 ]% n* I. f8 g% x5 R% O6 M! C/ K: W;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1 K$ I% \3 E% q/ L$ G;T0中断服务程序6 \( T# m6 d1 l/ `. ]
INTT0: PUSH ACC ;累加器入栈保护: K7 h* O1 _& t- A8 S5 D2 U7 S
PUSH PSW ;状态字入栈保护
9 \) a) ?$ L3 @7 R# x+ HCLR ET0 ;关T0中断答应4 d# o% r" T8 Y$ x2 g
CLR TR0 ;封闭定时器T0
" Z. {. q% l; U8 U* R+ _MOV A,#0B7H ;中断响应时间同步修正
! Q8 o# f# O5 z. UADD A,TL0 ;低8位初值修正$ q) y0 |* J. A* V! @$ f  j
MOV TL0,A ;重装初值(低8位修正值), g; ?$ E) h$ z7 b. i* r1 ~
MOV A,#3CH ;高8位初值修正. i) `  ~1 Q6 I! q* O' H4 Z
ADDC A,TH0 ;  j3 v! [. ^7 t4 B
MOV TH0,A ;重装初值(高8位修正值)/ Z( p& y" _- m; `2 G, a
SETB TR0 ;开启定时器T0# r6 x% ]$ O, \( n3 o
DJNZ R4, OUTT0 ;20次中断未到中断退出& H7 H: J+ C: A) O" A, @( V# X
ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值
4 n6 x5 @4 e& |8 g3 K1 B, c$ wMOV R0,#71H ;指向秒计时单元(71H-72H)% C; H0 X& v& g% @8 Y+ D( N2 S
ACALL ADD1 ;调用加1程序(加1秒操作)
/ D- l& d. |& j" nMOV A,R3 ;秒数据放入A(R3为2位十进制数组合)
- S" v. U% W/ J  s+ uCLR C ;清进位标志, _. o$ B9 G0 ]& A6 _5 `
CJNE A,#60H,ADDMM ;
! r* d+ C$ W* \/ y5 O; {ADDMM: JC OUTT0 ;小于60秒时中断退出
4 a8 Q# M. O. k' d4 t4 bACALL CLR0 ;大于或即是60秒时对秒计时单元清0
, F% y: g3 M$ p, V4 tMOV R0,#77H ;指向分计时单元(76H-77H)
  S* y( c( w) ~0 }" SACALL ADD1 ;分计时单元加1分钟' M7 R3 r3 g, b) W' l
MOV A,R3 ;分数据放入A
$ `7 J8 z$ |; b8 H9 }- |8 O) _CLR C ;清进位标志
2 K7 G" y+ n) @$ g9 m7 k" ^4 zCJNE A,#60H,ADDHH ;) F# y3 S3 W; D# i* Q: }
ADDHH: JC OUTT0 ;小于60分时中断退出
. I8 M! J- P. c  @5 |0 U3 z+ K5 CACALL CLR0 ;大于或即是60分时分计时单元清0
; T# e5 k/ X2 ?' n! D* E: ]* gMOV R0,#79H ;指向小时计时单(78H-79H)
/ V# p, @3 G: X; B# hACALL ADD1 ;小时计时单元加1小时
) H( d7 ?9 @; k$ [% D3 m4 `$ dMOV A,R3 ;时数据放入A4 z7 c6 ]. f* M+ ]; p6 f
CLR C ;清进位标志" e3 t$ @; a! i
CJNE A,#24H,HOUR ;
  N5 u+ i: D4 c1 I& I2 p% EHOUR: JC OUTT0 ;小于24小时中断退出/ s" b3 X& ?+ D5 ]; T* r
ACALL CLR0 ;大于或即是24小时小时计时单元清0
+ @; V* H/ q* B( Z3 D- uOUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移' R# e* a" L* D2 {: B2 {* p: g, L
MOV 73H,77H ;入对应显示单元
$ Y; y6 u0 N4 ~* |7 {1 PMOV 74H,78H ;$ z+ H) Y& Z7 G, a
MOV 75H,79H ;( G# r$ p; N* D! ?2 t# N+ z/ q
POP PSW ;恢复状态字(出栈)
9 Z" {! X7 l2 f+ NPOP ACC ;恢复累加器! n* P% A" `% A- @0 x
SETB ET0 ;开放T0中断7 x. D1 Y3 r  _5 t. P! E
RETI ;中断返回
) C3 C  K% j* q;- z) t# \" `1 k6 r
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  U- q0 T2 n( V/ S$ u7 {9 a
;; 闪动调时 程 序 ;;' Q$ F# c6 d& G7 z
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
% b, ]  _9 N0 _- P;T1中断服务程序,用作时间调整时调整单元闪烁指示/ s( \/ I/ w% W- e
INTT1: PUSH ACC ;中断现场保护: P. `$ Z- b: H# k: g
PUSH PSW ;' y. Z  M' @& y" @0 U
MOV TL1, #0B0H ;装定时器T1定时初值
2 i( Z1 e- b# tMOV TH1, #3CH ;
9 \- X& U+ f4 S& c9 fDJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次)) @' B+ v2 \( x5 _
MOV R2,#06H ;重装0.3秒定时用初值
1 ]% O8 ?9 S& _* DCPL 02H ;0.3秒定时到对闪烁标志取反! v1 d4 z7 T6 v5 {. j/ J
JB 02H,FLASH1 ;02H位为1时显示单元"熄灭"% O. S* W. a3 y3 w$ y/ D
MOV 72H,76H ;02H位为0时正常显示. P9 w/ n' v2 _& x% s% Y7 I
MOV 73H,77H ;
! g* e  s0 p  L' P- pMOV 74H,78H ;1 p2 h  p1 S0 v! `
MOV 75H,79H ;
% M: J9 q5 F- `& z9 p! gINTT1OUT: POP PSW ;恢复现场
) d5 R) f. K9 e9 B1 F, M0 MPOP ACC ;
  ^3 Q2 b0 H% l& V' V  FRETI ;中断退出& \# P* A3 i6 m9 r9 ~$ V
FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制9 C; p( s) C3 b
MOV 72H,7AH ;01H位为0时,"熄灭符"数据放入分
. X5 i* p( }- u  {! [, yMOV 73H,7AH ;显示单元(72H-73H),将不显示分数据; u/ b+ J* l' s; S9 ^, H  ?( S
MOV 74H,78H ;' U$ Z- b6 H8 h/ L. O5 b
MOV 75H,79H ;. f; A( s. F  S) Z  w& O$ _, V
AJMP INTT1OUT ;转中断退出9 C6 t" |$ h7 Z! |$ c/ n
FLASH2: MOV 72H,76H ;01H位为1时,"熄灭符"数据放入小时
4 N7 n2 E5 S  M, ]MOV 73H,77H ;显示单元(74H-75H),小时数据将不显示
- \1 q% C% W0 G! LMOV 74H,7AH ;+ f5 ]& p1 ]3 `
MOV 75H,7AH ;
, A4 W( K; m5 T8 a+ `$ _AJMP INTT1OUT ;转中断退出0 Q6 x4 r& }0 w4 ]
;
' Y! q$ K) {3 C3 f8 s;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6 u$ P( {: A' z
;; 加1子 程 序 ;;
/ W* c" ]4 y- \! W9 O' U0 n$ |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4 u( F7 ^4 N3 L0 [1 U& X
;
; c4 ^) E8 `. a9 P9 }ADD1: MOV A,@R0 ;取当前计时单元数据到A
, i0 L$ T2 [% X8 K) Z* _. |DEC R0 ;指向前一地址
* ]3 N5 r6 M  N- a" vSWAP A ;A中数据高四位与低四位交换
; V5 e. Z/ o+ F( F4 lORL A,@R0 ;前一地址中数据放入A中低四位
! D4 b9 C) I( {7 f/ }ADD A,#01H ;A加1操作
( T- B- n. d) n2 S( dDA A ;十进制调整+ }8 h' V7 z! T: X
MOV R3,A ;移入R3寄存器" L* J0 [  _. M4 L. a; {
ANL A,#0FH ;高四位变09 Z9 ~. t  s! v/ r5 [
MOV @R0,A ;放回前一地址单元
: r, O" {5 ~# \5 j6 M7 N5 lMOV A,R3 ;取回R3中暂存数据
) e& T* @9 b5 [9 M/ V7 K+ }4 UINC R0 ;指向当前地址单元
6 N0 X5 Q6 V! i4 q- }) c1 u/ U2 X! pSWAP A ;A中数据高四位与低四位交换% B7 F% J1 s6 z: z! B
ANL A,#0FH ;高四位变0$ ^) a2 J0 L$ r$ R# R. c! u* K
MOV @R0,A ;数据放入当削地址单元中5 t7 P) v# I" Y/ X
RET ;子程序返回
$ A" G2 O7 e, F;
& ?: U/ R* z9 H7 C7 l- F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1 `' f1 D* i3 N( u5 C4 s: H
;; 清零程序 ;;2 E# x6 S" z- [! Q! a
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6 I# a  B( P  l" S% U  u& s  l
;.............9 h$ C9 ~3 e/ l$ H, B* t8 ^* t
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
" ]) \3 }3 g, h2 v, {1 f) `;; 时钟调整程序 ;;5 d, o, G& D/ z% l% L7 s: B, C) \
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4 u% O5 P7 u( D# h* z- B( ^( d0 I3 z
;当调时按键按下时进入此程序5 c; ?- K0 J. `! y1 v# M. f
SETMM: cLR ET0 ;关定时器T0中断
) @) T0 i# y! `- B- s; f- dCLR TR0 ;封闭定时器T0
3 s9 M8 f1 x- t1 k- V  h' m2 K  lLCALL DL1S ;调用1秒延时程序
; h* X: D8 w6 v, fJB P3.7,CLOSEDIS ;键按下时间小于1秒,封闭显示(省电)$ i0 \* s/ w& l* }" U" [+ u: n5 U  m
MOV R2,#06H ;进入调时状态,赋闪烁定时初值# w) z$ D  l8 i- v2 D5 r0 g; R9 A
SETB ET1 ;答应T1中断
' F8 D8 @. B. m6 y3 mSETB TR1 ;开启定时器T1% s8 B/ L- p- @" Z" l
SET2: JNB P3.7,SET1 ;P3.7口为0(键未开释),等待/ D- n: t3 F) T% `
SETB 00H ;键开释,分调整闪烁标志置1+ D" L; O' M8 [2 Y3 @
SET4: JB P3.7,SET3 ;等待键按下
$ W/ |; R9 p6 l+ Z0 t* A9 R0 OLCALL DL05S ;有键按下,延时0.5秒
! ^5 y. B# E; T! ^* k* L$ SJNB P3.7,SETHH ;按下时间大于0.5秒转调小时状态
; e4 d7 Q3 Z, @4 u0 OMOV R0,#77H ;按下时间小于0.5秒加1分钟操作
  t2 l" O& {. U; a3 eLCALL ADD1 ;调用加1子程序) S( T  J+ }! i" y- e1 F
MOV A,R3 ;取调整单元数据! ?$ j' [2 L" d$ ]9 w) n
CLR C ;清进位标志3 k% `7 E% W7 c0 O- f
CJNE A,#60H,HHH ;调整单元数据与60比较( q% m, K  R" u
HHH: JC SET4 ;调整单元数据小于60转SET4循环
: T' B. V& _7 d& n  {, yLCALL CLR0 ;调整单元数据大于或即是60时清0
9 c6 D" Q; y2 KCLR C ;清进位标志
7 _$ M; _, \, kAJMP SET4 ;跳转到SET4循环9 C3 r' U4 j- `; Z: ~
CLOSEDIS: SETB ET0 ;省电(LED不显示)状态。开T0中断( M  `  B, c" m3 n9 u
SETB TR0 ;开启T0定时器(开时钟)% [* G: P. S) Y/ A+ z% ]
CLOSE: JB P3.7,CLOSE ;无按键按下,等待。( }  F1 p' k* O5 R& ?# E
LCALL DISPLAY ;有键按下,调显示子程序延时削抖7 d- E, T1 @5 B1 f6 V
JB P3.7,CLOSE ;是干扰返回CLOSE等待
  O" k0 B) y4 H7 @' L5 G  G( HWAITH: JNB P3.7,WAITH ;等待键开释/ r5 V" T( ^4 o3 q8 u' d
LJMP START1 ;返回主程序(LED数据显示亮)
% H0 q) K/ n# U/ SSETHH: CLR 00H ;分闪烁标志清除(进入调小时状态)
. j1 O2 Q  D4 y" iSETHH1: JNB P3.7,SET5 ;等待键开释" U3 h/ `" i! n2 B9 x2 w3 ?- p
SETB 01H ;小时调整标志置12 v% t% j- B$ Y- d! N" ?$ j! ]
SET6: JB P3.7,SET7 ;等待按键按下- ?8 Y) }  o$ H  n1 B  |3 I/ F
LCALL DL05S ;有键按下延时0.5秒
; S& A# _6 p% D$ t- s5 L  S3 nJNB P3.7,SETOUT ;按下时间大于0.5秒退出时间调整  ]$ P% c( ]! b5 Z# P
MOV R0,#79H ;按下时间小于0.5秒加1小时操作) f- s' U4 L' M. s% g
LCALL ADD1 ;调加1子程序
8 d4 `" n2 @  v1 q6 o3 `. w  M* `MOV A,R3 ;: c8 ]$ U7 A& o. o2 {( j2 @
CLR C ;3 D- n5 N$ \4 S# S
CJNE A,#24H,HOUU ;计时单元数据与24比较
; I) T+ \1 k7 q! y5 b- a1 vHOUU: JC SET6 ;小于24转SET6循环
1 {0 h+ i( n6 {3 e+ E( _) _LCALL CLR0 ;大于或即是24时清0操作
8 n# ?/ V3 N& R/ a" r$ b" vAJMP SET6 ;跳转到SET6循环
( L: o7 m8 _) q/ z, FSETOUT: JNB P3.7,SETOUT1 ;调时退出程序。等待键开释0 }; A( O. [1 h3 `6 I
LCALL DISPLAY ;延时削抖' a5 U. B- c* S3 H
JNB P3.7,SETOUT ;是抖动,返回SETOUT再等待; ?) a$ b7 n  k5 @: p& Z  y
CLR 01H ;清调小时标志& b1 S2 r! ?7 t( ?4 V* b
CLR 00H ;清调分标志
! {3 g/ F5 l0 }. F3 ?/ g1 R3 LCLR 02H ;清闪烁标志
/ J" M$ l7 L2 r+ R3 Z- mCLR TR1 ;封闭定时器T1
% m% L  D" t7 q/ Z( wCLR ET1 ;关定时器T1中断, }& S+ h6 b" p* s. Y
SETB TR0 ;开启定时器T0: h: V- T" p: k( D0 k6 F. W
SETB ET0 ;开定时器T0中断(计时开始)
; r. k- K3 p( p$ G$ F3 W. ?# b/ PLJMP START1 ;跳回主程序, c/ Y5 x( Z) B+ l6 s* R
SET1: LCALL DISPLAY ;键开释等待时调用显示程序(调分): h5 A  z& d& X$ V9 @! p- e' s, i
AJMP SET2 ;防止键按下时无时钟显示
, l! x8 G3 L6 `0 Q' d0 ASET3: LCALL DISPLAY ;等待调分按键时时钟显示用2 e' n5 j5 `3 c4 W  i8 ?
AJMP SET4
: \+ a/ g: h% u& \% W% ]SET5: LCALL DISPLAY ;键开释等待时调用显示程序(调小时)
" E' o7 s5 g; U# v) oAJMP SETHH1 ;防止键按下时无时钟显示
6 u! g0 p4 O- [' m8 H; }SET7: LCALL DISPLAY ;等待调小时按键时时钟显示用- ~9 N/ C: w, W+ a, ]
AJMP SET62 e+ }; ]1 u4 r( I
SETOUT1: LCALL DISPLAY ;退出时钟调整时键开释等待. f$ {; P0 ?- s; K6 ~! Q( {: s$ C* ]0 ]
AJMP SETOUT ;防止键按下时无时钟显示% u2 z" d9 G0 Z  [1 @: e
;  L& l$ o7 r5 d! J+ R
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;* \8 g) d4 r3 o. [" {9 E" F
;; 显示程序 ;;. U: Q1 L. Y$ o% F1 O$ k
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$ H, X. J& L. Q( Q( ]8 Y
$$$$$$$$$$$$$$$$$$$$$$$$$$$
8 Z6 i1 W, s' n; P' o
;1MS延时程序,LED显示程序用
" X0 H$ l5 h, D5 a5 |DL1MS: MOV R6,#14H) ]$ d7 X; U7 X7 i, f+ M" R
DL1: MOV R7,#19H$ k( v. x$ w: i# h% V
DL2: DJNZ R7,DL2
# j* }- X3 E5 p* S. b/ [DJNZ R6,DL1
: r: n6 a  c% T+ D% wRET- B# K; |+ k# g; E$ ]
;20MS延时程序,采用调用显示子程序以改善LED的显示闪烁现象' w7 q% Y+ D) G7 u
DS20MS: ACALL DISPLAY
& J9 W; U- ~8 D% \% G8 H5 G# MACALL DISPLAY
, D3 K( O/ e! |0 W( u. m  LACALL DISPLAY
8 K+ l3 K) `1 ^) P, h$ o. T4 W7 HRET' h  L  e# W, u9 \
;延时程序,用作按键时间的长短判定! H) U% ^1 X9 ?
DL1S: LCALL DL05S! W# s' _+ v& _' Q
LCALL DL05S+ Q8 n# X0 _9 b5 L& l9 T5 {, h
RET! a. g) Y* a+ X, i
DL05S: MOV R3,#20H ;8毫秒*32=0.196秒5 d# ?: J- n9 |1 g9 f% J( \
DL05S1: LCALL DISPLAY2 M( [: P! B' u; p6 ]
DJNZ R3,DL05S19 l6 T3 `# t% H1 @$ D8 w+ c
RET6 g3 B0 r3 n' R) H) R+ h1 O
END ;程序结束

6 w5 Y: ]* _( d- Y5 R0 P% b( ]1 M
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|粤ICP备13038386号|粤ICP备13038386号|美丽的网站-英华家电维修论坛 ( 粤ICP备13038386号 )     站长邮箱 505966338@qq.com

GMT+8, 2025-8-27 13:45 , Processed in 0.139143 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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