資料介紹
??困擾我?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 27次下載
- 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讀寫程序
- 基于FPGA的I2C控制模塊設(shè)計 3.3k次閱讀
- I2C地址跳變問題的調(diào)試案例 3.5k次閱讀
- 無法讀取I2C地址的調(diào)試案例 4k次閱讀
- I2C通信沒反應(yīng)怎么辦? 4.7k次閱讀
- I2C通信協(xié)議及其工作原理 6.7k次閱讀
- Linux I2C驅(qū)動入門知識科普 2.5k次閱讀
- i2c-tools工具的安裝和使用簡單介紹 1.2w次閱讀
- MM32F0140 MCU關(guān)于I2C的介紹、配置及實驗 5.1k次閱讀
- 什么是I2C通信協(xié)議? 8.8k次閱讀
- i2c總線用來做什么_i2c總線數(shù)據(jù)傳輸過程 7.8k次閱讀
- 基于MCS-51單片機I2C總線接口電路的設(shè)計 4.1k次閱讀
- AT89S52單片機并行端口模擬I2C總線協(xié)議讀寫AT24C04的設(shè)計 3.2k次閱讀
- 基于使用STM8單片機I2C方式實現(xiàn)讀寫操作 1.2w次閱讀
- I2C總線的特點、控制技術(shù)與傳輸分析 1.1w次閱讀
- 《振南電子STM32視頻教程》第八講:I2C總線 1.3k次閱讀
下載排行
本周
- 1冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 3次下載 | 10 積分
- 2MDD品牌三極管S9018數(shù)據(jù)手冊
- 2.40 MB | 1次下載 | 免費
- 3新一代網(wǎng)絡(luò)可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費
- 4MDD品牌三極管S8550數(shù)據(jù)手冊
- 4.51 MB | 次下載 | 免費
- 5MDD品牌三極管S9012數(shù)據(jù)手冊
- 2.62 MB | 次下載 | 免費
- 6LAT1218 如何選擇和設(shè)置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 7MS1000TA 超聲波測量模擬前端芯片技術(shù)手冊
- 0.60 MB | 次下載 | 免費
- 8FS-LCore-M307RL 用戶手冊
- 0.96 MB | 次下載 | 1 積分
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 24次下載 | 免費
- 3蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 6次下載 | 1 積分
- 4UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費
- 5冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 3次下載 | 10 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準(zhǔn)諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8BE30B4中空電渦流編碼器-DATASHEET
- 783.17 KB | 1次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 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 | 191439次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論