1.添加了必要的注释和readme文件以提高代码可读性和项目文档化。2.增加了按键按下时LCD屏幕显示功能
This commit is contained in:
@@ -1,117 +1,116 @@
|
||||
/******************************************************************************
|
||||
* @file 160160D.h
|
||||
* @brief UC1698U控制器驱动的 160x160 像素 LCD 显示屏驱动头文件
|
||||
* @details 本文件定义了 LCD 驱动的接口函数、状态码宏定义以及 ASCII 字体数据。
|
||||
* 包含显示控制、字符显示、图形显示、菜单操作等功能的函数声明。
|
||||
* @author 阜阳师范大学物电学院
|
||||
* @version V0.1
|
||||
* @date 2026.1.19
|
||||
* @note 控制器: UC1698U
|
||||
* 显示屏: 160x160像素
|
||||
* 颜色模式: 4K色(RGB444)和 64K色(RGB565)
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __160160D_H__
|
||||
#define __160160D_H__
|
||||
|
||||
#include "./SYSTEM/sys/sys.h"
|
||||
#include "./SYSTEM/delay/delay.h"
|
||||
|
||||
#define LCD_EXT extern
|
||||
/* ============================================================================
|
||||
* 显示状态码定义
|
||||
* ============================================================================ */
|
||||
#define DISPLAY_BLANK 0x00 /**< 显示空白 */
|
||||
#define PROTEC_ON 0x01 /**< 保护开启 */
|
||||
#define PROTEC_EXIT 0x02 /**< 保护退出 */
|
||||
#define PROTEC_START 0x03 /**< 保护启动 */
|
||||
#define PROTECT_TRIP 0x04 /**< 保护跳闸 */
|
||||
#define HEART_ACCUM 0x05 /**< 心跳累加 */
|
||||
#define HEART_REDUCE 0x06 /**< 心跳减少 */
|
||||
#define NEXT_MENU 0x07 /**< 下一菜单 */
|
||||
#define UP_DOWN 0x08 /**< 上下键 */
|
||||
#define LEFT_RIGHT 0x09 /**< 左右键 */
|
||||
#define DERECTION_KEY 0x0a /**< 方向键 */
|
||||
#define ENTER_KEY 0x0b /**< 确认键 */
|
||||
#define ESC_KEY 0x0c /**< 取消键 */
|
||||
#define ADD_DEC 0x0d /**< 加减键 */
|
||||
#define DI_CLOSE 0x0e /**< 数字输入关闭 */
|
||||
#define DI_OPEN 0x0f /**< 数字输入开启 */
|
||||
#define DI_UNCERT 0x10 /**< 数字输入不确定 */
|
||||
#define DELET_MESS 0x11 /**< 删除消息 */
|
||||
#define HAVE_MESS 0x12 /**< 有消息 */
|
||||
#define CODE_PASS 0x13 /**< 密码通过 */
|
||||
#define CODE_ERROR 0x14 /**< 密码错误 */
|
||||
|
||||
/* ============================================================================
|
||||
* 函数声明(仅包含 160160D.C 中实际定义的函数)
|
||||
* ============================================================================ */
|
||||
|
||||
|
||||
|
||||
#define DISPLAY_BLANK 0x00
|
||||
#define PROTEC_ON 0x01
|
||||
#define PROTEC_EXIT 0x02
|
||||
#define PROTEC_START 0x03
|
||||
#define PROTECT_TRIP 0x04
|
||||
#define HEART_ACCUM 0x05
|
||||
#define HEART_REDUCE 0x06
|
||||
#define NEXT_MENU 0x07
|
||||
#define UP_DOWN 0x08
|
||||
#define LEFT_RIGHT 0x09
|
||||
#define DERECTION_KEY 0x0a
|
||||
#define ENTER_KEY 0x0b
|
||||
#define ESC_KEY 0x0c
|
||||
#define ADD_DEC 0x0d
|
||||
#define DI_CLOSE 0x0e
|
||||
#define DI_OPEN 0x0f
|
||||
#define DI_UNCERT 0x10
|
||||
#define DELET_MESS 0x11
|
||||
#define HAVE_MESS 0x12
|
||||
#define CODE_PASS 0x13
|
||||
#define CODE_ERROR 0x14
|
||||
|
||||
|
||||
|
||||
LCD_EXT void display_datas(unsigned char datas); //R-G-B=4-4-4
|
||||
LCD_EXT void display_line(unsigned char datas);
|
||||
LCD_EXT void ReverseShow88(uint8_t column ,uint8_t lin,uint8_t const *address);
|
||||
LCD_EXT void ReverseShow916(uint8_t column ,uint8_t lin,uint8_t const *address);
|
||||
LCD_EXT void DisplayOneByteS(uint8_t ox, uint8_t oy, uint8_t byte1);
|
||||
LCD_EXT void DisplayOneText(uint8_t ox,uint8_t oy,uint8_t ascii_code);
|
||||
LCD_EXT void Clear_Line(uint8_t ox1,uint8_t ox2,uint8_t oy,uint8_t number1,uint8_t number2,uint8_t language);
|
||||
LCD_EXT void DisplayBrokenLine(uint8_t ox,uint8_t oy,uint8_t num);
|
||||
LCD_EXT void DisplaySolidLine(uint8_t ox,uint8_t oy,uint8_t num);
|
||||
LCD_EXT void DisplayLineText2(uint8_t ox,uint8_t oy,uint8_t number,uint8_t const *ptr);
|
||||
LCD_EXT void DisplayOneChinesetest(uint8_t column,uint8_t lin);
|
||||
LCD_EXT void REDisplayOneChinesetest(uint8_t column,uint8_t lin);
|
||||
LCD_EXT void ReverseDispOne(uint8_t ox,uint8_t oy,uint8_t ascii_code);
|
||||
LCD_EXT void ReverseLineText(uint8_t ox,uint8_t oy,uint8_t number,uint8_t const *ptr);
|
||||
LCD_EXT void ReverseDispLine(uint8_t ox,uint8_t oy,uint8_t number,uint8_t const *ptr);
|
||||
LCD_EXT void ReverseOneGraphics(uint8_t column,uint8_t lin,uint16_t hzcode,uint8_t tb_index);
|
||||
LCD_EXT void display_pic(unsigned char *p);
|
||||
LCD_EXT void display_pic1(unsigned char *p);
|
||||
LCD_EXT void DisplayOneGraphics(uint8_t column,uint8_t lin, uint16_t hzcode,uint8_t tb_index);
|
||||
LCD_EXT void DisplayConnectGraphics(uint8_t column,uint8_t lin,uint16_t hzcode);
|
||||
LCD_EXT void DisplayOneChinese(uint8_t column,uint8_t lin,uint8_t const *HzCode);
|
||||
LCD_EXT void DisplayLineChinese(uint8_t ox1,uint8_t oy1,uint8_t number1,uint8_t const *ptr1,uint8_t ox2,uint8_t oy2,uint8_t number2,uint8_t const *ptr2,uint8_t language);
|
||||
LCD_EXT void DeleteMenuCursor(uint8_t x1,uint8_t y1,uint8_t const *ptr1,uint8_t x2,uint8_t y2,uint8_t const *ptr2,uint8_t num,uint8_t num2,uint8_t language);
|
||||
LCD_EXT void DisplayMenuCursor(uint8_t x1,uint8_t y1,uint8_t const *ptr1,uint8_t x2,uint8_t y2,uint8_t const *ptr2,uint8_t num,uint8_t num2,uint8_t language);
|
||||
LCD_EXT void ClearScreen(void);
|
||||
void ReverseScreen(void);
|
||||
LCD_EXT void CloseDataCursor(void);
|
||||
LCD_EXT void DisplayDataCursor2(void);
|
||||
LCD_EXT void DisplayDataCursor(void);
|
||||
LCD_EXT void DisplayOneInt(uint8_t ox,uint8_t oy, uint16_t int_value);
|
||||
LCD_EXT void DisplayOneText2(uint8_t ox,uint8_t oy,uint8_t ascii_code);
|
||||
LCD_EXT void DisplayHoriLine(uint8_t column,uint8_t lin,uint8_t num);
|
||||
LCD_EXT void DisplayOneByte(uint8_t ox, uint8_t oy, uint8_t byte1);
|
||||
LCD_EXT void DisplayGraphicsScreen(void);
|
||||
LCD_EXT void DisplayLineText(uint8_t ox,uint8_t oy,uint8_t number,uint8_t const *ptr);
|
||||
LCD_EXT void DisplayOneInt2(uint8_t ox,uint8_t oy, uint16_t int_value);
|
||||
LCD_EXT void DisplayLongInt(uint8_t ox,uint8_t oy, uint32_t value,uint8_t redixs_point);
|
||||
LCD_EXT void DisplayOneByte2(uint8_t ox, uint8_t oy, uint8_t byte1);
|
||||
LCD_EXT void LcdInit(void);
|
||||
LCD_EXT void ReverseDispNum2(uint8_t ox,uint8_t oy,uint8_t ascii_code);
|
||||
LCD_EXT void DisplayCount(uint8_t ox, uint8_t oy, uint8_t byte1);
|
||||
LCD_EXT void DisplayHex(uint8_t ox,uint8_t oy,uint16_t number);
|
||||
LCD_EXT void ReverseDispOne2(uint8_t ox,uint8_t oy,uint8_t ascii_code);
|
||||
void Fault_Disp(void);
|
||||
void KeyRun_Disp(uint32_t Flag);
|
||||
void IP_Sprintf(uint8_t *buf, uint32_t IPdata);
|
||||
void IP_Printf(uint8_t x, uint32_t y, uint32_t IPdata, FlagStatus SetFlag, uint32_t cursor);
|
||||
void HZ12AndChar_Printf(uint8_t x, uint8_t y, const uint8_t *ptr, FlagStatus Flag);
|
||||
void HZ12AndChar_SignPrintf(uint8_t x, uint8_t y, const uint8_t *ptr, uint32_t SignNUM );
|
||||
void DisplayNL_LOGO(void);
|
||||
void DisplayNANRUI_LOGO(void);
|
||||
void DisplayNANRUI_BMP(void);
|
||||
void Display_BMP(uint32_t Width, uint32_t Height, const uint8_t* picture);
|
||||
void DisplayQQ_BMP(void);
|
||||
void ASCII_Printf(uint8_t x, uint32_t y, uint32_t data, FlagStatus Flag);
|
||||
void ASCII_SignPrintf(uint8_t x, uint32_t y, uint32_t data, uint32_t SignNUM);
|
||||
void IntValue_Printf(uint8_t x, uint32_t y, int32_t data, FlagStatus Flag);
|
||||
void FloatValue_Printf(uint8_t x, uint32_t y, float data, FlagStatus Flag);
|
||||
void FixLenIToF_Printf(uint32_t x, uint32_t y, int32_t data, uint32_t len, uint32_t dot, FlagStatus Flag, uint32_t cursor);
|
||||
void FixLenIToF_Sprintf(uint8_t* str, int32_t data, uint32_t len, uint32_t dot);
|
||||
void DisplayHorizontalLine(uint8_t x,uint8_t y,uint8_t len);
|
||||
void DisplayVerticalLine(uint8_t x,uint8_t y,uint8_t high, uint8_t value);
|
||||
void ClearMenuScreen(void);
|
||||
void ScreenPrintf(uint8_t* ptr);
|
||||
void Char6_Write(uint8_t x,uint8_t y, uint8_t CharCode, FlagStatus Flag);
|
||||
void MessageBox(void);
|
||||
void ClrMessageBox(void);
|
||||
void ClrMessageBoxContent(void);
|
||||
void MeunItem_Printf(uint8_t x, uint32_t y, int32_t data, FlagStatus Flag);
|
||||
void MessageSetBox(const uint8_t *title);
|
||||
void MessageSetBox_NoClear(const uint8_t *title);
|
||||
void ClrMessageSetBox(void);
|
||||
void DeleteMessageSetBox(void);
|
||||
void ProgramableMessageBox(uint8_t x, uint8_t y, uint8_t size);
|
||||
void DrawMenuComboBox(uint8_t x, uint8_t y, uint8_t len, uint8_t items);
|
||||
void DrawRecordBox(uint8_t x, uint8_t y, uint8_t len, uint8_t items);
|
||||
/* ---------- 硬件初始化函数 ---------- */
|
||||
void LCD_GPIO_Init(void);
|
||||
void LCD_Reset(void);
|
||||
void LCD_InitXRD(void);
|
||||
void LcdInit(void);
|
||||
void BackLight_Close(void);
|
||||
void BackLight_ON(void);
|
||||
|
||||
/* ---------- 屏幕控制函数 ---------- */
|
||||
void ClearScreen(void);
|
||||
void ReverseScreen(void);
|
||||
void ClearMenuScreen(void);
|
||||
void DisplayGraphicsScreen(void);
|
||||
|
||||
/* ---------- 字符显示函数 ---------- */
|
||||
void Char6_Write(uint8_t x, uint8_t y, uint8_t CharCode, FlagStatus Flag);
|
||||
void Char8_Write(uint8_t x, uint8_t y, uint8_t CharCode, FlagStatus Flag);
|
||||
void Char12_Write(uint8_t x, uint8_t y, uint8_t CharCode, FlagStatus Flag);
|
||||
void HZ12_Write(uint8_t x, uint8_t y, const uint8_t *HzCode, FlagStatus Flag);
|
||||
void HZ12AndChar_Printf(uint8_t x, uint8_t y, const uint8_t *ptr, FlagStatus Flag);
|
||||
void HZ12AndChar_SignPrintf(uint8_t x, uint8_t y, const uint8_t *ptr, uint32_t SignNUM);
|
||||
void ASCII_Printf(uint8_t x, uint32_t y, uint32_t data, FlagStatus Flag);
|
||||
void ASCII_SignPrintf(uint8_t x, uint32_t y, uint32_t data, uint32_t SignNUM);
|
||||
void ScreenPrintf(uint8_t* ptr);
|
||||
|
||||
/* ---------- 数值显示函数 ---------- */
|
||||
void IntValue_Printf(uint8_t x, uint32_t y, int32_t data, FlagStatus Flag);
|
||||
void FloatValue_Printf(uint8_t x, uint32_t y, float data, FlagStatus Flag);
|
||||
void FixLenIntValue_Printf(uint32_t x, uint32_t y, int32_t data, uint32_t len, FlagStatus Flag);
|
||||
void FixLenIToF_Sprintf(uint8_t* str, int32_t data, uint32_t len, uint32_t dot);
|
||||
void FixLenIToF_Printf(uint32_t x, uint32_t y, int32_t data, uint32_t len, uint32_t dot, FlagStatus Flag, uint32_t cursor);
|
||||
void FixLenFloatValue_Printf(uint32_t x, uint32_t y, float data, uint32_t len, uint32_t dot, FlagStatus Flag);
|
||||
void MeunItem_Printf(uint8_t x, uint32_t y, int32_t data, FlagStatus Flag);
|
||||
|
||||
/* ---------- IP 地址显示函数 ---------- */
|
||||
void IP_Sprintf(uint8_t *buf, uint32_t IPdata);
|
||||
void IP_Printf(uint8_t x, uint32_t y, uint32_t IPdata, FlagStatus SetFlag, uint32_t cursor);
|
||||
|
||||
/* ---------- 图形显示函数 ---------- */
|
||||
void DisplayOneGraphics(uint8_t column, uint8_t lin, uint16_t hzcode, uint8_t tb_index);
|
||||
void DisplayNL_LOGO(void);
|
||||
void DisplayNANRUI_LOGO(void);
|
||||
void Display_BMP(uint32_t Width, uint32_t Height, const uint8_t* picture);
|
||||
void DisplayNANRUI_BMP(void);
|
||||
void DisplayQQ_BMP(void);
|
||||
void DiaplayHeadGraph(void);
|
||||
void DrawPoint(uint8_t x, uint8_t y);
|
||||
|
||||
/* ---------- 线条绘制函数 ---------- */
|
||||
void DisplayHorizontalLine(uint8_t x, uint8_t y, uint8_t len);
|
||||
void DisplayVerticalLine(uint8_t x, uint8_t y, uint8_t high, uint8_t value);
|
||||
|
||||
/* ---------- 状态显示函数 ---------- */
|
||||
void Fault_Disp(void);
|
||||
void KeyRun_Disp(uint32_t Flag);
|
||||
|
||||
/* ============================================================================
|
||||
* ASCII 字体数据
|
||||
* ============================================================================ */
|
||||
|
||||
/**
|
||||
* @brief 6x12 点阵 ASCII 字体数据
|
||||
* @note 包含 95 个 ASCII 字符(空格到波浪号),每个字符 6 列 x 12 行 = 72 位 = 9 字节
|
||||
* 字符索引:0=' ', 1='!', ..., 94='~'
|
||||
*/
|
||||
static const uint8_t ASCII6x12[] =
|
||||
{
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/
|
||||
@@ -305,6 +304,11 @@ static const uint8_t ASCII6x12[] =
|
||||
0x40,0xA4,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"~",94*/
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 8x12 点阵 ASCII 字体数据
|
||||
* @note 包含 95 个 ASCII 字符(空格到波浪号),每个字符 8 列 x 12 行 = 96 位 = 12 字节
|
||||
* 字符索引:0=' ', 1='!', ..., 94='~'
|
||||
*/
|
||||
static const uint8_t ASCII8x12[] = {
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/
|
||||
|
||||
@@ -497,6 +501,11 @@ static const uint8_t ASCII8x12[] = {
|
||||
0x30,0x4C,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"~",94*/
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief 12x12 点阵 ASCII 字体数据
|
||||
* @note 包含 95 个 ASCII 字符(空格到波浪号),每个字符 12 列 x 12 行 = 144 位 = 18 字节
|
||||
* 字符索引:0=' ', 1='!', ..., 94='~'
|
||||
*/
|
||||
static const uint8_t ASCII12x12[] =
|
||||
{
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
|
||||
Reference in New Issue
Block a user