資料介紹
??困擾我幾的程序終于搞定了,前幾天我對AT24C02一直讀不準確,找了N長時間的程序都沒有頭緒,后來在板哥的指點下,一下子明白了,原因很簡單,我在AT24C02_read()最后沒有加延時,主要還是對時序沒有控制好呀,用板哥的一句話是我們對器件的了解還不很熟,我現在也感到,一定要先了解了器件的特性,我們才能游刃有余把握住每一個容易疏忽的細節,在這里,板哥確實教會了我好多東西,在我剛學單片機時,他就對我說時序很重要,現在終于是看到了.
??好了不羅嗦了,最后得出一點,最好在每個讀寫結束時加個延時,如果對時間要求不是很重要的話,加的長一點無所謂,如果要求比較高的話,那先加長延時,然后慢慢的減.
#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???? P2???????? //定義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 10
?/*************************以下是函數的申明部分*************************/
?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??? 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內置FLASH讀寫
- STM32f103系列i2c讀寫文件at24c02 22次下載
- STM32 I2C存取實驗資料 16次下載
- STM32學習之I2C協議(讀寫EEPROM)
- 嵌入式linux應用讀寫i2c示例
- I2C基本用法及問題匯總資料下載
- 淺談 STM32 硬件I2C的使用資料下載
- 使用C語言模擬51單片機的I2C總線的資料和程序免費下載
- 如何將I2C從地址左移1位
- I2C負響應問題項目求解答的資料合集免費下載 5次下載
- Arduino教程之I2C模塊使用教程資料免費下載 9次下載
- I2C—讀寫EEPROM 23次下載
- I2C資料總結 2次下載
- I2C總線規范與I2C器件C51讀寫程序
- I2C總線器件的C51讀寫程序
- I2C地址跳變問題的調試案例 1124次閱讀
- 無法讀取I2C地址的調試案例 1652次閱讀
- I2C通信沒反應怎么辦? 3062次閱讀
- I2C通信協議及其工作原理 4485次閱讀
- Linux I2C驅動入門知識科普 1518次閱讀
- i2c-tools工具的安裝和使用簡單介紹 9317次閱讀
- 基于MM32生態實現I2C接口通訊的方式 1556次閱讀
- MM32F0140 MCU關于I2C的介紹、配置及實驗 3693次閱讀
- 什么是I2C通信協議? 7575次閱讀
- i2c總線用來做什么_i2c總線數據傳輸過程 7086次閱讀
- 基于MCS-51單片機I2C總線接口電路的設計 3245次閱讀
- AT89S52單片機并行端口模擬I2C總線協議讀寫AT24C04的設計 2585次閱讀
- 基于使用STM8單片機I2C方式實現讀寫操作 1.1w次閱讀
- I2C總線的特點、控制技術與傳輸分析 9914次閱讀
- 《振南電子STM32視頻教程》第八講:I2C總線 1077次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 11次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5DIY動手組裝LED電子顯示屏
- 0.98 MB | 3次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機PM2.5檢測系統程序
- 0.83 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537797次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191186次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多