完善资料让更多小伙伴认识你,还能领取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); } |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
72 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
509 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
546 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
545 浏览 0 评论
1008 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11763 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 14:07 , Processed in 0.563569 second(s), Total 66, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号