S6B0108驱动的19264,程序写了没反应,求助
时间:10-02
整理:3721RD
点击:
各位好,
我用了一个S6B0108驱动的19264,按照示例写了程序,液晶一直没有显示。对比度及背光都正常。逐条写语句,用示波器检测引脚波形均正常。
试了很久,都没有显示。延时都增加了,还是一个点都没有显示。请各位帮忙看看,新手在此万分感谢:
(因为是试试,所以只操作第一部分屏,即设置/CS1=0,/CS2=1;/CS3=1)
#include<p33FJ256GP710.h>
#define uchar unsigned char
#define uint unsigned int
#define LCD_RS LATBbits.LATB8
#define LCD_RW LATBbits.LATB9
#define LCD_E LATBbits.LATB10
#define LCD_CS1 LATBbits.LATB11
#define LCD_RST LATBbits.LATB12
#define LCD_CS2 LATBbits.LATB13
#define LCD_CS3 LATBbits.LATB14
#define LCD_BLA LATBbits.LATB15
/****************************************************************************
* 名 称:void Delay(uchar n)
* 功 能:延迟函数1ms
* 入口参数:n
* 出口参数:无
* 说 明:经过示波器检测,11.0592MHz下精确1ms。
****************************************************************************/
void Delay(uint n)
{
uint j;
uint k;
for(j=0;j<n;j++)
for(k=730;k>0;k--) asm("nop");
}
/****************************************************************************
* 名 称:LCD_Write(uchar dat_com,uchar content)
* 功 能:液晶数据/指令写入函数
* 入口参数:dat_com,content
* 出口参数:无
* 说 明:dat_com=0为指令,dat_com=1为数据。
****************************************************************************/
void LCD_Write(uchar dat_com,uchar content)
{
LCD_E=0;
LCD_RW=0;
LCD_RS=dat_com;
*(volatile char*)(&LATB)=content;
LCD_E=1;
Delay(10);
LCD_E=0;
}
void main()
{
RCON=0x00;
AD1PCFGH=0xFF;
AD1PCFGL=0xFF;
AD2PCFGL=0xFF;
TRISB=0x0000;
LATB=0xFCFF; //初始化
LCD_RST=0;
Delay(500);
LCD_RST=1;
Delay(500); //复位
LCD_CS1=0;
LCD_CS2=1;
LCD_CS3=1; //只对CS1操作
LCD_Write(0,0x3F); //开显示
Delay(1000);
LCD_Write(0,0xC0); //起始行设置
Delay(1000);
LCD_Write(0,0xB8); //页设置首页
Delay(1000);
LCD_Write(0,0x40); //列设置首行
Delay(1000);
LCD_Write(1,0xFF); //随便写入一个数据0xFF
Delay(1000);
LCD_Write(1,0xFF); //随便写入一个数据0xFF
while(1);
}
没有人愿意帮下忙的吗?
已经把你的问题归纳到问答里面了,等待一下别人的帮忙吧
如果时序正序的话 那只能说明屏坏掉了 或者是对比度设置的不正确
感谢小编关注。问题已经解决了,买的液晶片选信号是高有效,主要问题是对比度调的不对。
不能直接接到电源即100%,大概调到75%字就出来了。不同的液晶不一样,建议设计的时候用电阻器调,把字调清楚了,后续产品再用贴片电阻。
以上个人解决方案,为后面的同志做个参考吧。
学习学习谢谢分享