⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 disp_fk.c.bak

📁 此文件是一个完整的发动机转速表,用步进电机实现指示功能,利用HOLTECK的HT46R232作为MCU.
💻 BAK
字号:
/*
*********************************************************************************************************
*
* Filename   : DISP_HT.C
* Programmer : Haven
*********************************************************************************************************
*/
#define FK_DISP_GLOBALS
#include "..\includes\INCLUDES.H"
#if FK_DISP_EN
/*
*********************************************************************************************************
*                             HEXADECIMAL to SEVEN-SEGMENT conversion table
*                                                             a
*                                                           ------
*                                                       F |      | b
*                                                          |  g   |
* Note: The segments are mapped as follows:                 ------
*                                                        e |      | c
*        a    b    c    d    e    f    g                   |  d   |
*        --   --   --   --   --   --   --   --              ------
*        B7   B6   B5   B4   B3   B2   B1   B0
*********************************************************************************************************
*/
const INT8U DispHexToSegTbl[16] = {      /* HEXADECIMAL to SEVEN-SEGMENT conversion table                */
    0x06,                              /* '0'                                                          */
    0x9f,                              /* '1'                                                          */
    0x25,                              /* '2'                                                          */
    0x0d,                              /* '3'                                                          */
    0x9c,                              /* '4'                                                          */
    0x4c,                              /* '5'                                                          */
    0x44,                              /* '6'                                                          */
    0x1f,                              /* '7'                                                          */
    0x04,                              /* '8'                                                          */
    0x0c,                              /* '9'                                                          */
    0x11,                              /* 'A'                                                          */
    0x3E,                              /* 'B', Actually displayed as 'b'                               */
    0x9C,                              /* 'C'                                                          */
    0x7A,                              /* 'D', Actually displayed as 'd'                               */
    0x9E,                              /* 'E'                                                          */
    0x8E                               /* 'F'                                                          */
};               
INT8U  DispSegTbl[DISP_N_DIG];     

void  DispInit (void)
{
    DispClrScr();                      
}

void  DispClrScr (void)
{
    INT8U i;
    for (i = 0; i < DISP_N_DIG; i++) {           
        OS_ENTER_CRITICAL();
        DispSegTbl[i] = 0x00;
        OS_EXIT_CRITICAL();
    }
}


void  DispSetScr (void)
{
    INT8U i;
    for (i = 0; i < DISP_N_DIG; i++) {           
        OS_ENTER_CRITICAL();
        DispSegTbl[i] = 0xFF;
        OS_EXIT_CRITICAL();
    }
}

void  DispStatClr (INT8U dig, INT8U bbit)
{
    OS_ENTER_CRITICAL();
    DispSegTbl[dig] &= ~(1 << bbit);
    OS_EXIT_CRITICAL();
}


void  DispStatSet (INT8U dig, INT8U bbit)
{
    OS_ENTER_CRITICAL();
    DispSegTbl[dig] |= (1 << bbit);
    OS_EXIT_CRITICAL();
}

void  DispDigital (INT8U startdig, INT8U *s,INT8U enddig)
{
    INT8U stat;
   
   while ( startdig < enddig) {
        OS_ENTER_CRITICAL();
        stat              = DispSegTbl[startdig] & 0x01;                  
        DispSegTbl[startdig++] = DispHexToSegTbl[*s++] | stat;  //保留小数点
        OS_EXIT_CRITICAL();
    }
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -