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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4747|回復(fù): 24
收起左側(cè)

16*16點(diǎn)陣proteus仿真沒有問題,但實(shí)物焊接后顯示的不成字是什么問題?

  [復(fù)制鏈接]
ID:846159 發(fā)表于 2020-12-17 15:52 | 顯示全部樓層 |閱讀模式
100黑幣
程序和仿真圖如下#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp,num;
uchar a,c,d,e,v,b,m,n,f;
uchar i,j,z,k;/*各變量值的初始化*/
uchar flag=0;
uchar code table1[]={
0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,
0xFF,0xFF,0x80,0x40,0x80,0x21,0xA0,0x12,
0x90,0x04,0x88,0x08,0x84,0x10,0x82,0x20,
0x80,0x20,0x80,0x40,0x80,0x40,0x00,0x00,
0x40,0x04,0x44,0x04,0x54,0x02,0x54,0x01,
0xD4,0xFE,0x54,0x92,0x74,0x92,0x5F,0x92,
0x54,0x92,0x54,0x92,0xD4,0xFE,0x54,0x01,
0x54,0x02,0x44,0x04,0x40,0x04,0x00,0x00,
0x04,0x20,0x84,0x60,0x84,0x20,0xFC,0x1F,
0x84,0x10,0x84,0x10,0x00,0x40,0xFE,0x44,
0x92,0x44,0x92,0x44,0xFE,0x7F,0x92,0x44,
0x92,0x44,0xFE,0x44,0x00,0x40,0x00,0x00,
0x00,0x20,0x04,0x20,0x04,0x20,0x04,0x20,
0x04,0x20,0x04,0x20,0x04,0x20,0xFC,0x3F,
0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,
0x04,0x20,0x04,0x20,0x00,0x20,0x00,0x00,
0x20,0x80,0x20,0x80,0x20,0x40,0x20,0x20,
0x20,0x10,0x20,0x0C,0x20,0x03,0xFF,0x00,
0x20,0x03,0x20,0x0C,0x20,0x10,0x20,0x20,
0x20,0x40,0x20,0x80,0x20,0x80,0x00,0x00,
0x40,0x04,0x30,0x04,0x11,0x04,0x96,0x04,
0x90,0x04,0x90,0x44,0x91,0x84,0x96,0x7E,
0x90,0x06,0x90,0x05,0x98,0x04,0x14,0x04,
0x13,0x04,0x50,0x04,0x30,0x04,0x00,0x00,
};
uchar code table2[]={
0x40,0x80,0x40,0x80,0x42,0x40,0x44,0x20,
0x58,0x18,0xC0,0x07,0x40,0x00,0x7F,0x00,
0x40,0x00,0xC0,0x3F,0x50,0x40,0x48,0x40,
0x46,0x40,0x40,0x40,0x40,0x78,0x00,0x00,
0x00,0x00,0x00,0x00,0xF8,0x1F,0x88,0x08,
0x88,0x08,0x88,0x08,0x88,0x08,0xFF,0x7F,
0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
0xF8,0x9F,0x00,0x80,0x00,0xF0,0x00,0x00,
0x00,0x20,0x04,0x20,0x04,0x20,0x04,0x20,
0x04,0x20,0x04,0x20,0x04,0x20,0xFC,0x3F,
0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,
0x04,0x20,0x04,0x20,0x00,0x20,0x00,0x00,
0x24,0x08,0x24,0x06,0xA4,0x01,0xFE,0xFF,
0x23,0x01,0x22,0x06,0x00,0x40,0x3E,0x49,
0x22,0x49,0x22,0x49,0x22,0x7F,0x22,0x49,
0x22,0x49,0x3E,0x49,0x00,0x41,0x00,0x00,
0x40,0x04,0x30,0x04,0x11,0x04,0x96,0x04,
0x90,0x04,0x90,0x44,0x91,0x84,0x96,0x7E,
0x90,0x06,0x90,0x05,0x98,0x04,0x14,0x04,
0x13,0x04,0x50,0x04,0x30,0x04,0x00,0x00,
0x00,0x00,0xFE,0xFF,0x22,0x04,0x5A,0x08,
0x86,0x07,0x10,0x80,0x0C,0x41,0x24,0x31,
0x24,0x0F,0x25,0x01,0x26,0x01,0x24,0x3F,
0x24,0x41,0x14,0x41,0x0C,0x71,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

void init();        /*主函數(shù)的初始化聲名*/                               
void init1();        /*左移顯示方式的初始化聲名*/
void disp1();        /*左移顯示子程序聲名*/       
void delay(uint z);/*延時(shí)函數(shù)聲名及定義*/
uchar keyscan();
void display1();
void display2();
void display3();
void display4();
void display5();
void display6();
uchar keyscan();
void main()
{

while(1)
{ flag=0;
flag=keyscan();
switch(flag){
case 0:break;
case 1:display1();break;
case 2:display2();break;
case 3:display3();break;
case 4:display4();break;
case 5:display5();break;
case 6:display6();break; }}
}
uchar keyscan()
{ uchar temp1,temp2,temp,num;
     P3=0xf0;
     temp=P3;
  if(temp!=0xf0)
  {  temp1=P3;
    P3=0x0f;
    temp=P3;
   if(temp!=0x0f)
   {  temp2=P3;
      temp=temp1^temp2;
   }
switch(temp)
   {  case 0x7e : num=1;  break;
      case 0x7d : num=2;  break;
          case 0x7b : num=3;  break;
          case 0x77 : num=4;  break;
          case 0xbe : num=5;  break;
          case 0xbd : num=6;  break;
          case 0xbb : num=7;  break;
          case 0xb7 : num=8;  break;
          case 0xde : num=9;  break;
          case 0xdd : num=10; break;
          case 0xdb : num=11; break;
          case 0xd7 : num=12; break;
          case 0xee : num=13; break;
          case 0xed : num=14; break;
          case 0xeb : num=15; break;
          case 0xe7 : num=16; break;
          }
  }
return num;}
void display1()
{       
init();
              init1();        //左移顯示初始化
                        {int c=96;
                        int e=96;
                                for(i=0;i<=c;i=i+16 )        //判斷左移的字符個(gè)數(shù)
                                        for(j=0;j<=b;j++)                //向左移動(dòng)的速度由變量v控制
                                                for(k=i*2;k<(i*2+32);)        //顯示一幕
                                                        {  
                                                        flag=keyscan();
                                                        if(flag!=1)
                                                 { return ;         }
                                                        P0=table1[k];
                                                           k++;
                                                          P2=table1[k];
                                                          k++;       
                                                          P1=m;
                                                          m++;
                                                          if(m==0x10)
                                                                m=0x00;
                                                          delay(1);
                                                        }
                                for(i=0;i<=e;i=i+16 )        //判斷左移的字符個(gè)數(shù)
                                        for(j=0;j<=b;j++)                //向左移動(dòng)的速度由變量v控制
                                                for(z=i*2;z<(i*2+32);)        //顯示一幕
                                                        {  
                                                        flag=keyscan();
                                                        if(flag!=1)
                                                 { return ;         }
                                                        P0=table2[z];
                                                           z++;
                                                          P2=table2[z];
                                                          z++;       
                                                          P1=m;
                                                          m++;
                                                          if(m==0x10)
                                                                m=0x00;
                                                          delay(1);
                                                        }                               
                        }
}       
void display2()
{
        init();
              init1();        //左移顯示初始化
                        {int d=176;
                                for(i=0;i<=d;i++)        //判斷左移的字符個(gè)數(shù)
                                        for(j=0;j<=v;j++)        //向左移動(dòng)的速度由變量v控制
                                                for(k=i*2;k<(i*2+32);)        //顯示一幕
                                                        {
                                                        flag=keyscan();
                                                        if(flag!=2)
                                                 { return ;         }
                                                        P0=table2[k];
                                                           k++;
                                                          P2=table2[k];
                                                          k++;       
                                                          P1=m;
                                                          m++;
                                                          if(m==0x10)
                                                                m=0x00;
                                                          delay(1);
                                                        }                       
                        }
}       
void display3()
{       
        init();
           init1();        //左移顯示初始化
                        {int a=32;
                                for(i=0;i<=a;i++)        //判斷左移的字符個(gè)數(shù)
                                        for(j=0;j<=v;j++)        //向左移動(dòng)的速度由變量v控制
                                                for(k=i*2;k<(i*2+32);)        //顯示一幕
                                                        {
                                                        flag=keyscan();
                                                        if(flag!=3)
                                                 { return ;         }
                                                        P0=table1[k];
                                                           k++;
                                                          P2=table1[k];
                                                          k++;       
                                                          P1=m;
                                                          m++;
                                                          if(m==0x10)
                                                                m=0x00;
                                                          delay(1);
                                                        }                       
                        }       
}       
void display4()       
{       
        init();
           init1();        //左移顯示初始化
                        {int a=32;
                                for(i=0;i<=a;i++)        //判斷左移的字符個(gè)數(shù)
                                        for(j=0;j<=v;j++)        //向左移動(dòng)的速度由變量v控制
                                                for(k=i*2;k<(i*2+32);)        //顯示一幕
                                                        {
                                                        flag=keyscan();
                                                        if(flag!=4)
                                                 { return ;         }
                                                        P0=table1[k];
                                                           k++;
                                                          P2=table1[k];
                                                          k++;       
                                                          P1=m;
                                                          m++;
                                                          if(m==0x10)
                                                                m=0x00;
                                                          delay(1);
                                                        }                       
                        }       
}       
void display5()
{       
        init();
           init1();        //左移顯示初始化
                        {int a=32;
                                for(i=0;i<=a;i++)        //判斷左移的字符個(gè)數(shù)
                                        for(j=0;j<=v;j++)        //向左移動(dòng)的速度由變量v控制
                                                for(k=i*2;k<(i*2+32);)        //顯示一幕
                                                        {
                                                        flag=keyscan();
                                                        if(flag!=5)
                                                 { return ;         }
                                                        P0=table1[k];
                                                           k++;
                                                          P2=table1[k];
                                                          k++;       
                                                          P1=m;
                                                          m++;
                                                          if(m==0x10)
                                                                m=0x00;
                                                          delay(1);
                                                        }                       
                        }       
}               
void display6()
{       
        init();
                init1();        //左移顯示初始化
                        {int a=32;
                                for(i=0;i<=a;i++)        //判斷左移的字符個(gè)數(shù)
                                        for(j=0;j<=v;j++)        //向左移動(dòng)的速度由變量v控制
                                                for(k=i*2;k<(i*2+32);)        //顯示一幕
                                                        {
                                                        flag=keyscan();
                                                        if(flag!=6)
                                                 { return ;         }
                                                        P0=table1[k];
                                                           k++;
                                                          P2=table1[k];
                                                          k++;       
                                                          P1=m;
                                                          m++;
                                                          if(m==0x10)
                                                                m=0x00;
                                                          delay(1);
                                                        }                       
                        }
}       
void delay(uint z)/*延時(shí)函數(shù)聲名及定義*/
{
        uint x,y;
    for(x=z;x>0;x--)
            {
                        for(y=110;y>0;y--);
        }
}       
void init()        //主程序初始化
{
        v=15;        //設(shè)置移動(dòng)速度的初值
        b=100;
}
void init1()        //左移顯示方式各變量的初始化
{
        P0=0;
        P2=0;
        m=0;
}

NZI}5AF8W7}5NS5]_MZOHEN.png
回復(fù)

使用道具 舉報(bào)

ID:748788 發(fā)表于 2020-12-17 16:06 | 顯示全部樓層
好好檢查一下有沒有虛焊、漏焊
回復(fù)

使用道具 舉報(bào)

ID:846159 發(fā)表于 2020-12-17 16:18 | 顯示全部樓層
wwh2382 發(fā)表于 2020-12-17 16:06
好好檢查一下有沒有虛焊、漏焊

因?yàn)榕潞稿e(cuò),所以都用排針把那些接角引出來,然后用導(dǎo)線連接的
回復(fù)

使用道具 舉報(bào)

ID:607298 發(fā)表于 2020-12-17 16:24 | 顯示全部樓層
好好對比下實(shí)物和模擬的差異吧。
回復(fù)

使用道具 舉報(bào)

ID:223946 發(fā)表于 2020-12-17 16:33 | 顯示全部樓層
第一步檢查點(diǎn)陣的電源供電情況,最好用萬用表測量一下點(diǎn)陣的電源電壓。
第二步直接將電源加在點(diǎn)陣上面,查看是否是點(diǎn)陣元器件問題。
第三步,如果上面兩步都沒有問題的話,那就檢測單片機(jī)引腳輸出的電壓是否正確。
第四步,如果上面三步都沒有問題,那就是焊接出了問題。
回復(fù)

使用道具 舉報(bào)

ID:852300 發(fā)表于 2020-12-17 17:07 | 顯示全部樓層
先檢查點(diǎn)陣型號(hào)和引腳對不對?再查焊點(diǎn)吧
回復(fù)

使用道具 舉報(bào)

ID:843617 發(fā)表于 2020-12-17 19:12 | 顯示全部樓層
可能出現(xiàn)虛焊、漏焊合作管腳焊錯(cuò)了
回復(fù)

使用道具 舉報(bào)

ID:862566 發(fā)表于 2020-12-18 08:46 | 顯示全部樓層
虛焊的可能性比較大,我們用32做的
回復(fù)

使用道具 舉報(bào)

ID:303207 發(fā)表于 2020-12-20 15:22 | 顯示全部樓層
檢查一下焊接的問題,電路圖沒問題的話就是實(shí)物焊接硬件電路的問題
回復(fù)

使用道具 舉報(bào)

ID:212797 發(fā)表于 2020-12-20 16:59 | 顯示全部樓層
1、檢查焊接和電路圖是不是完全一樣的,看看有沒有焊接錯(cuò)誤的地方;
2、用萬用便檢查各個(gè)關(guān)鍵點(diǎn)位的電壓對不對;
簡單點(diǎn)就是,寫一個(gè)電路檢查的小程序,在使用的引腳上發(fā)送固定的信號(hào)測量。
回復(fù)

使用道具 舉報(bào)

ID:864055 發(fā)表于 2020-12-20 17:01 來自觸屏版 | 顯示全部樓層
萬用表電阻檔測試是否短路,漏焊。
回復(fù)

使用道具 舉報(bào)

ID:864035 發(fā)表于 2020-12-20 17:19 | 顯示全部樓層
是不是在焊接的時(shí)候虛焊,或者漏焊,程序看著好像沒有問題
回復(fù)

使用道具 舉報(bào)

ID:453974 發(fā)表于 2020-12-20 18:12 | 顯示全部樓層
個(gè)人感覺應(yīng)該是引腳位置問題,實(shí)際的點(diǎn)陣引腳順序是亂的
回復(fù)

使用道具 舉報(bào)

ID:160500 發(fā)表于 2020-12-20 19:30 | 顯示全部樓層
把顯示正常的和有故障的圖發(fā)上來看看,只給一個(gè)程序有什么用
回復(fù)

使用道具 舉報(bào)

ID:748788 發(fā)表于 2020-12-20 21:17 | 顯示全部樓層
palaceer 發(fā)表于 2020-12-17 16:18
因?yàn)榕潞稿e(cuò),所以都用排針把那些接角引出來,然后用導(dǎo)線連接的

先將排針上的元件拔下,用萬用表的一個(gè)表筆接排針疑似有問題的一個(gè)點(diǎn),另一個(gè)表筆接該點(diǎn)線路上的下一個(gè)點(diǎn),如果線路有多個(gè)點(diǎn),就逐點(diǎn)檢測一遍
回復(fù)

使用道具 舉報(bào)

ID:420836 發(fā)表于 2020-12-20 23:48 | 顯示全部樓層
我可能是由于單芯片計(jì)算機(jī)的時(shí)鐘頻率,請?jiān)诖a中調(diào)整時(shí)鐘頻率,然后重試。 然后另一個(gè)原因可能是由于焊接。
回復(fù)

使用道具 舉報(bào)

ID:18297 發(fā)表于 2020-12-21 08:38 | 顯示全部樓層
這個(gè)仿真的硬件電路和實(shí)際的硬件短路會(huì)不同,我之前也遇見同樣的問題,可能需要軟件取模過程要修改。
你這個(gè)問題需要結(jié)合你的硬件電路進(jìn)行調(diào)試。
回復(fù)

使用道具 舉報(bào)

ID:844772 發(fā)表于 2020-12-21 09:20 | 顯示全部樓層
13樓說的對,你引腳搞錯(cuò)了,點(diǎn)陣引腳順序不同,我給你發(fā)個(gè)圖。另外,估計(jì)不是虛焊問題,否則不會(huì)完全亂碼。
51hei圖片_20201221091350.jpg
回復(fù)

使用道具 舉報(bào)

ID:337139 發(fā)表于 2020-12-21 14:31 | 顯示全部樓層
本帖最后由 長風(fēng)007 于 2020-12-21 16:50 編輯

你需要檢驗(yàn)一下使用的點(diǎn)陣是否與仿真的一致!看一下使用的器件的真值表腳位聯(lián)接。

真值表

真值表
回復(fù)

使用道具 舉報(bào)

ID:755556 發(fā)表于 2020-12-21 14:37 | 顯示全部樓層
應(yīng)該是點(diǎn)陣順序的問題吧,要不就是虛焊
回復(fù)

使用道具 舉報(bào)

ID:337139 發(fā)表于 2020-12-21 16:49 | 顯示全部樓層
看一下點(diǎn)陣的真值表,連接成16*16時(shí)位與列的對應(yīng)關(guān)系。如果連錯(cuò)就會(huì)有亂碼。

真值表

真值表
回復(fù)

使用道具 舉報(bào)

ID:546335 發(fā)表于 2020-12-24 11:27 | 顯示全部樓層
程序沒出錯(cuò),電路實(shí)物出錯(cuò)了
回復(fù)

使用道具 舉報(bào)

ID:875484 發(fā)表于 2021-2-5 00:20 來自觸屏版 | 顯示全部樓層
可能是買的點(diǎn)陣屏和仿真軟件里面的元件引腳沒有對上。
回復(fù)

使用道具 舉報(bào)

ID:811405 發(fā)表于 2021-2-6 14:31 | 顯示全部樓層
仿真沒有問題,應(yīng)該是電路焊接出現(xiàn)了問題,線路焊接錯(cuò)誤或者虛焊導(dǎo)致系統(tǒng)不能正常運(yùn)行
回復(fù)

使用道具 舉報(bào)

ID:811405 發(fā)表于 2021-2-6 14:36 | 顯示全部樓層
proteus仿真中,各芯片的電源接地等引腳并未標(biāo)出,在電路焊接時(shí)要注意不要接漏了
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 综合久| 91视频官网 | 日本不卡在线视频 | 国产精品国产a | av片免费 | 中文字幕av亚洲精品一部二部 | 91免费入口 | 国产视频福利一区 | 亚洲36d大奶网 | 成人欧美 | 麻豆精品一区二区三区在线观看 | 亚洲成人一区 | 久久狠狠 | 欧美成人精品二区三区99精品 | 狠狠干狠狠操 | 中文字幕一区二区三区精彩视频 | 韩日一区二区 | 欧美午夜精品 | 亚洲福利在线观看 | 久久久久久免费免费 | 成人av资源在线 | 伊人精品一区二区三区 | 在线播放国产一区二区三区 | 国产在线精品一区二区三区 | 99日韩| 在线精品一区二区 | 精品99爱视频在线观看 | 欧美精品第三页 | 亚洲黄色高清视频 | 尤物在线| 亚洲黄色在线免费观看 | 91免费版在线| 欧美一区二区三区四区五区无卡码 | 一区二区视频在线观看 | 欧美日韩在线免费观看 | 亚洲欧美日韩久久久 | 久久精品国产一区 | 18成人在线观看 | 国产激情视频在线观看 | 欧美一级在线观看 | 中文字幕国产一区 |