hc32l13x lcd数码管分别显示示例代码
时间: 2023-07-02 22:10:07 浏览: 96
以下是 HC32L13X 控制 LCD 数码管分别显示的示例代码:
```c
#include "hc32l13x.h"
#include "hc32l13x_clk.h"
#include "hc32l13x_gpio.h"
#include "hc32l13x_lcd.h"
/**
* @brief LCD 数码管分别显示示例
* @param None
* @retval int32_t
*/
int32_t main(void)
{
/* CLK配置 */
CLK_XtalConfig(CLK_XTAL_FREQ_4MHZ, CLK_ATRDIS_WAIT_ON);
/* LCD配置 */
LCD_Init();
LCD_SetDisplayMode(LCD_DISPLAY_ON);
LCD_SetDataLength(LCD_DATA_LENGTH_8BIT);
LCD_SetBias(LCD_BIAS_1_3);
LCD_EnableIrregularSegment(LCD_SEGMENT_0_9 | LCD_SEGMENT_A_F);
LCD_SetFrameFreq(LCD_FRAME_FREQ_0);
LCD_SetDuty(LCD_DUTY_1_4);
LCD_SetContrast(LCD_CONTRAST_2_96V);
LCD_SetVoltageSource(LCD_VOLTAGE_INTERNAL);
LCD_Enable();
/* GPIO配置 */
GPIO_SetFunc(GPIO_PORT_0, GPIO_PIN_0, GPIO_FUNC_4_LCD_SEG0);
GPIO_SetFunc(GPIO_PORT_0, GPIO_PIN_1, GPIO_FUNC_4_LCD_SEG1);
GPIO_SetFunc(GPIO_PORT_0, GPIO_PIN_2, GPIO_FUNC_4_LCD_SEG2);
GPIO_SetFunc(GPIO_PORT_0, GPIO_PIN_3, GPIO_FUNC_4_LCD_SEG3);
GPIO_SetFunc(GPIO_PORT_0, GPIO_PIN_4, GPIO_FUNC_4_LCD_SEG4);
GPIO_SetFunc(GPIO_PORT_0, GPIO_PIN_5, GPIO_FUNC_4_LCD_SEG5);
GPIO_SetFunc(GPIO_PORT_0, GPIO_PIN_6, GPIO_FUNC_4_LCD_SEG6);
GPIO_SetFunc(GPIO_PORT_0, GPIO_PIN_7, GPIO_FUNC_4_LCD_SEG7);
GPIO_SetFunc(GPIO_PORT_1, GPIO_PIN_0, GPIO_FUNC_4_LCD_SEG8);
GPIO_SetFunc(GPIO_PORT_1, GPIO_PIN_1, GPIO_FUNC_4_LCD_SEG9);
GPIO_SetFunc(GPIO_PORT_1, GPIO_PIN_2, GPIO_FUNC_4_LCD_SEGA);
GPIO_SetFunc(GPIO_PORT_1, GPIO_PIN_3, GPIO_FUNC_4_LCD_SEGB);
GPIO_SetFunc(GPIO_PORT_1, GPIO_PIN_4, GPIO_FUNC_4_LCD_SEGC);
GPIO_SetFunc(GPIO_PORT_1, GPIO_PIN_5, GPIO_FUNC_4_LCD_SEGD);
GPIO_SetFunc(GPIO_PORT_1, GPIO_PIN_6, GPIO_FUNC_4_LCD_SEGE);
GPIO_SetFunc(GPIO_PORT_1, GPIO_PIN_7, GPIO_FUNC_4_LCD_SEGF);
while (1)
{
/* 数码管1显示1,数码管2显示2,数码管3显示3,数码管4显示4 */
LCD_DisplayNumber(1, 1);
LCD_DisplayNumber(2, 2);
LCD_DisplayNumber(3, 3);
LCD_DisplayNumber(4, 4);
}
}
```
该示例代码首先进行了 CLK 和 LCD 的初始化配置,然后对 GPIO 进行了配置,将 LCD 的每个段对应的引脚与 GPIO 进行了映射。最后,在一个无限循环中,调用 `LCD_DisplayNumber()` 函数将数字 1、2、3、4 分别显示在 LCD 的四个数码管上。
阅读全文