找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)代碼不能實(shí)現(xiàn)前四個(gè)數(shù)碼管一亮一滅最后兩個(gè)常亮

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:513252 發(fā)表于 2019-4-21 14:35 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
100黑幣
51單片機(jī)六位數(shù)碼管的加法和減法,0與1是數(shù)字,2是+,3是-。動(dòng)態(tài)顯示。例1+2=03結(jié)..滅

zzj_led_16.zip

14.15 KB, 下載次數(shù): 6

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

使用道具 舉報(bào)

沙發(fā)
ID:513252 發(fā)表于 2019-4-21 14:46 | 只看該作者
                        P2=TABLE[19]>>8;}}

              if(!mum2)
            {
           Delayms(10);       
            if(!mum2)
                        P3=4;
            P0=TABLE[j];
                        P2=TABLE[j]>>8;
            j=++j%16;
            while(!mum2){Delayms(300); P0=TABLE[19];
                        P2=TABLE[19]>>8;};
                        Delayms(10);

                  P3=1;
                        if(i%16-1>-1)                                                                        //diyigeshu
                        {P0=TABLE[i%16-1];
                        P2=TABLE[i%16-1]>>8;
            Delayms(300); P0=TABLE[19];
                        P2=TABLE[19]>>8;}
                         else        {P0=TABLE[15];
                        P2=TABLE[15]>>8;
            Delayms(300); P0=TABLE[19];
                        P2=TABLE[19]>>8; }
                       
                        P3=2;                                                                        //-
            P0=TABLE[17];
                        P2=TABLE[17]>>8;
                        Delayms(300); P0=TABLE[19];
                        P2=TABLE[19]>>8;
               
                    P3=4;
                        if(j%16-1>-1)                                                                        //diergeshu
                        {P0=TABLE[j%16-1];
                        P2=TABLE[j%16-1]>>8;
            Delayms(300); P0=TABLE[19];
                        P2=TABLE[19]>>8;}
                         else        {P0=TABLE[15];
                        P2=TABLE[15]>>8;
            Delayms(300); P0=TABLE[19];
                        P2=TABLE[19]>>8; }
                       
                        P3=8;                                                                //=
            P0=TABLE[18];
                        P2=TABLE[18]>>8;
                        Delayms(300); P0=TABLE[19];
                        P2=TABLE[19]>>8;
                       
                                if(((i-1)%16-(j-1)%16)>-1)                                                                   //fuhao
                        {P3=32;
                        P0=TABLE[(i-1)%16-(j-1)%16];
                        P2=TABLE[(i-1)%16-(j-1)%16]>>8;}
                 else
                        {P3=16;
                        P0=TABLE[17];
                        P2=TABLE[17]>>8;        Delayms(400); P0=TABLE[19];
                        P2=TABLE[19]>>8;
                        P3=32;
                        P0=TABLE[(j-1)%16-(i-1)%16];
                        P2=TABLE[(j-1)%16-(i-1)%16]>>8;Delayms(300); P0=TABLE[19];
                        P2=TABLE[19]>>8;}
            }} }




}
}我的代碼不能實(shí)現(xiàn)前四個(gè)數(shù)碼管一亮一滅最后兩個(gè)常亮
回復(fù)

使用道具 舉報(bào)

板凳
ID:513252 發(fā)表于 2019-4-22 10:09 | 只看該作者
已經(jīng)解決 現(xiàn)在差 讓他一直顯示 有大佬幫幫忙嗎?
#include"reg51.h"
#define uchar unsigned char
#define uint unsigned int
uint TABLE[]={0xff00,0xfff3,0x7788,0x77c0,0x7773,0x7744,0x7704,0xfff0,0x7700,0x7740,0x7730,0x7707,0xff0c,0x7783,0x770c,0x773c,0x55ff,0x77ff,0xffcc,0xffff};//0-f+-= qingkong
sbit mum1=P1^0;sbit mum2=P1^1;sbit add=P1^2;sbit sub=P1^3; sbit ab=P3^0;sbit bc=P3^1;sbit cd=P3^2;sbit de=P3^3;sbit ef=P3^4;sbit fg=P3^5;
void Delayms(unsigned int x)
{unsigned char t; while(x--)for(t=0;t<120;t++);}
void main()
{ unsigned  char i,j;
while(1)
{   if(!add)
        { start1:
          while(1)
    {
         if(!mum1)
          {
           Delayms(10);
            if(!mum1)
   P3=1;          //diyigeshu
            P0=TABLE[i];
   P2=TABLE[i]>>8;
            i=++i%16;
            while(!mum1){Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;};
   
   P3=2;         //+
            P0=TABLE[16];
   P2=TABLE[16]>>8;
   Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;
        
      P3=4;
   if(j%16-1>-1)         //diergeshu
   {P0=TABLE[j%16-1];
   P2=TABLE[j%16-1]>>8;
            Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;}
    else {P0=TABLE[15];
   P2=TABLE[15]>>8;
            Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8; }
   
   P3=8;        //=
            P0=TABLE[18];
   P2=TABLE[18]>>8;
   Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;
   
   if(((i-1)%16+(j-1)%16)<16)           //fuhao
   {P3=32;
   P0=TABLE[(i-1)%16+(j-1)%16];
   P2=TABLE[(i-1)%16+(j-1)%16]>>8;}
          else
   {P3=16;
   P0=TABLE[1];
   P2=TABLE[1]>>8; Delayms(400); P0=TABLE[19];
   P2=TABLE[19]>>8;
   P3=32;
   P0=TABLE[(i-1)%16+(j-1)%16-16];
   P2=TABLE[(i-1)%16+(j-1)%16-16]>>8;Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;}}
       if(!mum2)
            {
           Delayms(10);
            if(!mum2)
   P3=4;
            P0=TABLE[j];
   P2=TABLE[j]>>8;
            j=++j%16;
            while(!mum2){Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;};
   Delayms(10);
    P3=1;
   if(i%16-1>-1)         //diyigeshu
   {P0=TABLE[i%16-1];
   P2=TABLE[i%16-1]>>8;
            Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;}
    else {P0=TABLE[15];
   P2=TABLE[15]>>8;
            Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8; }
   
   P3=2;         //+
            P0=TABLE[16];
   P2=TABLE[16]>>8;
   Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;
        
      P3=4;
   if(j%16-1>-1)         //diergeshu
   {P0=TABLE[j%16-1];
   P2=TABLE[j%16-1]>>8;
            Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;}
    else {P0=TABLE[15];
   P2=TABLE[15]>>8;
            Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8; }
   
   P3=8;        //=
            P0=TABLE[18];
   P2=TABLE[18]>>8;
   Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;
   
   if(((i-1)%16+(j-1)%16)<16)           //fuhao
   {P3=32;
   P0=TABLE[(i-1)%16+(j-1)%16];
   P2=TABLE[(i-1)%16+(j-1)%16]>>8;}
          else
   {P3=16;
   P0=TABLE[1];
   P2=TABLE[1]>>8; Delayms(400); P0=TABLE[19];
   P2=TABLE[19]>>8;
   P3=32;
   P0=TABLE[(i-1)%16+(j-1)%16-16];
   P2=TABLE[(i-1)%16+(j-1)%16-16]>>8;Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;}}
     if(!sub)
    { break;goto start0; }
   

   } }
if(!sub)
        {
   start0: while(1)
          {
         if(!mum1)
          {
           Delayms(10);
            if(!mum1)
   P3=1;          //diyigeshu
            P0=TABLE[i];
   P2=TABLE[i]>>8;
            i=++i%16;
            while(!mum1){Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;};
   
   P3=2;         //-
            P0=TABLE[17];
   P2=TABLE[17]>>8;
   Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;
        
      P3=4;
   if(j%16-1>-1)         //diergeshu
   {P0=TABLE[j%16-1];
   P2=TABLE[j%16-1]>>8;
            Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;}
    else {P0=TABLE[15];
   P2=TABLE[15]>>8;
            Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8; }
   
   P3=8;        //=
            P0=TABLE[18];
   P2=TABLE[18]>>8;
   Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;
   
   if(((i-1)%16-(j-1)%16)>-1)           //fuhao
   {P3=32;
   P0=TABLE[(i-1)%16-(j-1)%16];
   P2=TABLE[(i-1)%16-(j-1)%16]>>8;}
          else
   {P3=16;
   P0=TABLE[17];
   P2=TABLE[17]>>8; Delayms(400); P0=TABLE[19];
   P2=TABLE[19]>>8;
   P3=32;
   P0=TABLE[(j-1)%16-(i-1)%16];
   P2=TABLE[(j-1)%16-(i-1)%16]>>8;Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;}}
       if(!mum2)
            {
           Delayms(10);
            if(!mum2)
   P3=4;
            P0=TABLE[j];
   P2=TABLE[j]>>8;
            j=++j%16;
            while(!mum2){Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;};
   Delayms(10);
    P3=1;
   if(i%16-1>-1)         //diyigeshu
   {P0=TABLE[i%16-1];
   P2=TABLE[i%16-1]>>8;
            Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;}
    else {P0=TABLE[15];
   P2=TABLE[15]>>8;
            Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8; }
   
   P3=2;         //-
            P0=TABLE[17];
   P2=TABLE[17]>>8;
   Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;
        
      P3=4;
   if(j%16-1>-1)         //diergeshu
   {P0=TABLE[j%16-1];
   P2=TABLE[j%16-1]>>8;
            Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;}
    else {P0=TABLE[15];
   P2=TABLE[15]>>8;
            Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8; }
   
   P3=8;        //=
            P0=TABLE[18];
   P2=TABLE[18]>>8;
   Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;
   
    if(((i-1)%16-(j-1)%16)>-1)           //fuhao
   {P3=32;
   P0=TABLE[(i-1)%16-(j-1)%16];
   P2=TABLE[(i-1)%16-(j-1)%16]>>8;}
          else
   {P3=16;
   P0=TABLE[17];
   P2=TABLE[17]>>8; Delayms(400); P0=TABLE[19];
   P2=TABLE[19]>>8;
   P3=32;
   P0=TABLE[(j-1)%16-(i-1)%16];
   P2=TABLE[(j-1)%16-(i-1)%16]>>8;Delayms(300); P0=TABLE[19];
   P2=TABLE[19]>>8;}
            }   if(!add)
    { break;goto start1; }      } }


}
}


回復(fù)

使用道具 舉報(bào)

地板
ID:424408 發(fā)表于 2019-4-22 11:52 | 只看該作者
控制的時(shí)候控制好位碼舍
回復(fù)

使用道具 舉報(bào)

5#
ID:434390 發(fā)表于 2019-4-24 14:20 | 只看該作者
四個(gè)位選加一個(gè)亮滅控制邏輯就可以了   比如共陰極  當(dāng)前位亮就寫0,滅就寫1
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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