1.png (45.55 KB, 下載次數: 60)
下載附件
2019-7-26 22:33 上傳
單片機源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart.h"
- #include "usmart.h"
- #include "24cxx.h"
-
- //要寫入到24c02的字符串數組 const 則后面變量不可變
- const unsigned char TEXT_Buffer[]={"Tomorrow"};
- #define SIZE sizeof(TEXT_Buffer) //讀取要寫入芯片中的字節數。
- const unsigned char text_Buffer[]={"Hello,World!!!"};
- #define size sizeof(text_Buffer) //讀取要寫入芯片中的字節數。
- void FMQ(void)
- {
- fmq=1;//叫
- delay_ms(50);
- fmq=0;//停
- delay_ms(50);
- }
- int main(void)
- {
- u8 key;
- u16 i=0;
- unsigned char datatemp[SIZE];
- delay_init(); //延時函數初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級
- uart_init(115200); //串口初始化為115200
- LED_Init(); //初始化與LED連接的硬件接口
- KEY_Init(); //按鍵初始化
- AT24CXX_Init(); //IIC初始化
-
- while(AT24CXX_Check())//檢測不到24c02
- {
- printf("24C02 檢測失敗!\r\n");
- delay_ms(500);
- printf("請檢查 24C02!\r\n");
- delay_ms(500);
- fmq=!fmq;//DS0閃爍
- }
- printf("24C02 準備就緒!\r\n");
- FMQ();
- while(1)
- {
- key=KEY_Scan(0);
-
- if(key==KEY1_PRES) //KEY_UP按下,寫入24C02
- {
- printf("Start 24C02....\r\n");
- AT24CXX_Write(0,(u8*)TEXT_Buffer,SIZE);
- printf("24C02 Write Finish!\r\n");
- FMQ();
- }
-
- if(key==KEY2_PRES) //KEY_UP按下,寫入24C02
- {
- printf("開始寫入 24C02....\r\n");
- AT24CXX_Write(0,(u8*)text_Buffer,size);
- printf("24C02 寫入完成!\r\n");
- FMQ();
- }
-
-
- if(key==KEY0_PRES)//KEY1按下,讀取字符串并顯示
- {
- if(SIZE>size) //那個多讀哪個
- {
- printf("開始讀取 24C02.... \r\n");
- AT24CXX_Read(0,datatemp,SIZE); //從第0 個開始讀取SIZE 個字節到datatemp
- printf("讀取的數據是:%s\r\n ",datatemp);
- FMQ();
- }
- else
- {
- printf("開始讀取 24C02.... \r\n");
- AT24CXX_Read(0,datatemp,size); //從第0 個開始讀取SIZE 個字節到datatemp
- printf("讀取的數據是:%s\r\n ",datatemp);
- FMQ();
- }
-
- }
-
- i++;
- delay_ms(10);
- if(i==20)
- {
- LED1=!LED1;//提示系統正在運行
- i=0;
- }
- }
- }
復制代碼
所有資料51hei提供下載:
(AT24C04 I2C實驗 PB6 SCL PB7 SDA).7z
(222.06 KB, 下載次數: 111)
2019-7-27 00:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|