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

QQ登錄

只需一步,快速開始

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

單片機(jī)Proteus仿真lcd12864一直黑屏,麻煩指教

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:749524 發(fā)表于 2020-5-12 14:04 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

#include"12864.h"
#include"reg52.h"
#include <intrins.h>
sbit CS=P2^5;      
sbit SID=P2^6;   
sbit SCLK=P2^7;

         
unsigned char code AC_TABLE[]={         
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
};

void SendByte(unsigned char Dbyte)
{
        unsigned char i;
        for(i=0;i<8;i++)
        {
                SCLK = 0;
                Dbyte=Dbyte<<1;     
                SID = CY;      
                SCLK = 1;
                SCLK = 0;
        }
}


unsigned char ReceiveByte(void)
{
        unsigned char i,temp1,temp2;
        temp1=temp2=0;
        for(i=0;i<8;i++)
        {
                temp1=temp1<<1;
                SCLK = 0;
                SCLK = 1;               
                SCLK = 0;
                if(SID) temp1++;
        }
        for(i=0;i<8;i++)
        {
                temp2=temp2<<1;
                SCLK = 0;
                SCLK = 1;
                SCLK = 0;
                if(SID) temp2++;
        }
        return ((0xf0&temp1)+(0x0f&temp2));
}

void CheckBusy( void )
{
        do SendByte(0xfc);   
        while(0x80&ReceiveByte());  
}


void WriteCommand( unsigned char Cbyte )
{
        CS = 1;                              
        CheckBusy();                          
        SendByte(0xf8);                        
        SendByte(0xf0&Cbyte);               
        SendByte(0xf0&Cbyte<<4);              
        CS = 0;                              
}

void WriteData( unsigned char Dbyte )
{
        CS = 1;
        CheckBusy();
        SendByte(0xfa);         
        SendByte(0xf0&Dbyte);
        SendByte(0xf0&Dbyte<<4);
        CS = 0;
}


void LcmInit( void )
{
     WriteCommand(0x30);      
     WriteCommand(0x03);      
     WriteCommand(0x0c);     
     WriteCommand(0x01);     
     WriteCommand(0x06);   
}


void Location_xy_12864(unsigned char x,unsigned char y)
{
        switch(x)
        {
                case 0:
                        x=0x80;break;
                case 1:
                        x=0x90;break;
                case 2:
                        x=0x88;break;
                case 3:
                        x=0x98;break;
                default:
                        x=0x80;
        }
        y=y&0x07;
        WriteCommand(0x30);
        WriteCommand(y+x);
        WriteCommand(y+x);

}

void LcmClearTXT( void )
{
        unsigned char i;
        WriteCommand(0x30);
        WriteCommand(0x80);
        for(i=0;i<64;i++)
        WriteData(0x20);
        Location_xy_12864(0,0);            
}


//??ê???



void PutStr(unsigned char row,unsigned char col,unsigned char *puts)
{   
        WriteCommand(0x30);                        
        WriteCommand(AC_TABLE[8*row+col]);               
        while(*puts != '\0')                     
        {
                if(col==8)                              
                {
                        col=0;
                        row++;
                }
                if(row==4) row=0;                        
                WriteCommand(AC_TABLE[8*row+col]);
                WriteData(*puts);
                puts++;
                if(*puts != '\0')
                {
                        WriteData(*puts);
                        puts++;
                        col++;
                }  
        }
}



void Delay(unsigned int t)
{
        unsigned int m,n;
        for(m=0;m<t;m++);
        for(n=0;n<10;n++);
}




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

使用道具 舉報(bào)

沙發(fā)
ID:89423 發(fā)表于 2020-9-23 19:34 | 只看該作者
解決了嗎?我的也是這樣,求指導(dǎo)
回復(fù)

使用道具 舉報(bào)

板凳
ID:96682 發(fā)表于 2020-9-24 06:18 來自手機(jī) | 只看該作者
選型很重要,仿真軟件沒有的只能上實(shí)物了
回復(fù)

使用道具 舉報(bào)

地板
ID:272366 發(fā)表于 2020-9-24 14:35 | 只看該作者
把這個(gè)CheckBusy,全部去掉試試
回復(fù)

使用道具 舉報(bào)

5#
ID:728202 發(fā)表于 2020-9-24 14:43 | 只看該作者
我寫的驅(qū)動(dòng),可以實(shí)現(xiàn)自動(dòng)換行。英文字母和符號(hào)顯示不用取模

LCD12864.rar

125.1 KB, 下載次數(shù): 31

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:451718 發(fā)表于 2020-9-24 16:16 | 只看該作者
你選的是一個(gè)不帶字庫的12864, 結(jié)果你用帶字庫的程序來驅(qū)動(dòng), 能有顯示?   選型不正確。!
回復(fù)

使用道具 舉報(bào)

7#
ID:641629 發(fā)表于 2020-9-24 16:19 | 只看該作者
網(wǎng)上找一個(gè)能亮的   我記得論壇里面有
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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