诸位大神有谁能回复一下吗 用51单片机做电子钟,自动校时方面最简单的能用什么方法?

20-02-18  双面人1 发布
3个回答
  • 0

    落语

    ORG 0000H ;主程序入口
    LJMP MAIN ;跳转到标号MAIN执行
    ORG 000BH ;定时器T0中断入口
    AJMP PTF0 ;跳转到标号PTF0执行
    HOUR EQU 4AH ;赋值伪指令
    MIN EQU 4BH
    SEC EQU 4CH
    BUFF EQU 4DH
    ;*************************************************************************************
    ;主程序
    MAIN: MOV HOUR,#00H ;时,分,秒,标记清零
    MOV MIN,#00H
    MOV SEC,#00H
    MOV BUFF,#00H
    MOV SP,#60H ;设堆栈指针
    MOV TH0,#3CH ;定时器赋初值
    MOV TL0,#0B0H
    MOV 40H,#14H ;设循环次数20次
    MOV TMOD,#1 ;写TMOD
    MOV IP,#2 ;写IP
    MOV IE,#82H ;开中断
    SETB TR0 ;启动定时器
    LOOP: ACALL DISPLAY ;调用显示程序
    JNB P3.0,FEN ;校时键按否?否,跳转到FEN
    ZX: ACALL DISPLAY
    JB P3.0,ZX
    MOV A,HOUR ;时加1
    ADD A,#1
    DA A
    CJNE A,#24H,BI ;时加到24时否?是,清零
    CLR A
    BI: MOV HOUR,A
    MOV SEC,#00H ;秒清零
    FEN: JNB P3.1,YY ;校分键按下否?否,跳转到YY
    ZC: ACALL DISPLAY
    JB P3.1,ZC
    MOV A,MIN ;分加1
    ADD A,#1
    DA A
    CJNE A,#60H,CI ;分加到60否?是,清零
    CLR A
    CI: MOV MIN,A
    MOV SEC,#00H ;秒清零
    YY: AJMP LOOP
    ;***************************************************************************************
    ;中断服务程序
    PTF0: MOV TH0,#3CH ;初值重装
    MOV TL0,#0B0H
    CLR TR0 ;关定时器
    CLR A ;清A
    DJNZ 40H,XX ;1秒到否?否,跳转到XX
    MOV 40H,#14H ;重写循环次数
    MOV A,SEC ;秒单元加1
    ADD A,#1
    DA A
    MOV SEC,A
    CJNE A,#60H,PTF0R ;60秒到否?否,跳转到PTF0R
    JMIN: MOV SEC,#00H ;秒清零
    MOV A,MIN ;分单元加1
    ADD A,#1
    DA A
    MOV MIN,A
    CJNE A,#60H, PTF0R ;60分到否?否,跳转到PTF0R
    MOV MIN,#00H ;分清零
    JHOUR: MOV SEC,#00H ;秒清零
    MOV A,HOUR ;时单元加1
    ADD A,#1
    DA A
    MOV HOUR,A
    CJNE A,#24H, PTF0R ;24时到否?否,跳转到PTF0R
    MOV HOUR,#00H ;时清零
    AJMP PTF0R ;跳转到PTF0R
    XX: MOV R7,40H ;给小数点做标记,1和0
    CJNE R7,#0AH,NEQ
    EQ: NOP
    AJMP PTF0R
    NEQ: JC YEQ
    MOV BUFF,#00H
    AJMP PTF0R
    YEQ: MOV BUFF,#0FFH
    AJMP PTF0R
    PTF0R: SETB TR0
    RETI
    ;***************************************************************************************
    ;显示子程序
    DISPLAY: MOV R5,BUFF ;根据标记输出带点和不带点的数字
    CJNE R5,#00H,CVB ;根据标记查不同的表
    MOV DPTR,#TAB1
    LJMP TYU
    CVB: MOV DPTR,#TAB
    TYU: MOV A,MIN ;显示分钟的个位
    ANL A,#0FH
    MOVC A,@A+DPTR
    MOV P0,A
    MOV P2,#0F0h
    CLR P2.4
    ACALL DELAY
    MOV A,MIN ;显示分钟的十位
    SWAP A
    ANL A,#0FH
    MOVC A,@A+DPTR
    MOV P0,A
    MOV P2,#0F0H
    CLR P2.5
    ACALL DELAY
    MOV A,HOUR ;显示时钟的个位
    ANL A,#0FH
    MOVC A,@A+DPTR
    MOV P0,A
    MOV P2,#0F0H
    CLR P2.6
    ACALL DELAY
    MOV A,HOUR ;显示时钟的十位
    SWAP A
    ANL A,#0FH
    MOVC A,@A+DPTR
    MOV P0,A
    MOV P2,#0F0H
    CLR P2.7
    ACALL DELAY
    RET
    TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;不带小数点的字型码
    TAB1: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH ;带小数点的字型码
    ;****************************************************************************************
    ;延时子程序
    DELAY: MOV R4,#20
    YAN: MOV R5,#10
    SHI: DJNZ R5,SHI
    DJNZ R4,YAN
    RET
    END
    以前我的单片机课程设计,提供给你参考参考,不过只有调分和调时的。。。

    20-02-18

  • 0

    宁少白

    我可以给你一个模拟的,但是原理差不多,就是要用个单片机吗,自己要多动脑筋,肯定可以做出来的
    下面是具体的设计:
    数字时钟的设计与制作
    摘要:本系统是采用555构成的多协振荡器、74LS90芯片组合做成的数子时钟系统。其中用555构成的多协振荡器产生震荡频率,再用74LS 90芯片组合成分频电路对震荡频率进行分频,然后对选用74LS92和74LS90分别作为时计数器和分、秒计数器,再加一个校时电路。能让该数子时钟准确计时,以数字形式显示时、分、秒的时间,小时的计时为“24翻1”分,秒的计时为60进位 ,和时间校正功能。
    关键字: 震荡器 分频 计数器 74LS90 校时
    一、数字时钟的总体设计
    1 数字时钟的原理方框图如图1所示:
    图1数字时钟的原理方框图
    该电路系统由秒信号发生器、“时”、“分”、“秒”计数器、译码器及显示器等组成。秒信号产生器是整个系统是时基信号,它直接决定计数系统的精度。将标准秒信号送入“秒计数器”,“秒计数器”采用六十进制计数器,每累积60秒发出一个分脉冲信号,该信号将作为“分计数器”的时钟脉冲,“分计数器”也采用60进制计数器,每累积60分钟,发出一个“时脉冲”信号,该信号将被送入“时计数器”。“时计数器”采用24进制计数器,可实现对一天24小时的计数。译码显示电路将“时”、“分”、“秒”计数器的输出状态经7段译码显示器译码,通过7段显示器显示出来。
    二、模块的设计与比较
    1. 振荡电路及分频电路
    方案一:
    (1)采用石英晶体振荡器
    石英晶体振荡器的特点是振荡频率准确,电路结构简单,频率易高调整。它还具有压电效应,在晶体某一方向加一电场,则在与此垂直的方向产生机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限制时,才达到最后的稳定,这种压电谐振的频率就是晶体振荡的固有频率。
    图2 石音晶体振荡电路
    图2所示电路通过CMOS非门构成的输出为方波的数字式晶体振荡电路,这个电路中,CMOS非门U1与晶体、电容和电阻构成晶体振荡器电路,U2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波。输出反馈电阻R1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一
    个高增益的反相放大器。电容C1、C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。晶体X1的频率选为32768HZ。该元件专为数字钟电路而设计,其频率较低,有利于减少分频器级数。C1、C2均选择为30pF。当要求频率准确度和稳定度更高时,还可接入校正电容并采取温度补偿措施。由于CMOS电路的输入阻抗极高,因此反馈电阻R1可选为10MΩ。较高的反馈电阻有利于提高振荡频率的稳定性。
    (2) 用CD4060计数作分频器
    数字钟的晶体振荡器输出频率较高,为了得到1Hz的秒信号输入,需要对振荡器的输出信号进行分频。本实验中采用CD4060来构成分频电路。CD4060在数字集成电路中可实现的分频次数最高,而且CD4060还包含振荡电路所需的非门,使用更为方便。CD4060计数为14级2进制计数器,可以将32768HZ的信号分频为2HZ,其次CD4060的时钟输入端两个串接的非门,因此可以直接实现振荡和分频的功能。
    方案二:
    (1)采用555构成的多偕振荡电路
    振荡器电路选用555构成的多偕振荡器,设振荡频率f=1000HZ,其中的电位器可以微调振荡器的输出频率。
    图5 多偕振荡电路
    (2)用74LS90作分频器
    通常实现分频器的电路是计数器电路,一般采用多级10进制计数器来实现。分频器的功能有两个:一是产生标准秒脉冲信号;二是提供功能扩展电路所需的信号。选用中规模集成电路74LS90可以完成以上功能。如图所示,将3片74LS90级联,每片为1/10分频,三片级联正好获得1HZ的标准秒脉冲。
    图 6 分频电路
    比较: 秒信号发生器是数字电子钟的核心部分,它的精度和稳度决定了数字钟的质量,但是我们做实验考虑到用石音晶体振荡电路时分频电路用的元件较多 且价格较贵,而用555构成的电路元件容易得,电路简单且易于实现,故选方案二
    2. 秒、分、时计数器设计
    秒脉冲信号经过6级计数器,分别得到“秒”个位,十位、“分”个位、十位、“时”个位,十位的计时,秒分计数器为60进制,小时为24进制。
    (1)60进制计数电路:秒计数器电路与分计数器电路都是60进制,它由一级10进制计数器和一级6进制计数器连接构成,如图7、8所示,采用两片中规模集成电路7490串联接起来构成的秒、分计数器。
    IC2是十进制计数器,作为十进制的进位信号,7490计数器是十进制异步计数器,用反馈归零方法实现十进制计数。IC1和非门组成六进制计数。7490是在一秒时钟或进位信号的下降沿翻转计数, IC1的QA和QC相与0101的下降沿作为“分”或者“时”计数器的输入信号。IC1的QB和QC高电平1分别送到计数器的清零RO1、RO2,7490内部的RO1 和RO2与非后清零而使计数器归零,完成六进制计数。由此可见串联实现了六进制计数。
    图7 秒计数电路
    图8 分计数电路
    (2)24进制计数电路:小时计数电路是由和组成的24进制计数电路,采用两片中规模集成电路7490串联接起来构成。如图9所示:
    当“时”个位IC4计数输入端CKA来到第10个触发信号时,IC4计数器复零,进位端QD向IC3“时”十位计数器输出进位信号,当第24个“时”脉冲到达时,IC4计数器的状态为0100,IC3计数器的状态为0100,此时“时”个位计数器的QC和“时”十位计数器的QB输出为1。把它们分别送到IC4和IC3计数器的清零端RO1 和RO2通过7490内部的RO1 和RO2与非后清零,计数器复位,完成24进制计数。
    图9 时计数电路
    3. 校时电路
    校时电路实现对时分的校准。在电路中设有正常计时和校时位置。分、时的校准开关分别通过触发器控制。通常,校正时间的方法是:首先截断正常的计数通路,然后再进行人工出触发计数或将频率较高的方波信号加到需要校正的计数单元的输入端,校正好后,再转入正常计时状态即可。根据要求,数字钟应具有分校正和时校正功能,因此,应截断分个位和时个位的直接计数通路,并采用正常计时信号与校正信号可以随时切换的电路接入其中。
    图8所示为本实验所用的完整的校时电路图。
    图10 校时电路
    4. 显示器
    本系统用七段发光二极管来显示译码器输出的数字,显示器有两种:共阳极或共阴极显示器。74LS48译码器对应的是显示器是共阴显示器。
    三、调试要点
    我觉得假设在实际的实验箱上组装电子钟时,注意器件管脚的连接一定要准确。“悬空端“、“清0端”、“置1端”要正确处理,调试步骤和方法如下:。
    (1)、将频率为1000HZ的信号送入分频器,并用示波器检查各级分频器的输出频率是否符合设计要求。
    (3)、将1秒信号分别送入“时”、“分”、“秒”计数器,检查各级计数器的工作情况。
    (4)、观察校时电路的功能是否满足校时要求。
    (5)、当分频器和计数器调试正常后,观察电子钟是否准确正常地工作。
    四、供参考的元器件
    (1)、七段显示器(共阴极)6片 (2)、74LS90 9片 (3)、555多谐振荡器 1片 (4)、74LS00 8片 (5)、74LS04 4片
    (6)、电阻、电容、导线等。
    五、收获体会
    该电路的设计让我对数字钟的设计有了一定的了解。我知道了如何设计出1HZ的信号,也对时分秒的设计有了一定的了解。并且在实际电路一般步骤为由数字钟系统组成框图按照信号的流向分级安装,逐级级联,这里的每一级是指组成数字钟的各功能电路。级联时如果出现时序配合不同步,或尖峰脉冲干扰,引起逻辑混乱,可以增加多级逻辑门来延时。经过联调并纠正设计方案中的错误和不足之处后,再测试电路的逻辑功能是否满足设计要求。最后画出满足设计要求的总体逻辑电路图。
    参考文献:
    1.谢自美,电子线路设计*实验*测试.武汉:华中科技大学出版社,2007
    2.康光华,电子技术基础(第五版)。北京:高等教育出版社,2006
    3.蒋焕文,孙续。电子测量。北京:计量出版社,1998
    4.P.F.格拉夫。电子电路百科全书。张殿等译。北京:科学出版社,1999
    5.王兴亮主编现代音响和调音技术。西安电子科技大学出版,2006

    20-02-18

  • 0

    什么什么小魔女

    一般情况下,卡西欧EDIFICE的电波表都是自动校时的。在手表上设定好接收信号的城市代码,然后把手表12点一侧放在信号较好的地方。手表内置的微小天线就会根据设定的城市接收相应的信号,卡西欧EDIFICE电波表目前可以接收来自中国、日本、美国、英国和德国的6个地区不同频率的电波塔发射的标准时间授时信号并实现校时。

    20-02-18

精华知识
更多  
意见反馈 帮助