一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: 老弹弓
收起左侧

96x64 液晶技术讨论帖。

  [复制链接]
发表于 2012-1-17 13:50 | 显示全部楼层
看了uc1602s的资料,有一点不明白:uc1602s的C/D(命令、数据)位和W/R(写入、读出)位是如何写入数据来控制的?
发表于 2012-1-17 19:37 | 显示全部楼层
stc12c5410AD的5V是怎么和3.3V转换的呢?
我直接用stm32驱动老是不成功(能应答,不反应),等考完试再试试 ...
zpwc 发表于 2012-1-11 17:23 https://www.yleee.com.cn/images/common/back.gif



我用的是LE ,3.3V 的。     
   5v和3v 的转换stc的手册里有, 我觉得只要液晶电源用3v   i/0直 ...
老弹弓 发表于 2012-1-11 17:34 https://www.yleee.com.cn/images/common/back.gif



   
        AVR PIC低压可直接驱动。

        5V单片机从安全考虑。应另加电阻分压。


1.JPG
发表于 2012-1-17 20:09 | 显示全部楼层
本帖最后由 zpwc 于 2012-1-17 20:59 编辑

还是没反应额(不应答),怀疑是不是电路搭错了,帮忙看下这样搭对不对?
VGG090618.jpg
初始化是按老弹弓的汇编翻译的,应该没问题吧:
/***********************************************************
@function:  Init_UC1602(void)
@description:初始化
@input:      void
@output:     void
************************************************************/
void Init_UC1602(void)
{
  COM_Head();
I2C_SendByte(0x7ah);   //复位
Delay(1);
I2C_Stop();
COM_Head();
//电源控制
I2C_SendByte(0x2eh);  
//温度补偿
I2C_SendByte(0x26h);
//驱动电压   
I2C_SendByte(0x81h);   //固定字节
I2C_SendByte(0x62h);   //对比度,0~255,默认62H
//列设置
I2C_SendByte(0x00h);   //列低四位   0000****
I2C_SendByte(0x10h);   //列高三位位 00010***
//LCD 偏置
I2C_SendByte(0x0ebh);   //LCD 偏置 EB=1/9  默认
//AC 页列自动增加 及增加方向 默认89
I2C_SendByte(0x89h);
//部分显示 84禁止 85 允许
I2C_SendByte(0x84h);
//卷轴起始行,设置起始行 范围0-63 特效用,可不管
I2C_SendByte(0x40h);
//设置起始页地址, 共8页
I2C_SendByte(0x0b0h);
//显示开  默认是关 这里一定要设置
I2C_SendByte(0x0afh);
//MX MY 数据顺序  默认C0 ; CC 是倒的 ;  c8是倒的镜像 c4是正的镜像
I2C_SendByte(0x0c0h);
//全显示    A5 全显示
I2C_SendByte(0x0a5h);//这里设置全显示,但是还是没显示。。
// 反转显示 A6  A7
I2C_SendByte(0x0a6h);
//COM END ,设置结束电极
I2C_SendByte(0x0f1h);
I2C_SendByte(0x03fh);
//结束
I2C_Stop();
}
 楼主| 发表于 2012-1-17 21:24 | 显示全部楼层
还是没反应额(不应答),怀疑是不是电路搭错了,帮忙看下这样搭对不对?

初始化是按老弹弓的汇编翻译的 ...
zpwc 发表于 2012-1-17 20:09 https://www.yleee.com.cn/images/common/back.gif



    电路我觉得没问题,初始化这里并不重要,可以只发送一个显示开命令应该正常显示了。最重要是的最底层的那几个子程序,就是: 起始位,头字节 停止位。  你可以在上电后------ 发 起始位-------命令头字节-------检查应答 ,这时候没有应答就该检查时序了,  还有命令的头字节不要搞错。
 楼主| 发表于 2012-1-17 21:26 | 显示全部楼层
看了uc1602s的资料,有一点不明白:uc1602s的C/D(命令、数据)位和W/R(写入、读出)位是如何写入数据来控制 ...
roamer 发表于 2012-1-17 13:50 https://www.yleee.com.cn/images/common/back.gif


是根据头字节来确定的, 起始位后先发送一个头字节,这个字节就规定了以后的数据是命令还是数据,是读还是写。
发表于 2012-1-17 21:28 | 显示全部楼层
电路我觉得没问题,初始化这里并不重要,可以只发送一个显示开命令应该正常显示了。最重要是的最 ...
老弹弓 发表于 2012-1-17 21:24 https://www.yleee.com.cn/images/common/back.gif

时序应该是对的吧,代码如下,请教下器件地址为什么是0x78呢?手册里A2A3好像是接地的额。。/***********************************************************
@function:   bool I2C_Start(void)
@description:I2C启动函数
@input:      void
@output:     void
************************************************************/
bool I2C_Start(void)
{

SDA_H();

SCL_H();

I2C_delay();

SDA_L();

I2C_delay();

if(SDA_Read()){return FALSE;}
//SDA线为高电平则总线出错,退出

SDA_L();

I2C_delay();

return TRUE;
}

/***********************************************************
@function:   void I2C_Stop(void)
@description:I2C停止函数
@input:      void
@output:     void
************************************************************/
void I2C_Stop(void)
{

SCL_L();

I2C_delay();

SDA_L();

I2C_delay();

SCL_H();

I2C_delay();

SDA_H();

I2C_delay();
}

/***********************************************************
@function:   void I2C_Ack(void)
@description:I2C应答函数
@input:      void
@output:     void
************************************************************/
void I2C_Ack(void)
{


SCL_L();

I2C_delay();

SDA_L();

I2C_delay();

SCL_H();

I2C_delay();

SCL_L();

I2C_delay();
}
/***********************************************************
@function:   void I2C_NoAck(void)
@description:I2C不应答函数
@input:      void
@output:     void
************************************************************/
void I2C_NoAck(void)
{


SCL_L();

I2C_delay();

SDA_H();

I2C_delay();

SCL_H();

I2C_delay();

SCL_L();

I2C_delay();
}
/***********************************************************
@function:   bool I2C_WaitAck(void)
@description:I2C等待应答函数
@input:      void
@output:      TRUE-收到应答 ,FLASE-无应答
************************************************************/
bool I2C_WaitAck(void)
//返回为:=1有ACK,=0无ACK
{

SCL_L();

I2C_delay();

SDA_H();


I2C_delay();

SCL_H();

I2C_delay();

if(SDA_Read())

{
      SCL_L();
      return FALSE;

}

SCL_L();

return TRUE;
}
/***********************************************************
@function:   void I2C_SendByte(u8 SendByte)
@description:I2C发送一字节函数
@input:      void
@output:     void
************************************************************/
void I2C_SendByte(u8 SendByte) //数据从高位到低位//
{
    u8 i=8;
    while(i--)
    {
        SCL_L();
        I2C_delay();
      if(SendByte&0x80)

    {
        SDA_H();

    }  
      else

    {
        SDA_L();

}   
        SendByte<<=1;
        I2C_delay();

SCL_H();
        I2C_delay();
    }
    SCL_L();
}

/***********************************************************
@function:   uchar I2C_ReceiveByte(void)
@description:I2C接收一字节函数
@input:      void
@output:     接收的字节
uchar类型
************************************************************/
u8 I2C_ReceiveByte(void)  
{
    u8 i=8;
    u8 ReceiveByte=0;

    SDA_H();

    while(i--)
    {
      ReceiveByte<<=1;      
      SCL_L();
      I2C_delay();

  SCL_H();
      I2C_delay();

      if(SDA_Read())
      {
        ReceiveByte|=0x01;
      }
    }
    SCL_L();
    return ReceiveByte;
}
 楼主| 发表于 2012-1-17 22:33 | 显示全部楼层
地址位都是零的话不响应啊, 四种地址方式都试验了的。
发表于 2012-1-18 19:41 | 显示全部楼层
本帖最后由 zpwc 于 2012-1-18 19:52 编辑
地址位都是零的话不响应啊, 四种地址方式都试验了的。
老弹弓 发表于 2012-1-17 22:33 https://www.yleee.com.cn/images/common/back.gif
终于成功了~之前是直接复制汇编代码,十六进制是78h这么表示的,而C是0x78这么表示的,导致数据错误,用示波器才发现输出的数据不对。。
器件地址的确是0x78。
发表于 2012-1-18 21:09 | 显示全部楼层
终于成功了~之前是直接复制汇编代码,十六进制是78h这么表示的,而C是0x78这么表示的,导致数据错误,用示波 ...
zpwc 发表于 2012-1-18 19:41 https://www.yleee.com.cn/images/common/back.gif

好!能把完整的c语言程序贴上来看看吗?
发表于 2012-1-19 09:18 | 显示全部楼层
回复 89# roamer
就是前面贴的那些,吧命令中的h去掉就可以了

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-3 05:06 , Processed in 0.046784 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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