完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
这是个利用IIC总线EEPROM的程序,以前写得,记得当初写得时候程序是管用的,现在怎么不管用的。。。难道是我的EEPROM芯片坏了吗? 大家帮忙看一下或试一下这个程序对不对?谢谢啦~~~PS:单片机是stc89c52
#include #include #define uchar unsigned char uchar a; ***it SDA=P1^2; ***it SCL=P1^7; void delay() { _nop_();_nop_(); } void delay1(uchar z) { uchar x,y; for(x=z;x>0;x--) for(y=100;y>0;y--); } void init() { SDA=1; SCL=1; } void start() { SDA=1; delay(); SCL=1; delay(); SDA=0; delay(); } void stop() { SDA=0; delay(); SCL=1; delay(); SDA=1; delay(); } void respons() { uchar i; SCL=1; delay(); while((SDA==1)&&(i<250))i++; SCL=0; delay(); } void urespons() { SDA=1; delay(); SCL=1; delay(); SCL=0; delay(); } void write_byte(uchar date) { uchar i,temp; temp=date; SCL=0; delay(); for(i=0;i<8;i++) { temp=temp<<1; SDA=CY; delay(); SCL=1; delay(); SCL=0; delay(); } SDA=1; delay(); } uchar read_byte() { uchar i,j,k; SCL=0; delay(); SDA=1; delay(); for(i=0;i<8;i++) { SCL=1; delay(); if(SDA==1) j=1; else j=0; k=(k<<1)|j; SCL=0; delay(); } return k; } void main() { init(); start(); write_byte(0xa0); respons(); write_byte(3); respons(); write_byte(0x55); respons(); stop(); delay1(100); init(); start(); write_byte(0xa0); respons(); write_byte(3); respons(); start(); write_byte(0xa1); respons(); a=read_byte(); urespons(); stop(); P1=a; while(1); } |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
205 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1253 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
848 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
853 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12013 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 08:36 , Processed in 0.459548 second(s), Total 68, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号