標題:
求幫助!!!
[打印本頁]
作者:
liumin
時間:
2013-8-6 11:22
標題:
求幫助。!
有哪位大神會IIC液晶啊,可以提示一點也行,我現(xiàn)在根本是無從下手啊,那三個控制端口RS,RW,EN不知道如何是好???
作者:
xiao1074234390
時間:
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;其他不變就行。
寫地址要參照液晶說明。
作者:
liumin
時間:
2013-8-6 14:42
這種并行的我也會寫,我問的是串行液晶的,和IIC一起,只有兩條線,SDA和SCL
作者:
admin
時間:
2013-8-6 15:15
這里有答案:
http://www.torrancerestoration.com/mcu/2036.html
作者:
liumin
時間:
2013-8-6 21:20
admin 發(fā)表于 2013-8-6 15:15
這里有答案:http://www.torrancerestoration.com/mcu/2036.html
這個是寫LCD1602直接就有外接的控制接口RS,R/W,E的,然后是四線串行,有沒有以IIC為串行器件的?電路圖是這樣的,外接的接口只有vcc,GND,SCL,SDA四個,還是很感謝,給了我不少啟發(fā)。!
作者:
liumin
時間:
2013-8-6 21:22
我的那個IIC液晶是基于Arduino寫的,但是用51單片機寫不會。
作者:
liumin
時間:
2013-8-7 17:28
IIC液晶:我已經(jīng)寫出點了,但還不能很好的控制,給大家參考一下:
#include <reg52.h>
#include "intrins.h"
#define uint unsigned int
#define uchar unsigned char
sbit SCL=P2^1;
sbit SDA=P2^0;
//延時函數(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();
}
//應答
void respons(void)
{
uchar i=0;
SCL = 1;
delayus();
while((SDA=1)&&(i<255))
i++;
SCL = 0;
delayus();
}
//發(fā)送一個字節(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ù)
}
}
作者:
liumin
時間:
2013-8-7 17:29
在百度上搜IIC液晶會有他的原理的講解!
作者:
何必919
時間:
2013-8-7 17:34
你會IIC總線接口的方式嗎?
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1