資料介紹
??困擾我?guī)椎某绦蚪K于搞定了,前幾天我對AT24C02一直讀不準(zhǔn)確,找了N長時間的程序都沒有頭緒,后來在板哥的指點下,一下子明白了,原因很簡單,我在AT24C02_read()最后沒有加延時,主要還是對時序沒有控制好呀,用板哥的一句話是我們對器件的了解還不很熟,我現(xiàn)在也感到,一定要先了解了器件的特性,我們才能游刃有余把握住每一個容易疏忽的細(xì)節(jié),在這里,板哥確實教會了我好多東西,在我剛學(xué)單片機時,他就對我說時序很重要,現(xiàn)在終于是看到了.
??好了不羅嗦了,最后得出一點,最好在每個讀寫結(jié)束時加個延時,如果對時間要求不是很重要的話,加的長一點無所謂,如果要求比較高的話,那先加長延時,然后慢慢的減.
#include
#include
/*********************************LCD定義部分********************************/
//輸入方式設(shè)置
#define LCD_AC_AUTO_INCREMENT???? 0x06???????? //數(shù)據(jù)讀、寫操作后,AC自動增一
#define LCD_AC_AUTO_DECREASE????? 0x04???????? //數(shù)據(jù)讀、寫操作后,AC自動減一
#define LCD_MOVE_ENABLE?????????? 0x05???????? //數(shù)據(jù)讀、寫操作,畫面平移
#define LCD_MOVE_DISENABLE??????? 0x04???????? //數(shù)據(jù)讀、寫操作,畫面不動
#define LCD_GO_HOME?????????????? 0x02???????? //AC=0,光標(biāo)、畫面回HOME位
//設(shè)置顯示、光標(biāo)及閃爍開、關(guān)
#define LCD_DISPLAY_ON??????????? 0x0C???????? //顯示開
#define LCD_DISPLAY_OFF?????????? 0x08???????? //顯示關(guān)
#define LCD_CURSOR_ON???????????? 0x0A???????? //光標(biāo)顯示
#define LCD_CURSOR_OFF??????????? 0x08???????? //光標(biāo)不顯示
#define LCD_CURSOR_BLINK_ON?????? 0x09???????? //光標(biāo)閃爍
#define LCD_CURSOR_BLINK_OFF????? 0x08???????? //光標(biāo)不閃爍
//光標(biāo)、畫面移動,不影響DDRAM
#define LCD_LEFT_MOVE???????????? 0x18???????? //LCD顯示左移一位
#define LCD_RIGHT_MOVE??????????? 0x1C???????? //LCD顯示右移一位
#define LCD_CURSOR_LEFT_MOVE????? 0x10???????? //光標(biāo)左移一位
#define LCD_CURSOR_RIGHT_MOVE???? 0x14???????? //光標(biāo)右移一位
//工作方式設(shè)置
#define LCD_DISPLAY_DOUBLE_LINE?? 0x38???????? //兩行顯示
#define LCD_DISPLAY_SINGLE_LINE?? 0x30???????? //單行顯示
#define LCD_CLEAR_SCREEN? 0X01?? //清屏
/***********************LCD1602地址相關(guān)******************************/
#define LINE1_HEAD??? 0x80?? // 第一行DDRAM起始地址?
#define LINE2_HEAD??? 0xc0?? //? 第二行DDRAM起始地址
#define LINE1???????? 0????? //第一行
#define LINE2???????? 1????? //第二行
#define LINE_LENGTH?? 16???? //每行的最大字符長度
/***********************LCD1602接線引腳定義**************************
**********************可根據(jù)實際電路改變*******************************/
#define LCDIO???? P2???????? //定義P2口與LCD1602的數(shù)據(jù)口相接
? sbit?? LCD_RS=P1^4;?????????
? sbit?? LCD_RW=P1^3;?????????
? sbit?? LCD_EN=P1^2;
? sbit? LCD_BUSY=LCDIO^7;
?/**********************另外相關(guān)的定義*********************************/
?#define HIGH?????????????? 1
?#define LOW??????????????? 0???
?#define TURE?????????????? 1
?#define? FALSE???????????? 0
?#define? uchar unsigned char
?#define? uint? unsigned int
?#define NUM 10
?/*************************以下是函數(shù)的申明部分*************************/
?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);
?/*********************結(jié)束***********************************************/
//at24c02 part
#define? WRITE24C02??? 0xA0
#define???? READ24C02??? 0xA1
//I2C part
#define??? Wait1us??????? _nop_();
#define??? Wait2us??????? {_nop_();_nop_();}
#define??? Wait4us??????? {Wait2us;Wait2us;}
#define??? Wait8us??????? {Wait4us;Wait4us;}
#define??? Wait10us??? {Wait8us;Wait2us;}
sbit SDA=P2^7;????? //AT24C02 serial data??? pin 5?
sbit SCL=P2^6;???? //AT24C02 serial clock??? pin 6
/********************************************************************/
void I2C_start(void);//I2C start function
void I2C_stop(void);//I2C stop function
//void I2C_send_ack(void);//I2C send responsion function?
void I2C_send_noack(void);
void I2C_write_byte(unsigned char IIC_data);//I2C bus write byte function?
unsigned char I2C_read_byte(void);//I2C bus read byte function
/********************************************************************/
void AT24C02_write(unsigned char address,unsigned char *buf,unsigned char n);//write 24c02 information function
void AT24C02_read(unsigned char address,unsigned char *buf,unsigned char n);//read 24c02 information function
/********************************************************************/
void Mcu_init(void);//system initize funcition
void I2C_init(void);
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- I2C控制EF2內(nèi)置FLASH讀寫
- STM32f103系列i2c讀寫文件at24c02 26次下載
- STM32學(xué)習(xí)之I2C協(xié)議(讀寫EEPROM)
- I2C總線協(xié)議英文資料 13次下載
- 嵌入式linux應(yīng)用讀寫i2c示例
- I2C基本用法及問題匯總資料下載
- 淺談 STM32 硬件I2C的使用資料下載
- 使用C語言模擬51單片機的I2C總線的資料和程序免費下載
- 如何將I2C從地址左移1位
- I2C負(fù)響應(yīng)問題項目求解答的資料合集免費下載 5次下載
- Arduino教程之I2C模塊使用教程資料免費下載 9次下載
- I2C—讀寫EEPROM 23次下載
- I2C資料總結(jié) 2次下載
- I2C總線規(guī)范與I2C器件C51讀寫程序
- I2C總線器件的C51讀寫程序
- I2C地址跳變問題的調(diào)試案例 1893次閱讀
- 無法讀取I2C地址的調(diào)試案例 2292次閱讀
- I2C通信沒反應(yīng)怎么辦? 3306次閱讀
- I2C通信協(xié)議及其工作原理 4991次閱讀
- Linux I2C驅(qū)動入門知識科普 1735次閱讀
- i2c-tools工具的安裝和使用簡單介紹 9838次閱讀
- 基于MM32生態(tài)實現(xiàn)I2C接口通訊的方式 1706次閱讀
- MM32F0140 MCU關(guān)于I2C的介紹、配置及實驗 3991次閱讀
- 什么是I2C通信協(xié)議? 7829次閱讀
- i2c總線用來做什么_i2c總線數(shù)據(jù)傳輸過程 7305次閱讀
- 基于MCS-51單片機I2C總線接口電路的設(shè)計 3459次閱讀
- AT89S52單片機并行端口模擬I2C總線協(xié)議讀寫AT24C04的設(shè)計 2768次閱讀
- 基于使用STM8單片機I2C方式實現(xiàn)讀寫操作 1.1w次閱讀
- I2C總線的特點、控制技術(shù)與傳輸分析 1w次閱讀
- 《振南電子STM32視頻教程》第八講:I2C總線 1119次閱讀
下載排行
本周
- 1常用電子元器件集錦
- 1.72 MB | 24490次下載 | 免費
- 2PC2456高壓浪涌抑制器控制器數(shù)據(jù)手冊
- 3.03 MB | 12次下載 | 免費
- 3PC2466高電壓浪涌抑制器數(shù)據(jù)手冊
- 3.37 MB | 8次下載 | 免費
- 4ssd1306單片 CMOS OLED/PLED 驅(qū)動芯片中文手冊
- 1.66 MB | 5次下載 | 1 積分
- 5PC2596 40V 輸入 150KHz 3A 降壓型電源轉(zhuǎn)換器數(shù)據(jù)手冊
- 2.44 MB | 3次下載 | 免費
- 6臺式主板DDR5內(nèi)存插槽引腳功能表資料
- 0.17 MB | 2次下載 | 5 積分
- 7電子元件FVT-6S電壓控制溫補晶體振蕩器(VCTCXO):2.0×1.6mm封裝規(guī)格及應(yīng)用參數(shù)詳解
- 437.99 KB | 2次下載 | 免費
- 8ZYNALOG徴格半導(dǎo)體|ZGAD125S14技術(shù)參數(shù)書
- 982.53 KB | 2次下載 | 免費
本月
- 1常用電子元器件集錦
- 1.72 MB | 24490次下載 | 免費
- 2三相逆變主電路的原理圖和PCB資料合集免費下載
- 27.35 MB | 111次下載 | 1 積分
- 3運算放大器基本電路中文資料
- 1.30 MB | 16次下載 | 免費
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 12次下載 | 5 積分
- 5常用電子元器件介紹
- 3.21 MB | 12次下載 | 免費
- 6PC2456高壓浪涌抑制器控制器數(shù)據(jù)手冊
- 3.03 MB | 12次下載 | 免費
- 7PC2557正向高壓理想二極管控制電路中文手冊
- 1.80 MB | 8次下載 | 免費
- 8PC2559帶反向輸入保掮 理想二極管控制電路中文手冊
- 1.08 MB | 8次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935130次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183345次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81591次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73816次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65990次下載 | 10 積分
評論