|
谁有用过JHD162A ?它的connection是?我找的是pin 15 是VCC 和pin 16 是ground!!!和datasheet不一样!!!
这是它的link:lcd |
|
|
|
|
|
|
|
发表于 18-3-2013 12:05 AM
|
显示全部楼层
对呀!你的Datasheet有问题吧?
Pin15是LED+(电源至LED+)
Pin16是LED-(电源至LED-)
|
|
|
|
|
|
|
|
楼主 |
发表于 18-3-2013 12:07 AM
|
显示全部楼层
没有啦!!!只是我搞错!!!但是不能program去line 2 |
|
|
|
|
|
|
|
发表于 18-3-2013 09:43 PM
|
显示全部楼层
weitao 发表于 18-3-2013 12:07 AM
没有啦!!!只是我搞错!!!但是不能program去line 2
一定是编程出现问题啦?
把源代码放出来。别人可能会助你解决。
|
|
|
|
|
|
|
|
楼主 |
发表于 18-3-2013 10:21 PM
|
显示全部楼层
西门庆33 发表于 18-3-2013 09:43 PM
一定是编程出现问题啦?
把源代码放出来。别人可能会助你解决。
#include <htc.h>
#define _XTAL_FREQ 20000000
#define rw RC2
#define e RC1
#define rs RC0
#define Di PORTD
#define led1 RB0
#define led2 RB1
void init();
unsigned char adc (unsigned char ch);
void busy();
void cmd(unsigned char var);
void data(unsigned char var);
void setD(const char *var);
void funct1();
void led1o();
void led2o();
void main()
{
char val;
TRISA = 0xFF;
TRISB = 0x00;
TRISC = 0x00;
TRISD = 0x00;
init();
funct1();
cmd(0x02);
led1 = 1;
while (1);
}
void init()
{
cmd(0x38);
busy();
cmd(0x0C);
busy();
cmd(0x01);
busy();
cmd(0x06);
busy();
}
void cmd(unsigned char var)
{
Di = var;
rs = 0;
rw = 0;
e = 1;
e = 0;
busy();
}
void data(unsigned char var)
{
Di = var;
rs = 1;
rw = 0;
e = 1;
e = 0;
busy();
}
void busy()
{
TRISD = 0xFF;
e = 1;
rs = 0;
rw = 1;
while (RD7)
{
e = 0;
e = 1;
}
TRISD = 0x00;
}
void setD(const char *var)
{
while(*var >0)
{
data(*var++);
}
}
void funct1()//5*8 all black
{
unsigned char b1[8] = {0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f};
cmd(0x40);
for(int i=0;i<8;i++)
{
data(b1);
__delay_ms(1);
}
cmd(0xC0);//这里要去line 2的
data(0x00);
}
|
|
|
|
|
|
|
|
楼主 |
发表于 29-3-2013 12:54 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 14-5-2013 10:10 PM
|
显示全部楼层
看不懂C语言。 想问你
void funct1()//5*8 all black
{
unsigned char b1[8] = {0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f};
cmd(0x40);
for(int i=0;i<8;i++)
{
data(b1);
__delay_ms(1);
}
cmd(0xC0);//这里要去line 2的
data(0x00); // 这里为什么在line2 放 00?
}
---------------------------------------------------------------------------------------
改成这样可以吗?
void funct1()//5*8 all black
{
unsigned char b1[8] = {0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f};
cmd(0x40);
for(int i=0;i<8;i++)
{
data(b1);
__delay_ms(1);
}
cmd(0xC0);//这里要去line 2的
for(int i=0;i<8;i++)
{
data(b1);
__delay_ms(1);
}
}
|
|
|
|
|
|
|
|
发表于 19-5-2013 11:45 AM
|
显示全部楼层
楼主 肿么e=1和e=0中间没有加busy呢
万一LCD反应不过来。。。
还有 要去到line2的话writecom的时候记得用0x80+0x40哦 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|