单片机交流
直播中

哈哈哈

10年用户 869经验值
擅长:可编程逻辑
私信 关注
[问答]

怎样去实现一种基于HC32L136的按键控制笔段式段码LCD显示

笔段式段码LCD显示原理是什么?
怎样去实现一种基于HC32L136的按键控制笔段式段码LCD显示?

回帖(1)

钱丘宝

2021-9-13 16:56:40
  华大HC32L136开发板——按键控制笔段式段码LCD显示
  HC32L136入门
  本文基于华大HC32L136_DDL_Rev1.9.2Lite的官方库,在lcd_mode例程的基础上加入gpio_input实现按键控制;
  以下推荐两篇供入门参考的大佬博客:
  华大HC32L136开发板准备工作: 国产超低功耗华大单片机HC32L136开发板上手入门。
  笔段式段码LCD显示原理介绍: 华大单片机HC32L136笔段式段码LCD显示。(仅供参考LCD原理)
  代码实现
  笔段式段码LCD真值表
  
  /* *LCD屏一共四个数字显示单元,LCD每个数字显示由两个字节的各低四位控制,
  * 例如显示一个数字3则 lcd_data = {0x00000000,0x00000f02};
  * 数字0-9 数据码: * 0-------0x0f05 * 1-------0x0600 * 2-------0x0b06 * 3-------0x0f02 * 4-------0x0603 * 5-------0x0d03 * 6-------0x0d07 * 7-------0x0700 * 8-------0x0f07 * 9-------0x0f03 * 。-------0x0008 * :-------0x0008 */static uint32_t lcd_data[12] = { 0x0f050f05, 0x06000600, 0x0b060b06, 0x0f020f02, 0x06030603,0x0d030d03, 0x0d070d07, 0x07000700, 0x0f070f07, 0x0f030f03,0x00080008, 0x00080008};
  main函数
  int32_t main(void)
  {
  int i=0;
  Sysctrl_ClkSourceEnable(SysctrlClkRCL,TRUE);
  ///《 使能RCL时钟 Sysctrl_SetRCLTrim(SysctrlRclFreq32768);
  ///《 配置内部低速时钟频率为32.768kHz Sysctrl_SetPeripheralGate(SysctrlPeripheralLcd,TRUE);
  ///《 开启LCD时钟 Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);
  ///《 开启GPIO时钟
  ///《 按键端口初始化————gpio_input例程 App_UserKeyInit();
  ///《 LED端口初始化————gpio_input例程 App_LedInit();
  App_PortCfg();
  ///《 LCD端口配置————lcd_mode例程 App_LcdCfg();
  ///《 LCD模块配置————lcd_mode例程 Lcd_ClearDisp();
  ///《 清屏————lcd_mode例程LCD官方库
  while(1)
  {
  if(i》9) i=0;
  ///《 检测USER按键是否按下(低电平)
  if(FALSE == Gpio_GetInputIO(STK_USER_PORT, STK_USER_PIN))
  {
  ///《 LED点亮 Gpio_SetIO(STK_LED_PORT, STK_LED_PIN);
  delay1ms(100);
  //消抖
  if(FALSE == Gpio_GetInputIO(STK_USER_PORT, STK_USER_PIN))
  {
  i++;
  }
  while(!Gpio_GetInputIO(STK_USER_PORT, STK_USER_PIN));
  //松手检测
  }
  else
  {
  ///《 LED关闭 Gpio_ClrIO(STK_LED_PORT, STK_LED_PIN);
  }
  Lcd_WriteRam(0,lcd_data);
  ///《 赋值寄存器LCDRAM0————lcd_mode例程LCD官方库
  Lcd_WriteRam(1,lcd_data);
  ///《 赋值寄存器LCDRAM1————lcd_mode例程LCD官方库
  }
  }
  实物展示
  我采用的是J-LINK / J-TRACE Cortex——SW的调试方式,连好接线后,编译下载程序到开发板。
  功能 : 初始复位显示0000,当按下USER按键后LED点亮且LCD数字自增1,数字达到9999后再从0000循环。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分