该程序有很多问题 小弟找不出来 求高手找错 谢谢

2019-07-16 04:03发布

求高手找错  谢谢
AT24c02.zip 下载积分: 积分 -1 分
23.32 KB, 下载次数: 12, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
carzyhunter
1楼-- · 2019-07-16 09:04
 精彩回答 2  元偷偷看……
A670521546
2楼-- · 2019-07-16 11:47
把程序直接贴出来吧
chaowang110
3楼-- · 2019-07-16 13:56
看看
lstcspring
4楼-- · 2019-07-16 14:49
//一定要记住:data是关键字
#include<reg51.h>
#include<intrins.h>
#include"timer0.h"
//#include"IIC.h"
typedef unsigned int uint;
typedef unsigned char uchar;
sbit SDA=P2^1;
sbit SCL=P2^0;

void delay()//4~5us延时  11.0592M晶振
{ ;; }

void IIC_start()//启动IIC:SCL在高电平期间,SDA一个下降沿启动信号。
{
        SDA=1;
        SCL=1;
        delay();
        SDA=0;
        delay();
}

void IIC_respons()//应答信号:SCL在高电平期间,SDA被从设备拉为低电平表示应答。
{
        SCL=1;
        delay();
        SDA=0;
        delay();
        SCL=0;
        delay();       
}

void IIC_stop()//停止信号:SCL在高电平期间,SDA一个上升沿停止信号。
{
        SCL=1;
        delay();
        SDA=0;
        delay();
        SDA=1;
        delay();       
}

void IIC_writebyte(uchar date)//一定要记住:data是关键字
{
        uchar i,temp;
        temp=date;
        for(i=0;i<8;i++)
        {
                temp=temp<<1;
                SCL=0;
                delay();
                SDA=CY;
                delay();
                SCL=1;
                delay();
        }
        SCL=0;
        delay();
        SDA=1;
        delay();       

}

uchar IIC_readbyte()// 读一个字节:串行接收一个字节时需要8位一位位接收,然后再组成一个字节。
{
        uchar i,k;
        SCL=0;
        delay();
        SDA=1;
        for(i=0;i<8;i++)
        {
                SCL=1;
                delay();
                k=(k<<1|SDA);
                SCL=0;
                delay();
        }
        delay();
        return k;
}

void IIC_write_add(uchar address,uchar date)//指定地址的写操作
{
        IIC_start();
        IIC_writebyte(0xa0);
        IIC_respons();
        IIC_writebyte(address);
        IIC_respons();
        IIC_writebyte(date);
        IIC_respons();
        IIC_stop();       
}

uchar IIC_read_add(uchar address)//指定地址读操作
{
        uchar date;
        IIC_start();
        IIC_writebyte(0xa0);//先把地址写进去
        IIC_respons();
        IIC_writebyte(address);
        IIC_respons();
        IIC_start();
        IIC_writebyte(0xa1);
        IIC_respons();
        date=IIC_readbyte();
        IIC_stop();
        return date;
}










lstcspring
5楼-- · 2019-07-16 14:56
//led_dis.c
#include<reg51.h>
#include"timer0.h"
#include"IIC.h"
unsigned char  LED_7[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
void led_dis(uchar j)
{
        P0=LED_7[j];
}

//timer0.c
#include<reg51.h>
#include"IIC.h"
sbit led=P1^0;//查看是否进入中断计时

uchar counter,miao;
void timer0_init()
{
        TMOD=0x01;//0000 0001 定时器0工作方式1
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        TR0=1;
        EA=1;
        ET0=1;
}

void timer0() interrupt 1 using 0
{
        //timer0_init();
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        counter++;
        if(counter==20)//1s时间到
        {
                counter=0;
                miao++;
                if(miao==10)
                miao=0;
                led=~led;
        }       
}
lstcspring
6楼-- · 2019-07-16 15:23
 精彩回答 2  元偷偷看……

一周热门 更多>