亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
YL-40 PCF8591 AD轉換模塊單片機程序+電路資料下載
[打印本頁]
作者:
13655
時間:
2019-1-30 22:24
標題:
YL-40 PCF8591 AD轉換模塊單片機程序+電路資料下載
0.png
(4.88 KB, 下載次數: 65)
下載附件
2019-1-31 02:58 上傳
PCF8591電路原理圖如下:
0.png
(47.52 KB, 下載次數: 48)
下載附件
2019-1-31 03:00 上傳
PCF8591 AD/DA芯片介紹
PCF8591是一個單片集成、單獨供電、低功耗、8-bit CMOS數據獲取器件。PCF8591 具有 4 個模擬輸入、1 個模擬輸出和 1個串行I2C總線接口。PCF8591的 3個地址引腳A0, A1和A2 可用于硬件地址編程,允許在同個I2C 總線上接入8個PCF8591器件,而無需額外的硬件。在PCF8591器件上輸入輸出的地址、控制和數據信號都是通過雙線雙向 I2C 總線以串行的方式進行傳輸。
單片機源程序如下:
#include<reg52.h> //包含單片機寄存器的頭文件
#include <I2C.H>
#define uchar unsigned char
#define PCF8591 0x90 //PCF8591 地址
// 變量定義
unsigned char AD_CHANNEL;
unsigned long xdata LedOut[8];
unsigned int D[32];
sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;
sbit P2_3 = P2^3;
unsigned char date;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90};
// 函數申明
void display();
void delay(uchar i);
bit DACconversion(unsigned char sla,unsigned char c, unsigned char Val);
bit ISendByte(unsigned char sla,unsigned char c);
unsigned char IRcvByte(unsigned char sla);
void Initial_com(void);
//******************************************************************/
main()
{
Initial_com();
while(1)
{
/********以下AD-DA處理*************/
switch(AD_CHANNEL)
{
case 0: ISendByte(PCF8591,0x41);
D[0]=IRcvByte(PCF8591); //ADC0 模數轉換1 光敏電阻
break;
case 1: ISendByte(PCF8591,0x42);
D[1]=IRcvByte(PCF8591); //ADC1 模數轉換2 熱敏電阻
break;
case 2: ISendByte(PCF8591,0x43);
D[2]=IRcvByte(PCF8591); //ADC2 模數轉換3 懸空
break;
case 3: ISendByte(PCF8591,0x40);
D[3]=IRcvByte(PCF8591); //ADC3 模數轉換4 可調0-5v
break;
case 4: DACconversion(PCF8591,0x40, D[4]); //DAC 數模轉換
break;
}
D[4]=D[3]; //把模擬輸入采樣的信號 通過數模轉換輸出
if(++AD_CHANNEL>4) AD_CHANNEL=0;
/********以下將AD的值通過串口發送出去*************/
delay(200);
SBUF=D[0];
delay(200);
SBUF=D[1];
delay(200);
SBUF=D[2];
delay(200);
SBUF=D[3];
delay(200);
if(RI)
{
date=SBUF; //單片機接受
SBUF=date; //單片機發送
RI=0;
}
}
}
void delay(uchar i)
{
uchar j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
/*******************************************************************
DAC 變換, 轉化函數
*******************************************************************/
bit DACconversion(unsigned char sla,unsigned char c, unsigned char Val)
{
Start_I2c(); //啟動總線
SendByte(sla); //發送器件地址
if(ack==0)return(0);
SendByte(c); //發送控制字節
if(ack==0)return(0);
SendByte(Val); //發送DAC的數值
if(ack==0)return(0);
Stop_I2c(); //結束總線
return(1);
}
/*******************************************************************
ADC發送字節[命令]數據函數
*******************************************************************/
bit ISendByte(unsigned char sla,unsigned char c)
{
Start_I2c(); //啟動總線
SendByte(sla); //發送器件地址
if(ack==0)return(0);
SendByte(c); //發送數據
if(ack==0)return(0);
Stop_I2c(); //結束總線
return(1);
}
/*******************************************************************
ADC讀字節數據函數
*******************************************************************/
unsigned char IRcvByte(unsigned char sla)
{ unsigned char c;
Start_I2c(); //啟動總線
SendByte(sla+1); //發送器件地址
if(ack==0)return(0);
c=RcvByte(); //讀取數據0
Ack_I2c(1); //發送非就答位
Stop_I2c(); //結束總線
return(c);
}
//*****串口初始化函數***********
//******************************
void Initial_com(void)
{
EA=1; //開總中斷
ES=1; //允許串口中斷
ET1=1; //允許定時器T1的中斷
TMOD=0x20; //定時器T1,在方式2中斷產生波特率
PCON=0x00; //SMOD=0
SCON=0x50; // 方式1 由定時器控制
TH1=0xfd; //波特率設置為9600
TL1=0xfd;
TR1=1; //開定時器T1運行控制位
}
復制代碼
所有資料51hei提供下載:
【Realplay】 PCF8591模塊 ADDA轉換模塊 模數數模轉換送杜邦線.zip
(625.18 KB, 下載次數: 71)
2019-1-30 22:22 上傳
點擊文件名下載附件
PCF8591AD轉換
下載積分: 黑幣 -5
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1