• 大小: 70KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: PCF8574  

资源简介

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

评论

共有 条评论