函数信号发生器的设计与实现 (1)资料 下载本文

内容发布更新时间 : 2024/11/19 1:27:01星期一 下面是文章的全部内容请认真阅读。

void Start_I2c() {

SDA=1; _Nop(); SCL=1; _Nop(); _Nop(); _Nop(); _Nop(); SDA=0; _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); SCL=0; _Nop(); _Nop();

} //结束总线

void Stop_I2c() {

SDA=0; _Nop(); SCL=1; _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); SDA=1; _Nop(); _Nop(); _Nop(); _Nop(); }

void SendByte(uchar c) {

unsigned char Bit; for(Bit=0;Bit<8;Bit++) { if((c<

//发送字节函数 //要传送的数据长度为8位 //判断发送位

SDA=1; else SDA=0; _Nop(); SCL=1; //置时钟线为高 ,通知被控器开始接收数据位 _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); SCL=0; } _Nop(); _Nop(); SDA=1; _Nop(); _Nop(); SCL=1; _Nop(); _Nop(); _Nop(); if(SDA==1) back=0; else back=1; SCL=0; _Nop(); _Nop(); }

bit WriteDAC(uchar dat, uchar num) {

unsigned char i; Start_I2c(); SendByte(AddW); if(back==0) return(0); SendByte(0x40); if(back==0) return(0); for(i=0;i

return(0); } Stop_I2c(); }

void keys() { if(key1==0) { delay1(10); if(key1==0) { num++; while(!key1); wave++; if(wave==4) { wave=1; num=1; } P1=table[num]; } } }

void keys1() { if(key2==0) { delay1(10); if(key2==0) { while(!key2); f++; if(f>500) f=500; } } if(key3==0) { delay1(10); if(key3==0) { while(!key3);

if(f>1) f--; } } if(key4==0) { delay1(10); if(key4==0) { while(!key4); A1++; if(A1>15) A1=15; } } if(key5==0) { delay1(10); if(key5==0) { while(!key5); if(A1>1) A1--; } } }

void keys2() {

if(key2==0) { delay1(10); if(key2==0) { while(!key2); f++; if(f>100) f=100; } } if(key3==0) { delay1(10); if(key3==0)