⑴ 如何用單片機測量正弦信號的相位差
你用的是什麼單片機,帶AD嗎?如果帶AD:讓兩個正選型號輸入AD口(注意電平匹配),軟體檢測兩個Vpp,用定時器求得峰值時間差,然後再換算
如果不帶AD就先加一個AD晶元,如ADC0832就行
⑵ 51單片機如何模擬旋轉編碼器輸出的相位差90度的方波
那就讓單片機輸出脈沖信號唄 占空比和相位差按編碼器的輸出樣式整
⑶ 怎麼用單片機產生2路正弦波信號相位相差120度(用2片dac0832)
提供一點思路,用兩個定時器產生PWM信號,第一個定時器工作到交流電半周期的三分之二啟動第二個定時器。
⑷ 單片機直接ADC採集兩路同頻正弦信號該如何計算它們的相位差,最好講一
假定一路的正弦波是標準的,過原點,檢測到AD值為0左右是開始計時,並且繼續取AD值,確定是0度,還是180度的零點。另外一路過零點時,記錄下定時器的數值,並且繼續取AD值,確定是0度,還是180度的零點。這樣就可以比較時間差了,具體的還得看你是用什麼單片機以及信號頻率了
⑸ 單片機與相位計的RS232串口通信編程問題。 硬體已經沒有問題,c程序存在問題,請幫忙修改一下。
/*************************************************
如果你的相位計只需要在初始的時候發送p0 c0 l0 這三個的話,也就是說後繼的數據都是由相位計發送,
單片機接收的話,初始化部分沒有大問題,但接收數據的部分 ReceStr()有問題,應該是收不到數據吧?
1、串口初始化程序先確定TH1的值和單片機晶振匹配不?0xfd是用於11.0592M晶振的波特率不加倍(smod = 0)方式下的9600bps的
這個可以控制單片機發送,由pc設定9600接收,看單片機串列速率設置是否正確
2、你現在的串口接收函數執行了也收不到數據, 因為單片機串口只有一個位元組的緩沖,所以一般用中斷方式來接收數據,
每次有一個位元組收到後,通過中斷來將收到的位元組放入程序緩沖去。
還有接收變數怎麼會寫成float的?單位元組用char 。
如果是相位計的數據發過來是float類型,那需要你自己程序轉換,串口發送的只會是8bit的hex數據
3、如果程序需要很准確的延遲的話,延遲函數需要調試一下的
串口接收常式:
全局變數:
unsigned char x_Buf[50] = {0};
unsigned char * pX = x_Buf;
//volatile unsigned char posBf = 0;
中斷服務:
void Serial_ISR(void) interrupt 4
{
if(RI)
{
RI = 0;
*pX++ = SBUF;
if(pX == &x_Buf[49]+1) pX = x_Buf;
}
}
*************************************************/
/*------------------------------------------------
串口初始化
------------------------------------------------*/
void InitUART (void)
{
SCON = 0x50;
TMOD |= 0x20;
TH1 = 0xFD;
TR1 = 1;
ES = 1; //串口中斷使能
EA = 1;
}
⑹ mcs-51單片機相位轉移最大負跳距是多少
是相對轉移指令么?
相對轉移是+127,-128
⑺ C51 單片機輸出兩路方波 相位相差90度 怎麼做啊
設計一個 定時器 確定方波頻率 (時間為 1/4 方波頻率)設定 2 個 輸出 IO
安定時 時間 IO 輸出 00 10 11 01 ( 即第一次 輸出 00 ,第二次 輸出 10 ,---)
⑻ 用單片機如何發相位差90兩路方波脈沖
用定時器中斷,中斷服務程序 取反 IO 口輸出,可以得到方波脈沖,
相位差90兩路方波脈沖輸出, 中斷服務程序設置 一個 標志位, 每次中斷 標志位 取反,
第一路 標志位 = 0 時 ,IO 口輸出 取反
第二路 標志位 = 1 時 ,IO 口輸出 取反
⑼ 請問怎麼用51單片機實現 檢測輸入一個正弦波 檢查其相位和其頻率 給程序追加50分
首先,單片機測量正弦波的相位和頻率,必須先將其變成方波,在過零點上升沿時邊緣觸發單片機。利用比較器電路時很容易做到。
相位是相對的,單片機檢測不到正弦波的過零點離Y軸的時間,所以不能判斷其相位是多少,但你可以自己設置一個基準作為單片機人為基準,當單片機測量到的正弦波過零點與這基準的時間就是你要的相位,但這並不代表這是標準的,當然通過調整基準的位置,可以得到接近標準的數據。
單片機測量頻率,也就是測量兩個方波之間的上升沿的時間,這時間的倒數就是頻率。
如果是測量兩個信號的相位差,則利用一個異或門處理一下則可。