找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

做了一個8路搶答器,可是數(shù)碼管顯示亂碼,請大家?guī)兔纯?/h1>
查看數(shù): 4310 | 評論數(shù): 7 | 收藏 0

關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2018-7-22 15:22

正文摘要:

程序源碼 #include<reg51.h> #include<intrins.h> sbit smg1=P2^0;                //定義數(shù)碼管第一位 sbit smg2=P2^1;     &nbs ...

回復

ID:375003 發(fā)表于 2018-7-23 01:33
終于搞好了
增加
#define uchar unsigned char //¸Ä¶t′|
#define uint unsigned int
sbit smg4=P2^3;                //¶¨òåêyÂë1üμúèyλ
void delayms(uint x)  //¸Äèy′|         //Ñóê±oˉêy
{
uchar i;
while(x--)
{
  for(i=50;i>0;i--); //¸Äò»′|;
}
}
void Timer0_init()                        //¶¨ê±Æ÷03õê¼»ˉ
{
      js=0;  TMOD=0x01;                   //T0Îa¶¨ê±Æ÷·½ê½1
      TH0=0x4c;
          TL0=0x00;                        
      //TR0=1;//IT1=1;
          ET0=1;//EX1=1;
          EA=1;        
}
void timer0() interrupt 1 using 1        //¶¨ê±Æ÷0ÖD¶Ï·tÎñoˉêy
{
        TF0=0;
        TH0=0x4c;
        TL0=0x00;                                        //¸33õÖμ
        js++;
        if(js==15)
        {
                js=0;
          djs--;                                        //2úéú1sμÄμ1¼Æê±
        //led1=~led1;
        }
}

void djsxs()                                   //ÏÔê¾μ1¼Æê±oˉêy
{
          uchar shi,ge;
                shi=djs/10;
                ge=djs%10;
        // ½«μ1¼Æê±ê±¼ä·Ö3é¸ßμíλ
                smg1=0;  
                //delayms(3);        //ÏÔê¾ê®Î»êy×Ö
                P0=table[shi];
                smg3=1;
                delayms(3);                                 //ÏÔ꾸öλêy×Ö
                smg3=0;
                //delayms(3);
          P0=table[ge];
                smg4=1;
                delayms(3);
                smg4=0;
                smg2=0;
}
void djsxs22()                                 
{        
         P0=0xc0;
    smg1=1;
    delayms(3);
    smg1=0;                                        //μúò»Î»êyÂë1üÏÔê¾-
    smg2=1;
    delayms(3);                           //μúèyλêyÂë1üÏÔê¾-
    smg2=0;
                smg3=1;
                delayms(3);
                smg3=0;  
                smg4=1;
                delayms(3);
                smg4=0;         //μúËÄλêyÂë1üÏÔê¾-
}

void djsxs1(uchar aa)
{
        P0=table[aa];
    smg1=0;
    delayms(3);
    smg1=1;                                   //μúò»Î»êyÂë1üÏÔê¾1

}
//把程序中的void djsxs1()留著,
void djsxs2(),void djsxs3(),void djsxs4(),void djsxs5(),void djsxs6(),void djsxs7(),void djsxs8(),
子函數(shù)刪了
調用處這樣djsxs1(1);
調用djsxs2();處改成djsxs1(2);
調用djsxs3();處改成djsxs1(3);
直到8

122.PNG (35.64 KB, 下載次數(shù): 45)

122.PNG
ID:330538 發(fā)表于 2018-7-22 21:16

你也出現(xiàn)這種問題?、
ID:330538 發(fā)表于 2018-7-22 20:28
guangshi_wq 發(fā)表于 2018-7-22 17:30
不知道你弄好了沒有,用上面一個數(shù)組;
寫了個測試代碼放在主函數(shù)里,
int djs1=60;

是不是我畫板有問題
ID:330538 發(fā)表于 2018-7-22 20:26
guangshi_wq 發(fā)表于 2018-7-22 17:30
不知道你弄好了沒有,用上面一個數(shù)組;
寫了個測試代碼放在主函數(shù)里,
int djs1=60;

在開發(fā)板上可以顯示1,然后在那里就不行額
ID:330538 發(fā)表于 2018-7-22 20:14
guangshi_wq 發(fā)表于 2018-7-22 17:30
不知道你弄好了沒有,用上面一個數(shù)組;
寫了個測試代碼放在主函數(shù)里,
int djs1=60;

是插入我上面的代碼里嗎
ID:377510 發(fā)表于 2018-7-22 19:41
同求解
ID:375003 發(fā)表于 2018-7-22 17:30
不知道你弄好了沒有,用上面一個數(shù)組;
寫了個測試代碼放在主函數(shù)里,
int djs1=60;
Timer0_init();         //初始化定時器中斷
spk=1;                          //蜂鳴器不響
        djs=60;                //倒計時賦值
while(1)
{
        TR0=1;
        if(js)
                {
                        P0=table[js];
                        smg3=1;
                        smg1=1;
                        smg2=1;
                        js=0;//
          }
}

tset1.PNG (32.08 KB, 下載次數(shù): 42)

tset1.PNG

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

Powered by 單片機教程網

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