找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10451|回復(fù): 17
打印 上一主題 下一主題
收起左側(cè)

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

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

為啥會暗,有什么辦法調(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);
    }
}                                                                                                                                                                                                 


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:330198 發(fā)表于 2018-5-21 10:08 | 只看該作者
變暗是電流不夠
回復(fù)

使用道具 舉報

板凳
ID:277550 發(fā)表于 2018-5-21 14:32 | 只看該作者
共陰還是共陽的,公共腳上有限流吧,檢查檢查
回復(fù)

使用道具 舉報

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

使用道具 舉報

5#
ID:321742 發(fā)表于 2018-5-21 16:03 | 只看該作者

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

使用道具 舉報

6#
ID:274129 發(fā)表于 2018-5-21 16:32 | 只看該作者
是不是電阻接大了
回復(fù)

使用道具 舉報

7#
ID:331722 發(fā)表于 2018-5-21 21:36 | 只看該作者
我之前也遇到過,先檢查驅(qū)動IO口是否設(shè)置正確,硬件連接無誤的情況下,是不會出現(xiàn)暗的情況。
回復(fù)

使用道具 舉報

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

使用道具 舉報

9#
ID:335307 發(fā)表于 2018-5-23 00:05 來自手機 | 只看該作者
電阻太大,或者電壓不穩(wěn)
回復(fù)

使用道具 舉報

10#
ID:336243 發(fā)表于 2018-5-23 09:03 | 只看該作者
可以試著在單片機端口和數(shù)碼管之間加8550開關(guān)器件以增大輸入電流
回復(fù)

使用道具 舉報

11#
ID:336394 發(fā)表于 2018-5-23 12:27 | 只看該作者
占空比沒設(shè)對吧
回復(fù)

使用道具 舉報

12#
ID:336418 發(fā)表于 2018-5-23 13:08 | 只看該作者
可能是電阻過大,我自己焊單片機和數(shù)碼管或液晶管腳一般會連一個滑動變阻器
回復(fù)

使用道具 舉報

13#
ID:336428 發(fā)表于 2018-5-23 13:22 來自手機 | 只看該作者
延時程序是不是太長了
回復(fù)

使用道具 舉報

14#
ID:336443 發(fā)表于 2018-5-23 13:40 | 只看該作者
注意是數(shù)碼管電流不夠,減小限流電阻或者用個開漏輸出的管子驅(qū)動下
回復(fù)

使用道具 舉報

15#
ID:336415 發(fā)表于 2018-5-23 14:02 | 只看該作者
掃描占比!
回復(fù)

使用道具 舉報

16#
ID:336452 發(fā)表于 2018-5-23 14:30 | 只看該作者
連接數(shù)碼管的驅(qū)動芯片和單片機口連接,仿真時暗的為什么?
回復(fù)

使用道具 舉報

17#
ID:336510 發(fā)表于 2018-5-23 15:25 | 只看該作者
電流不夠
回復(fù)

使用道具 舉報

18#
ID:336642 發(fā)表于 2018-5-23 17:03 | 只看該作者
電流不夠,看一下供電電壓是不是不夠
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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