2805|5

23

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

iic串行总线仿真,为啥不出结果呢,看了好长时间就是没找见岀误 [复制链接]

#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit sck=P0^3;
sbit sda=P0^2;
void Delay()
{
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
}
void Delay1ms(unsigned int count)
{
unsigned int i,j;
for(i=0;i for(j=0;j<250;j++);
}  
void initial()   
{
sck=1;
sda=1; Delay();
}
void start()
{
sda=1;
Delay();sck=1; Delay();
sda=0; Delay(); //sck=0;
}
void stop()
{
sda=0;Delay();sck=1;
Delay();
sda=1; Delay();
}
void ack()
{
uchar i;
sck=1; Delay();
while(sda==1&&i<200) i++;
sck=0;
Delay();
}
void uack()
{
sck=1;
sda=1;
Delay();
sck=0; Delay();
}
void word_wr(uchar value)
{
uchar i;
sck=0;Delay();
for(i=0;i<8;i++)
  {
     if(value&0x80) sda=1;
     else  sda=0;
   value<<=1;Delay();
   sck=1;Delay();   sck=0;Delay();
   }
  sda=1;Delay();
}
uchar word_rd()  
{
uchar i,value;
sck=0;sda=1;Delay();
for(i=0;i<8;i++)
  {
   sck=1;Delay();
    value<<=1;
    if(sda==1) value++;
   sck=0;Delay();
   }
return value ;
}
void write_byte(uchar add,uchar value)
{
start(); word_wr(0xa0);ack();
word_wr(add);ack();
word_wr(value);ack(); stop(); Delay1ms(3);
}
uchar read_byte(uchar add)
{
   uchar  unite;
   start(); word_wr(0xa0);ack();
word_wr(add);ack();  start();
word_wr(0xa1);ack();unite=word_rd();
  uack();stop(); Delay1ms(3);
return  unite;
}            
main()
{     
  initial();            
  write_byte(10,0x55);
  Delay1ms(3);
initial(); P3=read_byte(10);
while(1);
}
本来是可以看见p3口出现0x55,但是就是没结果,看了几遍也没啥岀误,仿真完全能通过。

890.gif (16.55 KB, 下载次数: 0)

890.gif
此帖出自51单片机论坛

最新回复

把程序下载到单片机里,用示波器看引脚波形就可以了。和协议对比。有你折腾的时间,硬件已经调通了  详情 回复 发表于 2014-10-14 20:53
点赞 关注
 

回复
举报

254

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
IIC程序还是比较简单的,你在网上多找几个现成的程序,一般都不会有大问题,
对比一下你自己的程序就能看出哪里错了,
另外,我觉得像这类简单接口的调试没有必要软件仿真,
我有个师弟什么都想用软件仿真,总问我哪个仿真软件好用,有那功夫都调通了。
此帖出自51单片机论坛
 
个人签名把复杂的问题变简单需要智慧
 
 

回复

415

帖子

2

TA的资源

一粒金砂(高级)

板凳
 
赞同楼上的,仿真感觉真的没必要,还不如直接做电路来得实际!!
此帖出自51单片机论坛
 
个人签名只要你心中有梦想,你人在哪里,梦想就在哪里!
 
 

回复

19

帖子

0

TA的资源

一粒金砂(初级)

4
 
赞同以上说法。。。。。。。。。。。。。。。。。。
此帖出自51单片机论坛
 
 
 

回复

503

帖子

1

TA的资源

纯净的硅(初级)

5
 
51的P0口需要接外接上拉电阻   现在的P0口仿真时你会发现没有高电平
此帖出自51单片机论坛
 
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

6
 
把程序下载到单片机里,用示波器看引脚波形就可以了。和协议对比。有你折腾的时间,硬件已经调通了
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表