找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3698|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

求幫助。!

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:50469 發(fā)表于 2013-8-6 11:22 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
有哪位大神會IIC液晶啊,可以提示一點(diǎn)也行,我現(xiàn)在根本是無從下手啊,那三個(gè)控制端口RS,RW,EN不知道如何是好???
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:52066 發(fā)表于 2013-8-6 12:29 | 只看該作者
RS=1是寫數(shù)據(jù),RS=0是寫地址;RW=1是在液晶里讀數(shù)據(jù),RW=0是在液晶里寫數(shù)據(jù);E是使能;
寫地址可以這樣:
          RS=0;
         delay(5);//延遲5ms左右
         P2=com;  //寫地址(com)
         EN=1;
         delay(5);
         EN=0;
寫數(shù)據(jù)將RS=1;其他不變就行。
寫地址要參照液晶說明。
回復(fù)

使用道具 舉報(bào)

板凳
ID:50469 發(fā)表于 2013-8-6 14:42 | 只看該作者
這種并行的我也會寫,我問的是串行液晶的,和IIC一起,只有兩條線,SDA和SCL
回復(fù)

使用道具 舉報(bào)

地板
ID:1 發(fā)表于 2013-8-6 15:15 | 只看該作者
回復(fù)

使用道具 舉報(bào)

5#
ID:50469 發(fā)表于 2013-8-6 21:20 | 只看該作者
admin 發(fā)表于 2013-8-6 15:15
這里有答案:http://www.torrancerestoration.com/mcu/2036.html

這個(gè)是寫LCD1602直接就有外接的控制接口RS,R/W,E的,然后是四線串行,有沒有以IIC為串行器件的?電路圖是這樣的,外接的接口只有vcc,GND,SCL,SDA四個(gè),還是很感謝,給了我不少啟發(fā)。!
回復(fù)

使用道具 舉報(bào)

6#
ID:50469 發(fā)表于 2013-8-6 21:22 | 只看該作者
我的那個(gè)IIC液晶是基于Arduino寫的,但是用51單片機(jī)寫不會。
回復(fù)

使用道具 舉報(bào)

7#
ID:50469 發(fā)表于 2013-8-7 17:28 | 只看該作者
IIC液晶:我已經(jīng)寫出點(diǎn)了,但還不能很好的控制,給大家參考一下:
#include <reg52.h>
#include "intrins.h"
#define uint  unsigned int
#define uchar unsigned char
sbit SCL=P2^1;
sbit SDA=P2^0;
//延時(shí)函數(shù)
void delayus()
{
        ;;;;;
}
void delayms(uchar x)
{
        uchar j;
        while(x--)
                for(j=110;j>0;j--);
}
//開始信號
void iic_start(void)
{
        SDA = 1;
        delayus();
    _nop_();_nop_();_nop_();_nop_();_nop_();
        SCL = 1;
        delayus();
        SDA=0;
        delayus();
}
//停止信號
void iic_stop(void)
{
        SDA = 0;
        delayus();
        SCL = 1;
        delayus();
        SDA = 1;
        delayus();
}
//初始化
void iicinit(void)
{       
        SDA = 1;
        delayus();
        SCL=1;
        delayus();
}
//應(yīng)答
void respons(void)
{
        uchar i=0;
        SCL = 1;
        delayus();
        while((SDA=1)&&(i<255))
                i++;
        SCL = 0;
        delayus();
}
//發(fā)送一個(gè)字節(jié)
void write_byte(uchar date)
{
        uchar i,temp;
        temp=date;                                                       
        for(i=0;i<8;i++)
        {
                temp=temp<<1;                                                        
                SCL = 0;
                delayus();
                SDA=CY;
                delayus();
                SCL = 1;
                delayus();       
        }
        SCL=0;
        delayus();
        SDA=1;
        delayus();
}
//寫地址,數(shù)據(jù)
void write_lcd(uchar contr1,uchar contr2,uchar date1,uchar date2)
{
        iic_start();
        write_byte(0x4e);                                               
        respons();
        write_byte(contr1);
        write_byte(contr2);
        respons();
        delayms(5);
        write_byte(date1);
        write_byte(date2);
        respons();
        iic_stop();
}
void lcd_init()
{
        write_lcd(0x3c,0x8c,0xf8,0xf8);       
        write_lcd(0x0c,0xcc,0xf8,0xf8);       
        write_lcd(0x0c,0x6c,0xf8,0xf8);       
        write_lcd(0x0c,0x1c,0xf8,0xf8);       
}
void main()
{
        iicinit();
        lcd_init();
        while(1)
        {
                write_lcd(0xfc,0x0c,0xf8,0x08);                //先寫地址
                write_lcd(0x4d,0x3d,0x48,0x38);                //寫數(shù)據(jù)
                write_lcd(0x4d,0x4d,0x48,0x48);                //寫數(shù)據(jù)
                write_lcd(0xad,0x0d,0xa8,0x08);                //寫數(shù)據(jù)
        }
}
回復(fù)

使用道具 舉報(bào)

8#
ID:50469 發(fā)表于 2013-8-7 17:29 | 只看該作者
在百度上搜IIC液晶會有他的原理的講解!
回復(fù)

使用道具 舉報(bào)

9#
ID:32572 發(fā)表于 2013-8-7 17:34 | 只看該作者
你會IIC總線接口的方式嗎?
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表