欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
PCF8591 DAC輸出
[打印本頁]
作者:
apin123
時間:
2015-7-26 11:37
標題:
PCF8591 DAC輸出
<div class="blockcode"><blockquote> 文件名: IIC_drv.c
描述: IIC通信驅動c文件
作者:
=========================================================
-----------------------------------------------------------------------------------------------------------*/
#include "IIC_drv.h"
/**********************************************
功能:
起始信號
輸入參數:
無
輸出參數:
無
返回值:
**********************************************/
static void Start(void)
{
Sda = 1;
Scl = 1;
Sda = 0;
}
/**********************************************
功能:
停止信號
輸入參數:
無
輸出參數:
無
返回值:
**********************************************/
static void Stop(void)
{
Sda = 0;
Scl = 1;
Sda = 1;
}
/**********************************************
功能:
應答位
輸入參數:
無
輸出參數:
無
返回值:
設備是否應答
1:應答;0:應答
**********************************************/
static unsigned char Respons(void)
{
unsigned char OverTime = 0; //超時
unsigned char TempFlag = 0;
OverTime = 0;
Sda = 1; //釋放數據線
Scl = 1;
while(1)
{
if(Sda) //應答信號沒來
{
if(OverTime++ > 200)
{
TempFlag = 0; //應答信號長時間沒有來,認為無應答
break;
}
}
else
{
TempFlag = 1; ///檢測到應答信號
break;
}
}
Scl = 0;
return 1;
}
/**********************************************
功能:
非應答位
輸入參數:
無
輸出參數:
無
返回值:
**********************************************/
static void NoRespons(void) //非應答
{
Sda = 1; //釋放數據線
Scl = 1;
Scl = 0;
}
/**********************************************
功能:
寫字節
輸入參數:
temp: 要寫的字節參數
輸出參數:
無
返回值:
**********************************************/
static void WriteByte(unsigned char temp)
{
unsigned char i;
Scl = 0;
for(i = 0;i < 8;i++)
{
Sda = temp & 0x80;
temp <<= 1;
Scl = 1; //scl拉高,準備寫數據
Scl = 0; //scl拉低,寫數據完成
}
}
/**********************************************
功能:
讀字節
輸入參數:
無
輸出參數:
無
返回值:
讀取的字節
**********************************************/
static unsigned char ReadByte(void)
{
unsigned char i;
unsigned char x = 0;
for(i = 0;i < 8;i++)
{
Scl = 1;
x <<= 1;
x |= (unsigned char)Sda;
Scl = 0;
}
return x;
}
/**********************************************
功能:
寫數據到對應設備
輸入參數:
device: 設備地址
parameter:參數
temp: 寫入的內容
輸出參數:
無
返回值:
**********************************************/
void WriteIIC(unsigned char device,unsigned char parameter,unsigned char temp)
{
Start();
WriteByte(device);
if(Respons())
{
WriteByte(parameter);
if(Respons())
{
WriteByte(temp);
if(Respons())
{
Stop();
}
else
{
Stop();
}
}
else
{
Stop();
}
}
else
{
Stop();
}
}
/**********************************************
功能:
從對應設備讀取數據
輸入參數:
device: 設備地址
parameter:參數
輸出參數:
無
返回值:
讀取的內容
**********************************************/
unsigned char ReadIIC(unsigned char device,unsigned char parameter)
{
unsigned char x;
Start();
WriteByte(device);
if(Respons())
{
WriteByte(parameter);
if(Respons())
{
Start();
WriteByte(device | 0x01);
if(Respons())
{
x = ReadByte();
NoRespons();
Stop();
}
else
{
Stop();
}
}
else
{
Stop();
}
}
else
{
Stop();
}
return x;
}
復制代碼
---------------------------------------------------------
文件名: PCF8591_DA.c
描述: 通過DA輸出電壓
作者:
=========================================================
-----------------------------------------------------------------------------------------------------------*/
#include <reg52.h>
#include "IIC_drv.h"
#define uchar unsigned char
/**********************************************
功能:
延時
輸入參數:
num: 延時時長
輸出參數:
無
返回值:
**********************************************/
void Delay(uchar num)
{
uchar i,j;
for(i = 0;i < 200;i++)
{
for(j = 0;j < num;j++);
}
}
/*---------------------------------------------------------------------------------------------------------*/
/**********************************************
主函數
**********************************************/
void main()
{
uchar Input = 0x00;
uchar ChangeState;
while(1)
{
if(Input == 0) //電壓最小,開始增大電壓
{
ChangeState = 0;
}
else if(Input == 255) //電壓最大,開始降低電壓
{
ChangeState = 1;
}
if(ChangeState == 0)
{
WriteIIC(0x90,0x40,Input++);
}
else
{
WriteIIC(0x90,0x40,Input--);
}
Delay(3);
}
}
PCF8591 DAC輸出.pdf
2015-7-26 11:35 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
2.48 MB, 下載次數: 11, 下載積分: 黑幣 -5
作者:
18932900560
時間:
2016-5-15 21:24
您好!您能代編一下pcf8591 D/A轉換程序嗎?如果可以的話請加下我的QQ1143772598,我會給您相應的報酬,
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1