打印
[开发板与模块]

【ESK32-30519 + ESK32-21001测评】+基于MDM2802屏显示的电子时钟

[复制链接]
311|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 eltonchang2001 于 2022-11-9 14:06 编辑

ESK32-30519开发板上配有数码管显示块,见图1所示,利用中间的D1D2笔段可以标识时间的内容。

1  数码管


通常的情况下,其内部是图2的形式进行连接,

2  内部连接

但由于缺少具体的介绍,但凭图3的原理图没能得到电路中间分割符的目的。

3 原理图

为此,就使用MDM2802屏完成了一个图4所示的电子时钟显示效果。
图4 显示效果

在该显示效果中,用到了一个时钟的显示图标,该显示图标的尺寸为80*80像素点,其显示函数为:
void showimage(void)
{
    int i,j;
    set_cursor(10,120);
    gram_prepare();
    for(j=0;j<80;j++)
    {
          set_cursor(10,120+j);
          gram_prepare();
          for(i=0;i<80;i++)
          {
              write_data(gImage_rtc[(j*80+i)*2]);
              write_data(gImage_rtc[(j*80+i)*2+1]);
          }
    }
}

此外为了时钟的显示,对时钟显示函数进行了修改,修改后的内容为:
void Time_Display(u32 wTimeVar)
{
         u32 THH = 0, TMM = 0, TSS = 0;
         u8 c;
         wTimeVar %= 86400;
         THH = wTimeVar/3600;
         TMM = (wTimeVar % 3600)/60;
         TSS = (wTimeVar % 3600)% 60;
         c='0'+THH/10;
         GUI_DispChar(c, 120,150);
         c='0'+THH%10;
         GUI_DispChar(c, 130,150);
         c='0'+TMM/10;
         GUI_DispChar(c, 150,150);
         c='0'+TMM%10;
         GUI_DispChar(c, 160,150);
         c='0'+TSS/10;
         GUI_DispChar(c, 180,150);c='0'+TSS%10;
         GUI_DispChar(c, 190,150);
}

为得到图5所示的计时效果,其主程序为:
int main(void)
{
    CKCU_PeripClockConfig_TypeDef CKCUClock = {{0}};
    CKCUClock.Bit.BKP        = 1;
    CKCU_PeripClockConfig(CKCUClock, ENABLE);
    #if (!LIBCFG_NO_PWRCU_TEST_REG)
    if (PWRCU_CheckReadyAccessed() != PWRCU_OK)
    {
      while (1);
    }
    #endif
    HT32F_DVB_LEDInit(HT_LED1);
    RETARGET_Configuration();
    NVIC_EnableIRQ(RTC_IRQn);
    RTC_Configuration();
    TimeReg = Time_Regulate();
    RTC_Cmd(ENABLE);
    app_tft_init();
    ili9341_init();
    ili9341_clear(RED);
    LCD_DrawLine(WHITE ,0, 50, 239, 50);
    LCD_DrawLine(WHITE,0, 290, 239, 290);
    BACK_COLOR=RED;
    POINT_COLOR=YELLOW;
    showimage();
    GUI_DispChar('R', 80,20);
    GUI_DispChar('T', 90,20);
    GUI_DispChar('C', 100,20);
    showhanzi16(115,16,0,RED,WHITE);
    showhanzi16(135,16,1,RED,WHITE);
    showhanzi16(155,16,2,RED,WHITE);
    showhanzi16(175,16,3,RED,WHITE);
    GUI_DispChar(':', 140,150);
    GUI_DispChar(':', 170,150);
    LCD_ShowString(60,294,"BY: jinglixixi");
    while (1)
    {
      if (gwTimeDisplay == 1)
      {
         Time_Display(RTC_GetCounter() + TimeReg);
         gwTimeDisplay = 0;
      }
    }
}


图5 计时效果







使用特权

评论回复

相关帖子

沙发
eltonchang2001| | 2022-9-30 16:15 | 只看该作者
MDM2802 是哪个厂商出的 LCD显示屏 ? 百度不到资料

使用特权

评论回复
板凳
jinglixixi|  楼主 | 2022-9-30 16:22 | 只看该作者
eltonchang2001 发表于 2022-9-30 16:15
MDM2802 是哪个厂商出的 LCD显示屏 ? 百度不到资料

是以前Freescale产品所配置的显示模块,使用起来比较节省引脚资源,基本用3个IO口就可以驱动该显示模块。

使用特权

评论回复
地板
sdlls| | 2022-10-1 17:52 | 只看该作者
ESK32的刷屏速度怎么样              

使用特权

评论回复
5
uiint| | 2022-10-1 18:06 | 只看该作者
可以模拟辉光管实现吗              

使用特权

评论回复
6
pixhw| | 2022-10-1 18:28 | 只看该作者
使用RTC了吗              

使用特权

评论回复
7
dzfansman| | 2022-10-1 18:55 | 只看该作者
这个是什么显示屏呢              

使用特权

评论回复
8
jinglixixi|  楼主 | 2022-10-2 16:38 | 只看该作者
sdlls 发表于 2022-10-1 17:52
ESK32的刷屏速度怎么样

由于它的处理方式近于I2C,所以刷屏速度不是很快。

使用特权

评论回复
9
jinglixixi|  楼主 | 2022-10-2 16:42 | 只看该作者
uiint 发表于 2022-10-1 18:06
可以模拟辉光管实现吗

应该问题不大,关键是要构建相应数符的显示字模及显示函数。此外,对刷新的速度会高一下,否则在显示过程中会出现显示值的跳跃。

使用特权

评论回复
10
jinglixixi|  楼主 | 2022-10-2 16:43 | 只看该作者

用的是RTC呀

使用特权

评论回复
11
jinglixixi|  楼主 | 2022-10-2 16:45 | 只看该作者
dzfansman 发表于 2022-10-1 18:55
这个是什么显示屏呢

一款基于ili9341控制芯片的SPI接口2.8寸显示屏。

使用特权

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

本版积分规则

446

主题

2675

帖子

37

粉丝