新手请大侠指教啊 数码管

2019-07-15 23:13发布

怎样让8个数码管这样亮:像在墙上钉订一样,从这边到那边一排,不同的数字以下哪个程序该怎么改啊,我实在弄不出来现在,求指教。
#include<at89x51.h>
#define uchar unsigned char
#define  uint unsigned int
sbit duan=P2^6;
sbit wei=P2^7;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uint);
void main()
{
        while(1)
        {
                wei=1;
                P0=0x7f;
                wei=0;
                duan=1;
                P0=table[7];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xbf;
                wei=0;
                duan=1;
                P0=table[6];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xdf;
                wei=0;
                duan=1;
                P0=table[5];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xef;
                wei=0;
                duan=1;
                P0=table[4];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xf7;
                wei=0;
                duan=1;
                P0=table[3];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xfb;
                wei=0;
                duan=1;
                P0=table[2];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xfd;
                wei=0;
                duan=1;
                P0=table[1];
                duan=0;
                delay(300);
                P0=0x00;
               
                wei=1;
                P0=0xfe;
                wei=0;
                duan=1;
                P0=table[0];
                duan=0;
                delay(300);
                P0=0x00;
               
        }
}
        void delay(uint xms)
        {
                uint i,j;
        for(i=xms;i>0;i--)
        for(j=110;j>0;j--);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
tangcui0613
1楼-- · 2019-07-16 15:26
唉,你又不说清楚问题具体表现在什么地方,我还得推理思考,唉
经过本侦探的推理,初步估计是你的延时太长。delay(300)改成delay(5);
wangcheng124516
2楼-- · 2019-07-16 18:05
最好把外围电路发上来,要不人家怎么看!还有你的程序太复杂了,用个子程序全搞定!
木nasa
3楼-- · 2019-07-16 20:07
 精彩回答 2  元偷偷看……
tangcui0613
4楼-- · 2019-07-17 00:11
你得告诉我,数码管是共阴的还是共阳的
木nasa
5楼-- · 2019-07-17 01:41
tangcui0613 发表于 2013-8-7 16:48
你得告诉我,数码管是共阴的还是共阳的

                                   共阴呐
tangcui0613
6楼-- · 2019-07-17 05:30
我上传附件包含仿真和程序

代码.rar 下载积分: 积分 -1 分

410 Bytes, 下载次数: 12, 下载积分: 积分 -1 分

共阴数码管8位.rar 下载积分: 积分 -1 分

19.23 KB, 下载次数: 10, 下载积分: 积分 -1 分

一周热门 更多>