搜索
bottom↓
回复: 2

关于IIC总线的方针问题‘’急‘’

[复制链接]

出0入0汤圆

发表于 2008-6-7 16:16:27 | 显示全部楼层 |阅读模式
请高手指教为什么IIc总线在proteus上无法仿真;程序有什么问题,用的是24c02。程序发上来了。望高手指点,感激不尽。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit sda=P2^0;
sbit scl=P2^1;
void delay1(uchar z)
{
        uchar x,y;
        for(x=z;x>0;x--)
                for(y=100;y>0;y--);
}
void delay()
{;;}
void start()
{
        sda=1;
        delay();
        scl=1;
        delay();
        sda=0;
        delay();
}
void stop()
{
        scl=1;
        delay();
        sda=0;
        delay();
        sda=1;
        delay();
}
void responds()
{
        uchar i;
        scl=1;
        delay();
        sda=1;
        delay();
        while((sda==1)&&(i<200)) i++;
        scl=0;
        delay();
}
void write_byte(uchar date)
{
        uchar temp,i;
        temp=date;
        for(i=0;i<8;i++)
        {
                temp=temp<<1;
                scl=0;
                delay();
                sda=CY;
                delay();
                scl=0;
                delay();
        }
        scl=0;
        delay();
        sda=1;
        delay();
}
uchar read_byte()
{
        uchar i,temp;
        for(i=0;i<8;i++)
        {
                scl=1;
                delay();
                temp=(temp<<1)|sda;
                delay();
                scl=0;
                delay();
        }
        return temp;
}
void write(uchar addr,uchar date)
{
        start();
        responds();
        write_byte(0xa0);
        responds();
        write_byte(addr);
        responds();
        write_byte(date);
        responds();
        stop();
}
uchar read(uchar addr)
{
        uchar date;
        start();
        responds();
        write_byte(0xa0);
        responds();
        write_byte(addr);
        responds();
        start();
        write_byte(0xa1);
        responds();
        date=read_byte();
        stop();
        return date;
}
void main()
{

        write(0x01,0xaa);
        delay1(100);
        P1=read(0x01);
        delay1(100);

}

出0入0汤圆

发表于 2008-6-7 17:39:29 | 显示全部楼层
方针? 觉得你的题目不符合规定!

我要去玩了,没空看你的程序

前不久我也在问这个问题,
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=1038445

不过在前天夜里搞定了
发起来给你看看

我这个程序就是从24C256(你用24C02的区别就是地址少一个BYTE)里读出一个数据,然后显示,
再+1,再写入,
再读出来显示
循环!
住址结果为1602上显示屏从0-255循环
点击此处下载 ourdev_303694.rar(文件大小:46K) (原文件名:IIC.rar)

出0入0汤圆

 楼主| 发表于 2008-6-7 21:39:07 | 显示全部楼层
太感谢了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-2 14:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表