找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2547|回复: 6
收起左侧

单片机Proteus仿真lcd12864一直黑屏,麻烦指教

[复制链接]
ID:749524 发表于 2020-5-12 14:04 | 显示全部楼层 |阅读模式

lcd一直黑屏

lcd一直黑屏

#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++);
}




回复

使用道具 举报

ID:89423 发表于 2020-9-23 19:34 | 显示全部楼层
解决了吗?我的也是这样,求指导
回复

使用道具 举报

ID:96682 发表于 2020-9-24 06:18 来自手机 | 显示全部楼层
选型很重要,仿真软件没有的只能上实物了
回复

使用道具 举报

ID:272366 发表于 2020-9-24 14:35 | 显示全部楼层
把这个CheckBusy,全部去掉试试
回复

使用道具 举报

ID:728202 发表于 2020-9-24 14:43 | 显示全部楼层
我写的驱动,可以实现自动换行。英文字母和符号显示不用取模

LCD12864.rar

125.1 KB, 下载次数: 30

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:451718 发表于 2020-9-24 16:16 | 显示全部楼层
你选的是一个不带字库的12864, 结果你用带字库的程序来驱动, 能有显示?   选型不正确!!!
回复

使用道具 举报

ID:641629 发表于 2020-9-24 16:19 | 显示全部楼层
网上找一个能亮的   我记得论坛里面有
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表