找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4515|回复: 10
收起左侧

三极管驱动数码管程序,动态扫描不对,显示不出123456

[复制链接]
ID:213277 发表于 2017-7-13 15:26 | 显示全部楼层 |阅读模式
初学者,请各位多多指教,程序也在下边,显示的三种情况如下:

FE8BA995EC4F56CBC05E97CD2CD493F7.jpg


#include<reg51.h>
#include<intrins.h>
#define duan P2
#define wei P3

void disp();
void delay1ms(unsigned char d);

unsigned char code duans[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF};   //段选
unsigned char code weis[]={0xfe,0xfd,0xfb,0xf7};                                  //位选
unsigned int buffer[4];                                                                  //
//unsigned int dian[3];                                                                   //   
unsigned int i;

void main()
{
        while(1)
        {       
        for(i=0;i<500;i++)
        {
            buffer[0]=duans[10];                                                          //  全灭
            buffer[1]=duans[10];
            buffer[2]=duans[10];
            buffer[3]=duans[10];
            disp();
        }
        for(i=0;i<500;i++)
        {
            buffer[0]=duans[8]&~0x80;                                                  // 显示8   
            buffer[1]=duans[8]&~0x80;
            buffer[2]=duans[8]&~0x80;
            buffer[3]=duans[8]&~0x80;
            disp();
        }
        for(i=0;i<500;i++)
        {
            buffer[0]=duans[0];                                                         
            buffer[1]=duans[1];
            buffer[2]=duans[2];
            buffer[3]=duans[3];
            disp();

       
     }
        for(i=0;i<500;i++)
        {
            buffer[0]=duans[5];                                                          
            buffer[1]=duans[6];
            buffer[2]=duans[7];
            buffer[3]=duans[8];
            disp();
        }
        }
}


void disp()
{
        unsigned int i;

        for(i=0;i<4;i++)
        {       
                P3=weis;
                P2=buffer;               
                delay1ms(1);
        }
}


void delay1ms(unsigned char d)   
{
    unsigned char a,b,c;
    for(c=1*d;c>0;c--)                                                                //  ?   
        for(b=142;b>0;b--)
            for(a=2;a>0;a--);
}

求大神!!!!!




BAE60CA7DF9F03DD22E309A425843954.jpg

全灭

全灭

评分

参与人数 1黑币 +5 收起 理由
6ruirui + 5 赞一个!

查看全部评分

回复

使用道具 举报

ID:123289 发表于 2017-7-14 00:51 | 显示全部楼层
先弄清显示原理吧。
回复

使用道具 举报

ID:213173 发表于 2017-7-14 06:55 | 显示全部楼层
先搞清楚数码管是共阳还是共阴,你程序中用的是共阳数组,共阴数组是其反码。
回复

使用道具 举报

ID:151348 发表于 2017-7-14 17:27 | 显示全部楼层
先检查你的数码管引脚连接和段选、位选是否匹配
回复

使用道具 举报

ID:213277 发表于 2017-8-2 18:31 | 显示全部楼层
wulin 发表于 2017-7-14 06:55
先搞清楚数码管是共阳还是共阴,你程序中用的是共阳数组,共阴数组是其反码。

数码管共阳的
回复

使用道具 举报

ID:198388 发表于 2017-8-2 19:11 | 显示全部楼层
挺好的
回复

使用道具 举报

ID:224203 发表于 2017-8-2 20:18 | 显示全部楼层
检查下接线,要不先简单测试看看
回复

使用道具 举报

ID:149565 发表于 2017-8-2 20:37 | 显示全部楼层
先写驱动层,再写应用层代码。
回复

使用道具 举报

ID:111634 发表于 2017-8-3 12:33 | 显示全部楼层
本帖最后由 zl2168 于 2017-8-3 12:34 编辑

实例56  PNP晶体管选通3位共阳LED数码管动态显示
实例56 PNP晶体管选通3位LED动态显示.rar (47.41 KB, 下载次数: 26)
回复

使用道具 举报

ID:162972 发表于 2017-8-3 13:53 | 显示全部楼层
动态扫描原理你先看看,实在不行可以加我QQ2856833259,无偿辅助您完成显示
回复

使用道具 举报

ID:213277 发表于 2017-8-4 08:54 | 显示全部楼层
zl2168 发表于 2017-8-3 12:33
实例56  PNP晶体管选通3位共阳LED数码管动态显示

好的,谢谢帮助
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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