中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)在柴油機(jī)轉(zhuǎn)速測量中的應(yīng)用

        AVR單片機(jī)在柴油機(jī)轉(zhuǎn)速測量中的應(yīng)用

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


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

        本文引用地址:http://www.antipu.com.cn/article/255677.htm

        關(guān)鍵詞:單片機(jī) 轉(zhuǎn)速測量 柴油機(jī) 消息

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

        1 測量原理

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

        2 線路設(shè)計(jì)
        智能轉(zhuǎn)速表的框圖如圖1所示

        AVR單片機(jī)在柴油機(jī)轉(zhuǎn)速測量中的應(yīng)用

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

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


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

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

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

        4 總結(jié)比較

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

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

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

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

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

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



        參考文獻(xiàn):

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

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉