① 單片機AD轉換用的這段程序意思是什麼
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch ;//開始轉換
這是用STC單片機內部A/D轉換電路進行A/D轉換時,要給A/D控制寄存器ADC_CONTR寫啟動轉換命令,ADC_CONTR是ADC控制寄存器,其中的每一位的作用見下圖,而這行語句前面肯定要有定義每一位狀態的語句,或用#define宏定義了各位的值。
② 跪求MQ—2煙霧感測器與單片機連接和AD轉換器的電路圖
電路圖沒必要吧,太簡單了,你用stc帶ad的片子,如stc12c5410ad,感測器是電壓輸出的直接連P1口,控制寄存器編程就可以了(宏晶官方有現成的程序)
,用STC89c52還要外加ad呀(解析度要求不高沒必要呀)
③ AD轉換原理是什麼
A/D轉換後,輸出的數字信號可以有8位、10位、12位、14位和16位等。
A/D轉換器的工作原理
逐次逼近法
逐次逼近式A/D是比較常見的一種A/D轉換電路,轉換的時間為微秒級。
雙積分法
採用雙積分法的A/D轉換器由電子開關、積分器、比較器和控制邏輯等部件組成。
電壓頻率轉換法
採用電壓頻率轉換法的A/D轉換器,由計數器、控制門及一個具有恆定時間的時鍾門控制信號組成,如
它的工作原理是V/F轉換電路把輸入的模擬電壓轉換成與模擬電壓成正比的脈沖信號。電壓頻率轉換法。
(3)單片機ad轉換電路圖擴展閱讀:
AD轉換就是模數轉換。顧名思義,就是把模擬信號轉換成數字信號。主要包括積分型、逐次逼近型、並行比較型/串並行型、Σ-Δ調制型、電容陣列逐次比較型及壓頻變換型。
A/D轉換器是用來通過一定的電路將模擬量轉變為數字量。模擬量可以是電壓、電流等電信號,也可以是壓力、溫度、濕度、位移、聲音等非電信號。但在A/D轉換前,輸入到A/D轉換器的輸入信號必須經各種感測器把各種物理量轉換成電壓信號。
④ 單片機電路圖怎麼畫
單片機是一種集成電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器(CPU),隨機存儲器(RAM),只讀存儲器(ROM),多種IO口和中斷系統、定時器/計數器等功能(可能還包含顯示驅動電路、脈寬調制電路、模擬多路轉換器、AD轉換器等)集成到一塊矽片上構成的一個小而完善的微型計算機系統。單片機誕生於1971年,經歷了SCM、MCU、SoC三大階段,早期的SCM單片機都是8位或4位的。其中最成功的是INTEL的8051,此後在8051上發展出了MCS51系列MCU系統。單片機已經從20世紀80年代的4位、8位單片機,隨著工業控制領域要求的提高,開始出現了16位單片機,發展到現在運行速度可以媲美電腦CPU的高速單片機。
單片機作為計算機發展的一個重要分支領域,根據發展情況,從不同角度,單片機大致可以分為通用型/專用型、匯流排型/非匯流排型及工控型/家電型。通用型:80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。匯流排型:匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接,另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。控制型:一般工控型定址范圍大,運算能力強;用於家電的單片機多為專用型,通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。
⑤ 霍爾電流與霍爾電壓感測器通過A/D轉換器連接到單片機的具體電路圖
測電流的
霍爾
稱為
霍爾電流感測器
。
霍爾電流感測器副邊輸出電流(或電壓)正比於原邊電流。
將副邊電流通過
取樣電阻
變換為電壓,再經過
AD轉換器
與單片機相連。
⑥ 需要做一個AD轉換電路,不可以用現成的晶元,求圖!謝謝!
已作出,da晶元用的8位dac0832,沒時間弄12的了,硬體搭建很費事,搭了一次,由於起始位無法輸入電平而失敗,後來用軟體全部編輯的與或門等
用逐次漸進原理進行單片機模擬即可,轉換速率主要是比較器和da晶元的效率,因為用的都是現成的比較器和晶元,轉換速度很快,都能達到30次/s以上。
⑦ 這個單片機ad轉換電路圖畫的對嗎,上邊那個respack部分是什麼東西
1、你接的ADC0809電路基本無誤,不過要正常工作,還得看你的程序設計質量。
2、上面的RESpack是電阻排,用於充當上拉電阻的,你看一下它連的是P0口,P0口要做輸出時必須上拉(內部是開漏結構)。
3、電阻排(或者稱為,排阻)的實物,你可以參考一下X寶上的圖片,很普通的一種元器件。
⑧ ad轉換模塊與單片機連接原理圖 幫幫我吧
/*******************************************************
* 程序名稱:hc595.c
* 程序功能:595的應用文件
* 程序作者:吳鑒鷹
* 創建時間:2014-3-10
* 修改時間:
* 程序版本:V0.1
******************************************************/
/*
* 包含頭文件
*/
#include "inc/hc595.h"
#include "reg51.h"
/*
* 定義引腳
*/
/* 時鍾信號線引腳定義 */
sbit HC595CLK = P0^5;
/* 片選信號線引腳定義 */
sbit HC595RCK = P0^6;
/* 數據輸入引腳定義 */
sbit HC595DATA = P0^7;
/******************************************************
* 函數名稱:SendData
* 函數功能:74HC595數據的發送
* 入口參數:unsigned int uiDataOne, unsigned int uiDataTwo
* 出口參數:void
*******************************************************/
void SendData(unsigned int uiDataOne, unsigned int uiDataTwo)
{
unsigned int i = 0;
/* 將片選信號置為低電平 */
HC595RCK = 0;
/* 輸入第一個數據:uiDataOne */
for (i = 0; i < 8; i++)
{
/* 給出脈沖信號,首先將CLK置為0 */
HC595CLK = 0;
if (0 != (uiDataOne & 0x80))
{
HC595DATA = 1;
}
else
{
HC595DATA = 0;
}
/* 給出脈沖信號,首先將CLK置為1 */
HC595CLK = 1;
/* 准備第二個數據 */
uiDataOne = uiDataOne << 1;
}
/* 輸入第二個數據:uiDataTwo */
for (i = 0; i < 8; i++)
{
/* 給出脈沖信號,首先將CLK置為0 */
HC595CLK = 0;
if (0 != (uiDataTwo & 0x80))
{
HC595DATA = 1;
}
else
{
HC595DATA = 0;
}
/* 給出脈沖信號,首先將CLK置為1 */
HC595CLK = 1;
/* 准備第二個數據 */
uiDataTwo = uiDataTwo << 1;
}
/* 將片選信號置為高電平 */
HC595RCK = 1;
}