┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |
/*************************************************************************************/ /* 声 明 */ /*-----------------------------------------------------------------------------------*/ /* 本文从网上摘录而来,仅供给大家学习交流使用。文章中内容均为原创作者辛劳 /* /* /* /* /*************************************************************************************/ 24C02 C51源程序,希望对使用IIC总线编程的朋友有帮助 Posted by 光明之子 2005-8-25 12:26:05 #define uchar unsigned char #define uint unsigned int #i nclude <reg52.h> #i nclude <stdio.h> #i nclude <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中读取一个字节数据 void x24c02_write(uchar address,uchar info); //向24c02的address地址中写入一字节数据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); }
┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |