標題: 三極管驅(qū)動數(shù)碼管程序,動態(tài)掃描不對,顯示不出123456 [打印本頁]

作者: 不必@執(zhí)著    時間: 2017-7-13 15:26
標題: 三極管驅(qū)動數(shù)碼管程序,動態(tài)掃描不對,顯示不出123456
初學者,請各位多多指教,程序也在下邊,顯示的三種情況如下:




#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 (63.33 KB, 下載次數(shù): 65)

BAE60CA7DF9F03DD22E309A425843954.jpg

EA1FCD8724AC565BEBA3AD76B8F113CA.jpg (61.47 KB, 下載次數(shù): 68)

全滅

全滅

作者: yzwzfyz    時間: 2017-7-14 00:51
先弄清顯示原理吧。
作者: wulin    時間: 2017-7-14 06:55
先搞清楚數(shù)碼管是共陽還是共陰,你程序中用的是共陽數(shù)組,共陰數(shù)組是其反碼。
作者: imxuheng    時間: 2017-7-14 17:27
先檢查你的數(shù)碼管引腳連接和段選、位選是否匹配
作者: 不必@執(zhí)著    時間: 2017-8-2 18:31
wulin 發(fā)表于 2017-7-14 06:55
先搞清楚數(shù)碼管是共陽還是共陰,你程序中用的是共陽數(shù)組,共陰數(shù)組是其反碼。

數(shù)碼管共陽的

作者: 6ruirui    時間: 2017-8-2 19:11
挺好的
作者: brucedii    時間: 2017-8-2 20:18
檢查下接線,要不先簡單測試看看
作者: 鐘榮春    時間: 2017-8-2 20:37
先寫驅(qū)動層,再寫應用層代碼。
作者: zl2168    時間: 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)

Proteus仿真一下,確認有效。以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內(nèi)有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。書中電路和程序設計有詳細說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網(wǎng)站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網(wǎng)上書店打折購買。

作者: bgy    時間: 2017-8-3 13:53
動態(tài)掃描原理你先看看,實在不行可以加我QQ2856833259,無償輔助您完成顯示
作者: 不必@執(zhí)著    時間: 2017-8-4 08:54
zl2168 發(fā)表于 2017-8-3 12:33
實例56  PNP晶體管選通3位共陽LED數(shù)碼管動態(tài)顯示

好的,謝謝幫助




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1