打印
[开发工具]

【新定义MCU开发板测评】时钟校正及蜂鸣器闹钟提示

[复制链接]
697|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 jinglixixi 于 2023-1-19 17:01 编辑

NBK-EBS002功能板上配有2个按键、2LED和一个蜂鸣器,其电路如图1所示,利用它们与数码管及内部计时器相配合,可完成时钟计时及闹钟的提示功能。
图1 电路原理图


其实现该功能的主程序为:
void main(void)
{
        uint8_t f=1,n=0;
        IcResourceInit();
        Led_Init();
        Shi=0;
        Miao=0;
        GPIO_WriteLow(GPIO4, GPIO_PIN_6);
        GPIO_WriteLow(GPIO5, GPIO_PIN_5);
        while(n<4)
        {
                if(GPIO_ReadPin(GPIO3, GPIO_PIN_6)==0)    // k1
                {
                         if(n==0) Fen=(Fen+1)%10;
                         if(n==1) Fen=(Fen+10)%60;
                         if(n==2) Miao=(Miao+1)%10;
                         if(n==3) Miao=(Miao+10)%60;
                         while(T0Flag1s==0);
                         while(GPIO_ReadPin(GPIO3, GPIO_PIN_6)==0);
                 }
               
                if(GPIO_ReadPin(GPIO5, GPIO_PIN_4)==0)   // k2
                {
                          n=n+1;
                          while(T0Flag1s==0);
                          while(GPIO_ReadPin(GPIO5, GPIO_PIN_4)==0);
                }
                Led_Display( Miao%10 , Miao/10 , Fen%10 , Fen/10 , 0x04 );
     }
     while(1)
     {
        if(T0Flag1s)
        {
            T0Flag1s=0;
            Miao++;
            if(Miao==60)
            {
                Miao=0;
                Fen++;
                if(Fen==60)
                {
                    Fen=0;
                    Shi++;
                    if(Shi==24)
                    {
                        Shi=0;
                    }
                }
            }
        }
        Led_Display( Miao%10 , Miao/10 , Fen%10 , Fen/10 , 0x04 );
        if((Fen==12)&&(Miao>=30))
        {
                 GPIO_TogglePin(GPIO4, GPIO_PIN_6);
                 GPIO_TogglePin(GPIO5, GPIO_PIN_5);
                 while(T0Flag1ms==0);
        }
    }
}

经程序的编译与下载,其运行效果如图2所示。
图2 运行效果

使用特权

评论回复
沙发
Wordsworth| | 2023-4-21 12:44 | 只看该作者
用的定时器计时的吗

使用特权

评论回复
板凳
everyrobin| | 2023-5-10 21:23 | 只看该作者
使用的是内部rtc的吗              

使用特权

评论回复
地板
jinglixixi|  楼主 | 2023-5-11 00:32 | 只看该作者
everyrobin 发表于 2023-5-10 21:23
使用的是内部rtc的吗

内部没有RTC,只有计时器。

使用特权

评论回复
5
wengh2016| | 2023-5-11 16:16 | 只看该作者
时钟的误差大约是多少的              

使用特权

评论回复
6
mollylawrence| | 2023-5-11 16:25 | 只看该作者
可以网络实现授时吗              

使用特权

评论回复
7
jinglixixi|  楼主 | 2023-5-12 08:11 | 只看该作者
mollylawrence 发表于 2023-5-11 16:25
可以网络实现授时吗

那就需要有网络透传之类的模块来辅助了。

使用特权

评论回复
8
earlmax| | 2023-6-6 17:39 | 只看该作者
如何实现网络校时?               

使用特权

评论回复
9
backlugin| | 2023-6-8 22:57 | 只看该作者
使用定时器或RTC模块等硬件资源,定期对单片机内部时钟进行校正。

使用特权

评论回复
10
albertaabbot| | 2023-6-10 11:09 | 只看该作者
时钟时间误差如何调整才最有效              

使用特权

评论回复
11
jackcat| | 2023-6-10 11:28 | 只看该作者
单片机数字时钟比实际时间的慢啊怎么办?

使用特权

评论回复
12
maqianqu| | 2023-6-10 12:31 | 只看该作者
时钟不准,可以调节吗?              

使用特权

评论回复
13
jinglixixi|  楼主 | 2023-6-11 08:41 | 只看该作者
maqianqu 发表于 2023-6-10 12:31
时钟不准,可以调节吗?

计时值可调整,至于精度就没办法了。

使用特权

评论回复
14
jinglixixi|  楼主 | 2023-6-11 08:43 | 只看该作者
jackcat 发表于 2023-6-10 11:28
单片机数字时钟比实际时间的慢啊怎么办?

适当地予以之前性修正吧

使用特权

评论回复
15
georgeliu2016| | 2023-7-1 14:04 | 只看该作者
误差应该挺大吧。

使用特权

评论回复
16
jinglixixi|  楼主 | 2023-7-1 18:12 | 只看该作者

也可外挂一个DS1302计时模块来解决

使用特权

评论回复
17
chenqianqian| | 2023-7-3 07:55 | 只看该作者
没有RTC外设吗?

使用特权

评论回复
18
jinglixixi|  楼主 | 2023-7-3 09:37 | 只看该作者

应该没有

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

455

主题

2756

帖子

38

粉丝