導航:首頁 > 操作系統 > 用單片機做時序捕捉

用單片機做時序捕捉

發布時間:2023-04-16 19:33:05

㈠ 要用單片機輸出做驅動CCD的時序信號,頻率為1MHz,但是單片機埠輸出的方波幅值僅有3V,我要12V,怎麼辦

可以用CCD專用驅動器,MAX4426,DS0026,EL7212等陵喊。都尺旅野是單電源供電的,最大能輸出0~16V左右的驅動信號,查下相關的技術手冊,上面有典型電路,電路都很簡單,有的器件支持3V輸入的。
建議別鎮穗用開關電路,會引入較大雜訊,影響CCD成像質量。

㈡ STC12C5A60S2單片機的PCA作為捕捉使用時,捕捉的是兩個邊沿信號之間的脈寬還是一段時間內的脈沖數量

沒仔細研究,這一節的說明特別長,看起來費勁但我學習STM32時對捕獲有所理解,應該是兩個捕獲寄存器1和2聯合使用,第一個上升沿到來,兩個捕獲寄存器同時復位,下降沿時,捕獲寄存器2產生捕獲更新事件,即可得到脈沖寬度第二個上升沿到來捕獲寄存器1產生捕獲更新事件,即可得到脈沖周期同時占空比也知道了兩個寄存器的捕獲值是內部時鍾個數,根據晶振頻率和分頻系數即可得到時間
而不是一段時間內外部的脈沖數量

㈢ 單片機測時序的程序

最好用下降沿中斷,進去後陵燃譽讀取SDA數據,出來之後再做處理,以免錯過下尺段次段含數據中斷,注意主頻,一定要保證下個下降沿到來前能出中斷。

㈣ 單片機輸入捕捉功能

你的跳變頻率不超過MCU的 應該可以實現的 首先上升沿觸發 進入之後開啟計時器,並改為下降沿觸發,進入下降沿之後關閉計時器再改回上升沿

㈤ 單片機中的捕捉功能是什麼意思

就是對於外部信號,每個下降沿或者上升沿可以捕捉中斷一次,可以用來做頻率計

㈥ 學單片機步驟

使用單片機就是理解單片機硬體結構,以及內部資源的應用,在匯編或C語言中學會各種功能的初始化設置,以及實現各種功能的程序編制。?

第一步:數字I/O的使用

使用按鈕輸入信號,發光二極體顯示輸出電平,就可以學習引腳的數字I/O功能,在按下某個按鈕後,某發光二極體發亮,這就是數字電路中組合邏輯的功能,雖然很簡單,但是可以學習一般的單片機編程思想,例如,必須設置很多寄存器對引腳進行初始化處理,才能使引腳具備有數字輸入和輸出輸出功能。每使用單片機的一個功能,就要對控制該功能的寄存器進行設置,這就是單片機編程的特點,千萬不要怕麻煩,所有的單片機都是這樣。

第二步:定時器的使用

學會定時器的使用,就可以用單片機實現時序電路,時序電路的功能是強大的,在工業、家用電氣設備的控制中有很多應用,例如,可以用單片機實 現一個具有一個按鈕的樓道燈開關,該開關在按鈕按下一次後,燈亮3分鍾後自動滅,當按鈕連續按下兩次後,燈常亮不滅,當按鈕按下時間超過2s,則燈滅。數 字集成電路可以實現時序電路,可編程邏輯器件(PLD)可以實現時序電路,可編程式控制制器(PLC)也可以實現時序電路,但是只有單片機實現起來最簡單,成本最低。定時器的使用是非常重要的,邏輯加時間控制是單片機使用的基礎。

第三步:中斷

單片機的特點是一段程序反復執行,程序中的每個指令的執行都需要一定的執行時間,如果程序沒有執行到某指令,則該指令的動作就不會發生,這樣就會耽誤很多快速發生的事情,例如,按鈕按下時的下降沿。要使單片機在程序正常運行過程中,對快速動作做出反應,就必須使用單片機的中斷功能,該功能就是在快速動作發生後,單片機中斷正常運行的程序,處理快速發生的動作,處理完成後,在返回執行正常的程序。中斷功能使用中的困難是需要精確地知道什麼時候不允許中斷發生(屏蔽中斷)、什麼時候允許中斷發生(開中斷),需要設置哪些寄存器才能使某種中斷起作用,中斷開始時,程序應該干什麼,中斷完成後,程序應該干什麼等等。中斷學會後,就可以編制更復雜結構的程序,這樣的程序可以干著一件事,監視著一件事,一旦監視的事情發生,就中斷正在乾的事情,處理監視的事情,當然也可以監視多個事情,形象的比喻,中斷功能使單片機具有吃著碗里的,看著鍋里的功能。

以上三步學會,就相當於降龍十八掌武功,會了三掌了,可以勉強護身。

第四步:與PC機進行RS232通信

單片機都有USART介面,特別是MSP430系列中很多型號,都具有兩個USART介面。USART介面不能直接與PC機的RS232介面連接,它們之間的邏輯電平不同,需要使用一個MAX3232晶元進行電平轉換。

USART介面的使用是非常重要的,通過該介面,可以使單片機與PC機之間交換信息,雖然RS232通信並不先進,但是對於介面的學習是非常重要的。正確使用USART介面,需要學習通信協議,PC機的RS232介面編程等等知識。試想,單片機實驗板上的數據顯示在PC機監視器上,而PC機的鍵盤信號可以在單片機實驗板上得到顯示,將是多麼有意思的事情啊!

第五步:學會A/D轉換

MAP430單片機帶有多通道12位A/D轉換器,通過這些A/D轉換器可以使單片機操作模擬量,顯示和檢測電壓、電流等信號。學習時注意模擬地與數字地、參考電壓、采樣時間,轉換速率,轉換誤差等概念。使用A/D轉換功能的簡單的例子是設計一個電壓表。

第六步:學會PCI、I2C介面和液晶顯示器介面

這些介面的使用可以使單片機更容易連接外部設備,在擴展單片機功能方面非常重要。

第七步:學會比較、捕捉、PWM功能

這些功能可以使單片機能夠控制電機,檢測轉速信號,實現電機調速器等控制起功能。如果以上七步都學會,就可以設計一般的應用系統,相當於學會十招降龍十八掌,可以出手攻擊了。

第八步:學習USB介面、TCP/IP介面、各種工業匯流排的硬體與軟體設計????

學習USB介面、TCP/IP介面、各種工業匯流排的硬體與軟體設計是非常重要的,因為這是當前產品開發的發展方向。

到此為止,相當於學會15招降龍十八掌,但還不到打遍天下無敵手的境界。即使如此,也算是單片機大蝦了!!

㈦ 如何使用單片機輸入捕捉採集0-30HZ低頻信號

單片機採集0-30HZ頻率量信號,普態困嘩通的IO口也帆行能實現,如果要精度高,效率高的話需要用到外部中斷來實現。
原理是這樣的,當單片機接收到外部低電平信號時,觸發中斷(設置低電尺慧平觸發)。再通過定時器來確定你的低電平至下一個低電平到來時的,延時時間,最後通過F=1/T來計算頻率。

㈧ 單片機紅外的時序

紅外遙控發射晶元採用PPM編碼方式,當發射器按鍵按下後,將發射一組108ms的編碼脈沖。遙控編碼脈沖由前導碼、8位用戶碼、8位用戶碼的反碼、8位操作碼以及8位操作碼的反碼組成。通過對用戶碼的檢驗,每個遙控器只能控制一個設備動作,這樣可以有效地防止多個設備之間的干擾。編碼後面還要有編碼的反碼,用來檢驗編碼接收的正確性,防止誤操作,增強系統的可靠性。前導碼是一個遙控碼的起握櫻兆始部分,由一個9ms的低電平(起始碼)和一個4. 5ms的高電平(結果碼)組成,作為接受數據的准備脈沖。以脈寬為0. 56ms、周期為1. 12ms的組合表示二進制的「0」;以脈寬為1. 68ms、周期為2. 24ms的組合表示二進制的「1」。如果按鍵按下超過108ms仍未松開,接下來發射的代碼(連發代碼)將僅由起始碼段租(9ms)和結束碼(2. 5ms)組成。

單片機採用外部中斷INTI管腳和紅外接收頭的信號線相連,中斷方式為邊沿觸發方式。並用定時器0計算中斷的間隔時間,來區分前導碼、二進制的「1」、「0」碼。並將8位操作碼提取出來在數碼管上顯示。

// 解碼值在Im[2]中,當IrOK=1時解碼有效。
/* 51單片機紅外遙控解碼程序 */
//用遙控器對准紅外接收頭,按下遙控器按鍵,在數碼管前兩位上就會顯示對應按鍵的頌茄編碼

#include <reg52.h>
#define uchar unsigned char
sbit la=P2^6;
sbit wela=P2^7;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

uchar f;

#define Imax 14000 //此處為晶振為11.0592時的取值,
#define Imin 8000 //如用其它頻率的晶振時,
#define Inum1 1450 //要改變相應的取值。
#define Inum2 700
#define Inum3 3000

unsigned char Im[4]={0x00,0x00,0x00,0x00};
uchar show[2]={0,0};
unsigned long m,Tc;
unsigned char IrOK;

void delay(uchar i)
{
uchar j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}

void display()
{
la=0;
P0=table[show[0]];
la=1;
la=0;

wela=0;
P0=0xfe;
wela=1;
wela=0;
delay(5);

P0=table[show[1]];
la=1;
la=0;

P0=0xfd;
wela=1;
wela=0;
delay(5);
}

//外部中斷解碼程序
void intersvr1(void) interrupt 2 using 1
{
Tc=TH0*256+TL0; //提取中斷時間間隔時長
TH0=0;
TL0=0; //定時中斷重新置零
if((Tc>Imin)&&(Tc<Imax))
{
m=0;
f=1;
return;
} //找到啟始碼
if(f==1)
{
if(Tc>Inum1&&Tc<Inum3)
{
Im[m/8]=Im[m/8]>>1|0x80; m++;
}
if(Tc>Inum2&&Tc<Inum1)
{
Im[m/8]=Im[m/8]>>1; m++; //取碼
}
if(m==32)
{
m=0;
f=0;
if(Im[2]==~Im[3])
{
IrOK=1;
}
else IrOK=0; //取碼完成後判斷讀碼是否正確
}
//准備讀下一碼
}

}

/*演示主程序*/
void main(void)
{
unsigned int a;

m=0;
f=0;
EA=1;

IT1=1;EX1=1;

TMOD=0x11;
TH0=0;TL0=0;
TR0=1;//ET0=1;

while(1)
{

if(IrOK==1)
{
show[1]=Im[2] & 0x0F; //取鍵碼的低四位
show[0]=Im[2] >> 4;
IrOK=0;

}
for(a=100;a>0;a--)
{
display();
}

}
}

㈨ 51單片機,我想讀出來我的程序的時序,用什麼儀器好呢.示波器,還是邏輯分析儀

51的單片機,一般拆晌用伍御旅20MHz以上的示波器就可以了腔凳,如果很高主頻單片機,建議買40MHz的示波器,我用的是40MHz的9000多,不好的3000左右,

㈩ (c語言)我想請教大家i2c時序的問題,我用單片機i/O口模擬i2c通信 用示波器抓的,現在應答信號不對

你這賀猛個I2C模擬的很不好,要根據I2C時序含拍亂圖延時,不是隨便寫。談檔給你一個圖例吧。

這個就是I2C要求。I2C的協議不用我說了吧,網上找。

閱讀全文

與用單片機做時序捕捉相關的資料

熱點內容
程序員試用期匯報問題協助怎麼寫 瀏覽:127
抖音演算法到底是什麼 瀏覽:126
哪個vlan技術對報文加密 瀏覽:570
單片機定時電路 瀏覽:672
山西平台伺服器雲主機 瀏覽:700
按摩肚臍解壓視頻 瀏覽:989
php55安裝教程 瀏覽:137
雲伺服器怎麼查找本機域名 瀏覽:22
qd123y壓縮機參數 瀏覽:385
程序員媽媽懷孕 瀏覽:490
金普國際編程 瀏覽:537
java什麼是引用類型 瀏覽:944
這是命令嗎txt 瀏覽:314
支付寶android包名 瀏覽:154
eclipsemaven命令 瀏覽:68
24路伺服器配什麼cpu 瀏覽:466
壓縮文件和解壓文件哪個快 瀏覽:675
亞馬遜雲伺服器視頻通話 瀏覽:912
金融知識app哪個好 瀏覽:978
農行理財app收益在哪裡 瀏覽:969