您需要 登录 才可以下载或查看,没有账号?注册
收藏0 举报
jlass 发表于 2012-12-14 16:48 这么简单的应用,最好自己慢慢调试,能成长很多,下次遇到同类的问题就变强了,别人告诉你的话,下次又不会 ...
void write_add(uchar slave,uchar reg,uchar date) { Start(); write_byte(slave&0xFE); ACK(); write_byte(reg); ACK(); write_byte(date); ACK(); Stop(); } uchar read_add(uchar slave,uchar reg) { uchar date; Start(); write_byte(slave&0xFE); ACK(); write_byte(reg); ACK(); Start(); write_byte(slave | 0x01); EACK(); date=read_byte(); Stop(); return date; } void Start(void) { SDA_H(); delay(5); SCL_H(); delay(5); SCL_L(); } void Stop(void) { SDA_L(); delay(5); SCL_H(); delay(5); SDA_H(); } void init(void) { SDA_H(); delay(5); SCL_H(); delay(5); } void SDA_H(void) { unsigned long int temp; temp = inpd(GPIO_Add + GP_LVL2 ); outpd(GPIO_Add + GP_LVL2, temp | 0x40); } void SDA_L(void) { unsigned long int temp; temp = inpd(GPIO_Add + GP_LVL2 ); outpd(GPIO_Add + GP_LVL2, temp &(~0x40)); } void SCL_H(void) { unsigned long int temp; temp = inpd(GPIO_Add + GP_LVL2 ); outpd(GPIO_Add + GP_LVL2, temp | 0x80); } void SCL_L(void) { unsigned long int temp; temp = inpd(GPIO_Add + GP_LVL2 ); outpd(GPIO_Add + GP_LVL2, temp &(~0x80)); } uchar SDA_S(void) { unsigned long int temp; temp = inpd(GPIO_Add + GP_LVL2 ); if( (temp & 0x40) == 0x40 ) { return 1; } else return 0; } uchar SCL_S(void) { unsigned long int temp; temp = inpd(GPIO_Add + GP_LVL2 ); if( (temp & 0x80) == 0x80 ) { return 1; } else return 0; } void ACK(void) { SDA_H(); delay(5); SCL_H(); delay(5); SDA_L(); } void EACK(void) { SDA_L(); delay(5); SCL_H(); delay(5); SCL_L(); delay(5); } void write_byte(uchar date) { uchar i; for(i=0;i<8;i++) { SCL_H(); delay(5); if(date &0x80) SDA_H(); else SDA_L(); delay(5); date<<=1; SCL_L(); } delay(5); } uchar read_byte(void) { uchar i,k=0; for(i=0;i<8;i++) { SCL_L(); delay(5); SCL_H(); delay(5); k<<=1; if(SDA_S() == 1) k+=1; delay(5); SCL_L(); delay(5); } return k; }
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
人才类勋章
等级类勋章
发帖类勋章
时间类勋章
1
4
0
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号