資源簡介
PCF8574LCD模塊鏈接1602單片機51例程 節省單片機的IO口使用

代碼片段和文件信息
#include“pcf8574lcd.h“
char?ADDR?=?0x4E;
void?delay(int?ms)
{
unsigned?char?y?;
while(ms--)
{
for(y?=?0?;?y<250?;?y++)
{
_nop_()?;
_nop_()?;
_nop_()?;
_nop_()?;
}
}
}
void?IIC_start(void)
{
SDA=1;
_nop_();
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SDA=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;
}
void?IIC_stop(void)
{
SDA=0;
_nop_();
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SDA=1;
_nop_();
_nop_();
_nop_();
_nop_();
}
void?IIC_writeByte(char?temp)
{
char?i;
for(i=0;i<8;i++)
{
SDA=(bit)(temp?&?0x80)?;
temp?<<=1;
_nop_();
_nop_();
SCL=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL=0;
}
_nop_();?
_nop_();
_nop_();
_nop_();
SDA=1;
_nop_();?
_nop_();?
_nop_();
_nop_();
SCL=1;?
_nop_();
_nop_();
_nop_();
while(SDA);
_nop_();
SCL=0;
}
void?LCD_write_command(char?comm)
{
char?tmp;
IIC_start();
IIC_writeByte(ADDR);
tmp?=?comm?&?0xF0;
tmp?|=?0x0C;?//RS?=?0?RW?=?0?EN?=?1
IIC_writeByte(tmp);
delay(20);
tmp?&=?0xFB;?//Make?EN?=?0
IIC_writeByte(tmp);?
tmp?=?(comm?&?0x0F)?<4?;
tmp?|=?0x0C;?//RS?=?0?RW?=?0?EN?=?1
IIC_writeByte(tmp);
delay(20);
tmp?&=?0xFB;?//?Make?EN?=?0
IIC_writeByte(tmp);
//stop_8574();
}
void?LCD_write_data(char?data1)
{
char?tmp;
IIC_start();
IIC_writeByte(ADDR);
tmp?=?data1?&?0xF0;
tmp?|=?0x0D;?//RS?=?0?RW?=?0?EN?=?1
IIC_writeByte(tmp);
delay(20);
tmp?&=?0xFB;?//Make?EN?=?0
IIC_writeByte(tmp);?
tmp?=?(data1?&?0x0F)?<4?;
tmp?|=?0x0D;?//RS?=?0?RW?=?0?EN?=?1
IIC_writeByte(tmp);
delay(20);
tmp?&=?0xFB?;?//?Make?EN?=?0
IIC_writeByte(tmp);
}
void?Init_Lcd(void)
{
LCD_write_command(0x33);?
delay(50)?;
LCD_write_command(0x32);?
delay(50)?;?
LCD_write_command(0x28);?
delay(50)?;?
LCD_write_command(0x0C);?
delay(50)?;?
LCD_write_command(0x06);?
delay(50)?;?
LCD_write_command(0x01);?
delay(50)?;
}
//Clear?Screen
void?Clear_Lcd(void)
{
LCD_write_command(0x01);
}
void?Write_LCD(int?x?int?y?char?*str)
{
char?addr;
if(?x?0)
{
x?=?0;
}
if(x?>?15)
{
x?=?15;
}
if(y<0)
{
y?=?0;
}
if(y?>?1)
{
y?=?1;
}
//?Move?cursor
addr?=?0x80?+?0x40?*?y?+?x;
LCD_write_command(addr);
while?(*str)?
{
LCD_write_data(*str++);?
}
}
void?Write_Customer(int?x?int?y?char?*str)
{
unsigned?char?itmp;
for(i=0;i<8;i++)
{
LCD_write_command(0x40+i);
LCD_write_data(*str++);
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-10-12?19:39??PCF8574LCD\
?????文件??????108409??2018-03-19?08:19??PCF8574LCD\Last?Loaded?Test.DBK
?????文件????????2593??2018-10-12?19:33??PCF8574LCD\PCF8574LCD.c
?????文件?????????500??2018-10-12?19:34??PCF8574LCD\PCF8574LCD.h
?????文件????????7743??2018-10-12?19:34??PCF8574LCD\PCF8574LCD.LST
?????文件???????11375??2018-10-12?19:34??PCF8574LCD\PCF8574LCD.OBJ
?????文件???????11783??2018-10-12?19:34??PCF8574LCD\Test
?????文件?????????206??2018-10-12?19:32??PCF8574LCD\Test.c
?????文件??????108409??2018-03-19?10:07??PCF8574LCD\Test.DSN
?????文件????????2088??2018-10-12?19:34??PCF8574LCD\Test.hex
?????文件??????????44??2018-10-12?19:34??PCF8574LCD\Test.lnp
?????文件????????1351??2018-10-12?19:34??PCF8574LCD\Test.LST
?????文件???????14336??2018-10-12?19:34??PCF8574LCD\Test.M51
?????文件????????1881??2018-10-12?19:34??PCF8574LCD\Test.OBJ
?????文件???????13638??2018-10-12?19:34??PCF8574LCD\Test.plg
?????文件?????????742??2018-05-25?18:05??PCF8574LCD\Test.PWI
?????文件???????57290??2018-10-12?19:39??PCF8574LCD\Test.uvopt
?????文件???????13392??2018-10-12?19:39??PCF8574LCD\Test.uvproj
?????文件???????55848??2018-10-12?00:11??PCF8574LCD\Test_uvopt.bak
?????文件???????13218??2017-03-07?13:11??PCF8574LCD\Test_uvproj.bak
- 上一篇:webrtc+VS2017完整工程及編譯結果
- 下一篇:cad.txt
評論
共有 條評論