STM32F0數碼管顯示

1。segment定義 共陰數碼管
#define SEG_A 0x80
#define SEG_B 0x40
#define SEG_C 0x20
#define SEG_D 0x10
#define SEG_E 0x08
#define SEG_F 0x04
#define SEG_G 0x02
#define SEG_DOT 0x01
2。 common 定義 共陰數碼管
#define DIGIT_UP_L ~0x01 //
#define DIGIT_UP_M ~0x02
#define DIGIT_UP_H ~0x04
#define DIGIT_DOWN_L ~0x08
#define DIGIT_DOWN_M ~0x10
#define DIGIT_DOWN_H ~0x20

3。 顯示數據表,
/*=================================================================

  • @brief
  • @param None
  • @retval None
    =/
    const INT8U ShowData_Table[11] = //10
    {
    (u8)(SEG_A)|(SEG_B)|(SEG_C)|(SEG_D)|(SEG_E)|(SEG_F), //0 a,b,c,d,e,f
    (u8)(SEG_B|SEG_C), //1 b,c
    (u8)(SEG_A|SEG_B|SEG_D|SEG_E|SEG_G), //2 a,b,d,e,g
    (u8)(SEG_A|SEG_B|SEG_C|SEG_D|SEG_G), //3 a,b,c,d,g
    (u8)(SEG_B|SEG_C|SEG_F|SEG_G), //4
    (u8)(SEG_A|SEG_C|SEG_D|SEG_F|SEG_G), //5
    (u8)(SEG_A|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G), //6
    (u8)(SEG_A|SEG_B|SEG_C), //7
    (u8)(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G), //8
    (u8)(SEG_A|SEG_B|SEG_C|SEG_D|SEG_F|SEG_G), //9
    (u8)0x00 //10
    };
    4。 位表
    /
    =
  • @brief
  • @param None
  • @retval None
    =================================================================*/
    const u8 Digit_Table[6] = //6
    {
    DIGIT_UP_H, //0
    DIGIT_UP_M, //1
    DIGIT_UP_L, //2
    DIGIT_DOWN_H, //3
    DIGIT_DOWN_M, //4
    DIGIT_DOWN_L //5

};
5。 顯示函數
/*=================================================================

  • @brief
  • @param None
  • @retval None
    =================================================================*/
    void LedDisplay(void)
    {
    static u8 DisplayTimes = 0;

// if(msFlag)
{
msFlag = 0;
switch (DisplayTimes)
{
case 0: //wan
SegWrite595(Digit_Table[0]); //digit
SegWrite595(ShowData_Table[bShowBuffer[0]]); //segments
Output595Load();
break;
case 1: //qian
SegWrite595(Digit_Table[1]); //digit,0=on
SegWrite595(ShowData_Table[bShowBuffer[1]]); //segments,1=on
Output595Load();
break;
case 2: //voltage one
SegWrite595(Digit_Table[2]); //digit
SegWrite595(ShowData_Table[bShowBuffer[2]]); //segments
Output595Load();
break;
case 3: // shi
SegWrite595(Digit_Table[3]); //digit
SegWrite595(ShowData_Table[bShowBuffer[3]]); //segments
Output595Load();
break;
case 4: //ge
CommData = Digit_Table[4];
SegWrite595(Digit_Table[4]); //digit
SegData = ShowData_Table[bShowBuffer[4]];
SegWrite595(ShowData_Table[bShowBuffer[4]]); //segments
Output595Load();
break;
case 5: //ge
CommData = Digit_Table[5];
SegWrite595(Digit_Table[5]); //digit
SegData = ShowData_Table[bShowBuffer[5]];
SegWrite595(ShowData_Table[bShowBuffer[5]]); //segments
Output595Load();
break;
default:
break;
}
DisplayTimes++;
if(DisplayTimes == 6)
{
DisplayTimes = 0;
}
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章