找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10651|回復(fù): 17
收起左側(cè)

單片機(jī)數(shù)碼管暗的原因

  [復(fù)制鏈接]
ID:321742 發(fā)表于 2018-5-21 09:15 | 顯示全部樓層 |閱讀模式
用的74HC164D:串行轉(zhuǎn)并行,移位寄存器功能。
以下是代碼。這代碼在別人上的板子上能正常顯示,在我的板子上,4個(gè)數(shù)碼管都很暗,但是燒寫好的程序就沒問題,我沒有寫好的程序,以下代碼如果只顯示1個(gè)數(shù)碼管就亮,兩個(gè)就有點(diǎn)暗,4個(gè)時(shí)候就很暗了。延時(shí)調(diào)小也沒有明顯的變化。
D1-D4數(shù)碼管COM1-4,shift_data數(shù)據(jù)發(fā)送端,ck時(shí)鐘端

為啥會暗,有什么辦法調(diào)高亮度嗎?

sbit shift_data  = P2^3;
sbit ck             = P1^7;
sbit D1            = P3^2;
sbit D2            = P3^3;
sbit D3            = P3^4;
sbit D4            = P2^5;


void delay12us(uint Multiple )
{
   while(Multiple--)                        //每步為3us
   {         
        _nop_();
        _nop_();
    }       
}


void numerical_codes_tube(uchar wait_shift_data,uchar number)            //數(shù)碼管
{
    uchar shiftsum;
    for(shiftsum=0;shiftsum<8;shiftsum++)
    {
        if(wait_shift_data&0x0)   
            shift_data=1;
        else                           
            shift_data=0;
        ck=0;
        ck=1;
        _nop_();
        wait_shift_data=_cror_(wait_shift_data,1);
    }
    switch(number)
    {
        case 0:D1=1;break;
        case 1:D2=1;break;
        case 2:D3=1;break;
        case 3:D4=1;break;
    }
    DELAY_Ms(4);
    D1=D2=D3=D4=0;
}

void display_four_bit_code(uchar iteam_code,uchar iteam_code1,uchar iteam_code2,uchar iteam_code3)
{
    numerical_codes_tube(iteam_code,0);
    numerical_codes_tube(iteam_code1,1);
    numerical_codes_tube(iteam_code2,2);
    numerical_codes_tube(iteam_code3,3);
}

void main()
{
    while(1)
    {
        display_four_bit_code(0x3c,0x3c,0x3c,0x3c);
    }
}                                                                                                                                                                                                 


回復(fù)

使用道具 舉報(bào)

ID:330198 發(fā)表于 2018-5-21 10:08 | 顯示全部樓層
變暗是電流不夠
回復(fù)

使用道具 舉報(bào)

ID:277550 發(fā)表于 2018-5-21 14:32 | 顯示全部樓層
共陰還是共陽的,公共腳上有限流吧,檢查檢查
回復(fù)

使用道具 舉報(bào)

ID:164602 發(fā)表于 2018-5-21 16:00 | 顯示全部樓層
多個(gè)數(shù)碼管顯示,是掃描法,你說的現(xiàn)象,就是每次一個(gè)數(shù)碼管亮的時(shí)間不夠。在程序快速的執(zhí)行中,數(shù)碼管的顯示,成了類似PWM波的情況,所以,數(shù)碼管越多,每個(gè)分的占空比越小。
解決辦法,是在你的一個(gè)數(shù)碼管顯示程序中,加上適當(dāng)?shù)难訒r(shí),這個(gè)要自己試,延時(shí)太長,數(shù)碼管會閃爍,延時(shí)太短,就會變暗。
回復(fù)

使用道具 舉報(bào)

ID:321742 發(fā)表于 2018-5-21 16:03 | 顯示全部樓層

解決了,我也想到是電流不夠的。 IO口本來是雙向口的,我強(qiáng)設(shè)置成推挽輸出就搞定了。
回復(fù)

使用道具 舉報(bào)

ID:274129 發(fā)表于 2018-5-21 16:32 | 顯示全部樓層
是不是電阻接大了
回復(fù)

使用道具 舉報(bào)

ID:331722 發(fā)表于 2018-5-21 21:36 | 顯示全部樓層
我之前也遇到過,先檢查驅(qū)動(dòng)IO口是否設(shè)置正確,硬件連接無誤的情況下,是不會出現(xiàn)暗的情況。
回復(fù)

使用道具 舉報(bào)

ID:335355 發(fā)表于 2018-5-21 23:28 | 顯示全部樓層
看下是不是管子的電壓和輸出的電壓不匹配?一般LED 1.8v 20mA就已經(jīng)很亮了
回復(fù)

使用道具 舉報(bào)

ID:335307 發(fā)表于 2018-5-23 00:05 來自觸屏版 | 顯示全部樓層
電阻太大,或者電壓不穩(wěn)
回復(fù)

使用道具 舉報(bào)

ID:336243 發(fā)表于 2018-5-23 09:03 | 顯示全部樓層
可以試著在單片機(jī)端口和數(shù)碼管之間加8550開關(guān)器件以增大輸入電流
回復(fù)

使用道具 舉報(bào)

ID:336394 發(fā)表于 2018-5-23 12:27 | 顯示全部樓層
占空比沒設(shè)對吧
回復(fù)

使用道具 舉報(bào)

ID:336418 發(fā)表于 2018-5-23 13:08 | 顯示全部樓層
可能是電阻過大,我自己焊單片機(jī)和數(shù)碼管或液晶管腳一般會連一個(gè)滑動(dòng)變阻器
回復(fù)

使用道具 舉報(bào)

ID:336428 發(fā)表于 2018-5-23 13:22 來自觸屏版 | 顯示全部樓層
延時(shí)程序是不是太長了
回復(fù)

使用道具 舉報(bào)

ID:336443 發(fā)表于 2018-5-23 13:40 | 顯示全部樓層
注意是數(shù)碼管電流不夠,減小限流電阻或者用個(gè)開漏輸出的管子驅(qū)動(dòng)下
回復(fù)

使用道具 舉報(bào)

ID:336415 發(fā)表于 2018-5-23 14:02 | 顯示全部樓層
掃描占比!
回復(fù)

使用道具 舉報(bào)

ID:336452 發(fā)表于 2018-5-23 14:30 | 顯示全部樓層
連接數(shù)碼管的驅(qū)動(dòng)芯片和單片機(jī)口連接,仿真時(shí)暗的為什么?
回復(fù)

使用道具 舉報(bào)

ID:336510 發(fā)表于 2018-5-23 15:25 | 顯示全部樓層
電流不夠
回復(fù)

使用道具 舉報(bào)

ID:336642 發(fā)表于 2018-5-23 17:03 | 顯示全部樓層
電流不夠,看一下供電電壓是不是不夠
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表