需要确认注册邮箱后才能开通博客,立即确认我的邮箱
文章 搜索 高级搜索 ?3? ?3?
  • 滤波器new!
  • LED驱动 new!
  • 新能源 new!
  • PLL
  • PCIE协议
  • 可穿戴
  • LSI
  • FCI
文章 论坛 博客 小组 研讨会
EDN China>EDN论坛>单片机专区>iic程序问题
?
大家在做什么...
楼主 问题:

iic程序问题

发布时间:2009-7-25 上午11:17

作者: 入门学徒

等级: 技术员

积分: 590分

发帖数: 29次

网站总积分: 1185分

490分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
??
?
?
?
这是我编的iic程序,不知道为什么不能在keil中运行,希望高手指点。
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define number 8
sbit sda="P2"^0;
sbit scl="P2"^1;
uchar?data disp[8];


void i2c_start(void)
{?scl=1;
?_nop_();
?_nop_();
?_nop_();
?_nop_();
?_nop_();
?sda=0;
?_nop_();
?_nop_();
?_nop_();
?_nop_();
?_nop_();
?scl=0;

}
void i2c_stop(void)
{?sda=0;
?scl=1;
?_nop_();
?_nop_();
?_nop_();
?_nop_();
?_nop_();
?sda=1;
?_nop_();
?_nop_();
?_nop_();
?_nop_();
?_nop_();
?sda=0;
?scl=0;
?
}

void ack(void)
{?sda=0;
?scl=1;
?_nop_();
?_nop_();
?_nop_();
?_nop_();
?_nop_();
?scl=0;
?sda=1;
}
void nack(void)
{?sda=1;
?scl=1;
?_nop_();
?_nop_();
?_nop_();
?_nop_();
?_nop_();
?scl=0;
?sda=0;
}


void i2c_send(uchar x)
{?uchar?tx;
?uchar?i;
?ACC=tx;
?for(i=0,i<9,i++)
??{
??????? sda="ACC"^7;
??scl=1;
??ACC=ACC>>1;
??_nop_();
??scl=0;
??_nop_();
??}
??????

}
uchar i2c_receive()
{??uchar i;
??uchar rx="0";
?
??for(i=0,i<8,i++)
??{????
? ?sda=1;
???scl=1;
???_nop_();
???_nop_();
???_nop_();
???ACC^0=sda;
??ACC=ACC<<1;
???scl=0;
???_nop_();
???_nop_();
???_nop_();
??
??}
? return(ACC);


}
void? cask()
{
????
???? sda="1";
? _nop_();
? scl="1";
? _nop_();
???? if(sda==0)??????
? {scl=0;}
?
????????
?????
}


uchar i2c_read()
{?uchar i;
?i2c_start();
?i2c_send(0xa0);
?i2c_send(0x00);
?i2c_start();
?i2c_send(0xa1);
?for(i=0,i<number,i++)
?{
?disp[i]=i2c_receive();
?ack();
?}
?disp[i]=i2c_receive();
?nack();

?i2c_stop();?
?

}

void i2c_write(void)
{?uchar i;
?i2c_start();
?i2c_send(0xa0);
?i2c_send(0x00);
?for(i=0;i<8,i++)
?{
?i2c_send(disp[i]);
?cack();
?}?

?}
void main()
{
?

?
?
?
?
?
}
分享到:? 新浪微博 ?? 微信 ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
qq空间 ?? 腾讯微博 ?? 人人网 ?? 百度搜藏 ??
引用 回复 收藏 推荐到小组 ( 0) ( 0) 关注

EDN China电子设计技术揭秘氮化镓(GaN)在无线基站中的应用(下)
第1楼

错误太多

发布时间:2009-7-25 下午11:40

作者: 雨人-

等级: 初级工程师

积分: 1079分

发帖数: 38次

网站总积分: 2197分

884分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
i2c_stop(void)时序有问题,i2c_send(uchar x)中FOR循环为什么i<9?建议你到网上搜I2C程序看看
引用 回复
( 0) ( 0)


EDN China电子设计技术通过增强材料技术提升电容器寿命
第2楼 很好 发布时间:2009-7-26 上午9:06

作者: 入门学徒

等级: 技术员

积分: 590分

发帖数: 29次

网站总积分: 1185分

490分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
谢谢了
引用 回复
( 0) ( 0)


快速回复 高级回复
用户名:?
美国的游客?????? (您将以游客身份发表,请登陆 | 注册) ?
标题: * 标题还可以输入80
评论: * 你还可以输入30000
验证码: ?*?
分享: 新浪微博?? qq空间?? qq微博?? 人人网?? 百度搜藏??
维护专业、整洁的论坛环境需要您的参与,请及时举报违规帖子,如果举报属实,我们将给予相应的积分奖励。
谢谢您的热心参与!
返回单片机 | 返回专业技术交流区
本论坛仅陈述专家或个人观点,并不代表EDN China 电子技术设计互动社区网站立场。
积分排行榜
彩云 [殿堂级工程师]
mzlr [殿堂级工程师]
特权同学 [殿堂级工程师]
敬请关注EDNC官方微信“edn-china"

每月定期向您递送电子元器件规格书网中的最新元器件数据手册下载、库存信息及技术参数更新。请点击订阅:

2016我的工程师社区
EDN官方QQ群???更多QQ群
  • EDN-深圳 8366025
  • 菜农Cortex-M0技术交流 12047788
  • EDN-哈尔滨 75642591
  • EDN-上海 15156661
  • EDN-广州 57660943
  • EDN-桂林 48813559
  • EDN-武汉 25150805
  • EDN-模拟电路 2837145
  • EDN-通讯 30548292
  • EDN-综合 57490949

促进EDN网友交流合作,方便EDN网友学习沟通

有问题请反馈