at24c16如何划分出多个读写区_读写AT24C02,并用1602显示

本文档介绍如何使用AT24C16存储器进行数据的读写操作,并通过LCD1602显示器显示相关内容。涉及到I2C通信、LCD1602初始化、数据传输和屏幕显示等功能实现。
摘要由CSDN通过智能技术生成

#include

#include

/*********************************LCD定义部分********************************/

//输入方式设置

#define LCD_AC_AUTO_INCREMENT 0x06 //数据读、写操作后,AC自动增一

#define LCD_AC_AUTO_DECREASE 0x04 //数据读、写操作后,AC自动减一

#define LCD_MOVE_ENABLE 0x05 //数据读、写操作,画面平移

#define LCD_MOVE_DISENABLE 0x04 //数据读、写操作,画面不动

#define LCD_GO_HOME 0x02 //AC=0,光标、画面回HOME位

//设置显示、光标及闪烁开、关

#define LCD_DISPLAY_ON 0x0C //显示开

#define LCD_DISPLAY_OFF 0x08 //显示关

#define LCD_CURSOR_ON 0x0A //光标显示

#define LCD_CURSOR_OFF 0x08 //光标不显示

#define LCD_CURSOR_BLINK_ON 0x09 //光标闪烁

#define LCD_CURSOR_BLINK_OFF 0x08 //光标不闪烁

//光标、画面移动,不影响DDRAM

#define LCD_LEFT_MOVE 0x18 //LCD显示左移一位

#define LCD_RIGHT_MOVE 0x1C //LCD显示右移一位

#define LCD_CURSOR_LEFT_MOVE 0x10 //光标左移一位

#define LCD_CURSOR_RIGHT_MOVE 0x14 //光标右移一位

//工作方式设置

#define LCD_DISPLAY_DOUBLE_LINE 0x38 //两行显示

#define LCD_DISPLAY_SINGLE_LINE 0x30 //单行显示

#define LCD_CLEAR_SCREEN 0X01 //清屏

/***********************LCD1602地址相关******************************/

#define LINE1_HEAD 0x80 // 第一行DDRAM起始地址

#define LINE2_HEAD 0xc0 // 第二行DDRAM起始地址

#define LINE1 0 //第一行

#define LINE2 1 //第二行

#define LINE_LENGTH 16 //每行的最大字符长度

/***********************LCD1602接线引脚定义**************************

**********************可根据实际电路改变*******************************/

#define LCDIO P3 //定义P2口与LCD1602的数据口相接

sbit LCD_RS=P1^4;

sbit LCD_RW=P1^3;

sbit LCD_EN=P1^2;

sbit LCD_BUSY=LCDIO^7;

/**********************另外相关的定义*********************************/

#define HIGH 1

#define LOW 0

#define TURE 1

#define FALSE 0

#define uchar unsigned char

#define uint unsigned int

#define NUM 12

/*************************以下是函数的申明部分*************************/

void LCD_init(void); //LCD1602初始化

void LCD_send_command(uchar command); //

void LCD_send_data(uchar dat);

void LCD_write_char(uchar x,uchar y,uchar dat);

void LCD_write_string(uchar x,uchar y,char *Data);

void delay_ms(uint n);

void LCD_check_busy(void);

/*********************结束***********************************************/

//at24c02 part

#define WRITE24C02 0xA0

#define READ24C02 0xA1

//I2C part

#define W

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值