打印

普中单片机学习动态数码管

[复制链接]
1283|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
忽而热|  楼主 | 2022-6-17 16:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大佬,我想动态数码管对应位由0到7,再由7到0,一直循环,可是只能循环一次,这是那里的问题呢?void smg_display(void)
{
        u8 i=0;
       
        for(i=0;i<8;i++)
        {
                switch(i)
                {
                        case 0: LSC=1;LSB=1;LSA=1;break;
                        case 1: LSC=1;LSB=1;LSA=0;break;
                        case 2: LSC=1;LSB=0;LSA=1;break;
                        case 3: LSC=1;LSB=0;LSA=0;break;
                        case 4: LSC=0;LSB=1;LSA=1;break;
                        case 5: LSC=0;LSB=1;LSA=0;break;
                        case 6: LSC=0;LSB=0;LSA=1;break;
                        case 7: LSC=0;LSB=0;LSA=0;break;
}

SMG_A_DP_PORT=gsmg_code[i];
delay_10us(100000);
SMG_A_DP_PORT=0X00;
}
for(i=7;i>=0;i--)//·´ÏòÊä³öfor(i=7;i>=0;i--)
        {
                switch(i)//λѡ
                {
                        case 0: LSC=1;LSB=1;LSA=1;break;
                        case 1: LSC=1;LSB=1;LSA=0;break;
                        case 2: LSC=1;LSB=0;LSA=1;break;
                        case 3: LSC=1;LSB=0;LSA=0;break;
                        case 4: LSC=0;LSB=1;LSA=1;break;
                        case 5: LSC=0;LSB=1;LSA=0;break;
                        case 6: LSC=0;LSB=0;LSA=1;break;
                        case 7: LSC=0;LSB=0;LSA=0;break;
}

SMG_A_DP_PORT=gsmg_code[i];
delay_10us(100000);
SMG_A_DP_PORT=0X00;
}
}
void main()
{
        SMG_A_DP_PORT=gsmg_code[0];
    while(1)
        {
                smg_display();
        }
}



使用特权

评论回复

相关帖子

沙发
ayb_ice| | 2022-6-23 13:23 | 只看该作者

普中单片机学习动态数码管

{
    u8 i=0;

    for(i=0;i<8;i++)
    {
        switch(i)
        {
            case 0: LSC=1;LSB=1;LSA=1;break;
            case 1: LSC=1;LSB=1;LSA=0;break;
            case 2: LSC=1;LSB=0;LSA=1;break;
            case 3: LSC=1;LSB=0;LSA=0;break;
            case 4: LSC=0;LSB=1;LSA=1;break;
            case 5: LSC=0;LSB=1;LSA=0;break;
            case 6: LSC=0;LSB=0;LSA=1;break;
            case 7: LSC=0;LSB=0;LSA=0;break;
        }

        SMG_A_DP_PORT=gsmg_code[i];
        delay_10us(100000);
        SMG_A_DP_PORT=0X00;
    }

    for(i=0;i<8;i++)
    {
        switch(7-i)//λѡ
        {
            case 0: LSC=1;LSB=1;LSA=1;break;
            case 1: LSC=1;LSB=1;LSA=0;break;
            case 2: LSC=1;LSB=0;LSA=1;break;
            case 3: LSC=1;LSB=0;LSA=0;break;
            case 4: LSC=0;LSB=1;LSA=1;break;
            case 5: LSC=0;LSB=1;LSA=0;break;
            case 6: LSC=0;LSB=0;LSA=1;break;
            case 7: LSC=0;LSB=0;LSA=0;break;
        }

        SMG_A_DP_PORT=gsmg_code[7-i];
        delay_10us(100000);
        SMG_A_DP_PORT=0X00;
    }
}

void main()
{
    SMG_A_DP_PORT=gsmg_code[0];
    while(1)
    {
        smg_display();
    }
}

使用特权

评论回复
板凳
杨凯瑞| | 2022-6-24 13:54 | 只看该作者
我猜测是 for(i=7;i>=0;i--)这里出现了问题。因为这个变量i类型是u8,也就是unsigned char类型的,它的取值范围是0~255。在for(i=7;i>=0;i--)这个循环里,当i==0时,条件满足,继续执行下面的程序,执行i--;此时i的值变成255了,也满足i>=0这个条件,继续循环。。。。

使用特权

评论回复
地板
天意无罪| | 2022-6-30 18:04 | 只看该作者
这个名字好熟悉,我记得大学时买的第一款51单片机开发板就是普中科技的,因为看上了它的盒子,哈哈哈。

使用特权

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

本版积分规则

1

主题

1

帖子

0

粉丝