找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3124|回復: 5
收起左側(cè)

單片機控制12864顯示出現(xiàn)一個奇怪的問題,大神們請幫分析

[復制鏈接]
ID:461428 發(fā)表于 2019-2-23 17:57 | 顯示全部樓層 |閱讀模式
12864我用的串口。三根線接在下載端口也就是P3的0,1,2口。下載程序后能正常顯示,但是不能拔下載線,拔掉就停止顯示。百思不得解?紤]是不是把12864的線接在下載端口的緣故?于是我把12864的接線接到了P2口的5,6,7.更改程序的位定義后下載。無法顯示。。。檢查無數(shù)遍接線和程序。無果。。百般無聊中把另一12864屏插到原先的P3口。。。。結果  。結果。。P2口的12864正常顯示了。又試著把程序改到P3口顯示。P2口屏不動。。P3口的也正常顯示,也可以拔下下載線了。。但是  ,P2口的12864就是不能拔。。拔掉就停止顯示。。。也就是說,想正常拔下下載線顯示。必須插2個12864。用其中一個正常顯示。。。這是神馬鬼?請大神賜教。。。謝謝
回復

使用道具 舉報

ID:213173 發(fā)表于 2019-2-24 11:03 | 顯示全部樓層
外接1~10K上拉電阻試試。

評分

參與人數(shù) 1黑幣 +12 收起 理由
kissme + 12 成功解決問題

查看全部評分

回復

使用道具 舉報

ID:473159 發(fā)表于 2019-2-24 12:59 | 顯示全部樓層
代碼放上來解析解析

評分

參與人數(shù) 1黑幣 +12 收起 理由
kissme + 12 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:461428 發(fā)表于 2019-2-24 14:34 | 顯示全部樓層
wulin 發(fā)表于 2019-2-24 11:03
外接1~10K上拉電阻試試。

12864三根接線么?我試試
回復

使用道具 舉報

ID:461428 發(fā)表于 2019-2-24 14:35 | 顯示全部樓層
yoxi 發(fā)表于 2019-2-24 12:59
代碼放上來解析解析

#include<intrins.h>
#define uchar unsigned char
sbit cs=P2^5;
sbit sid=P2^6;
sbit sck=P2^7;
//22.114
void yan(int w)   //100US
{
   int a,b;
    for(b=w;b>0;b--)
        for(a=2000;a>0;a--);
}

uchar   hanzi[]={"ÄÇË-£¿"};
uchar  hanzi0[]={"×òííÎòÃÎμ½Äã"};
uchar  hanzi1[]={"áË£¬¿ãñéêaáËò»"};
uchar  hanzi2[]={"′󯬡£"};

uchar  hanzi3[]={"½ñììííéÏ£¬Äã¸ú"};
uchar  hanzi4[]={"Îò×ߣ¬Ô¼ò»Åú¡£"};
uchar  hanzi5[]={"Ã÷ÔçèÃÄã¿T×Åà′éÏ"};
uchar  hanzi6[]={"°à¡£"};

uchar  hanzi7[]={"¾íÔú½ñíí"};
uchar  hanzi8[]={"oì2¨"};

void xie(uchar cdat)
{
         uchar a;
         for(a=0;a<8;a++)
         {
                 sck=1;
                 if(cdat&0x80)
                 {sid=1;}
                 else
                 {sid=0;}
                 cdat=cdat<<1;
                 sck=0;
                 //yan(10);
         }
}
void xiecom(uchar com)
{
         cs=1;
         xie(0xf8);
         xie(0xf0&com);
   xie(0xf0&com<<4);
         cs=0;
}
void xiedat(uchar dat)
{
         cs=1;
         xie(0xfa);
         xie(0xf0&dat);
         xie(0xf0&dat<<4);
         cs=0;
}

void pos(uchar x,uchar y)
{
        uchar poos;
   if (x==0)
     {x=0x80;}
   else if (x==1)
     {x=0x90;}
   else if (x==2)
     {x=0x88;}
   else if (x==3)
     {x=0x98;}
        poos=x+y;
        xiecom(poos);
}
        
void intc()
{
        xiecom(0x30);
        yan(100);
        xiecom(0x0c);
        yan(100);
        xiecom(0x01);
        yan(100);
        xiecom(0x06);
        yan(100);
}
        
void main()
{
uchar t;
  P2M1=0X00;
        P2M0=0x00;
         intc();
        yan(100);
while(1)
{
        
               
pos(0,0);
        t=0;
        while(hanzi[t]!='\0')
        {
                xiedat(hanzi[t]);
          t++;
          yan(100);
        }
                pos(1,1);
        t=0;
        while(hanzi0[t]!='\0')
        {
                xiedat(hanzi0[t]);
          t++;
                yan(100);
        }
        pos(2,0);
        yan(100);
        t=0;
        while(hanzi1[t]!='\0')
        {
                xiedat(hanzi1[t]);
          t++;
                yan(100);
        }
        pos(3,0);
        yan(100);
        t=0;
        while(hanzi2[t]!='\0')
        {
                xiedat(hanzi2[t]);
          t++;
                yan(100);
        }


        xiecom(0x01);
        yan(200);
        
               
pos(0,0);
        yan(100);
        t=0;
        while(hanzi3[t]!='\0')
        {
                xiedat(hanzi3[t]);
          t++;
          yan(100);
        }
                pos(1,0);
        yan(100);
        t=0;
        while(hanzi4[t]!='\0')
        {
                xiedat(hanzi4[t]);
          t++;
                yan(100);
        }
        pos(2,0);
        yan(100);
        t=0;
        while(hanzi5[t]!='\0')
        {
                xiedat(hanzi5[t]);
          t++;
                yan(100);
        }
        
        pos(3,0);
        yan(100);
        t=0;
        while(hanzi6[t]!='\0')
        {
                xiedat(hanzi6[t]);
          t++;
                yan(100);
        }
  xiecom(0x01);
        yan(300);
        
        pos(1,2);
        yan(100);
        t=0;
        while(hanzi7[t]!='\0')
        {
                xiedat(hanzi7[t]);
          t++;
                yan(200);
        }
        
        pos(3,5);
        yan(100);
        t=0;
        while(hanzi8[t]!='\0')
        {
                xiedat(hanzi8[t]);
          t++;
                yan(200);
        }
        xiecom(0x01);
        yan(2000);
}

}
回復

使用道具 舉報

ID:461428 發(fā)表于 2019-2-24 15:02 | 顯示全部樓層
wulin 發(fā)表于 2019-2-24 11:03
外接1~10K上拉電阻試試。

十分感謝你大神。。。12864三根線我接了上拉4.7K,完美解決
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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