查看: 6712|回复: 5

[原创] 【LPC54114】+ A5.RTC学习及数码管显示

[复制链接]
  • TA的每日心情
    开心
    2025-5-29 08:54
  • 签到天数: 2992 天

    连续签到: 8 天

    [LV.Master]伴坛终老

    45

    主题

    5548

    帖子

    22

    金牌会员

    Rank: 6Rank: 6

    积分
    12035
    最后登录
    2025-5-29
    发表于 2017-4-18 19:44:12 | 显示全部楼层 |阅读模式
    晚上抽个空继续LPC54114开发板搞起,【LPC54114】+ A2.GPIO操作点亮数码管这篇帖子点亮了数码管,今天来学习一下RTC(Real-time clock)。
    从原理图上可以看到晶振是焊接了的,所以就可以直接使用了。
    QQ截图20170418193341.jpg
    QQ截图20170418192528.jpg
    操作起来也不是很复杂,主要是对以下四个寄存器的操作。手册上写的很清楚跟着操作就可以了。
    QQ截图20170418192931.jpg
    1. #include "fsl_device_registers.h"
    2. #include "fsl_debug_console.h"
    3. #include "board.h"
    4. #include "pin_mux.h"
    5. #include "fsl_common.h"
    6. #include "fsl_iocon.h"

    7. #include <stdbool.h>
    8. #include <stdio.h>

    9. #include "app_interrupt.h"
    10. #include "app_led.h"
    11. #include "app_key.h"
    12. #include "hc595.h"
    13. #include "fsl_rtc.h"

    14. /*******************************************************************************
    15. * Definitions
    16. ******************************************************************************/
    17. // 0 1 2 3 4 5 6 7 8 9 a b c d e f
    18. // f g dp e d c b a
    19. //uint8_t table[] = { 0x60,0xf9,0xa4,0xb0,0x39,0x32,0x22,0xf8,0x20,0x30,0x28,0x23,0x66,0xa1,0x26,0x2e,0xbf};
    20. uint8_t table[] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};

    21. uint8_t Conversion(uint8_t data)
    22. {
    23.         return ((data<<2)&0x80)|((data>>2)&0x20)|(data&0x5f);
    24. }

    25. /*******************************************************************************
    26. * Prototypes
    27. ******************************************************************************/

    28. int main(void)
    29. {
    30.         /* Init board hardware. */
    31.         /* attach 12 MHz clock to FLEXCOMM0 (debug console) */
    32.         CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);

    33.         BOARD_InitPins();
    34.         BOARD_BootClockRUN();
    35.         BOARD_InitDebugConsole();
    36.        
    37.         SystemCoreClockUpdate();
    38.        
    39.         SysTick_Config(SystemCoreClock/1000);
    40.                
    41.         PRINTF("\r\n-------------------------------\r\n\r\n");
    42.         PRINTF("hello world.\r\n");
    43.         PRINTF("LPC54110 Sys Clock is %dMhz.\r\n", SystemCoreClock/1000000);
    44.         PRINTF("\r\n-------------------------------\r\n");

    45.   CLOCK_EnableClock(kCLOCK_InputMux);
    46.   CLOCK_EnableClock(kCLOCK_Iocon);
    47.   CLOCK_EnableClock(kCLOCK_Gpio0);
    48.   CLOCK_EnableClock(kCLOCK_Gpio1);
    49.        
    50.         HC595Init();
    51.         key_init();
    52.        
    53.         rtc_datetime_t date;
    54.         RTC_Init(RTC);
    55.        
    56.         date.year         = 2017;
    57.         date.month         = 04;
    58.         date.day                 = 18;
    59.         date.hour         = 20;
    60.         date.minute = 00;
    61.         date.second = 00;
    62.        
    63.    /* RTC time counter has to be stopped before setting the date & time in the TSR register */
    64.    RTC_StopTimer(RTC);

    65.    /* Set RTC time to default */
    66.    RTC_SetDatetime(RTC, &date);

    67.    /* Start the RTC time counter */
    68.    RTC_StartTimer(RTC);

    69.         HC595SendData_eight(Conversion(table[0]), Conversion(table[1]), Conversion(table[2]), Conversion(table[3]), \
    70.                                                                                         Conversion(table[4]), Conversion(table[5]), Conversion(table[6]), Conversion(table[7]));
    71.         HAL_Delay(2000);
    72.         while (1)
    73.         {       
    74.                 RTC_GetDatetime(RTC, &date);
    75.                
    76. //                printf("Current datetime: %04d-%02d-%02d %02d:%02d:%02d",
    77. //               date.year,
    78. //               date.month,
    79. //               date.day,
    80. //               date.hour,
    81. //               date.minute,
    82. //               date.second);
    83.                         if(key_value(0) == 0)
    84.                         HC595SendData_eight(Conversion(table[date.year%100/10]),Conversion(table[date.year%10]),Conversion(table[16]),Conversion(table[date.month/10]),\
    85.                                                                                                 Conversion(table[date.month%10]),Conversion(table[16]),Conversion(table[date.day/10]),Conversion(table[date.day%10]));
    86.                         else
    87.                         HC595SendData_eight(Conversion(table[date.hour/10]),Conversion(table[date.hour%10]),Conversion(table[16]),Conversion(table[date.minute/10]),\
    88.                                                                                                 Conversion(table[date.minute%10]),Conversion(table[16]),Conversion(table[date.second/10]),Conversion(table[date.second%10]));       

    89.         }
    90. }
    复制代码
    开机显示01234567然后是时间的显示,按下板卡上的KEY0会显示日期松开显示时间。这个数码管比较大,显示效果还是很好的。
    IMG_20170418_193728.jpg
    IMG_20170418_193736.jpg
    IMG_20170418_193740.jpg
    工程: lpc54114.zip (9.36 MB, 下载次数: 74)
    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-9-9 22:51
  • 签到天数: 415 天

    连续签到: 1 天

    [LV.9]以坛为家II

    79

    主题

    3088

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    5181
    最后登录
    2022-5-23
    发表于 2017-4-18 20:15:35 | 显示全部楼层
      赞一个 嘿嘿
    该会员没有填写今日想说内容.
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    开心
    2025-5-29 08:54
  • 签到天数: 2992 天

    连续签到: 8 天

    [LV.Master]伴坛终老

    45

    主题

    5548

    帖子

    22

    金牌会员

    Rank: 6Rank: 6

    积分
    12035
    最后登录
    2025-5-29
     楼主| 发表于 2017-4-18 20:41:36 | 显示全部楼层

    谢谢支持
    签到签到
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-9-15 08:42
  • 签到天数: 1952 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    1

    主题

    4686

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    9405
    最后登录
    2023-9-15
    发表于 2017-4-19 06:24:35 | 显示全部楼层
    谢谢分享!!!
    今天天气不错!签到!
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    连续签到: 1 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7125
    最后登录
    2023-4-20
    发表于 2017-4-19 10:05:48 | 显示全部楼层
    感谢分享!!!
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    前天 09:35
  • 签到天数: 1808 天

    连续签到: 2 天

    [LV.Master]伴坛终老

    54

    主题

    4474

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    9360
    最后登录
    2025-9-5
    发表于 2017-12-5 15:49:03 | 显示全部楼层
    写得不错,看看,学习下。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-6 08:28 , Processed in 0.095999 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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