找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

STC單片機動態(tài)顯示數碼管程序顯示亮度不一致原因是什么?

查看數: 2891 | 評論數: 19 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2024-1-17 16:41

正文摘要:

單片機源程序如下: #include "STC8H.h" #include "intrins.h" unsigned char NixieTable[]={ 0x03,/*0*/         0x9F,/*1*/        &nbs ...

回復

ID:111875 發(fā)表于 2024-2-11 14:55
電容加的少了吧
ID:1109793 發(fā)表于 2024-2-10 19:00
第50行挪到第68行后面試試
ID:849913 發(fā)表于 2024-2-9 22:45
第57行 P11=0;//P12=1;P13=1; P10=1; "//"為何要注釋掉這樣會導致P11和P10都是0,顯示會亂的
ID:384109 發(fā)表于 2024-1-22 11:10
原因估計是三個數碼管模塊是一起顯示的,做掃描顯示時是三個數碼管模塊單獨控制的,應該把三個數碼管模塊當作一個整體來考慮
ID:161164 發(fā)表于 2024-1-22 09:04
hjx5548 發(fā)表于 2024-1-21 21:47
找到原因了。非常感謝

不說一下原因是啥?
ID:1102070 發(fā)表于 2024-1-22 08:25
加電源,獨立供電。
ID:72649 發(fā)表于 2024-1-21 21:47
wulin 發(fā)表于 2024-1-18 15:38
STC實驗箱有好幾款,你參照的是哪款。最好把你制作PCB的原理圖貼出來,圖片中有兩處筆段只隱約顯示一半, ...

找到原因了。非常感謝
ID:213173 發(fā)表于 2024-1-18 15:38
hjx5548 發(fā)表于 2024-1-17 21:31
STC實驗箱的原理圖就是這樣

STC實驗箱有好幾款,你參照的是哪款。最好把你制作PCB的原理圖貼出來,圖片中有兩處筆段只隱約顯示一半,確實匪夷所思。

ID:192020 發(fā)表于 2024-1-18 10:01
hjx5548 發(fā)表于 2024-1-18 09:47
顯示邏輯應該怎么修改?

延時肯定是要去掉的了,可以把三個顯示函數放在同一個中斷,反正定時時間一樣,沒必要搞三個定時器。然后定義個全局變量來替代延時,每進一次中斷就+1,在中斷里判斷這個全局變量,判斷到比之前大1說明就延時1毫秒,用這個邏輯來替代之前用的延時函數,其他也沒什么了
ID:72649 發(fā)表于 2024-1-18 09:47
qq475878026 發(fā)表于 2024-1-18 09:23
可以看出都是數碼管最后一位比較亮,因為最后一位亮的時間最長,前一二位是亮2毫秒,最后一位是等所有程序 ...

顯示邏輯應該怎么修改?
ID:192020 發(fā)表于 2024-1-18 09:23
可以看出都是數碼管最后一位比較亮,因為最后一位亮的時間最長,前一二位是亮2毫秒,最后一位是等所有程序執(zhí)行一輪后才開始繼續(xù)亮,估計得亮十幾個毫秒。軟件需要改動,把延時去掉,顯示邏輯改一下
ID:161164 發(fā)表于 2024-1-18 09:21
hjx5548 發(fā)表于 2024-1-18 05:02
我不用定時器,把三個顯示放在主函數的大循環(huán)里面,也是這個情況。

消影順序問題
第1,2,3位數碼管的亮光時間都是2ms
但第4位數碼管的亮光時間都是2+6+6=14ms
另外兩組數碼管同上
你把關燈代碼放到延時后試試



另外
中斷里不要用延時!
中斷里不要用延時!中斷里不要用延時!
ID:72649 發(fā)表于 2024-1-18 05:02
lkc8210 發(fā)表于 2024-1-17 22:13
你定時1ms
但Led_adc耗時8ms
Led_On和Led_Off各耗時6ms

我不用定時器,把三個顯示放在主函數的大循環(huán)里面,也是這個情況。
ID:161164 發(fā)表于 2024-1-17 22:13
hjx5548 發(fā)表于 2024-1-17 20:54
void Timer0_init()  //1ms
{
        AUXR &= 0x7F;                        //定時器時鐘12T模式

你定時1ms
但Led_adc耗時8ms
Led_On和Led_Off各耗時6ms
????????
ID:72649 發(fā)表于 2024-1-17 21:31
wulin 發(fā)表于 2024-1-17 20:38
如果硬件沒問題數碼管亮度不一致通常是顯示函數中各數碼管點亮時間不均衡所致。從貼圖和代碼看,硬件和軟件 ...

STC實驗箱的原理圖就是這樣
ID:72649 發(fā)表于 2024-1-17 20:54
lkc8210 發(fā)表于 2024-1-17 17:17
Timer0_init();
        Timer2_init();
        Timer3_init();

void Timer0_init()  //1ms
{
        AUXR &= 0x7F;                        //定時器時鐘12T模式
        TMOD &= 0xF0;                        //設置定時器模式
                                TL0 = 0xCD;                                //設置定時初始值
                                TH0 = 0xD4;                                //設置定時初始值
        TF0 = 0;                                //清除TF0標志
        TR0 = 1;                                //定時器0開始計時
        ET0 = 1;      //開T0中斷
        EA=1;       
}

void Timer2_init()  //1ms
{
        AUXR &= 0xFB;                        //定時器時鐘12T模式
        T2L = 0x66;                                //設置定時初始值
        T2H = 0xFC;                                //設置定時初始值
        AUXR |= 0x10;                        //定時器2開始計時
    IE2 =  0x04;                                  //使能定時器中斷
    EA = 1;
}

void Timer3_init()  //1ms
{
        T4T3M &= 0xFD;                        //定時器時鐘12T模式
        T3L = 0x66;                                //設置定時初始值
        T3H = 0xFC;                                //設置定時初始值
        T4T3M |= 0x08;                        //定時器3開始計時                              
        IE2 = 0x20;         //使能定時器中斷
    EA = 1;
}
忘記貼上了
ID:213173 發(fā)表于 2024-1-17 20:38
如果硬件沒問題數碼管亮度不一致通常是顯示函數中各數碼管點亮時間不均衡所致。從貼圖和代碼看,硬件和軟件設計都不合理。STC8H的IO可以直接驅動數碼管,根本用不著加三極管放大。
ID:332444 發(fā)表于 2024-1-17 19:12
可能同消隱有些關聯(lián)
ID:161164 發(fā)表于 2024-1-17 17:17
        Timer0_init();
        Timer2_init();
        Timer3_init();
這三個函數呢?

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

Powered by 單片機教程網

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