久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)四位動態(tài)數(shù)碼管顯示怎么只能顯示最后一位,其它三位沒有顯示?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:72649 發(fā)表于 2024-1-16 13:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "STC8H.h"
#include "intrins.h"

unsigned char NixieTable[]={ 0x03,/*0*/
        0x9F,/*1*/
        0x25,/*2*/
        0x0D,/*3*/
        0x99,/*4*/
        0x49,/*5*/
        0x41,/*6*/
        0x1F,/*7*/
        0x01,/*8*/
        0x09,/*9*/};
        
void Delay1ms()                //@11.0592MHz
{
        unsigned char i, j;

        i = 15;
        j = 90;
        do
        {
                while (--j);
        } while (--i);
}

void DelayXms(unsigned int x) //@11.0592MHz
{
        while (--x)
        {
   Delay1ms();
         }
}

void Led_Code(unsigned long date) //顯示函數(shù)
{        
        unsigned int c,d,e,f;
        

          c=date/1000%10;                        //求千位
          d=date/100%10;                        //求百位
          e=date/10%10;                                  //求十位
          f=date%10;                                          //求個位
        

        
          P10=1;P11=1;P12=1;P13=1;  
             P2=NixieTable[c];//千
          P10=0;P11=1;P12=1;P13=1;
          DelayXms(1);
               
          P10=1;P11=1;P12=1;P13=1;  
      P2=NixieTable[d];//百
          P10=1;P11=0;P12=1;P13=1;
          DelayXms(1);
               
                P10=1;P11=1;P12=1;P13=1;  
      P2=NixieTable[e];//十
          P10=1;P11=1;P12=0;P13=1;
          DelayXms(1);
               
                P10=1;P11=1;P12=1;P13=1;  
      P2=NixieTable[f];//個
          P10=1;P11=1;P12=1;P13=0;
          DelayXms(1);


}

void main()
{
    P1M0 = 0x3f; P1M1 = 0xc0;
    P2M0 = 0xff; P2M1 = 0x00;
        while (1)
        {
                Led_Code(1234) ;
        }

}

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

使用道具 舉報

沙發(fā)
ID:226055 發(fā)表于 2024-1-16 14:21 | 只看該作者
    1、電路圖沒有給出來,不好推測你的程序與硬件的控制方式是否一致。
    2、建議你可以把每一位顯示之間的延時加長,看看是不是4位都可以顯示。目前是1ms,加大到1s。
回復(fù)

使用道具 舉報

板凳
ID:277550 發(fā)表于 2024-1-16 14:23 | 只看該作者
掃描方式,每一位的延時多一點(diǎn)時間,因為眼睛不夠快的

回復(fù)

使用道具 舉報

地板
ID:72649 發(fā)表于 2024-1-16 15:16 來自觸屏版 | 只看該作者
cocolala 發(fā)表于 2024-1-16 14:21
1、電路圖沒有給出來,不好推測你的程序與硬件的控制方式是否一致。
    2、建議你可以把每一位顯示之 ...

P10P11P12P13位選,P27-0對應(yīng)a-h,共陽數(shù)碼管
回復(fù)

使用道具 舉報

5#
ID:1057978 發(fā)表于 2024-1-16 15:27 | 只看該作者
每顯示一個數(shù)字后就執(zhí)行P10=1;P11=1;P12=1;P13=1;  取消他的顯示了,連視覺暫留的機(jī)會都不給,理論上只能看到一個數(shù)字。
你把P10=1;P11=1;P12=1;P13=1;  這句扔循環(huán)外面去
回復(fù)

使用道具 舉報

6#
ID:1057978 發(fā)表于 2024-1-16 15:28 | 只看該作者
另外這種涉及多段顯示的你要一個一個測試,都測試沒問題顯示正常了,再多個顯示,你咋知道某個數(shù)碼管是不是壞的
回復(fù)

使用道具 舉報

7#
ID:72649 發(fā)表于 2024-1-16 16:04 | 只看該作者
wangxiangtan 發(fā)表于 2024-1-16 15:28
另外這種涉及多段顯示的你要一個一個測試,都測試沒問題顯示正常了,再多個顯示,你咋知道某個數(shù)碼管是不是 ...

如果100ms延時,每個度都可以顯示
回復(fù)

使用道具 舉報

8#
ID:213173 發(fā)表于 2024-1-16 21:08 | 只看該作者
hjx5548 發(fā)表于 2024-1-16 15:16
P10P11P12P13位選,P27-0對應(yīng)a-h,共陽數(shù)碼管

#include "STC8H.h"
#include "intrins.h"

unsigned char NixieTable[]={ 0x03,/*0*/
        0x9F,/*1*/
        0x25,/*2*/
        0x0D,/*3*/
        0x99,/*4*/
        0x49,/*5*/
        0x41,/*6*/
        0x1F,/*7*/
        0x01,/*8*/
        0x09,/*9*/};
        
void Delay1ms()                //@11.0592MHz
{
        unsigned char i, j;
        i = 15;
        j = 90;
        do
        {
                while (--j);
        } while (--i);
}

void Led_Code(unsigned int date) //顯示函數(shù)
{        
        static unsigned  i;
        unsigned char a[4];
        a[0]=date/1000%10;
        a[1]=date/100%10;
        a[2]=date/10%10;
        a[3]=date%10;
        P2=0xff;
        P1=0x01<<i;
        P2=NixieTable[a[i ]];
        i=++i%4;
}

void main()
{
        P1M0 = 0x0f; P1M1 = 0x00;
        P2M0 = 0xff; P2M1 = 0x00;
        while (1)
        {
                Led_Code(1234);
                Delay1ms();
        }
}
回復(fù)

使用道具 舉報

9#
ID:427868 發(fā)表于 2024-1-17 08:13 | 只看該作者
是因為你只讓P10位顯示,P1-3位不顯示,且是P10位輪流顯示4位數(shù)。
回復(fù)

使用道具 舉報

10#
ID:482001 發(fā)表于 2024-1-17 16:21 | 只看該作者
c=date/1000%10;                        //求千位
          d=date/100%10;                        //求百位
          e=date/10%10;                                  //求十位
          f=date%10;                                          //求個位
把這部分放到main的while循環(huán)外面
P10=1;P11=1;P12=1;P13=1;  
             P2=NixieTable[c];//千
          P10=0;P11=1;P12=1;P13=1;
          DelayXms(1);
               
          P10=1;P11=1;P12=1;P13=1;  
      P2=NixieTable[d];//百
          P10=1;P11=0;P12=1;P13=1;
          DelayXms(1);
               
                P10=1;P11=1;P12=1;P13=1;  
      P2=NixieTable[e];//十
          P10=1;P11=1;P12=0;P13=1;
          DelayXms(1);
               
                P10=1;P11=1;P12=1;P13=1;  
      P2=NixieTable[f];//個
          P10=1;P11=1;P12=1;P13=0;
          DelayXms(1);
這部分放到while循環(huán)里面試試呢?
回復(fù)

使用道具 舉報

11#
ID:72649 發(fā)表于 2024-1-20 09:52 | 只看該作者
wangxiangtan 發(fā)表于 2024-1-16 15:28
另外這種涉及多段顯示的你要一個一個測試,都測試沒問題顯示正常了,再多個顯示,你咋知道某個數(shù)碼管是不是 ...

1S顯示一次數(shù)碼管顯示數(shù)字都正常的
回復(fù)

使用道具 舉報

12#
ID:72649 發(fā)表于 2024-1-20 09:58 | 只看該作者
葉雨飛飛 發(fā)表于 2024-1-17 16:21
c=date/1000%10;                        //求千位
          d=date/100%10;                        // ...

循環(huán)里面還有程序,放進(jìn)去了,速度跟不上去。
回復(fù)

使用道具 舉報

13#
ID:1080331 發(fā)表于 2024-1-20 11:03 | 只看該作者
根據(jù)你提供的代碼,你的單片機(jī)代碼只會顯示最后一位數(shù)碼管的數(shù)字,而其他三位數(shù)碼管沒有顯示。這是因為在顯示函數(shù) Led_Code() 中,每次都會將四位數(shù)碼管的控制引腳 P10、P11、P12、P13 都設(shè)置為高電平(1),然后再依次設(shè)置相應(yīng)的數(shù)碼管顯示內(nèi)容。  然而,在你的代碼中,每次循環(huán)中只調(diào)用了一次 Led_Code(1234),并且沒有等待一段時間再進(jìn)行下一次調(diào)用。因此,程序在每次循環(huán)中只有很短暫的時間來顯示數(shù)碼管,而且由于控制引腳被設(shè)置為高電平,其他三位數(shù)碼管無法正常顯示。  為了解決這個問題,你可以在每次調(diào)用 Led_Code() 函數(shù)之間添加一定的延時時間,以使得每個數(shù)碼管都能夠顯示出來。例如,你可以添加一個適當(dāng)?shù)难訒r函數(shù) DelayXms() 在每次調(diào)用 Led_Code() 后,以便給數(shù)碼管足夠的時間來顯示數(shù)字。你可以根據(jù)需要調(diào)整延時時間,確保數(shù)碼管能夠正常顯示。
回復(fù)

使用道具 舉報

14#
ID:72649 發(fā)表于 2024-1-21 21:47 | 只看該作者
597329015 發(fā)表于 2024-1-20 11:03
根據(jù)你提供的代碼,你的單片機(jī)代碼只會顯示最后一位數(shù)碼管的數(shù)字,而其他三位數(shù)碼管沒有顯示。這是因為在顯 ...

原因找到了,非常感謝
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久99视频免费观看 | 一区二区三区国产 | 91在线看片| 天天操夜夜操 | 91久久久精品国产一区二区蜜臀 | 天天插天天操 | 国产在线精品一区二区三区 | 日韩毛片视频 | 成人av播放 | 国产精品电影在线观看 | 中文字幕精品一区久久久久 | 给我免费的视频在线观看 | 国产96在线 | 91av精品| 天天操夜夜艹 | 一区二区三区精品视频 | 欧美国产日韩在线 | xx视频在线| 日本高清aⅴ毛片免费 | 久久久精品视频免费看 | 久久国产日韩 | 日韩欧美三级电影在线观看 | 国产成人精品一区二区 | 久国久产久精永久网页 | 一区免费观看 | 久久精品视频免费观看 | 密室大逃脱第六季大神版在线观看 | 婷婷久久综合 | 伊人久久麻豆 | 无码日韩精品一区二区免费 | 成人免费观看视频 | 综合网在线 | 久草网站| 欧美日一区二区 | 中文字幕一区二区三区四区 | 男女羞羞视频在线看 | 国产精品18久久久久久白浆动漫 | 色av一区二区三区 | 四虎最新视频 | 久久久久久蜜桃一区二区 | 97色在线观看免费视频 |