找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5517|回復: 10
收起左側

三極管驅動數(shù)碼管程序,動態(tài)掃描不對,顯示不出123456

[復制鏈接]
ID:213277 發(fā)表于 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

全滅

全滅

評分

參與人數(shù) 1黑幣 +5 收起 理由
6ruirui + 5 贊一個!

查看全部評分

回復

使用道具 舉報

ID:123289 發(fā)表于 2017-7-14 00:51 | 顯示全部樓層
先弄清顯示原理吧。
回復

使用道具 舉報

ID:213173 發(fā)表于 2017-7-14 06:55 | 顯示全部樓層
先搞清楚數(shù)碼管是共陽還是共陰,你程序中用的是共陽數(shù)組,共陰數(shù)組是其反碼。
回復

使用道具 舉報

ID:151348 發(fā)表于 2017-7-14 17:27 | 顯示全部樓層
先檢查你的數(shù)碼管引腳連接和段選、位選是否匹配
回復

使用道具 舉報

ID:213277 發(fā)表于 2017-8-2 18:31 | 顯示全部樓層
wulin 發(fā)表于 2017-7-14 06:55
先搞清楚數(shù)碼管是共陽還是共陰,你程序中用的是共陽數(shù)組,共陰數(shù)組是其反碼。

數(shù)碼管共陽的
回復

使用道具 舉報

ID:198388 發(fā)表于 2017-8-2 19:11 | 顯示全部樓層
挺好的
回復

使用道具 舉報

ID:224203 發(fā)表于 2017-8-2 20:18 | 顯示全部樓層
檢查下接線,要不先簡單測試看看
回復

使用道具 舉報

ID:149565 發(fā)表于 2017-8-2 20:37 | 顯示全部樓層
先寫驅動層,再寫應用層代碼。
回復

使用道具 舉報

ID:111634 發(fā)表于 2017-8-3 12:33 | 顯示全部樓層
本帖最后由 zl2168 于 2017-8-3 12:34 編輯

實例56  PNP晶體管選通3位共陽LED數(shù)碼管動態(tài)顯示
實例56 PNP晶體管選通3位LED動態(tài)顯示.rar (47.41 KB, 下載次數(shù): 26)
pnp.jpg
Proteus仿真一下,確認有效。以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1,內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。書中電路和程序設計有詳細說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。
回復

使用道具 舉報

ID:162972 發(fā)表于 2017-8-3 13:53 | 顯示全部樓層
動態(tài)掃描原理你先看看,實在不行可以加我QQ2856833259,無償輔助您完成顯示
回復

使用道具 舉報

ID:213277 發(fā)表于 2017-8-4 08:54 | 顯示全部樓層
zl2168 發(fā)表于 2017-8-3 12:33
實例56  PNP晶體管選通3位共陽LED數(shù)碼管動態(tài)顯示

好的,謝謝幫助
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表