找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2631|回复: 9
收起左侧

为什么单片机数码管只在第7个上面亮,流水灯也只在一个上亮

[复制链接]
ID:277550 发表于 2019-11-19 09:04 | 显示全部楼层
void main(){
        init();

        while(1){
                if(p==40){
                        if(num<8){
                                switch(num){
                                case 0:p20=0;p21=0;p22=0;P0=table1[num];P1=0xfe;
                                case 1:p20=0;p21=0;p22=1;P0=table1[num];P1=0xfd;
                                case 2:p20=0;p21=1;p22=0;P0=table1[num];P1=0xfe;
                                case 3:p20=0;p21=1;p22=1;P0=table1[num];P1=0xfd;
                                case 4:p20=1;p21=0;p22=0;P0=table1[num];P1=0xfe;
                                case 5:p20=1;p21=0;p22=1;P0=table1[num];P1=0xfd;
                                case 6:p20=1;p21=1;p22=0;P0=table1[num];P1=0xfe;
                                case 7:p20=1;p21=1;p22=1;P0=table1[num];P1=0xfd;
                                }
                                num++;
                                delay(15);////////////////////////这一行,放在两个if里面。
                        }else{
                                num=0;
                        }
                        p=0;
                }
        }
}
回复

使用道具 举报

ID:277550 发表于 2019-11-19 09:13 | 显示全部楼层
函数改成这样

delay0(100);////////////////////////这一行,放在两个if里面。
回复

使用道具 举报

ID:277550 发表于 2019-11-19 09:57 | 显示全部楼层
图和程序,不对应的。 。。。。。。
回复

使用道具 举报

ID:277550 发表于 2019-11-19 14:27 | 显示全部楼层
switch
每个 case 后边,加break   


。。。。。。。。。逻辑也要调整一下的,自己慢慢 调整 试试
回复

使用道具 举报

ID:277550 发表于 2019-11-19 14:39 | 显示全部楼层
罢了,不卖关子了,贴


        while(1){
                switch(num){
                case 0:p20=0;p21=0;p22=0;P0=table1[q];P1=0xfe; break;
                case 1:p20=0;p21=0;p22=1;P0=table1[q];P1=0xfd; break;
                case 2:p20=0;p21=1;p22=0;P0=table1[q];P1=0xfb; break;
                case 3:p20=0;p21=1;p22=1;P0=table1[q];P1=0xf7; break;
                case 4:p20=1;p21=0;p22=0;P0=table1[q];P1=0xef; break;
                case 5:p20=1;p21=0;p22=1;P0=table1[q];P1=0xdf; break;
                case 6:p20=1;p21=1;p22=0;P0=table1[q];P1=0xbf; break;
                case 7:p20=1;p21=1;p22=1;P0=table1[q];P1=0x7f; break;
                }
                delay0(30);
               
                num++;
                if(num==8){
                        num=0;
                }
               
                if(p==20){
                        p=0;
                        q++;
                        if(q>9) q=0;
                }
        }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表