<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > AVR單片機在柴油機轉速測量中的應用

AVR單片機在柴油機轉速測量中的應用

作者: 時(shí)間:2006-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏


摘要:利用ATMEL新一代AVR單片機(AT90S2313)實(shí)現對柴油機轉速的測量,在C語(yǔ)言程序設計中引入了消息的概念,最后給出了AT90S2313與AT89C2051在轉速測量中使用效果的比較。

本文引用地址:http://dyxdggzs.com/article/255677.htm

關(guān)鍵詞:?jiǎn)纹瑱C 轉速測量 柴油機 消息

柴油機的轉速是一個(gè)較為重要的運行參數,也有很多種用于測量轉速的儀表,如:機械軟軸式轉速表、頻率-電壓轉換式轉速表、數字式轉速表等,它們中間有的成本很高而且精度較差、有的工藝復雜而且可靠性不高。本文介紹了一種利用單片機技術(shù)制成的智能轉速表,不僅精度高、工藝簡(jiǎn)單、線(xiàn)路簡(jiǎn)潔,而且可靠性高、功能強。其不僅可以測量轉速,而且可以統計機器運行的累計時(shí)間,當柴油機超速時(shí),還可發(fā)出報警信號,切斷油路,保護機器不發(fā)生飛車(chē)事故。

1 測量原理

在測量柴油機轉速時(shí)我們采用了電磁感應式傳感器,這種傳感器可將轉速信號轉變成一個(gè)脈沖信號輸出,而脈沖信號的頻率與柴油機的轉速是一種線(xiàn)性的正比關(guān)系。因此對柴油機轉速的測量,實(shí)質(zhì)上是對脈沖信號的頻率的測量,可以采用閘門(mén)法進(jìn)行測量。

2 線(xiàn)路設計
智能轉速表的框圖如圖1所示

AVR單片機在柴油機轉速測量中的應用

定時(shí)器0以中斷方式工作,其負責采集定時(shí)器1 的計數值、對運行時(shí)間累計和發(fā)送消息。由于在儀表中對采集到的定時(shí)器1 的計數值,需要進(jìn)行一些處理,如:判斷是否超過(guò)額定速度、將16位二進(jìn)制數轉換成BCD碼、為動(dòng)態(tài)LED顯示電路進(jìn)行軟件譯碼及掃描控制等等。如果所有工作全部放在中斷程序中完成,就會(huì )導致中斷服務(wù)程序執行時(shí)間過(guò)長(cháng)。由于儀表還要完成運行時(shí)間的累計工作,盡管中斷服務(wù)程序執行時(shí)間過(guò)長(cháng)對轉速的測量不會(huì )有太大影響,但勢必會(huì )給時(shí)間累計造成過(guò)大的累積誤差,影響累計時(shí)間的精度。為了解決這個(gè)問(wèn)題,我們采取了下面的方法:

借鑒windows 編程的原理,在單片機編程中引入消息的概念,將中斷產(chǎn)生的標志作為消息,而數據處理則放在消息循環(huán)中進(jìn)行。在這個(gè)例子中中斷服務(wù)程序中只進(jìn)行數據的采集和標志位的設置(發(fā)送消息),而將數據的處理放到運行時(shí)間要求不很精確的中斷服務(wù)程序之外的主程序循環(huán)中(消息循環(huán))。這樣一方面減少了中斷服務(wù)程序的長(cháng)度,縮短了中斷服務(wù)程序執行的時(shí)間,提高了中斷處理的實(shí)時(shí)性,另一方面又不影響數據的處理。從而很好地解決了數據采集的實(shí)時(shí)性和數據處理耗時(shí)多而影響時(shí)間累計之間的矛盾。


和PC機相比,單片機資源十分有限。因此,單片機系統不可能象windows系統那樣建立龐大的消息循環(huán)機制,將消息分發(fā)給各個(gè)程序并行處理。在基于消息的單片機編程中,采取一種簡(jiǎn)化的方式,消息可以這樣來(lái)定義:當某個(gè)事件(例如中斷)發(fā)生時(shí),事件處理程序(例如中斷服務(wù)程序)設置相應的標志,不同的標志即代表不同的消息;而主程序所進(jìn)行的消息循環(huán)就是主程序不斷地判斷這些標志,以決定啟動(dòng)哪一個(gè)處理函數(即將消息發(fā)送給特定的消息處理函數)。這種方法在多中斷系統中使用,可以明顯地提高中斷的實(shí)時(shí)性;另外,由于在中斷服務(wù)程序中不需要調用數據處理程序,也有效地防止了代碼重入帶來(lái)的問(wèn)題。
如下面的T0中斷服務(wù)程序,發(fā)送消息:
void timer0()
{
if (--timercount==0)
{
TCCR1B = 0x00;
count=TCNT1; //采集數據
second++; //運行時(shí)間累計
flag=1; //發(fā)送消息
WDR();
TCNT1H = 0x00;
TCNT1L = 0x00; //清除T1
TCCR1B = 0x06;
timercount=20;
}
TCNT0 = 76; //重裝T0
}

而下面這段程序是主程序消息循環(huán)中一部分,對T0發(fā)送的消息進(jìn)行檢查,如果沒(méi)有消息產(chǎn)生則跳過(guò)數據處理部分:

if (flag==1)//檢查是否有消息產(chǎn)生
{
hextobcd(count);//16位二進(jìn)制數轉換成BCD碼數
if (count>1134) //當轉速超過(guò)1134轉/分時(shí),輸出報警信號
{
asm("cbi 0x12,4");
}
else
{
asm ("sbi 0x12,4");
}
flag=0; //清除消息
}

4 總結比較

我們這個(gè)系列的轉速表是在上一代轉速表(采用AT89C2051單片機)的基礎上改造過(guò)來(lái)的,經(jīng)過(guò)比較我們認為AVR單片機有以下優(yōu)點(diǎn):

(1)AVR是一種功能強大、集成度較高的新型單片機。譬如在這個(gè)例子中,一片AT90S2313代替了AT89C2051、AT24C01(EEPROM)和外置WatchDog三片集成電路,從而大大地簡(jiǎn)化了裝配工藝和流程。由于A(yíng)T90S2313與AT89C2051單片機的管腳基本兼容,最終我們把前者做成為后者的增強型,在同一個(gè)轉速表上可以做成兩個(gè)版本的產(chǎn)品。

(2)AVR支持在線(xiàn)編程(ISP下載),對芯片的編程可以放在整機裝配完成后進(jìn)行。這樣不僅節省了購買(mǎi)萬(wàn)用編程器的費用,而且為現場(chǎng)調試及以后的軟件升級帶來(lái)了極大的便利。

(3)AVR的運行速度快、處理能力強。在這個(gè)例子中,中斷服務(wù)程序執行時(shí)間更短了,中斷的實(shí)時(shí)性提高了,對時(shí)間累計的累積誤差也變小了。

(4)AVR對采用C語(yǔ)言編程提供了較好的支持。當我們將原來(lái)用KEIL51寫(xiě)的程序轉換成AVR的C程序時(shí),只需要修改有關(guān)硬件操作部分和KEIL51中bit及sbit類(lèi)型的數據操作,其余均不需修改。

另外,在單片機的編程中引入消息的概念,一方面提高了中斷處理的實(shí)時(shí)性,另一方面也解決了中斷服務(wù)程序中代碼重入的問(wèn)題。



參考文獻:

1 宋建國.AVR單片機原理及其應用.北京:北京航空航天大學(xué)出版社,1998
2 耿德根.AVR高速單片機原理與應用,2001
3 ATMEL.ATMEL數據光盤(pán),1999
4 Mickey Williams . Visual C++5自學(xué)通.北京.機械工業(yè)出版社,1998

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>