九脚数码管显示代码

#define     SMG_P1      IO_PORTA_12

#define     SMG_P2      IO_PORTA_13

#define     SMG_P3      IO_PORTA_14

#define     SMG_P4      IO_PORTA_15

#define     SMG_P5      IO_PORTA_00

#define     SMG_P6      IO_PORTA_01

#define     SMG_P7      IO_PORTA_02

#define     SMG_P8      IO_PORTA_03

#define     SMG_P9      IO_PORTA_04

#define SMG_P1_L    {gpio_direction_output(SMG_P1,0);}

#define SMG_P1_H    {gpio_direction_output(SMG_P1,1);}

#define SMG_P2_L    {gpio_direction_output(SMG_P2,0);}

#define SMG_P2_H    {gpio_direction_output(SMG_P2,1);}

#define SMG_P3_L    {gpio_direction_output(SMG_P3,0);}

#define SMG_P3_H    {gpio_direction_output(SMG_P3,1);}

#define SMG_P4_L    {gpio_direction_output(SMG_P4,0);}

#define SMG_P4_H    {gpio_direction_output(SMG_P4,1);}

#define SMG_P5_L    {gpio_direction_output(SMG_P5,0);}

#define SMG_P5_H    {gpio_direction_output(SMG_P5,1);}

#define SMG_P6_L    {gpio_direction_output(SMG_P6,0);}

#define SMG_P6_H    {gpio_direction_output(SMG_P6,1);}

#define SMG_P7_L    {gpio_direction_output(SMG_P7,0);}

#define SMG_P7_H    {gpio_direction_output(SMG_P7,1);}

#define SMG_P8_L    {gpio_direction_output(SMG_P8,0);}

#define SMG_P8_H    {gpio_direction_output(SMG_P8,1);}

#define SMG_P9_L    {gpio_direction_output(SMG_P9,0);}

#define SMG_P9_H    {gpio_direction_output(SMG_P9,1);}

static u32 shumaguan_gpio[9] = {SMG_P1,SMG_P2,SMG_P3,SMG_P4,SMG_P5,SMG_P6,SMG_P7,SMG_P8,SMG_P9};

enum{

A1=0,B1,C1,D1,E1,F1,G1,

A2,B2,C2,D2,E2,F2,G2,

A3,B3,C3,D3,E3,F3,G3,

A4,B4,C4,D4,E4,F4,G4,

DP,

J1,J2,J3,J4,K6,K7,K8,

A5,B5,C5,D5,E5,F5,G5,

A6,B6,C6,D6,E6,F6,G6,

K1,K2,   K3,K4,

T1,T2,T3,T4,T5,NG

};

u8 SMG_display_seg_tab[59]={0};

u8 smg1_tab[10][8] =

{

    //A

    {A1,B1,C1,D1,E1,F1,NG,NG},//0

    {B1,C1,NG,NG,NG,NG,NG,NG},//1

    {A1,B1,D1,E1,G1,NG,NG,NG},//2

    {A1,B1,C1,D1,G1,NG,NG,NG},//3

    {F1,G1,B1,C1,NG,NG,NG,NG},//4

    {A1,F1,G1,C1,D1,NG,NG,NG},//5

    {A1,F1,E1,D1,C1,G1,NG,NG},//6

    {A1,B1,C1,NG,NG,NG,NG,NG},//7

    {A1,F1,G1,C1,D1,E1,B1,NG},//8

    {A1,B1,C1,D1,F1,G1,NG,NG}//9

};

u8 smg2_tab[10][8] =

{

    //B

    {A2,B2,C2,D2,E2,F2,NG,NG},//0

    {B2,C2,NG,NG,NG,NG,NG,NG},//1

    {A2,B2,D2,E2,G2,NG,NG,NG},//2

    {A2,B2,C2,D2,G2,NG,NG,NG},//3

    {F2,G2,B2,C2,NG,NG,NG,NG},//4

    {A2,F2,G2,C2,D2,NG,NG,NG},//5

    {A2,F2,E2,D2,C2,G2,NG,NG},//6

    {A2,B2,C2,NG,NG,NG,NG,NG},//7

    {A2,F2,G2,C2,D2,E2,B2,NG},//8

    {A2,B2,C2,D2,F2,G2,NG,NG}//9

};

u8 smg3_tab[10][8] =

{

    //C

    {A3,B3,C3,D3,E3,F3,NG,NG},//0

    {B3,C3,NG,NG,NG,NG,NG,NG},//1

    {A3,B3,D3,E3,G3,NG,NG,NG},//3

    {A3,B3,C3,D3,G3,NG,NG,NG},//3

    {F3,G3,B3,C3,NG,NG,NG,NG},//4

    {A3,F3,G3,C3,D3,NG,NG,NG},//5

    {A3,F3,E3,D3,C3,G3,NG,NG},//6

    {A3,B3,C3,NG,NG,NG,NG,NG},//7

    {A3,F3,G3,C3,D3,E3,B3,NG},//8

    {A3,B3,C3,D3,F3,G3,NG,NG}//9

};

u8 smg4_tab[10][8] =

{

    //D

    {A4,B4,C4,D4,E4,F4,NG,NG},//0

    {B4,C4,NG,NG,NG,NG,NG,NG},//1

    {A4,B4,D4,E4,G4,NG,NG,NG},//4

    {A4,B4,C4,D4,G4,NG,NG,NG},//4

    {F4,G4,B4,C4,NG,NG,NG,NG},//4

    {A4,F4,G4,C4,D4,NG,NG,NG},//5

    {A4,F4,E4,D4,C4,G4,NG,NG},//6

    {A4,B4,C4,NG,NG,NG,NG,NG},//7

    {A4,F4,G4,C4,D4,E4,B4,NG},//8

    {A4,B4,C4,D4,F4,G4,NG,NG}//9

};

u8 smg5_tab[10][8] =

{

    //D

    {A5,B5,C5,D5,E5,F5,NG,NG},//0

    {B5,C5,NG,NG,NG,NG,NG,NG},//1

    {A5,B5,D5,E5,G5,NG,NG,NG},//4

    {A5,B5,C5,D5,G5,NG,NG,NG},//4

    {F5,G5,B5,C5,NG,NG,NG,NG},//4

    {A5,F5,G5,C5,D5,NG,NG,NG},//5

    {A5,F5,E5,D5,C5,G5,NG,NG},//6

    {A5,B5,C5,NG,NG,NG,NG,NG},//7

    {A5,F5,G5,C5,D5,E5,B5,NG},//8

    {A5,B5,C5,D5,F5,G5,NG,NG}//9

};

u8 smg6_tab[10][8] =

{

    //D

    {A6,B6,C6,D6,E6,F6,NG,NG},//0

    {B6,C6,NG,NG,NG,NG,NG,NG},//1

    {A6,B6,D6,E6,G6,NG,NG,NG},//4

    {A6,B6,C6,D6,G6,NG,NG,NG},//4

    {F6,G6,B6,C6,NG,NG,NG,NG},//4

    {A6,F6,G6,C6,D6,NG,NG,NG},//5

    {A6,F6,E6,D6,C6,G6,NG,NG},//6

    {A6,B6,C6,NG,NG,NG,NG,NG},//7

    {A6,F6,G6,C6,D6,E6,B6,NG},//8

    {A6,B6,C6,D6,F6,G6,NG,NG}//9

};

u8 other_tab[3][8]=

{

    {J1,J2,J3,J4,K6,K7,K8,NG},

    {DP,K1,K2,K3,K4,NG,NG,NG},

    {T1,T2,T3,T4,T5,NG,NG,NG},

};

#define CLEAN_ALL_TAB   memset(SMG_display_seg_tab,0,sizeof(SMG_display_seg_tab));

static void smg_init()

{

    u8 i;

    for(i=0;i<9;i++)

    {

        gpio_set_hd(shumaguan_gpio[i],1);

        gpio_set_pull_down(shumaguan_gpio[i], 0);

        gpio_set_pull_up(shumaguan_gpio[i], 0);

        gpio_set_direction(shumaguan_gpio[i], 1);

    }

}

static void smg_clean_all()

{

    gpio_set_pull_down(SMG_P1, 0);

    gpio_set_pull_up(SMG_P1, 0);

    gpio_set_direction(SMG_P1, 1);

    gpio_set_hd0(SMG_P1, 1);

    gpio_set_pull_down(SMG_P2, 0);

    gpio_set_pull_up(SMG_P2, 0);

    gpio_set_direction(SMG_P2, 1);

    gpio_set_hd0(SMG_P2, 1);

    gpio_set_pull_down(SMG_P3, 0);

    gpio_set_pull_up(SMG_P3, 0);

    gpio_set_direction(SMG_P3, 1);

    gpio_set_hd0(SMG_P3, 1);

    gpio_set_pull_down(SMG_P4, 0);

    gpio_set_pull_up(SMG_P4, 0);

    gpio_set_direction(SMG_P4, 1);

    gpio_set_hd0(SMG_P4, 1);

    gpio_set_pull_down(SMG_P5, 0);

    gpio_set_pull_up(SMG_P5, 0);

    gpio_set_direction(SMG_P5, 1);

    gpio_set_hd0(SMG_P5, 1);

    gpio_set_pull_down(SMG_P6, 0);

    gpio_set_pull_up(SMG_P6, 0);

    gpio_set_direction(SMG_P6, 1);

    gpio_set_hd0(SMG_P6, 1);

    gpio_set_pull_down(SMG_P7, 0);

    gpio_set_pull_up(SMG_P7, 0);

    gpio_set_direction(SMG_P7, 1);

    gpio_set_hd0(SMG_P7, 1);

    gpio_set_pull_down(SMG_P8, 0);

    gpio_set_pull_up(SMG_P8, 0);

    gpio_set_direction(SMG_P8, 1);

    gpio_set_hd0(SMG_P8, 1);

    gpio_set_pull_down(SMG_P9, 0);

    gpio_set_pull_up(SMG_P9, 0);

    gpio_set_direction(SMG_P9, 1);

    gpio_set_hd0(SMG_P9, 1);

}

static void shumaguan_device()

{

    static u8 Scan_num=1;

    smg_clean_all();

    switch (Scan_num)

    {

    case 1:

        SMG_P1_L;

        if (SMG_display_seg_tab[F1])

        {

            SMG_P2_H;

        }

        if (SMG_display_seg_tab[G1])

        {

            SMG_P3_H;

        }

        if (SMG_display_seg_tab[C1])

        {

            SMG_P4_H;

        }

        if (SMG_display_seg_tab[D1])

        {

            SMG_P5_H;

        }

        if (SMG_display_seg_tab[D3])

        {

            SMG_P6_H;

        }

        if (SMG_display_seg_tab[K1])

        {

            SMG_P7_H;

        }

        Scan_num = 2;

        break;

    case 2:

        SMG_P2_L;

        if (SMG_display_seg_tab[A1])

        {

            SMG_P1_H;

        }

        if (SMG_display_seg_tab[F2])

        {

            SMG_P3_H;

        }

        if (SMG_display_seg_tab[G2])

        {

            SMG_P4_H;

        }

        if (SMG_display_seg_tab[C2])

        {

            SMG_P5_H;

        }

        if (SMG_display_seg_tab[K3])

        {

            SMG_P6_H;

        }

        if (SMG_display_seg_tab[K4])

        {

            SMG_P7_H;

        }

        Scan_num = 3;

        break;

    case 3:

        SMG_P3_L;

        if (SMG_display_seg_tab[B1])

        {

            SMG_P1_H;

        }

        if (SMG_display_seg_tab[A2])

        {

            SMG_P2_H;

        }

        if (SMG_display_seg_tab[F3])

        {

            SMG_P4_H;

        }

        if (SMG_display_seg_tab[G3])

        {

            SMG_P5_H;

        }

        if (SMG_display_seg_tab[E3])

        {

            SMG_P6_H;

        }

        if (SMG_display_seg_tab[J1])

        {

            SMG_P7_H;

        }

        Scan_num = 4;

        break;

    case 4:

        SMG_P4_L;

        if (SMG_display_seg_tab[E1])

        {

            SMG_P1_H;

        }

        if (SMG_display_seg_tab[B2])

        {

            SMG_P2_H;

        }

        if (SMG_display_seg_tab[A3])

        {

            SMG_P5_H;

        }

        if (SMG_display_seg_tab[D4])

        {

            SMG_P6_H;

        }

        if (SMG_display_seg_tab[T3])

        {

            SMG_P7_H;

        }

        if (SMG_display_seg_tab[T4])

        {

            SMG_P8_H;

        }

        if (SMG_display_seg_tab[T5])

        {

            SMG_P9_H;

        }

        Scan_num = 5;

        break;

    case 5:

        SMG_P5_L;

        if (SMG_display_seg_tab[K2])

        {

            SMG_P1_H;

        }

        if (SMG_display_seg_tab[E2])

        {

            SMG_P2_H;

        }

        if (SMG_display_seg_tab[B3])

        {

            SMG_P3_H;

        }

        if (SMG_display_seg_tab[C3])

        {

            SMG_P4_H;

        }

        if (SMG_display_seg_tab[F4])

        {

            SMG_P6_H;

        }

        if (SMG_display_seg_tab[DP])

        {

            SMG_P7_H;

        }

        Scan_num = 6;

        break;

    case 6:

        SMG_P6_L;

        if (SMG_display_seg_tab[J2])

        {

            SMG_P1_H;

        }

        if (SMG_display_seg_tab[D2])

        {

            SMG_P2_H;

        }

        if (SMG_display_seg_tab[J3])

        {

            SMG_P3_H;

        }

        if (SMG_display_seg_tab[E4])

        {

            SMG_P4_H;

        }

        if (SMG_display_seg_tab[C4])

        {

            SMG_P5_H;

        }

        if (SMG_display_seg_tab[A4])

        {

            SMG_P7_H;

        }

        Scan_num = 7;

        break;

    case 7:

        SMG_P7_L;

        if (SMG_display_seg_tab[K6])

        {

            SMG_P1_H;

        }

        if (SMG_display_seg_tab[K7])

        {

            SMG_P2_H;

        }

        if (SMG_display_seg_tab[J4])

        {

            SMG_P3_H;

        }

        if (SMG_display_seg_tab[K8])

        {

            SMG_P4_H;

        }

        if (SMG_display_seg_tab[G4])

        {

            SMG_P5_H;

        }

        if (SMG_display_seg_tab[B4])

        {

            SMG_P6_H;

        }

        Scan_num = 8;

        break;

    case 8:

        SMG_P8_L;

        if (SMG_display_seg_tab[A5])

        {

            SMG_P1_H;

        }

        if (SMG_display_seg_tab[B5])

        {

            SMG_P2_H;

        }

        if (SMG_display_seg_tab[C5])

        {

            SMG_P3_H;

        }

        if (SMG_display_seg_tab[D5])

        {

            SMG_P4_H;

        }

        if (SMG_display_seg_tab[E5])

        {

            SMG_P5_H;

        }

        if (SMG_display_seg_tab[F5])

        {

            SMG_P6_H;

        }

        if (SMG_display_seg_tab[G5])

        {

            SMG_P7_H;

        }

        if (SMG_display_seg_tab[T1])

        {

            SMG_P9_H;

        }

        Scan_num = 9;

        break;

    case 9:

        SMG_P9_L;

        if (SMG_display_seg_tab[A6])

        {

            SMG_P1_H;

        }

        if (SMG_display_seg_tab[B6])

        {

            SMG_P2_H;

        }

        if (SMG_display_seg_tab[C6])

        {

            SMG_P3_H;

        }

        if (SMG_display_seg_tab[D6])

        {

            SMG_P4_H;

        }

        if (SMG_display_seg_tab[E6])

        {

            SMG_P5_H;

        }

        if (SMG_display_seg_tab[F6])

        {

            SMG_P6_H;

        }

        if (SMG_display_seg_tab[G6])

        {

            SMG_P7_H;

        }

        if (SMG_display_seg_tab[T2])

        {

            SMG_P8_H;

        }

        Scan_num = 1;

        break;

   

    default:

        Scan_num = 1;

        break;

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值