❶ 一路4-20mA輸入,一路4-20mA輸出的單片機怎麼做,求大神指教
需要用到:
具有DAC,CAP的單片機;
如果需要較高精度的電流輸出,可以採用:V-I變換晶元,將DAC輸出的電壓轉換成對應的電流;如果精度不太高,則可以採用運放搭建V-I轉換。
也可以採用F-V變換電路,單片機改變F,由F-V變換電路後再接採用運放搭建V-I轉換。
如果主體要求較高,則DAC最好大於12位,最好採用16位的DAC。
❷ 請大家幫忙:單片機採集外來輸入的脈沖,經過處理輸出4到20ma的電流。
用51單片機控制的話,我建議如下
1.T1、T0設置工作方式為TMOD=0x52;這意思是,T1工作在16位計數狀態,T0工作在8位計時狀態
2.T1引線(P3.5)就可以直接接脈沖信號
3.利用定時T0中斷,執行中斷斗笑讀取T1計數的程序。這里要注意設置T0中斷的時間,該時間為脈沖最大頻率小於65355的時間最好,但你也可以多次采樣,求平均值的方法來獲得頻率F,再把這F存到全局變數K中,就可以了,這里要注意,存的位置是全局變數!!
4.采樣來的頻率F經過轉換如下公式羨銷哪轉化為數字量D,我舉例採用的是8位的D/A,DAC0832是個輸出電流型D/A,你也可以選用16位的,可分點就更多了,如果要很精確的話,記得兄碼數據類型要用FLOAT來計算結果轉為INT,最後賦給D
D=((F+最大頻率/5)/最大頻率)*256
這里說明下,你要輸出的是4~20,F=0時,D要等於4mA
❸ 單片機如何輸出4~20mA信號
原理上,單片機可以完成控制輸出4~20mA信號。有兩種方案:
1、運放+三極體構成可控恆流源,單片機用PWM波形經濾波後輸出控制電壓,該電壓作為可控恆流源基準電壓,達到控制輸出4~20mA信號目的。優點是簡便易行,缺點是恆流值隨單片機電源電壓變化且溫度特性不好。
1、運放+三極體構成可控恆流源,單片機用專用DAC和基準電壓源通過數模轉換輸出控制電壓,該電壓作為可控恆流源基準電壓,達到控制輸出4~20mA信號目的。優點是恆流源指標好,缺點是結構復雜且成本提高。
❹ 定義單片機引腳輸出
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit input=P2^0;
sbit output=P2^1;
void delay(uint x)
{
uchar j;
while(x--)
{
for(j=0;j<125;j++)
{;}
}
}
void main(void)
{
input=1;
output=0;
while(1)
{
if(input==0)
{
delay(10);
if(input==0)
output=1;
else
output=0;
}
}
}
❺ 如何通過單片機輸出標準的4到20mA的電流
4~20mA電流環的零電平信號採用4mA大小的電流表示,滿量程採用20mA電流表示,因此得名「4mA-20mA電流環(current loop)」。4mA以下的電流輸出用來進行故障診斷功能,20mA以上電流被認為是超量程輸出。不同電流輸出的具體含義如下表所示。
需要注意的是,雖然4~20mA電流環以其結構簡單是、可靠性高的特點在各種不同場合得到廣泛應用,但在需要高速通信的場合,一般認為4~20mA不適合。電流源的高阻特性、
傳輸電纜的寄生參數等因素限制了整個環路的頻率響應。
❻ stc單片機PCA高速輸出脈沖程序
這個要看分別率的吧,你如果分別率是256*100khz那晶振至少都要25.6mhz
❼ 敬愛的合泰單片機高手!!!!!!!
1.怎樣用軟體設置:CMOSE輸出,帶或不帶上拉電阻的斯密特觸發輸入,A/D輸入????
輸出就是輸出,什麼"CMOS輸出"是Holtek官方術語,"斯密特觸發輸入"也是官方術語,帶不帶上拉電阻是在IDE掩膜選項中設置的
引腳是AD輸入還是數字IO靠ADCR中的控制位來定義
2.怎樣理解ADCR中的前六位設置???當設置好模義輸入通道,為什麼還要定義PB呢????
這是HT46R52的ADCR 參考(估計HT46R22是一樣的):
0 ACS0 選擇模擬輸入通道
1 ACS1 選擇模擬輸入通道
2 ACS2 選擇模擬輸入通道
3 PCR0 為0 則關閉,減小功耗
4 PCR1 為0 則關閉,減小功耗
5 PCR2 為0 則關閉,減小功耗
6 EOC A/D 轉換結束標志(0:A/D 轉換結束)
每次bit3-5 狀態的改變後都必須通過START 信號來初始化A/D 轉換器,
否則EOC可能會處於不確定狀態
7 START 0→1→0:開始; 0→1:A/D 轉換復位並且置EOC為「1」
「當設置好模義輸入通道,為什麼還要定義PB呢????」
前面0-2隻是個通道選擇(多選1模擬開關),並不能決定PB口是模擬口還是數字IO
就像有一塊內存空間,你選中了一個位元組來用,但裡面的內容到底什麼不知道,設置一下就知道了。
3.埠問題:
1.控制寄存器:設定IO口是輸入還是輸出,數據寄存器(埠寄存器)讀取/設置埠電平
2.設_pac=0b00000000;意思是pa口全部輸出;設_pa= 0b00000000;則pa全部輸出0
3.初始化埠的步驟示例:_pac=0x00; _pa=0x00;
4.其他問題:
#pragma vector isr_time @ 0x08 //中斷服務程序定義
#pragma vector isr_ad @ 0x0c //中斷服務程序定義
uchar sign0 @ 0x40; //在絕對地址定義變數
uchar sign1 @ 0x41; //在絕對地址定義變數
❽ 在89c51單片機中能不能設置多種對外輸出頻率模式怎麼設置
可以利用89C51的兩個定時器產生不同頻率的中斷周期,在中斷程序中控制IO口的輸出變化,實現兩個不同的頻率輸出,也可以以定時的中斷產生一個時基信號,用軟體計數時基數控制IO口輸出,這樣可以實現多個輸出頻率。