卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

單片機(jī)模數(shù)轉(zhuǎn)換的處理方法

1. 電路需求在一些舊式單片機(jī)如51/52等等,內(nèi)部沒有集成模數(shù)轉(zhuǎn)換模塊,所以此類芯片的開發(fā)板要學(xué)習(xí)模數(shù)轉(zhuǎn)換,需要借助外部模數(shù)轉(zhuǎn)換電路。其中一個常用的外部模數(shù)轉(zhuǎn)換芯片是PCF8591。下圖顯示了使用P

1. 電路需求

在一些舊式單片機(jī)如51/52等等,內(nèi)部沒有集成模數(shù)轉(zhuǎn)換模塊,所以此類芯片的開發(fā)板要學(xué)習(xí)模數(shù)轉(zhuǎn)換,需要借助外部模數(shù)轉(zhuǎn)換電路。其中一個常用的外部模數(shù)轉(zhuǎn)換芯片是PCF8591。下圖顯示了使用PCF8591芯片的模數(shù)轉(zhuǎn)換電路圖。只需按照圖中連接相應(yīng)的電路即可實(shí)現(xiàn)模數(shù)轉(zhuǎn)換。另外,一些增強(qiáng)性8050內(nèi)核芯片已經(jīng)集成了模數(shù)轉(zhuǎn)換模塊,例如STC15等。

2. 原理

模數(shù)轉(zhuǎn)換即是將輸入電壓與內(nèi)部參考基準(zhǔn)電壓進(jìn)行比較。模塊內(nèi)部將基準(zhǔn)電壓分成多個電壓開關(guān)(例如256個,精度為8位),輸入電壓與每個開關(guān)電壓進(jìn)行比較。當(dāng)輸入電壓的值與某個電壓開關(guān)的值相等或最接近時,該開關(guān)打開,并且對應(yīng)的二進(jìn)制編碼存儲到存儲器中。這樣就完成了一次模擬量到數(shù)字量的轉(zhuǎn)換。

3. 接口

模數(shù)轉(zhuǎn)換芯片PCF8591具有以下接口:

1. 數(shù)據(jù)傳輸接口:SCL、SDA(IIC協(xié)議)

2. 可設(shè)置地址的接口:A0-A2

3. 輸入通道:AIN0-AIN3

4. 數(shù)模轉(zhuǎn)換輸出引腳:AOUT

5. 參考基準(zhǔn)電壓和模擬地:VREF和AGND

4. IIC協(xié)議底層

要實(shí)現(xiàn)模數(shù)轉(zhuǎn)換,需要先驅(qū)動PCF8591芯片使其工作。而IIC協(xié)議則是驅(qū)動芯片的一種規(guī)則,包括開始信號、結(jié)束信號、應(yīng)答信號、數(shù)據(jù)有效性、發(fā)送一字節(jié)、接收一字節(jié)等操作。

5. 工作流程

以下是一個AD轉(zhuǎn)換函數(shù)的示例代碼:

```c

unsigned char AD_zhuan(void){

unsigned char temp;

PCF8591_start(); // 開始信號

PCF8591_write(0x90); // 寫入器件地址+數(shù)據(jù)讀/寫方向位,第一字節(jié)

PCF8591_write(0x02); // 寫入控制字,器件功能設(shè)置,第二字節(jié)(單通道,通道2)

PCF8591_start(); // 重新開始新的操作

PCF8591_write(0x91); // 器件地址,讀操作

temp PCF8591_read(); // 采集電壓,放到temp里面

Zhu_ack(1); // 采集完畢,主機(jī)應(yīng)答

PCF8591_stop(); // 關(guān)閉AD

return temp;

}

```

通過以上工作流程,可以完成模數(shù)轉(zhuǎn)換的過程。具體實(shí)現(xiàn)時,可根據(jù)需要進(jìn)行相應(yīng)的配置和操作。

標(biāo)簽: