芯片解密PCF8591输出三角波 单片机D/A转换实验报告
芯片解密单片机源程序如下:
- 芯片解密#include<reg52.h>
- 芯片解密#include<intrins.h>
- sbit SCL=P2^1; //I2C时钟线
- sbit SDA=P2^0; //I2C数据线
- void start() //定义起始信号函数
- {
- SDA=1;
- SCL=1;
- _nop_();
- _nop_();
- SDA=0;
- _nop_();
- _nop_();
- SCL=0;
- }
- void stop() //定义停止信号产生函数
- {
- SDA=0;
- SCL=0;
- _nop_();
- _nop_();
- SCL=1;
- _nop_();
- _nop_();
- SDA=1;
- }
- void rack() //定义应答检测函数
- {
- SCL=1;
- _nop_();
- _nop_();
- SCL=0;
- }
- void nack() //定义不应答信号产生函数
- {
- SDA=1;
- SCL=1;
- _nop_();
- _nop_();
- SCL=0;
- SDA=1;
- }
- void wbyte(unsigned char tmp) //写字节函数
- {
- unsigned char i;
- for(i=0;i<8;i++)
- {
- tmp=tmp<<1; //左移一位,移入CY
- SDA=CY; //移出位发送
- SCL=1;
- _nop_();
- _nop_();
- SCL=0;
- }
- rack();
- }
- void wdata(unsigned char dat)
- {
- unsigned char i;
- start();
- wbyte(0x90); //器件寻址
- wbyte(0x40);
- wbyte(dat); //写数据
- stop();
- for(i=0;i<255;i++); //每写一数据,
- for(i=0;i<255;i++); //都要延时
- }

芯片解密