//三角波发生程序
#include"reg51.h"
#include
#define I2CDelay() {_nop_();_nop_();_nop_();_nop_();}
sbit I2C_SCL = P3^7;
sbit I2C_SDA = P3^6;
sbit p_out=P1^0;
unsigned char code triwave[]={0,16,32,48,64,80,96,112,
128,144,160,176,192,208,
224,240,255,240,224,208,
192,176,160,144,128,112,
96,80,64,48,32,16,};//三角波波表,选取32点
unsigned char *pwave;//波表指针
unsigned char T1RH = 1;
unsigned char T1RL = 1;
void I2CStart() //产生总线起始信号
{
I2C_SDA = 1; //首先确保SDA、SCL都是高电平
I2C_SCL = 1;
I2CDelay();
I2C_SDA = 0; //先拉低SDA
I2CDelay();
I2C_SCL = 0; //再拉低SCL
}
void I2CStop() //产生总线停止信号
{
I2C_SCL = 0; //首先确保SDA、SCL都是低电平
I2C_SDA = 0;
I2CDelay();
I2C_SCL