佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1199|回复: 7

lcd 的问题

[复制链接]
发表于 16-3-2013 05:47 PM | 显示全部楼层 |阅读模式
谁有用过JHD162A ?它的connection是?我找的是pin 15 是VCC 和pin 16 是ground!!!和datasheet不一样!!!
这是它的link:lcd
回复

使用道具 举报


ADVERTISEMENT

发表于 18-3-2013 12:05 AM | 显示全部楼层
对呀!你的Datasheet有问题吧?
Pin15是LED+(电源至LED+)
Pin16是LED-(电源至LED-)
pinout.JPG
lcd.jpeg
回复

使用道具 举报

 楼主| 发表于 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 | 显示全部楼层
为何output不一样?
回复

使用道具 举报

Follow Us
发表于 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哦
回复

使用道具 举报


ADVERTISEMENT

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 20-4-2024 07:01 AM , Processed in 0.090276 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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