欢迎来到天天文库
浏览记录
ID:39577183
大小:178.30 KB
页数:8页
时间:2019-07-06
《IIC接口 I2C接口 LCD1602 程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、PIC16F1824驱动IIC/I2C接口LCD1602液晶模块前一段时间,做一个显示电路,7段码显示内容太少,LCD1602占用的IO又太多,最后找到一种IIC/I2C接口LCD1602转接板。T宝上买的LCD1602转接板,有资料,不过是针对Arduino的。决定自己写程序。首先得知道从器件地址。T宝卖家给的地址是0x27(针对Arduino),而单片机使用的时候需要先左移一位,0x4E;测试的时候一直没反应,用示波器看,单片机发送的地址没问题,但转接板没有应答,ACK一直是高电平,推测还是地址错误;后来搜索发现,PCF8574与PCF8574A的地址是不一样的,而T宝卖的是PC
2、F8574A,给的资料还是PCF8574。最后确认,从器件PCF8574A地址应该是0x7E;后来发送地址0x7E后,有应答ACK,又搜了写LCD1602的显示程序,稍微改了改,显示成功了;主要的程序如下:MCU:PIC16F1824IIC/I2C接口LCD1602转接板:PCF8574ATmain.c中包含:I2CInit();LCD1602Init();Dip_Single_char(1,5,'A');I2C.h文件://********************************************************************//文件名称:I2C.h
3、//创建日期:2016-10-11//最新更改:2016-10-11//描述:I2C初始化//********************************************************************//#define_XTAL_FREQ2000000//延时函数delay_us/ms使用此值#defineSlave_Add0x7E//从器件地址,PCF8574A,0x7E//PCF8574,0x27,左移1位,0x4E,#defineI2C_BPS0x18//I2C波特率Fclock=Fosc/((I2C_BPS+1)*4)//2MHz,20k,0x1
4、8#defineIdle!(SSP1STATbits.R_nW
5、(0x1F&SSP1CON2))//空闲voidI2CInit();voidI2CStart();voidI2CStop();voidReStart();voidI2CSendByte(unsignedcharI2CSnBy);voidWriteCommand(unsignedcharCommand);voidWriteData(unsignedcharData);voidLCD1602Init(void);voidDip_Single_char(unsignedcharcol,unsignedcharrow,unsig
6、nedcharsign);voidDisDec(unsignedcharcol_D,unsignedcharrow_D,unsignedintTemp_k);/***********************************************************************TheEnd*********************************************************************/I2C.c文件//***********************************************************
7、*********//文件名称:I2C.c//创建日期:2016-10-11//最新更改:2016-10-11//描述:I2C初始化//********************************************************************//#include"xc.h"#include"I2C.h"/***********************************************************************Functionname:I2CInit**Descriptions:注意:必须将SDA、SCL引脚配置为输入引
8、脚,<>**inputparameters:无**outputparameters:无**Returnedvalue:无**********************************************************************/voidI2CInit(void){SSP1STATbits.SMP=1;//禁止标准速度模式下的压摆率控制SSP1STATbits.CKE=0;//禁止SMBus特定输入SSP1C
此文档下载收益归作者所有