导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:哪位大虾有用51做的时钟的资料啊???[ascii]

 *第4870篇: C51编程:哪位大虾有用51做的时钟的资料啊???

  
楼 主:ascii 2002年9月7日16:17
 C51编程:哪位大虾有用51做的时钟的资料啊???
哪位大虾有用51做时钟的资料啊???我想用51做个时钟最好能显示日历的,小生不胜感激!!!

Email:ascii@xinhuanet.com

  
2楼:红心J 2002年9月7日20:42
 我正准备做,用ds12887,www.21ic.comz找资料,也可以用串行数据器件,很多。
  
3楼:dirty 2002年9月7日21:57
 给你一段代码
给<电子世界>杂志写讲座的程序,<将刊登在11期上,先给你吧,可惜是软件模拟
;**************************电子钟定时控制程序****************************
;
;                    作者:严天峰     版本:1。0
;说明:S_KEY--秒设定 ** M_KEY--分设定 **H_KEY--小时设定
;说明?12:30 开继电器    12:40  关继电器  6M晶体
;note:  pass in keil c51 uv2 6.23(在KEIL 6。23版本下测试通过)***********
;**************************************************************************

;*************以下为为伪指令定义*******************8 
S_KEY EQU P1.6
M_KEY EQU P1.7
H_KEY EQU P3.2
JDQ   EQU P1.5
S_DATA DATA 50H
M_DATA DATA 51H
H_DATA DATA 52H

ORG 0000H
AJMP MAIN
ORG 000BH
AJMP CLOCK
ORG 0100H
;***********************主程序开始*****************
MAIN:MOV SP,#70H
MOV 6EH,#00h
MOV 6DH,#00h
MOV 6CH,#00h
MOV 6BH,#00h
MOV 6AH,#00h
MOV 69H,#00h
MOV S_DATA,#0
MOV M_DATA,#0
MOV H_DATA,#0
;
MOV DPTR,#0FB00H
MOV A,#03H
MOVX @DPTR,A
;

MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#3CH
SETB EA
SETB ET0
SETB TR0
;************循环程序开始*******************?
START:
    MOV A,S_DATA
    LCALL HEX_BCD
    MOV 6AH,A
    MOV 69H,B
;
    MOV A,M_DATA
    LCALL HEX_BCD
    MOV 6CH,A
    MOV 6BH,B
;    
    MOV A,H_DATA
    LCALL HEX_BCD
    MOV 6EH,A
    MOV 6DH,B
;
LCALL DIS
LCALL KEY
LCALL CONTROL
AJMP START

;***********显示子程序*****************888
DIS:PUSH ACC
MOV DPTR,#0FB00H
MOV A,#03H
MOVX @DPTR,A
YLED:MOV R0,#6eH
MOV R3,#01H
MOV A,R3
YB:MOV DPTR,#0FB01H
MOVX @DPTR,A
INC DPTR
MOV A,@R0
ADD A,#11H
MOVC A,@A+PC
MOVX @DPTR,A
LCALL DELL
DEC R0
MOV A,R3
JB ACC.5,EEND
RL A
MOV R3,A
SJMP YB
NOP
NOP
EEND:AJMP S_END
BD: DB 3FH,06H,5BH,4FH,66H,6DH
BD1: DB 7DH,07H,7FH,6FH,77H,7CH
BD2: DB 39H,5EH,79H,71H,73H,3EH
BD3: DB 31H,6EH,1CH,23H,40H,03H
S_END:POP ACC
RET
;**********end display*********************

;***********delay program******************
DELL:MOV R7,#04H
DEL:MOV R6,#0E7H
NN:DJNZ R6,NN
DJNZ R7,DEL
RET
;******************************************   

;***************key(键盘子程序) program ***************
KEY:
    JB S_KEY,M_SET
    LCALL DELL
    JB S_KEY,M_SET
    INC S_DATA
    MOV A,S_DATA
    CJNE A,#60,S_DIS
    MOV S_DATA,#00H
S_DIS:MOV A,S_DATA
    LCALL HEX_BCD
    MOV 69H,A
    MOV 6AH,B
S_REP:LCALL DIS
    JNB S_KEY,S_REP
;
M_SET:
    JB M_KEY,H_SET
    LCALL DELL
    JB M_KEY,H_SET
    INC M_DATA
    MOV A,M_DATA
    CJNE A,#60,M_DIS
    MOV M_DATA,#00H
M_DIS:MOV A,M_DATA
    LCALL HEX_BCD
    MOV 6BH,A
    MOV 6CH,B
M_REP:LCALL DIS
    JNB M_KEY,M_REP
;
H_SET:
    JB H_KEY,SET_END
    LCALL DELL
    JB H_KEY,SET_END
    INC H_DATA
    MOV A,H_DATA
    CJNE A,#60,H_DIS
    MOV H_DATA,#00H
H_DIS:MOV A,H_DATA
    LCALL HEX_BCD
    MOV 6DH,A
    MOV 6EH,B
H_REP:LCALL DIS
    JNB H_KEY,H_REP
;
SET_END:RET


;******************控制继电器子程序CONTROL JDQ*********8
CONTROL:
    MOV A,H_DATA
    XRL A,#12
    JZ M_CONT
    AJMP  C_END
M_CONT:
    MOV A,M_DATA
    XRL A,#30
    JZ OPEN_JDQ
    AJMP OVER_JDQ
OPEN_JDQ:CLR JDQ
    AJMP C_END 
OVER_JDQ:MOV A,M_DATA
         XRL A,#40
         JNZ  C_END 
         SETB JDQ
C_END:RET    
;***********CONTROL JDQ END*************8      

;*******时钟定时中断子程序clock interrupt  program*******
CLOCK:PUSH ACC
      PUSH PSW
      CLR TR0
      MOV TL0,#0B0H
      MOV TH0,#03CH
      SETB TR0
      INC 5FH
      MOV A,5FH
      CJNE A,#0AH,D0
      MOV 5FH,#00H
      MOV A,S_DATA
      ADD A,#01H
      MOV S_DATA,A
      CJNE A,#60,D0
      MOV S_DATA,#00H
      MOV A,M_DATA
      ADD A,#01H
      MOV M_DATA,A
      CJNE A,#60,D0
      MOV M_DATA,#00H
      MOV A,H_DATA
      ADD A,#01H
      MOV H_DATA,A
      CJNE A,#24,D0
      MOV H_DATA,#00H
  D0: POP PSW
      POP ACC
      RETI

;************HEX_BCD 转换子程序*******8
HEX_BCD:MOV B,#10
        DIV AB
        RET 

END        


>>>>>>对该主题发表你的看法

本主题贴数3,分页: [第1页]


[上一篇主题]:C51编程:有项目

[下一篇主题]:C51编程:在c51编程软件仿真时为什么LONG型的数据输出不正常,怎么样才能正常输出呢.各位请指点