標題: 這個單片機程序怎么不顯示數(shù)字? [打印本頁]

作者: shenqiwei    時間: 2022-8-31 00:14
標題: 這個單片機程序怎么不顯示數(shù)字?

2.png (14 KB, 下載次數(shù): 70)

2.png

1.png (89.05 KB, 下載次數(shù): 69)

1.png

3.png (36.16 KB, 下載次數(shù): 123)

3.png

4.png (15.08 KB, 下載次數(shù): 75)

4.png

作者: shenqiwei    時間: 2022-8-31 00:15
不知道什么問題,查不出來

作者: 名字不是重點    時間: 2022-8-31 06:33
本帖最后由 名字不是重點 于 2022-8-31 06:45 編輯

上一貼已說過了:
573的OE被接地了,沒有消隱,沒有消隱,沒有消隱。!
咋就不聽不做呢???
我?guī)湍阏{(diào)試好了,你可以直接用。

////打字太辛苦,畫圖更難受

#include <reg51.h>
#include <stdio.h>
#include <intrins.h>

sbit d1=P2^0;       //鎖存段碼
sbit d2=P2^1;      // 鎖存位選

unsigned  char dis_buf[8];  //顯示緩存
unsigned char dig;            //位選
unsigned code segout[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};    //0--9共陽段碼表

void disp_8_num(void); //顯示函數(shù)

void main(void)     //主程序
{
    unsigned char i;
    while (1)       //主循環(huán)
  {
  
    for(i=0;i<8;i++)  dis_buf=i; //緩存刷新:01234567
   
     disp_8_num();  //顯示一幀
    }
}

void disp_8_num()
//顯示函數(shù),顯示8個數(shù)字 {
      unsigned char i,j;   
  
     dig=0xfe;  //從第一位開始掃顯
      for (i=0;i<8;i++)  //共8個位的數(shù)碼管
      {
      
        P0=segout[dis_buf];   //送段碼
        d1=1;        
        d1=0;
     
       P0=dig;    //送位碼      
       d2=1;      
       d2=0;

       j=60;     //簡單延時,以穩(wěn)定顯示
       while(j--);

       P0=0xff;    //消隱位碼,段碼和位碼2選1或全選都可以
       d2=1;
       d2=0;
      
       P0=0x00;    //消隱段碼
       d1=1;
       d1=0;     
        
       dig= _crol_(dig,1); //準備下一位的位碼
        }
  }


作者: yzwzfyz    時間: 2022-8-31 08:29
走單步,自己一步步的調(diào)試,看看問題出在哪了,要學會自己調(diào)試程序。
作者: wulin    時間: 2022-8-31 08:32
shenqiwei 發(fā)表于 2022-8-31 00:15
不知道什么問題,查不出來

樓主抄書的,消隱代碼錯誤,按圖例改碼。



作者: xianfajushi    時間: 2022-8-31 09:28
用我的數(shù)碼管驅(qū)動絕對不會有任何問題存在,唯有段值陰陽區(qū)別,取反即可,看我帖子。




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