AVR單片機和Matlab串口通信的計時器系統(tǒng)
引言
本文設計了一種基于AVR單片機和Matlab串口通信的計時器系統(tǒng),本計時器系統(tǒng)可以滿足體育競賽中精確計時的要求。在該設計中,主要以Atmel公司ATmega16單片機作為信號采集系統(tǒng),通過串口和上位機的Matlab通信,自定義了一項通信協(xié)議,使上位機接收到不同的信號,可以實現(xiàn)對Matlab中計時器的控制。[1]利用Matlab軟件提供的GUI設計出一套友好的人機界面。[2]本系統(tǒng)中,可以有多個單片機作為下位機,通過串口連接ZigBee無線傳輸模塊,與上位機進行通信。無線傳輸模塊的接入可以實現(xiàn)遠程多點信號采集,使系統(tǒng)更加靈活,可擴展性大大增強。
1 系統(tǒng)總體設計
本系統(tǒng)包括多個以ATmega16單片機為主控制器的信號采集系統(tǒng)和一個上位機Matlab軟件編寫的計時器程序。多個下位機和上位機之間通過串口接ZigBee無線通信模塊,實現(xiàn)數(shù)據(jù)傳輸功能。ATmega16捕捉到的對射型光電開關信號傳輸給上位機Matlab,控制計時器的開始、中斷和結(jié)束功能。系統(tǒng)的整體框圖如圖1所示。
圖1 系統(tǒng)的整體框圖
2 信號采集系統(tǒng)的設計
信號采集系統(tǒng)主要由對射型光電開關、信號電平轉(zhuǎn)換電路和單片機組成。
對射型光電開關由發(fā)射器和接收器組成,結(jié)構(gòu)上是相互分離的,在光束被中斷的情況下會產(chǎn)生一個開關信號變化。本文使用的對射型光電開關的特征是:能辨別不透明的反光物體;有效距離大,檢測距離可達10 m;不易受干擾,可以可靠地在野外或者有灰塵的環(huán)境中使用。
光電開關信號的高電平輸出+12 V數(shù)字信號,而ATmega16 I/O口電平為TTL電平,電壓范圍為0~+5 V,因此,在光電開關和單片機之間必須設計一個電平轉(zhuǎn)換電路。本設計考慮使用光電耦合器件TLP521-2,它提供了兩個孤立的光耦8引腳塑料封裝,不僅能夠?qū)崿F(xiàn)+12~+5 V電壓的轉(zhuǎn)換,還能隔離兩端信號,提高電路的穩(wěn)定性。信號電平轉(zhuǎn)換電路示意圖如圖2所示。
圖2 信號電平轉(zhuǎn)換電路示意圖
ATmega16單片機的外部中斷通過引腳INT0、INT1觸發(fā)。只要使能了中斷,即使引腳INT0、INT1配置為輸出,當電平發(fā)生了合適的變化,中斷也會觸發(fā)。通過設置ATmega16控制寄存器MCUCR和控制與狀態(tài)寄存器MCUCSR,中斷可以由下降沿、上升沿或者是低電平觸發(fā)。[3]本文使用E3FDS10C4的對射光電開關,輸出方式為NPN常開型,當其光線被遮擋時,則信號輸出由高電平跳變?yōu)榈碗娖?,即輸入ATmega16外部中斷引腳的中斷信號為下降沿。本設計中,兩路光電開關信號接ATmega16的外部中斷INT0、INT1引腳,外部中斷相關寄存器設置如下:
MCUCR=0x0A;//INT0、INT1下降沿觸發(fā)中斷
GICR=0xC0;//使能INT0、INT1
當光電開關出現(xiàn)下降沿時,則程序進入相應的外部中斷處理程序,將外部中斷標志位置位。單片機主程序流程圖如圖3所示。
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
通信相關文章:通信原理
光電開關相關文章:光電開關原理相關推薦
-
-
-
amine | 2003-01-16
-
-
Naiqa | 2002-11-20
-
jackwang | 2006-09-17
-
-
-
-
-
-
-
pingzhang4 | 2005-05-20
-
評論