|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
24C02的C控制程序 |
| 作者:vico 欄目:新手園地 |
#define uCHAR unsigned CHAR #define uint unsigned int #include <reg52.h> #include <stdio.h> #include <absacc.h> sbit scl=P3^5; //24C02 SCL sbit sda=P3^4; //24C02 SDA sbit DOG=P1^7; //狗 uCHAR x24C02_read(uCHAR address); //從24C02的地址address中讀取一個字節(jié)數(shù)據(jù) void x24C02_write(uCHAR address,uCHAR info); //向24C02的address地址中寫入一字節(jié)數(shù)據(jù)info void x24C02_init(); //24C02初始化子程序 void delay1(uCHAR x); void FLASH(); void x24c01_init(); void start(); void stop(); void writex(uCHAR j); uCHAR readx(); void clock(); void delay1(uCHAR x) { uint i; for(i=0;i<x;i++); DOG=~DOG; } void FLASH() { uCHAR u; DOG=~DOG; } void x24C02_init() { scl=1; FLASH(); sda=1; FLASH(); } void start() { sda=1; FLASH(); scl=1; FLASH(); sda=0; FLASH(); scl=0; FLASH(); } void stop() { sda=0; FLASH(); scl=1; FLASH(); sda=1; FLASH(); } void writex(uCHAR j) { uCHAR i,TEMP; TEMP=j; for (i=0;i<8;i++){ TEMP=TEMP<<1; scl=0; FLASH(); sda=CY; FLASH(); scl=1; FLASH(); } scl=0; FLASH(); sda=1; FLASH(); } uCHAR readx() { uCHAR i,j,k=0; scl=0; FLASH(); sda=1; for (i=0;i<8;i++){ FLASH(); scl=1; FLASH(); if (sda==1) j=1; else j=0; k=(k<<1)|j; scl=0; } FLASH(); return(k); } void clock() { uCHAR i=0; scl=1; FLASH(); while ((sda==1)&&(i<255))i++; scl=0; FLASH(); } uCHAR x24C02_read(uCHAR address) { uCHAR i; start(); writex(0xa0); clock(); writex(address); clock(); start(); writex(0xa1); clock(); i=readx(); stop(); delay1(10); return(i); } void x24C02_write(uCHAR address,uCHAR info) { EA=0; start(); writex(0xa0); clock(); writex(address); clock(); writex(info); clock(); stop(); EA=1; delay1(50); } |
| 2樓: | >>參與討論 |
| 作者: yizhen 于 2007/5/10 17:16:50 發(fā)布:
我經(jīng)常用這個IC |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |