資源簡介
打包了LiquidCrystal_I2C_h,同時包含proteus下的arduino實現IIC的1602的操作工程文件及代碼;而且經過嚴格測試保證能用

代碼片段和文件信息
/**********************************************
LiquidCrystal_I2C
last?updated?on?21/12/2011
Tim?Starling?Fix?the?reset?bug?(Thanks?Tim)
www.yfrobot.com
**********************************************/
#include?“LiquidCrystal_I2C.h“
#include?
#if?defined(ARDUINO)?&&?ARDUINO?>=?100
#include?“Arduino.h“
#define?printIIC(args) Wire.write(args)
inline?size_t?LiquidCrystal_I2C::write(uint8_t?value)?{
send(value?Rs);
return?1;
}
#else
#include?“WProgram.h“
#define?printIIC(args) Wire.send(args)
inline?void?LiquidCrystal_I2C::write(uint8_t?value)?{
send(value?Rs);
}
#endif
#include?“Wire.h“
//?When?the?display?powers?up?it?is?configured?as?follows:
//
//?1.?Display?clear
//?2.?Function?set:?
//????DL?=?1;?8-bit?interface?data?
//????N?=?0;?1-line?display?
//????F?=?0;?5x8?dot?character?font?
//?3.?Display?on/off?control:?
//????D?=?0;?Display?off?
//????C?=?0;?Cursor?off?
//????B?=?0;?blinking?off?
//?4.?Entry?mode?set:?
//????I/D?=?1;?Increment?by?1
//????S?=?0;?No?shift?
//
//?Note?however?that?resetting?the?Arduino?doesn‘t?reset?the?LCD?so?we
//?can‘t?assume?that?its?in?that?state?when?a?sketch?starts?(and?the
//?LiquidCrystal?constructor?is?called).
LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t?lcd_Addruint8_t?lcd_colsuint8_t?lcd_rows)
{
??_Addr?=?lcd_Addr;
??_cols?=?lcd_cols;
??_rows?=?lcd_rows;
??_backlightval?=?LCD_NOBACKLIGHT;
}
void?LiquidCrystal_I2C::init(){
init_priv();
}
void?LiquidCrystal_I2C::init_priv()
{
Wire.begin();
_displayfunction?=?LCD_4BITMODE?|?LCD_1LINE?|?LCD_5x8DOTS;
begin(_cols?_rows);??
}
void?LiquidCrystal_I2C::begin(uint8_t?cols?uint8_t?lines?uint8_t?dotsize)?{
if?(lines?>?1)?{
_displayfunction?|=?LCD_2LINE;
}
_numlines?=?lines;
//?for?some?1?line?displays?you?can?select?a?10?pixel?high?font
if?((dotsize?!=?0)?&&?(lines?==?1))?{
_displayfunction?|=?LCD_5x10DOTS;
}
//?SEE?PAGE?45/46?FOR?INITIALIZATION?SPECIFICATION!
//?according?to?datasheet?we?need?at?least?40ms?after?power?rises?above?2.7V
//?before?sending?commands.?Arduino?can?turn?on?way?befer?4.5V?so?we‘ll?wait?50
delay(50);?
??
//?Now?we?pull?both?RS?and?R/W?low?to?begin?commands
expanderWrite(_backlightval); //?reset?expanderand?turn?backlight?off?(Bit?8?=1)
delay(1000);
?? //put?the?LCD?into?4?bit?mode
//?this?is?according?to?the?hitachi?HD44780?datasheet
//?figure?24?pg?46
??//?we?start?in?8bit?mode?try?to?set?4?bit?mode
???write4bits(0x03?<4);
???delayMicroseconds(4500);?//?wait?min?4.1ms
???
???//?second?try
???write4bits(0x03?<4);
???delayMicroseconds(4500);?//?wait?min?4.1ms
???
???//?third?go!
???write4bits(0x03?<4);?
???delayMicroseconds(150);
???
???//?finally?set?to?4-bit?interface
???write4bits(0x02?<4);?
//?set?#?lines?font?size?etc.
command(LCD_FUNCTIONSET?|?_displayfunction);??
//?turn?the?display?on?with?no?cursor?or?blinking?default
_displaycontrol?=?L
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-03-31?21:33??lcd1602_proteus_arduino仿真\LiquidCrystal_I2C\
?????文件????????8758??2015-12-23?15:55??lcd1602_proteus_arduino仿真\LiquidCrystal_I2C\LiquidCrystal_I2C.cpp
?????文件????????3626??2013-12-26?19:25??lcd1602_proteus_arduino仿真\LiquidCrystal_I2C\LiquidCrystal_I2C.h
?????文件????????1095??2009-09-12?00:15??lcd1602_proteus_arduino仿真\LiquidCrystal_I2C\keywords.txt
?????文件???????28173??2019-03-31?21:16??lcd1602_proteus_arduino仿真\arduino_1602LCD_pcf8574.pdsprj
?????目錄???????????0??2019-03-31?21:33??lcd1602_proteus_arduino仿真\
評論
共有 條評論