单片机交流
登录
直播中
哈哈哈
10年用户
869经验值
擅长:可编程逻辑
私信
关注
[问答]
怎样去实现一种基于HC32L136的按键控制笔段式段码LCD显示
开启该帖子的消息推送
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循环。
华大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循环。
举报
更多回帖
rotate(-90deg);
回复
相关问答
LCD显示
按键
求大神分享关于华大单片机
HC32L136
笔
段式
段
码
LCD
显示
资料
2021-10-09
1704
请问如何
去
实现
一种
按键控制
电机的正反转?
2021-06-29
2048
请问单片机
HC32L136
定时器时间如何计算?
2021-10-21
1950
请问用74
HC
164如何驱动笔
段式
LCD
?
2019-10-28
1621
LCD
1602是如何
去
实现
按键控制
光标移动及闪烁的
2021-12-21
2006
如何
实现
printf格式化输出
2021-08-03
1334
笔
段式
LCD
驱动问题请教大家
2014-10-17
7326
如何
去
实现
一种
基于STM32G0的
按键控制
LED亮灭设计
2021-10-08
2131
笔
段式
液晶
显示
器问题
2018-08-08
2757
如何
去
实现
一种
基于stm32的
LCD
屏幕
显示
设计呢
2021-10-22
1247
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分