下面是我自已写的程序,我想通过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;
}
|