A. 一個只有一路ad的晶元,利用51單片機,如何在硬體上搭建實現10路檢測
有一路ad的晶元,利用51單片機,加模擬開關,CD4067是16選1模擬開關。用51單片機的I/O口,控制CD4067的選擇通道A,B,C,D。CD4067的公共端接ad晶元的輸入,10路模擬量,接16路通道中的10路。CD4067禁止端接地。
B. 求ad7707的51單片機的程序, AD7707是一款適合低頻測量應用的完整模擬前端。這款3通道器
#include<AT89X51.H>
#include<math.h>
#include<INTRINS.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitAD7707_DRDY=P3^3;
sbitAD7707_DIN=P1^5;
sbitAD7707_DOUT=P1^6;
sbitAD7707_SCLK=P1^7;
bdataucharWtrByte;
sbitWtrBit=WtrByte^7;
voidInit_AD7707(void)/*初始化AD7707*/
{
uchari;
AD7707_SCLK=1;
AD7707_DIN=1;
for(i=0;i<100;i++)/*防止介面迷失*/
{
AD7707_SCLK=0;
AD7707_SCLK=1;
}
}
voidWriteToReg_AD7707(ucharRegByte)/*寫AD7707寄存器*/
{
uchari;
WtrByte=RegByte;
for(i=0;i<8;i++)
{
AD7707_SCLK=0;
AD7707_DIN=WtrBit;
AD7707_SCLK=1;
WtrByte=WtrByte<<1;
}
}
voidAD_AINT1(void)//通道1初始化
{
WriteToReg_AD7707(0x20);/*激活通道AIN1/LOCOM,下一步操作為寫ClockRegister*/
WriteToReg_AD7707(0x18);/*啟用MasterClock,2.4576MHzClock,設置OutputRate為50Hz*/
WriteToReg_AD7707(0x10);/*激活通道AIN1/LOCOM,下一步操作為寫SetupRegister*/
WriteToReg_AD7707(0x44);/*Gain=1,Unipolar模式,Buffer關閉,清FSYNC並執行SelfCalibration*/
}
voidAD_AINT2(void)//通道2初始化
{
WriteToReg_AD7707(0x21);//*激活通道AIN2/LOCOM,下一步操作為寫ClockRegister*/
WriteToReg_AD7707(0x18);/*啟用MasterClock,2.4576MHzClock,設置OutputRate為50Hz*/
WriteToReg_AD7707(0x11);/*激活通道AIN2/LOCOM,下一步操作為寫SetupRegister*/
WriteToReg_AD7707(0x44);/*Gain=1,Unipolar模式,Buffer關閉,清FSYNC並執行SelfCalibration*/
}
voidAD_AINT3(void)//通道3初始化
{WriteToReg_AD7707(0x23);/*激活通道AIN3/HICOM,下一步操作為寫ClockRegister*/
WriteToReg_AD7707(0x18);/*啟用MasterClock,2.4576MHzClock,設置OutputRate為50Hz*/
WriteToReg_AD7707(0x13);/*激活通道AIN3/HICOM,下一步操作為寫SetupRegister*/
WriteToReg_AD7707(0x44);/*Gain=1,Unipolar模式,Buffer關閉,清FSYNC並執行SelfCalibration*/
}
uintRead_AD7707(void)/*讀取AD7707數據*/
{
uchari;
uintData=0;
while(AD7707_DRDY==1);
for(i=0;i<16;i++)
{
Data=Data<<1;
AD7707_SCLK=0;
Data=Data|AD7707_DOUT;
AD7707_SCLK=1;
}
returnData;
}
供供參考:http://www.xinrui.com/forum.php?gid=1
C. 用51單片機測室內溫度並通過數碼管顯示出來
電路分三部分:單片機最小系統,數碼管顯示部分,溫度感測器。最小系統就不用說了,數碼管可用2位、3位、4位都可以,選用共陽數碼管用74hc595驅動段(數碼管位數少的話用單片機IO也可以)用三極體驅動位選,,具體按照要求選擇,感測器用數字溫度感測器DS18B20就可以了,單匯流排通訊,電路簡單。
D. 怎麼用51單片機測峰峰值是17V電壓的波形的頻率呢,當然波形含有負電壓……
測頻率這種東西你想拿二極體之類搞定?省省吧,頻率高的時候不是鬧著玩的。
1、先進行信號調理整形,利用比例放大把幅度縮小到峰峰值5V,經過一個2.5V的加法器,然後進行與2.5V基準電壓比較(電壓比較器),形成方波,再利用兩個反相器進行信號整形,使波形更加理想。
2、利用計數器74HC161之類的進行模16計數,把輸出值送單片機計數器(C/T,對外計數模式)。
3、將單片機內部計數值*16+讀取到的計數器外部值的和就是頻率。
4、預先要對信號頻率進行預估,如果頻率跨度很大,要設立高頻和低頻兩條通道。低頻通道利用測周法計算,高頻通道必要時要進行兩級或更多級的模16轉換後再送單片機。一般51單片機能輕易做到0.1Hz-10MHz的頻率范圍測量。
5、最麻煩的是波形的幅度范圍很大,比如從10mV到10V,那就比較頭疼了。
E. 基於51單片機8通道數據採集系統設計
本來我也要做的,這兩周要考試了,你要不急就留郵箱,我放暑假回家做做,給你份資料
F. 怎麼用51單片機測量方波頻率輸入口怎麼接
輸入脈沖接到P3.4上,T0作為計數器使用計數,T1作為定時器計時,初始化程序為:
init()
{
TMOD=0x11;
TH0=0x00;
TL0=0x00;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR0=1;
TR1=1;
ET0=1;
ET1=1;
EA=1;
}
G. 單片機里的通道是什麼意思
這分為輸入輸出通道,外部信息從採集,經過AD轉換與放大電路等等最後進入單片機,這條電路就是它的輸入通道,輸出通道是同樣的道理
舉個例子,一個單片機集成8路AD,可以說8通道AD
H. 51單片機怎麼測量交流電壓和電流
對單相電流采樣,采樣的器件選擇電流互感器,根據你的實際電流選擇互感器的電流比,比如工作電流在50-100A之間,就選擇100/5A的互感器.
互感器的次極輸出最大電流有5A,可以用一個精度1%的30-50W電阻,阻值1歐姆,做為互感器次級負載,從這個電阻兩端取電壓
要把正弦波的信號變成直流0-5V的信號,需要用到精密整流電路,這樣線性才會好.
直流0-5V信號進入AD轉換和51單片機,根據電流和采樣的比值,確定所轉換的數據所對應的電流值.
此電路的難點應該在電流采樣部分,程序編寫部分比較簡單.
電路圖設計比較麻煩,就不幫你設計了,從網上查找相關的資料吧.
I. 51單片機怎麼同時測量4路的脈沖寬度
方法如下:
如果單片有捕獲功能的話,直接用捕獲功能測量脈寬就行了,具體怎麼操作得看你用什麼單片機了,STC就有帶捕獲功能的單片的。
如果單片沒有捕獲,那就把輸入的信號接到單片的終埠,用信號的邊沿觸發外部中斷,在程序里開啟計數器計數,等到下次中斷到來時,取計數的值,然後根據計數值頻率就可以算出輸入信號的脈寬了
J. 基於cs-51單片機的6通道數據採集器的設計
這么復雜的系統要說誰免費幫你我想是很不可能。找代做的付錢吧,要不就找點資料,自己來,遇到問題再提問小問題。不能這樣全部的靠別人。我看這系統也不難,只是要全部做出來是得好幾天的。