• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

怎样用51单片机编写一个时钟程序?

b86e9bf4bded88d5 2019-01-14 浏览量:1700
用51单片机做时钟程序,怎么写代码让才能让蜂鸣器整点报时?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 51和STM32相比,少了RTC功能

    51只能使用定时器。定时器溢出的最大周期和定时器主频、计数器位数有关。

    使用11.0592Mhz晶振的51机,16位计数器,12分频,最大周期70多mS。

    为方便计算,可以设置一个50mS的定时器,在定时器中再递减一个长整形变量(其初值设为72000)。递减为0时,就启动蜂鸣器,并且将该变量重新设为72000。

    不过,一般晶振精度有限,累计误差还是相当大的。

    • 发布于 2019-01-14
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:15
  • 一个51单片机开发板,6个数码管,51用定时器计算秒,从而分,时。
    • 发布于2019-01-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 首先,驱动蜂鸣器,

    蜂鸣器要分有源的和无源的,有源的,高低电平就可以驱动了;无源的,这需要高频脉冲,一般是在1KHZ;

    然后就是定时。

    建议使用定时器定时秒,然后自己算时,分,

    最后通过数码管、LCD显示屏、或者串口显示出来就可以了。

    • 发布于2019-01-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 时钟程序主要用到定时器子程序;

    在初始化进行定时器初始化,设置好其频率,最好设置为1MS定时器;

    然后进入1000次定时器中断即是1秒,以此类推,即可定时分、时;

    • 发布于2019-01-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 通过判断,分钟是不是到60了,然后就可以驱动蜂鸣器了
    • 发布于2019-01-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 很多中方式可以做:

    1、在没有任何外设的情况下可以使用单片机自身的定时器功能来做,模拟一个时钟就行了,设定没50ms进入一个定时器中断,然后在中断里面写一个计数器累计数据,累计20次就是1秒,再写一个计数标志,累计60次就是一分钟,一次类推就可以实现蜂鸣器报警,蜂鸣器报警直接使用数据相等判断就行了。

    2、如果你不会定时器的话,可以使用延时来做,但是这种当时误差很大,方式同定时器方式;

    3、使用时钟芯片来做,可以使用DS1302,读取实时时钟的数据来比较判断就行了。

    • 发布于2019-01-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以使用定时器的方法来做,查了下,确实有很多的实例代码,代码计时
    • 发布于2019-01-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 51外接一个RTC做会比较简单,因为51本身的计时精度太差
    • 发布于2019-01-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 接一个RTC时钟,如DS1302,可以设置闹钟时间,然后控制蜂鸣器就可以
    • 发布于2019-01-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 51外接一个DS1302之类的时钟芯片,循环读取即可。
    • 发布于2019-01-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以使用定时器,或是使用外部的RTC芯片
    • 发布于2019-02-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般都是用的定时器来操作的,用定时器实现定时的输出
    • 发布于2019-02-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 要外接一个RTC芯片,通过RTC芯片来读取时钟进行计时
    • 发布于2019-02-23
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

怎样用51单片机编写一个时钟程序?