打印
[程序源码]

请教一下关于PCF8591芯片的问题

[复制链接]
1136|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
3233|  楼主 | 2014-3-21 23:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
下面是我自已写的程序,我想通过PCF8591芯片点亮LED灯(只是点亮,没有明暗变化的),请教一下下面的程序有什么问题吗,一直都调试不到位。
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char

sbit scl=P2^1;
sbit sda=P2^0;

void init();
void star();
void delay();
void ack();
void stop();
void wr_byte(uchar date);


void main()
{
        uchar num;
        init();

                star();
                wr_byte(0x90);
                ack();
                wr_byte(0x40);
                ack();
                wr_byte(0);
                ack();       
                stop();
                while(1);
}
void star()//起始程序
{
        scl=1;
delay();
        sda=1;
delay();
        sda=0;
delay();
}
void stop()//终止程序
{
        sda=0;
         delay();
        scl=1;
        delay();
        sda=1;
        delay();
}

void delay()//延时程序
{;;;;;;;;;;}
void ack()//应答程序
{
        uchar i;
        sda=1;
        delay();
        scl=1;
        delay();
        while((sda==1)&&(i<200))i++;
        scl=0;
        delay();

}
       
void wr_byte(uchar date)//写程序
{
        uchar i,temp;
        temp=date;
        for(i=0;i<8;i++)
        {
                scl=0;
                delay();
                temp=temp<<1;
                sda=CY;
                 delay();
                scl=1;
                delay();

        }
        scl=0;
        delay();
        sda=1;//释放总线
        delay();
}
void init()
{
        scl=1;
        sda=1;
}

相关帖子

沙发
3233|  楼主 | 2014-3-21 23:11 | 只看该作者
这是芯片的连接图

QQ截图20140321230615.png (58.42 KB )

QQ截图20140321230615.png

使用特权

评论回复
板凳
3233|  楼主 | 2014-3-21 23:25 | 只看该作者
刚发完贴就调试出来了,原来不是程序的问题,是硬件的问题,感谢各位的关心。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝