打印

应广8核单片机FPC886/MF520_02

[复制链接]
399|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
34af9uc|  楼主 | 2020-11-28 15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*************FPC886/MF520***************/
/***************8核心测试****************/
/**************6PWM+188LED***************/
/****************20201127****************/
/*************qq:774145445***************/
/*************快手:共同学习stm8**********/
/******************************************************************************/
//                          _______@________
//                     cl--|1 pa2     pa1 20|--ch
//                     bl--|2 pa3  p  pa0 19|--bh
//                     al--|3 pa4  f  pa7 18|--ah
//                     k1--|4 pa5  c  pa6 17|--led1
//                    _____|5 nc   8   nc 16|_____
//    烧录时与nc相连 |-----|6 gnd  8  vdd 15|-----| 烧录时与nc相连
//                     k2--|7 pb0  6  pb7 14|--led2
//                     k3--|8 pb1     pb6 13|--led3
//                     k4--|9 pb2     pb5 12|--led4
//                     k5--|10pb3_____pb4 11|--led5
/******************************************************************************/
//                          显示屏2353/188
//                            _2a_      ____
//                    正转| 2e   2b    |    |
//                        |  |    |    |    |
//                            -2f-      ----
//                    反转| 2e   2c    |    |
//                        |  |_2d_|    |____|
//                          @1 @2 @3 @4 @5
//                     ____________________________
//                    |   |led1|led2|led3|led4|led5|
//                    |_1_|_高_|_3A_|_3C_|_3E_|____|
//                    |_2_|_3B_|_高_|_2A_|_1B_|____|
//                    |_3_|_3D_|_2B_|_高_|_1A_|____|
//                    |_4_|_3F_|_2D_|_2C_|_高_|____|
//                    |_5_|_3G_|_2E_|_2F_|_2G_|_高_|
//共阳:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90//0x88,0x83,0xc6,0xa1,0x86,0x8e
//共阴:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f//0x77,0x7c,0x39,0x5e,0x79,0x71
/******************************************************************************/

#include        "extern.h"
led1                bit                pa.6;
led2                bit                pb.7;
led3                bit                pb.6;
led4                bit                pb.5;
led5                bit                pb.4;

k1                        bit                pa.5;
k2                        bit                pb.0;
k3                        bit                pb.1;
k4                        bit                pb.2;
k5                        bit                pb.3;
byte                xianshi_a1;                        //显示用0-99
byte                xianshi_a2;                        //显示用正反转,0/不显,1/正转,2/反转
byte                xianshi_c1;                        //查表十位
byte                xianshi_c2;                        //查表个位
/******************************************************************************/
void                xianshi();                //显示
void                xianshi_fj();        //显示分解
/******************************************************************************/
void        FPPA0 (void)
{
.ADJUST_IC        SYSCLK=IHRC/4                //        SYSCLK=IHRC/4

pmode                31;                        ///8/8/8/8/8/8/8/8带宽共享
fppen        =        0xFF;                //8核全开
//有8个核心可以分时全部运行,可以分别干8件事.
//8核真爽!
$                led1                out,low;
$                led2                out,low;
$                led3                out,low;
$                led4                out,low;
$                led5                out,low;

$                k1                        in,pull;
$                k2                        in,pull;
$                k3                        in,pull;
$                k4                        in,pull;
/******************************************************************************/
$                pwmgc                enable,updown,reset,pa2;                //控制寄存器
$                pwmgm                Protection_Enable,Protection_Inverse,IHRC,/16;
//PWMGC1                =0b1110_0000;                //pwmg控制寄存器1,7/1启用,65/11三相电机,4/0只读0,32/00pwm5低电位,10/00pwm4低电位
//PWMGC2                =0b0000_0000;                //pwmg控制寄存器2,76/00pwm3低电位,54/00pwm2低电位,32/00pwm1低电位,10/00pwm0低电位
//PWMCUBH                //pwm计数上限高位寄存器7-0/11:4
//PWMCUBL                //pwm计数上限低位寄存器7-5/3:1

//PWM0DTH                //pwm0占空比高位7-0/11:4
//PWM0DTL                //pwm0占空比低位7-4/3:0

//PWM1DTH                //pwm1占空比高位7-0/11:4
//PWM1DTL                //pwm1占空比低位7-4/3:0

//PWM2DTH                //pwm2占空比高位7-0/11:4
//PWM2DTL                //pwm2占空比低位7-4/3:0

//PWMDZ                        //pwm死区寄存器7-1/0-254

/******************************************************************************/

$        k1        out;
while(1)
{
k1                =1;
.delay        50000;
k1                =0;
.delay        50000;
}
}
/******************************************************************************/
void        FPPA1 (void)
{
while(1)
{

}
//        goto        $;
}
/******************************************************************************/
void        FPPA2 (void)
{
while(1)
{

}
//        goto        $;
}
/******************************************************************************/
void        FPPA3 (void)
{
while(1)
{

}
//        goto        $;
}
/******************************************************************************/
void        FPPA4 (void)
{
while (1)
{

}
//        goto        $;
}
/******************************************************************************/
void        FPPA5 (void)
{
while (1)
{

}

//        goto        $;
}
/******************************************************************************/
void        FPPA6 (void)
{
while(1)
{

}
//        goto        $;
}
/******************************************************************************///显示用0-99
void        FPPA7 (void)
{
xianshi_a1                =0;                        //显示用0-99
xianshi_a2                =0;                        //显示用正反转,0/不显,1/正转,2/反转
byte                        x_aa1;
x_aa1                        =0;

while(1)
{
x_aa1                ++;
if((x_aa1==1)||(x_aa1==25))
{
        xianshi_fj();                //显示分解
}

xianshi();                                //显示
if(x_aa1==50)
{
        x_aa1=0;
        xianshi_a1        ++;
        if(xianshi_a1>99)
        {
                xianshi_a1=0;
        }
}



}
//        goto        $;
}

/******************************************************************************
void        Interrupt (void)
{
        pushaf;

        if (Intrq.T16)
        {        //        T16 Trig
                //        User can add code
                Intrq.T16        =        0;
                //...
        }

        popaf;
}
/******************************************************************************/        //显示
void                xianshi()                //显示
{



/******************************************************************************/        //第一种
$                led1                out,high
$                led2                in;
$                led3                in;
$                led4                in;
$                led5                in;
//if(){}                                                                        //高
if(xianshi_c2.0){$        led2        out,low;}                //3a
if(xianshi_c2.2){$        led3        out,low;}                //3c
if(xianshi_c2.4){$        led4        out,low;}                //3e
//if(){}                                                                        //空
.delay        1000;
/******************************************************************************/        //第二种
$                led1                in;
$                led2                out,high
$                led3                in;
$                led4                in;
$                led5                in;
if(xianshi_c2.1){$        led1        out,low;}                //3b
//if(){}                                                                        //高
if(xianshi_c1.0){$        led3        out,low;}                //2a
//if(xianshi_a2==0){;}                                                //1b                //0/不显,1/正转,2/反转
if(xianshi_a2==2){$        led4        out,low;}                //1b反转        //0/不显,1/正转,2/反转
//if(){}                                                                        //空
.delay        1000;
/******************************************************************************/        //第三种
$                led1                in;
$                led2                in;
$                led3                out,high
$                led4                in;
$                led5                in;
if(xianshi_c2.3){$        led1        out,low;}                //3d
if(xianshi_c1.1){$        led2        out,low;}                //2b
//if(){}                                                                        //高
//if(xianshi_a2==0){;}                                                //1a                //0/不显,1/正转,2/反转
if(xianshi_a2==1){$        led4        out,low;}                //1a正转        //0/不显,1/正转,2/反转
//if(){}                                                                        //空
.delay        1000;
/******************************************************************************/        //第四种
$                led1                in;
$                led2                in;
$                led3                in;
$                led4                out,high
$                led5                in;
if(xianshi_c2.5){$        led1        out,low;}                //3f
if(xianshi_c1.3){$        led2        out,low;}                //2d
if(xianshi_c1.2){$        led3        out,low;}                //2c
//if(){}                                                                        //高
//if(){}                                                                        //空
.delay        1000;
/******************************************************************************/        //第五种
$                led1                in;
$                led2                in;
$                led3                in;
$                led4                in;
$                led5                out,high
if(xianshi_c2.6){$        led1        out,low;}                //3g
if(xianshi_c1.4){$        led2        out,low;}                //2e
if(xianshi_c1.5){$        led3        out,low;}                //2f
if(xianshi_c1.6){$        led4        out,low;}                //2g
//if(){}                                                                        //高
.delay        1000;

}

/******************************************************************************/        //显示分解
void                xianshi_fj()        //显示分解
{
//byte                xianshi_a1;                        //显示用0-99
//byte                xianshi_a2;                        //显示用正反转,0/不显,1/正转,2/反转
byte                xianshi_b1=0;                //个位
byte                xianshi_b2=0;                //十位
//byte                xianshi_c1=0;                //查表十位
//byte                xianshi_c2=0;                //查表个位
/******************************************************************************/        //计算出十位,个位
xianshi_b1        =xianshi_a1;
while(xianshi_b1>9)                        //分解出十位
{
        xianshi_b1                -=10;
        xianshi_b2                +=1;                //十位
}
//xianshi_b1                                        //个位
//xianshi_b2                                        //十位
/******************************************************************************/        //代替查表
//共阳:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90//0x88,0x83,0xc6,0xa1,0x86,0x8e
//共阴:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f//0x77,0x7c,0x39,0x5e,0x79,0x71//用这个
if(xianshi_b2        ==0)        {xianshi_c1        =0x3f;}                //十位
if(xianshi_b2        ==1)        {xianshi_c1        =0x06;}
if(xianshi_b2        ==2)        {xianshi_c1        =0x5b;}
if(xianshi_b2        ==3)        {xianshi_c1        =0x4f;}
if(xianshi_b2        ==4)        {xianshi_c1        =0x66;}
if(xianshi_b2        ==5)        {xianshi_c1        =0x6d;}
if(xianshi_b2        ==6)        {xianshi_c1        =0x7d;}
if(xianshi_b2        ==7)        {xianshi_c1        =0x07;}
if(xianshi_b2        ==8)        {xianshi_c1        =0x7f;}
if(xianshi_b2        ==9)        {xianshi_c1        =0x6f;}

if(xianshi_b1        ==0)        {xianshi_c2        =0x3f;}                //个位
if(xianshi_b1        ==1)        {xianshi_c2        =0x06;}
if(xianshi_b1        ==2)        {xianshi_c2        =0x5b;}
if(xianshi_b1        ==3)        {xianshi_c2        =0x4f;}
if(xianshi_b1        ==4)        {xianshi_c2        =0x66;}
if(xianshi_b1        ==5)        {xianshi_c2        =0x6d;}
if(xianshi_b1        ==6)        {xianshi_c2        =0x7d;}
if(xianshi_b1        ==7)        {xianshi_c2        =0x07;}
if(xianshi_b1        ==8)        {xianshi_c2        =0x7f;}
if(xianshi_b1        ==9)        {xianshi_c2        =0x6f;}
}
/******************************************************************************/

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

300

主题

457

帖子

60

粉丝