顯示氣壓、沖擊頻率和耗氣量數(shù)顯表_第1頁
顯示氣壓、沖擊頻率和耗氣量數(shù)顯表_第2頁
顯示氣壓、沖擊頻率和耗氣量數(shù)顯表_第3頁
顯示氣壓、沖擊頻率和耗氣量數(shù)顯表_第4頁
顯示氣壓、沖擊頻率和耗氣量數(shù)顯表_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、引言本畢業(yè)設(shè)計(jì)的設(shè)計(jì)任務(wù)為一個(gè)多功能數(shù)顯表。該數(shù)顯表可以測量和顯示氣壓、沖擊頻率和耗氣量。并且具有rs232接口和時(shí)間顯示。本畢業(yè)設(shè)計(jì)作品選用ak-4氣壓傳感器和lwgy渦輪流量傳感器,通過mcs-51單片機(jī)來控制操作,實(shí)現(xiàn)信號數(shù)據(jù)的采集、處理和發(fā)送。本畢業(yè)設(shè)計(jì)作品不僅可以將氣壓、沖擊頻率、耗氣量及時(shí)間等數(shù)據(jù)顯示在8個(gè)led數(shù)碼管上,還會(huì)通過rs232串口,將數(shù)據(jù)發(fā)送到pc上。并由pc上的配套程序,將信息數(shù)據(jù)顯示在顯示器上,這兩部分所顯示的數(shù)據(jù)是完全相同的。其中數(shù)字顯示時(shí)間單位為秒,沖擊頻率的單位為bmp,耗氣量的單位為立方米/小時(shí)。同時(shí),系統(tǒng)會(huì)自動(dòng)計(jì)時(shí),開始運(yùn)行3分鐘之后,自動(dòng)結(jié)束測量、顯示

2、,并保存信息數(shù)據(jù)。下面就將對本畢業(yè)設(shè)計(jì)作品進(jìn)行詳細(xì)的介紹。1. 設(shè)計(jì)任務(wù)1.1 任務(wù)說明本畢業(yè)設(shè)計(jì)的課題為多功能數(shù)顯表。設(shè)計(jì)的主要任務(wù)為設(shè)計(jì)一個(gè)多功能數(shù)顯表,該數(shù)顯表可以測量和顯示氣壓、沖擊頻率和耗氣量。而且還要有rs232接口和時(shí)間顯示。對于本次畢業(yè)設(shè)計(jì)的任務(wù)還有以下的要求。首先,要采用ak-4氣壓傳感器和lwgy渦輪流量傳感器來采集信息數(shù)據(jù)。其次,要采用mcs51單片機(jī)來完成系統(tǒng)的控制,要求制作單片機(jī)控制系統(tǒng)、驅(qū)動(dòng)電路、a/d轉(zhuǎn)換、顯示電路以及測量電路。再次,系統(tǒng)的電源要求采用220v供電。然后,還要求在測量開始時(shí),開始計(jì)時(shí),3分鐘后自動(dòng)結(jié)束測量并保存數(shù)據(jù)。而且,rs232的波特率為480

3、0。最后,規(guī)定了數(shù)字顯示數(shù)據(jù)的內(nèi)容和單位:時(shí)間(秒)、沖擊頻率(bmp)、耗氣量(立方米/小時(shí))。1.2 任務(wù)分析根據(jù)本次畢業(yè)設(shè)計(jì)的課題和設(shè)計(jì)的主要任務(wù),我們可以知道,要設(shè)計(jì)的系統(tǒng)的主要功能就是對氣壓、沖擊頻率和耗氣量的測量和顯示。要完成對氣壓、沖擊頻率和耗氣量的測量,就必須要用到傳感器。根據(jù)設(shè)計(jì)任務(wù)的具體要求,就可以知道:ak-4氣壓傳感器很明顯是用來測量氣體氣壓的傳感器,它的輸出信號就是數(shù)顯表要顯示的沖擊頻率和氣壓數(shù)據(jù)的信息來源;lwgy渦輪流量傳感器則應(yīng)該是數(shù)顯表顯示的耗氣量數(shù)據(jù)的信息來源。但在這其中需要要注意的問題就是,兩個(gè)傳感器的輸出信號的類型不一定能夠直接傳送到mcs-51單片機(jī)去

4、處理。那么,就要弄清楚各自的輸出信號的類型,然后分別設(shè)計(jì)出信號的處理電路,將它們轉(zhuǎn)換成mcs-51單片機(jī)可以接受的信號。否則,mcs-51單片機(jī)可能根本接收不到數(shù)據(jù),或接收到的數(shù)據(jù)中的信息并不是我們所需要的。還有一個(gè)主要功能就是對氣壓、沖擊頻率和耗氣量的顯示功能。數(shù)據(jù)的顯示部分,我們只需要擴(kuò)展出幾個(gè)led數(shù)碼管,就可以將數(shù)據(jù)信息很好的顯示出來。要實(shí)現(xiàn)這個(gè)功能,首先,就要有驅(qū)動(dòng)電路來驅(qū)動(dòng)led數(shù)碼管,讓led數(shù)碼管有顯示數(shù)據(jù)的必要條件;其次,還要有需要顯示的信息數(shù)據(jù),這些數(shù)據(jù)就要來源于mcs-51單片機(jī),mcs-51單片機(jī)提供這些信息數(shù)據(jù)之前,要對傳感器傳輸過來的信息做好轉(zhuǎn)換處理,來保證信息的準(zhǔn)

5、確性和可靠性。這個(gè)部分需要注意的問題是,系統(tǒng)要擴(kuò)展出多個(gè)led數(shù)碼管,要處理好信息傳輸?shù)臅r(shí)序,以保證led數(shù)碼管得到的數(shù)據(jù)信息,與我們想要它們顯示的信息是一致的。這就需要有mcs-51單片機(jī)要發(fā)出一個(gè)選定使能信號,每次只有一個(gè)led數(shù)碼管是接收和顯示數(shù)據(jù)年的。mcs-51單片機(jī)循環(huán)選定一遍所有l(wèi)ed數(shù)碼管,就可以很好的完成一次完整的數(shù)據(jù)顯示過程。但是,這個(gè)過程的處理時(shí)間是很快的,很難讓人眼的視覺有滯留的感覺。所以,要讓led數(shù)碼管有滿意的顯示效果,就必須加上數(shù)據(jù)的鎖存,讓led數(shù)碼管得到數(shù)據(jù)信息后可以一直顯示收到的信息,直到下一次數(shù)據(jù)傳輸過來的時(shí)候,數(shù)據(jù)就會(huì)被刷新,這樣就可以很好的實(shí)現(xiàn)這個(gè)功能

6、了。而至于時(shí)間的顯示,我們可以通過mcs-51單片機(jī)的計(jì)時(shí)器功能來實(shí)現(xiàn)。系統(tǒng)還有一個(gè)功能就是要有rs232串行通訊接口連接到pc。mcs-51單片機(jī)本身就有串行通訊的功能,也有專用的串行通訊的引腳和串行通訊控制器。所以,在完成這部分功能方面,mcs-51單片機(jī)自己就可以完全勝任這個(gè)部分的工作,要實(shí)現(xiàn)這個(gè)功能也就比較容易了。這個(gè)部分需要注意的問題就是,mcs-51單片機(jī)的電平標(biāo)準(zhǔn)和pc的電平標(biāo)準(zhǔn)是不一致的,要進(jìn)行串行通訊的時(shí)候,mcs-51的串行通訊接口和pc串行通訊接口要有電平轉(zhuǎn)換電路來為信息通訊做橋梁,以保證信息傳送的有效性。否則,就會(huì)有部分電路被燒掉的危險(xiǎn),因此要特別注意這個(gè)問題。以上是完

7、成設(shè)計(jì)主要任務(wù)而對要設(shè)計(jì)的系統(tǒng)的硬件電路方面的任務(wù)的分析,此外,系統(tǒng)的軟件方面也是不容忽視的。因?yàn)?,本次要設(shè)計(jì)的系統(tǒng)的功能任務(wù)比較多,所以,mcs-51單片機(jī)的處理任務(wù)也比較繁重,系統(tǒng)軟件的算法也就直接影響到系統(tǒng)運(yùn)行的穩(wěn)定性。系統(tǒng)的軟件算法要充分考慮到任務(wù)性質(zhì)的主次和特點(diǎn),安排好任務(wù)的處理順序和條理。要充分利用好中斷服務(wù)功能,來滿足系統(tǒng)處理要求,來很好的實(shí)現(xiàn)設(shè)計(jì)任務(wù)中所要求的功能和效果。其中需要注意的問題是,當(dāng)算法設(shè)計(jì)中涉及到兩個(gè)或多個(gè)中斷服務(wù)的時(shí)候,一定要根據(jù)中斷程序所服務(wù)的中斷功能,來設(shè)置好中斷的優(yōu)先級。否則,會(huì)帶來系統(tǒng)穩(wěn)定的很大隱患,因此,要特別注意這方面的細(xì)節(jié)問題。綜上所述,本次畢業(yè)設(shè)

8、計(jì)的任務(wù)的特點(diǎn)為系統(tǒng)工作量比較大,但任務(wù)功能的實(shí)現(xiàn)方面沒有難度性很高的功能。但是,要想設(shè)計(jì)出來的系統(tǒng)可以穩(wěn)定、可靠得實(shí)現(xiàn)出設(shè)計(jì)任務(wù)要求的任務(wù),有很多的細(xì)節(jié)問題是需要特別注意的。以上分析中的需要注意的問題都進(jìn)行功能設(shè)計(jì)中的重要細(xì)節(jié)部分,在設(shè)計(jì)時(shí),要給予充分的考慮和周密的設(shè)計(jì)。根據(jù)以上的詳細(xì)分析,下面就對我設(shè)計(jì)出來的方案做詳細(xì)的介紹。2. 總體設(shè)計(jì)根據(jù)任務(wù)要求所要實(shí)現(xiàn)的功能,我設(shè)計(jì)出了兩種方案來實(shí)現(xiàn)。這兩個(gè)方案都可以很好的實(shí)現(xiàn)系統(tǒng)所要求的功能,不過是通過不同的途徑來完成的。本部分就將對這兩個(gè)方案作總體上的介紹和分析,后面將通過對兩個(gè)方案的比較,選出最適合本系統(tǒng)的方案,并最終選定為本畢業(yè)設(shè)計(jì)作品要使

9、用的方案。2.1 總體設(shè)計(jì)方案一此設(shè)計(jì)方案的系統(tǒng)方框圖如下圖所示。 方案一的系統(tǒng)原理框圖方案一的單片機(jī)時(shí)鐘信號是由外部的振蕩電路提供,通過x1,x2引腳輸入。石英晶體選用12m的,電容選用30f的。復(fù)位電路采用上電復(fù)位方式。單片機(jī)的p0口用來作讀取a/d轉(zhuǎn)換的結(jié)果和發(fā)送adc0809通道選擇地址數(shù)據(jù)。單片機(jī)的p1口用來發(fā)送led數(shù)碼管顯示內(nèi)容的數(shù)據(jù)總線。單片機(jī)的p2口的第三位用來提供led數(shù)碼管讀取總線數(shù)據(jù)的片選信號。系統(tǒng)共用到9個(gè)數(shù)碼管,這三條線通過3線8線譯碼器來實(shí)現(xiàn)對數(shù)碼管的片選,最后一個(gè)就用p2.5來提供片選。而p2.7、ale、rd和wr引腳就用來對adc0809提供控制信息,來控制

10、a/d轉(zhuǎn)換過程。int1外部中斷腳被用來接收傳感器lwgy輸出的信號數(shù)據(jù)。最后,txd和rxd根據(jù)引腳的特殊功能,被用來做與pc做串口通信,完成與pc的數(shù)據(jù)傳輸功能。方案一的a/d轉(zhuǎn)換部分的功能主要由adc0809來實(shí)現(xiàn)。方案一中,adc0809只需要負(fù)責(zé)傳感器ak-4輸出的信號數(shù)據(jù)做模數(shù)轉(zhuǎn)換。單片機(jī)發(fā)出啟動(dòng)轉(zhuǎn)換控制信號后,adc0809開始做模數(shù)轉(zhuǎn)換。單片機(jī)通過軟件延時(shí)來完成對轉(zhuǎn)換數(shù)據(jù)的讀取。方案一的傳感器輸出信號處理部分由兩個(gè)傳感器各自的信號處理電路組成。其中,兩個(gè)方案對ak-4傳感器輸出信號的處理原理是一樣的,而且都要處理出兩個(gè)信號的參數(shù)。這也是由它的輸出信號特性決定的,可以通過很簡單的

11、處理,就可以滿足adc0809對輸入信號的要求,再處理出信號的波動(dòng)脈沖,傳輸?shù)絤cs-51單片機(jī)轉(zhuǎn)換成沖擊頻率。不同的是對傳感器lwgy輸出信號處理的方法。在本延時(shí)式方案里,只是將電流脈沖信號簡單的處理成電壓脈沖信號。然后,將頻率信號接入單片機(jī)的外部中斷口,讓單片機(jī)來掃描其頻率。以完成對耗氣量的測定。方案一的led數(shù)碼管顯示部分采用的是最常用的方式來實(shí)現(xiàn)的。用p1口發(fā)送顯示數(shù)據(jù),p2口的低三位來發(fā)送片選信息。將8個(gè)數(shù)碼管掃描一次,就完成了一次數(shù)據(jù)的顯示。方案一的pc串行通訊接口部分,采用了兩個(gè)電平轉(zhuǎn)換的芯片。這兩個(gè)芯片分別為mc1488和mc1489,它們都是串口電路電平轉(zhuǎn)換的常用芯片??梢员?/p>

12、證功能的可靠實(shí)現(xiàn)。2.2 總體設(shè)計(jì)方案二此設(shè)計(jì)方案的系統(tǒng)方框圖如下圖所示。方案二的系統(tǒng)原理方框圖中斷式方案的單片機(jī)時(shí)鐘信號也是由外部的振蕩電路提供,通過x1,x2引腳輸入。石英晶體選用12m的,電容選用30f的。但復(fù)位電路選用按鍵式復(fù)位電路。單片機(jī)的p0口用來作讀取a/d轉(zhuǎn)換的結(jié)果和發(fā)送adc0809通道選擇地址數(shù)據(jù)。單片機(jī)的p1口用來發(fā)送led數(shù)碼管顯示內(nèi)容的數(shù)據(jù)總線和提供led數(shù)碼管讀取總線數(shù)據(jù)的片選信號。系統(tǒng)共用到9個(gè)數(shù)碼管,這三條線通過3線8線譯碼器來實(shí)現(xiàn)對數(shù)碼管的片選,最后一個(gè)也是用p2.5來做片選。而p2.7、ale、rd和wr引腳就用來對adc0809提供控制信息,來控制a/d轉(zhuǎn)

13、換過程。int1外部中斷腳被用來接收a/d轉(zhuǎn)換結(jié)束信號。最后,txd和rxd根據(jù)引腳的特殊功能,被用來做與pc做串口通信,完成與pc的數(shù)據(jù)傳輸功能。中斷式方案的的a/d轉(zhuǎn)換部分的功能也主要由adc0809來實(shí)現(xiàn)。中斷式方案中,adc0809則需要負(fù)責(zé)傳感器ak-4和傳感器lwgy兩個(gè)傳感器輸出的信號數(shù)據(jù)做模數(shù)轉(zhuǎn)換。單片機(jī)發(fā)出啟動(dòng)轉(zhuǎn)換控制信號后,adc0809開始做模數(shù)轉(zhuǎn)換。單片機(jī)通過外部中斷方式來完成對轉(zhuǎn)換數(shù)據(jù)的讀取。中斷式方案的傳感器輸出信號處理部分也由兩個(gè)傳感器各自的信號處理電路組成。對ak-4傳感器輸出信號處理方法與方案一類似,但由于其信號線性極好,只需要將其轉(zhuǎn)換成電壓信號,就可以得到氣

14、壓信號;本方案加入了對轉(zhuǎn)換出來的脈沖信號的整流。在本中斷式方案里,在得到?jīng)_擊頻率信號方面,只對傳感器lwgy輸出信號進(jìn)行電平轉(zhuǎn)換的處理方法,就得到了電壓的脈沖信號,再傳輸?shù)絤cs-51中處理,就可以得到耗氣量的參數(shù)信息了。中斷式方案的led數(shù)碼管顯示部分采用的是一個(gè)功能比較強(qiáng)大的芯片4511。它可以將bcd碼直接轉(zhuǎn)換成led數(shù)碼管的驅(qū)動(dòng)信號,并將信號鎖存?zhèn)鬏斀oled數(shù)碼管,給系統(tǒng)帶來極大的方便。因此,只需要p1口的低四位就可以完成顯示信息的數(shù)據(jù)傳輸。剩下的高四位剛好可以通過3線8線譯碼器完成片選信號的控制。從而只用一個(gè)p1口就完成了led數(shù)碼管部分功能的實(shí)現(xiàn)。中斷式方案的pc串行通訊接口部分,

15、采用了比較常用的max232。它也是專用的rs232接口的電平轉(zhuǎn)換電路。完全可以勝任本系統(tǒng)的串口電平轉(zhuǎn)換功能的實(shí)現(xiàn)。2.3 總體設(shè)計(jì)方案的比較從以上的介紹中,我們可以看到,這兩種設(shè)計(jì)方案的主要卻別有兩個(gè)地方。第一個(gè)就是lwgy傳感器輸出信號的處理方法。方案一的處理方法處理后可以直接作為數(shù)據(jù)信息傳輸給mcs-51單片機(jī)處理,方案二的處理方法處理后則可以傳輸給adc0809做a/d轉(zhuǎn)換,然后再傳輸給mcs-51單片機(jī)處理。第二各就是對led數(shù)碼管的驅(qū)動(dòng)方式。方案一是mcs-51單片機(jī)輸出led數(shù)碼管的驅(qū)動(dòng)信號,通過數(shù)據(jù)鎖存來完成數(shù)字的顯示,而方案二則是mcs-51單片機(jī)輸出數(shù)據(jù)信息,經(jīng)過譯碼和鎖存

16、的專用芯片來驅(qū)動(dòng)led數(shù)碼管,來完成數(shù)字顯示功能。除了這兩個(gè)主要的不同之處之外,在其他部分的功能實(shí)現(xiàn)上也略有不同。其中包括mcs-51單片機(jī)的復(fù)位電路,串行通訊端口的電平轉(zhuǎn)換,mcs-51單片機(jī)的i/o資源分配等等。下面我就這些具體電路的細(xì)節(jié)方面做詳細(xì)的介紹和比較,以分析出哪個(gè)方案更適合這個(gè)系統(tǒng),從而選定為最終的設(shè)計(jì)方案。3. 方案的具體設(shè)計(jì)和比較從以上方案的總體設(shè)計(jì)的介紹,我們可以了解到,這兩個(gè)硬件電路方面的設(shè)計(jì)方案的都是主要由單片機(jī)、a/d轉(zhuǎn)換、led數(shù)碼管顯示、傳感器的信號處理和與pc通信的rs232串口連接等部分組成。要想系統(tǒng)能夠真正的運(yùn)行起來,協(xié)調(diào)各部分功能電路的軟件也是必不可少的。

17、下面就從這些方面對這兩個(gè)方案進(jìn)行詳細(xì)的說明、分析和比較。3.1硬件方案的具體設(shè)計(jì)和比較按照上述的總體設(shè)計(jì)方案,本人設(shè)計(jì)出了兩個(gè)完整的具體硬件電路原理圖。方案一的硬件電路原理圖如附圖1所示。方案二的電路原理圖如附圖2所示。兩個(gè)設(shè)計(jì)方案都有各自的特色,下面就詳細(xì)的介紹它們各個(gè)功能電路部分的特色所在。3.1.1晶振電路的設(shè)計(jì)設(shè)計(jì)原理8051片內(nèi)有一由高增益反相放大器構(gòu)成的振蕩器。反相放大器的輸入端為xtall,輸出端為xtal2,兩端躊接石英晶體及兩個(gè)電容形成穩(wěn)定的自激振蕩器。電容通常取30pf左右。振蕩頻率范圍是1212mhz,如下圖(左)所示。晶體振蕩器的振蕩信號從xtal2端輸出到片內(nèi)的時(shí)鐘發(fā)

18、生器上。時(shí)鐘發(fā)生器為二分頻器向cpu提供兩相時(shí)鐘信號p1和p2。時(shí)鐘信號納周期稱作饑器狀態(tài)時(shí)間s是振蕩周期的2倍。每個(gè)時(shí)鐘周期有兩個(gè)節(jié)拍(相)p1和p2,cpu就以兩相時(shí)鐘p1和p 2為基本節(jié)拍指揮805l單片饑各部件協(xié)調(diào)工作。下圖(右)給出片內(nèi)時(shí)鐘發(fā)生原理。具體電路設(shè)計(jì)這部分在兩個(gè)方案中是相同的,電路圖如下圖所示。 系統(tǒng)方案的時(shí)鐘發(fā)生部分電路圖在本設(shè)計(jì)中,考慮到由于adc0809片內(nèi)無時(shí)鐘,可利用8031單片機(jī)提供的地址鎖存允許信號 ale經(jīng)d觸發(fā)器二分頻后獲得,ale腳的頻率時(shí)單片機(jī)時(shí)鐘頻率的1/6(但要注意的是,每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),將少一個(gè)ale脈沖)。如果單片機(jī)時(shí)鐘頻率采用6mh

19、z,則ale腳的輸出頻率為1mhz,再二分頻后為500khz,恰好符合adc0809對時(shí)鐘頻率的要求。因此,晶體振蕩器選擇12m的,而自激振蕩電路中的電容就取30pf。3.1.2按鍵復(fù)位電路的設(shè)計(jì)設(shè)計(jì)原理單片機(jī)復(fù)位是使cpu和系統(tǒng)中的其他功能部件都處立個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作,例如復(fù)位后pc0000h,使單片機(jī)從第個(gè)單元取指令。大論是在單片機(jī)剛開的接廣電源時(shí),還是斷電后或者發(fā)生故障后都要復(fù)位,所以我們必須弄清楚mgs51型單片機(jī)復(fù)位的條件、復(fù)體電路和復(fù)位后狀態(tài)。 單片機(jī)復(fù)位的條件是:必須使rsw陽或rst引腳(9)加上持續(xù)兩個(gè)機(jī)器周期(即24個(gè)振蕩周期)的高電平。例如,若時(shí)鐘頻率

20、為12mhz,每機(jī)器周期為1s,則只需2s以上時(shí)間的高點(diǎn)平,在rst引腳出現(xiàn)高電平后的第二個(gè)機(jī)器周期執(zhí)行復(fù)位。單片機(jī)常見的復(fù)位電路如下圖 (a),(b)所示。 下圖中 (a)圖為上電復(fù)位點(diǎn)路,它足利用電容充電來實(shí)現(xiàn)的。在接電瞬間,reset端的電位與vcc相同,隨著充電電流的減少,reset的電位逐漸下降。只要保證reset為高電平的時(shí)間大于兩個(gè)機(jī)器周期,使能正常復(fù)位。下圖中 (b)圖為按鍵復(fù)位電路。該電路除具有上電復(fù)位功能外,若要復(fù)位,只需按圖 (b)中的reset鍵,此時(shí)電源vcc經(jīng)電阻r1、r2分壓,在reset端產(chǎn)生一個(gè)復(fù)位高電平。具體電路設(shè)計(jì)的分析和比較方案一此方案中采用上電復(fù)位電路

21、。電路如下圖所示。上電復(fù)位電路圖上電式復(fù)位電路的特點(diǎn)是很方便,當(dāng)有電源接通給單片機(jī)時(shí),此電路就可以自動(dòng)產(chǎn)生復(fù)位信號。它足利用電容充電來實(shí)現(xiàn)的。在接電瞬間,reset端的電位與vcc相同,隨著充電電流的減少,reset的電位逐漸下降。只要保證reset為高電平的時(shí)間大于兩個(gè)機(jī)器周期,使能正常復(fù)位。方案二此方案中采用了按鍵式的復(fù)位電路,如下圖所示。 按鍵復(fù)位電路圖這種復(fù)位電路的特點(diǎn)就是上電以后,可以隨時(shí)通過按鍵來發(fā)出復(fù)位信號。該電路除具有上電復(fù)位功能外,若要復(fù)位,只需按圖中的reset鍵,此時(shí)電源vcc經(jīng)電阻r1、r2分壓,在reset端產(chǎn)生一個(gè)復(fù)位高電平。這對系統(tǒng)的可控性是很有幫助的。方案比較前

22、面已經(jīng)介紹了復(fù)位電路的兩種形式,其實(shí)對系統(tǒng)而言并沒有什么大的區(qū)別,但考慮到系統(tǒng)調(diào)試時(shí)的方便,本系統(tǒng)采用了按鍵復(fù)位方式。當(dāng)調(diào)試不成功時(shí),經(jīng)過調(diào)整后,只需單片機(jī)復(fù)位即可進(jìn)行下一次的調(diào)試。這也降低了其他硬件由于電源供電問題,而導(dǎo)致的調(diào)試不成功。所以,最終選定按鍵復(fù)位電路為單片機(jī)部分的復(fù)位電路。3.1.3傳感器輸出信號處理電路的設(shè)計(jì)在進(jìn)行設(shè)計(jì)之前,我們必須弄清楚所選用的傳感器的工作原理和輸出信號的特點(diǎn)。這樣,才能知道如何讓mcs-51單片機(jī)處理所收到的信息數(shù)據(jù),才能有的放矢的將傳感器輸出的信號轉(zhuǎn)換成下一部分的處理電路所能接收的數(shù)據(jù)信息。3.1.3.1 lwgy型渦輪流量傳感器的信號處理電路1 設(shè)計(jì)原理

23、lwgy型渦輪流量傳感器(以下簡稱傳感器)與顯示儀表配套組成渦輪流量計(jì)??蓽y量液體的瞬時(shí)流量和累計(jì)體積總量,也可以對液體實(shí)現(xiàn)定量控制。傳感器具有精度高、壽命長、操作維護(hù)簡單等特點(diǎn),廣泛用于工廠、油田、化工、冶金、造紙等行業(yè),是流量計(jì)量和節(jié)能的理想儀表。lwgy型渦輪流量傳感器的工作原理為,被測液體流經(jīng)傳感器時(shí),傳感器內(nèi)葉輪借助于液體的動(dòng)能而旋轉(zhuǎn)。此時(shí)葉輪葉片使檢出裝置中的磁路磁阻發(fā)生周期性變化,因而在檢出線圈兩端就感應(yīng)出與流量成正比的電脈沖信號,經(jīng)前置放大器放大后送至顯示儀表。在測量范圍內(nèi),傳感器的流量脈沖頻率與體積流量成正比,這個(gè)比值即為儀表系數(shù),用k表示,k = f/q 或 k = n/v

24、式中:f流量信號頻率(hz)q體積流量(m3/h或l/h)n脈沖數(shù)v體積總量(m3或l)每臺(tái)傳感器的儀表系數(shù)由制造廠填寫在檢定證書中。k值設(shè)入配套的顯示儀表中,便可顯示出瞬時(shí)流量和體積總量。技術(shù)指標(biāo): 介質(zhì)溫度:-20+120;-20+200(定做); 環(huán)境溫度:-20+50; 傳輸距離:傳感器至顯示儀表的距離可達(dá)500m; 防爆等級:dct4。具體電路設(shè)計(jì)的分析和比較系統(tǒng)選用的lwgy渦輪流量傳感器,輸出信號為頻率型的電流信號,這部分電路是用來處理傳感器lwgy所輸出的信號數(shù)據(jù)的。但是,a/d0809在轉(zhuǎn)換時(shí),所能接收的輸入信號為幅值型的電壓信號,所以在把傳感器的信號拿去處理之前,必須將它轉(zhuǎn)

25、換成a/d轉(zhuǎn)換器所要求的信號類型。系統(tǒng)設(shè)計(jì)時(shí),在這一部分加入了一個(gè)頻率電壓變換電路。方案一此方案的電路原理圖如下圖所示。 lwgy傳感器輸出信號處理方案一電路圖這種處理方案的原理就是,將傳感器原有輸出的電流頻率信號轉(zhuǎn)換成電壓頻率信號。但此時(shí)的電壓幅值還很小,不容易被感知。所以,要通過一個(gè)運(yùn)算放大器來將電壓幅值變大到足以做驅(qū)動(dòng)信號。電路的輸出端直接于單片機(jī)的外部中斷輸入腳int1。電路的輸出信號就可以申請到中斷,中斷服務(wù)程序就可以來完成對中斷次數(shù)的累加。每過一定的時(shí)間來讀取次數(shù)累加結(jié)果,并將累加器清零,就可以換算出信號的頻率大小了。方案二此方案的電路原理圖如下圖所示。 lwgy傳感器輸出信號處理

26、方案二電路圖此處理方案是根據(jù)lwgy傳感器的輸出信號的特點(diǎn)而設(shè)計(jì)的。lwgy傳感器的輸出信號的電平很低,因此其信號本身不能足以驅(qū)動(dòng)mcs-51單片機(jī)工作。因此,我們只需要將電平轉(zhuǎn)換為ttl電平,就可以用mcs-51單片機(jī)來數(shù)脈沖的方式,計(jì)算出脈沖信號的頻率,從而得到數(shù)顯表所需要的耗氣量顯示數(shù)據(jù)。但是,為了得到更好的效果和可靠性,我還將電平轉(zhuǎn)換后的脈沖進(jìn)行整形,然后再傳輸給單片機(jī)。但是,本處理方案中用了三個(gè)整形電路來整形是因?yàn)椋?4hc14中集成了6個(gè)整形單元,此電路和ak-4傳感器的處理電路中各用了三個(gè)。這樣不僅可以保證得到好的效果,還充分利用了硬件資源。方案比較通過以上兩種方案的比較,可以很

27、明顯看到,方案二的設(shè)計(jì)更好一些。因?yàn)樗浅浞掷昧怂幚淼男盘柕奶匦裕唵畏奖愕牡玫搅宋覀兯枰男盘?。這不僅可以節(jié)省硬件資源,還使運(yùn)行的可靠性有所提高。因此,我選用方案二來作為系統(tǒng)的最終解決方案。3.1.3.2 ak-4氣壓傳感器的信號處理電路設(shè)計(jì)原理ak-4型壓力傳感器主要用途:它適用于各種動(dòng)靜態(tài),氣、液體介質(zhì)的壓力測量、控制ak-4型壓力傳感器特點(diǎn):具有零點(diǎn)、靈敏度調(diào)整功能,標(biāo)準(zhǔn)電壓、電流信號輸出精度高,性能穩(wěn)定可靠,結(jié)構(gòu)緊湊、安裝使用方便根據(jù)用戶要求可提供各種螺紋接口ak-4a:普通型鋁外殼 ak-4b:不銹鋼外殼 ak-4c:密封型,全o圈密封,隔潮;全不銹鋼結(jié)構(gòu),防腐ak-4f:

28、數(shù)顯壓力變送器,3 1/2數(shù)碼顯示,直接顯示壓力數(shù)值,并具有變送功能ak-4型壓力傳感器的主要技術(shù)指標(biāo):技術(shù)指標(biāo)技術(shù)參數(shù)單位量程 0-0.1,0.2,0.5,1,2,5,10,15,20,25,30,40,50,60,100mpa輸出信號0-5,1-5v4-20,0-10ma精度0.20.30.5%fs非線性0.20.30.5%fs遲滯0.20.30.5%fs重復(fù)性0.20.30.5%fs供橋電壓±6,12,24vdc絕緣電阻100m工作溫度-10至+50零點(diǎn)偏移0.20.30.5%fs/4h熱零點(diǎn)偏移0.20.30.5%fs/10熱靈敏度偏移0.20.30.5%fs/10允許過負(fù)荷

29、120%fs接線方式插座:1、電源(+);2、輸出(+)3、輸出(-);4電源(-)。導(dǎo)線連接方式見合格證書具體電路的設(shè)計(jì)這個(gè)部分為一個(gè)電流電壓變換器是兩個(gè)方案中相同的部分。與前一個(gè)信號處理電路相同的道理,ak-4氣壓傳感器的輸出信號為幅值型的電流信號,也不是a/d轉(zhuǎn)換器所需要的形式。因此,在a/d轉(zhuǎn)換之前,也要把傳感器的信號進(jìn)行一下處理。 方案一的設(shè)計(jì)方案一的具體設(shè)計(jì)為一個(gè)精確度很高的電流電壓轉(zhuǎn)換器,如下圖所示: 電流電壓變換器上圖所示的電流電壓變換器,采用高輸入阻抗的運(yùn)放,對于微電流有較高的靈敏度,它只需10ma電流就能得到5v電壓輸出。圖中,輸入極ch3130本身輸入阻抗極高,加上因同相

30、輸入端和反相輸入端均處于零電位,進(jìn)一步見效了漏電流。如果對輸入端接線工藝處理得好,其漏電流可以小于1pa。第二極ch3134接成100倍反相放大器。根據(jù)輸入電流的極性,一方面產(chǎn)生反相的電壓輸出,一方面提供負(fù)反饋,保證有穩(wěn)定的變換系數(shù)。本畢業(yè)設(shè)計(jì)所選用的ak-4氣壓傳感器的輸出信號為420ma的電流幅值信號。因此,為了滿足adc0809的輸入信號要求,只需將信號轉(zhuǎn)換成電壓信號后,再放大250倍左右即可。所以,得出的各個(gè)元件的參數(shù)如上圖所示。 案二的具體設(shè)計(jì)方案二的設(shè)計(jì)方案如下圖所示: 方案二電路原理圖根據(jù)ak-4氣壓傳感器的輸出信號為010ma的電流,那么,將它的輸出端并接在一個(gè)500歐姆的電阻

31、上,就可以得到05v的電壓信號了。由于ak-4氣壓傳感器的輸出線性很好,所以這樣得到的電壓信號完全可以很好的傳遞傳感器得到的信息。這個(gè)電壓信號經(jīng)過采樣電壓跟隨器,被傳送到一個(gè)rc濾波網(wǎng)絡(luò),最后得到一個(gè)穩(wěn)定可靠的數(shù)據(jù)信號。它的輸出要傳送到adc0809做a/d轉(zhuǎn)換,來換算成要顯示的氣壓信息。3.1.3.3沖擊頻率信號測量電路設(shè)計(jì)對沖擊頻率數(shù)據(jù)測量電路的設(shè)計(jì)如下圖所示: 沖擊頻率測量電路原理圖在這兩個(gè)方案中,這部分是幾乎一樣的。稍有區(qū)別的地方就是,在方案一中,電流電壓轉(zhuǎn)換器已經(jīng)將信號進(jìn)行了放大處理,因此直接去與比較器連接來得到氣壓的脈動(dòng)信號;在方案二中則是從并有傳感器信號的電阻上進(jìn)行電壓采樣,然后

32、才去跟比較器比較,來得到氣壓的脈動(dòng)信號。但是,方案二最后傳送到單片機(jī)之前,又做了整形,使得信號有更好的有效性。綜合以上的設(shè)計(jì)分析和比較,整體上來說,方案二要較方案一更加系統(tǒng)化,有很好的連貫性,而且硬件的效率比較高,分配比較合理。因此,我選擇了方案二的設(shè)計(jì)方案作為最終的解決方案。3.1.4 a/d轉(zhuǎn)換電路的設(shè)計(jì)從傳感器輸出的信號為模擬信號,mcs-51單片機(jī)并不能處理,所以,在傳送給mcs51單片機(jī)處理之前,必須將它轉(zhuǎn)換成數(shù)字信號。本畢業(yè)設(shè)計(jì)作品選用了常用的adc0809來完成這部分的功能。3.1.4.1 設(shè)計(jì)原理轉(zhuǎn)換器件的引腳及功能adc0809是一種逐次逼近式8路模擬輸入、8位數(shù)字量輸出的a

33、/d轉(zhuǎn)換器。其引腳如下圖所示。由引腳圖可見,adc0809共有28個(gè)引腳,采用雙列直插式封裝。其主要引腳功能如下:in0in7是8路模擬信號輸入端。d0d7是8位數(shù)字量輸出端。a、b、c與ale控制8路模擬通道的切換,a、b、c分別與三根地址線或數(shù)據(jù)線相連,三者編碼對應(yīng)8個(gè)通道地址口。c、b、a000111 分別對應(yīng)in0in7 通道地址。 adc0809的引腳圖強(qiáng)調(diào)說明一點(diǎn):adc0809雖然有8路模擬通道可以同時(shí)輸入8路模擬信號,但每個(gè)瞬間只能轉(zhuǎn)換一路,各路之間的切換由軟件變換通道地址實(shí)現(xiàn)。oe、start、clk為控制信號端,oe為輸出允許端,start為啟動(dòng)信號輸入端,clk為時(shí)鐘信號

34、輸入端。vr(+)和vr(-)為參考電壓輸入端。 adc0809結(jié)構(gòu)及轉(zhuǎn)換原理adc0809的結(jié)構(gòu)框圖如下圖所示。adc0809是采用逐次逼近的方法完成a/d轉(zhuǎn)換的。由單一的+5v電源供電;片內(nèi)帶有鎖存功能的8路選1的模擬開關(guān),由c、b、a的編碼來決定所選的通道。adc0809完成一次轉(zhuǎn)換需100s左右。輸出具有ttl三態(tài)鎖存緩沖器,可直接連到mcs51的數(shù)據(jù)總線上。通過適當(dāng)?shù)耐饨与娐?,adc0809可對05v的模擬信號進(jìn)行轉(zhuǎn)換。adc0809工作過程如下:首先用指令選擇adc0809的一個(gè)模擬輸入通道,當(dāng)執(zhí)行movx dptr , a 時(shí),產(chǎn)生一個(gè)啟動(dòng)信號給start 引腳送入脈沖,開始對選

35、中通道轉(zhuǎn)換。當(dāng)轉(zhuǎn)換結(jié)束后發(fā)出結(jié)束信號,置eoc腳為高電平,則可以讀出轉(zhuǎn)換的數(shù)字量。利用movx a , dptr 把該通道轉(zhuǎn)換結(jié)果讀到 a 累加器中。 adc0809 的結(jié)構(gòu)圖mcs一5l的中斷系統(tǒng)中斷系統(tǒng)在計(jì)算機(jī)中起相當(dāng)重要作用,一個(gè)中斷功能很強(qiáng)的計(jì)算機(jī),特大大提高處理外界事件的能力。mcs一51單片機(jī)的中斷系統(tǒng)有五個(gè)中斷源,具有兩個(gè)中斷優(yōu)先級,可實(shí)現(xiàn)兩級中斷嵌套。用戶可以用關(guān)中斷指令屏蔽所有的中斷請求,也可用開中斷指令使cpu接收中斷申請,用戶也可以對每一中斷源用軟件開關(guān)和設(shè)置其級別。下圖給出mcs一51的中斷系統(tǒng)。8051單片機(jī)有五個(gè)中斷源,其中兩個(gè)外中斷源,由int0和int1引腳輸入

36、,三個(gè)內(nèi)部中斷源,分別由定時(shí)器to溢出、定時(shí)器tl溢出和串行口發(fā)送接收請求提供。外中斷源由int0和int1輸入的兩個(gè)外中斷及其觸發(fā)方式欽存在特殊功能寄存器tcon的低四位,其格式:tf1tf0ie1it1ie0it0tcon(88h)ie1(tcon.3):外部中斷int1(p3. 3)申請標(biāo)志位。當(dāng)cpu檢測到int1引腳上出現(xiàn)中斷申請信號,由硬件置iel1,申請中斷。cpu響應(yīng)中斷進(jìn)入中斷服務(wù)程序后,iel被硬件自動(dòng)清o(指脈沖邊沿觸發(fā)方式,電乎申請方式iel不能由硬件清0)。 itl(tcon2):外中斷int1觸發(fā)方式控制位,由軟件置i或清0。itl0時(shí),外中斷為電乎觸發(fā)方式面五輸入

37、低電乎,置位iel,申請中斷。采用電平觸發(fā)方式,外中斷源輸入到頂否必須保持低電平,直到該中斷被cpu響應(yīng)而且在執(zhí)行完中斷服務(wù)程序前,此有效中斷源必須撤消,否則產(chǎn)生下一次中斷。當(dāng)itl1時(shí),外中斷1為邊沿觸發(fā)方式、cpu每個(gè)機(jī)器周期采樣中斷源,當(dāng)相繼的兩次采洋,一次為高電平,一次為低電平,則置iell,表示外中斷1向cpu申請中斷。當(dāng)該中斷被ccpu響應(yīng)后,iel由硬件清0。這種邊沿觸發(fā)方式,要求外中斷源輸入的高和低電平時(shí)間必須保持一個(gè)機(jī)器周期以上。 ie0(tcon1):外中斷0 ( int0 )請求標(biāo)志。ie01,外部中斷0向cpu申請中斷當(dāng)cpu響應(yīng)中斷時(shí),由硬件使ie0復(fù)位(指邊沿觸發(fā)方

38、式)。h0(tcon0):外中斷0 ( int0 )觸發(fā)方式控制位,it00,外中斷0為電平觸發(fā)方式:it01,外中斷0為邊沿觸發(fā)方式。 內(nèi)中斷源 tf0(tcon.5):定時(shí)器t0溢出產(chǎn)斷標(biāo)志垃。當(dāng)to允許計(jì)數(shù)后v從初值開始加1計(jì)數(shù),溢出后置tfo1向cpu申請中斷、直到響應(yīng)中斷后由硬件使tfo0。 t門(tcon7):定時(shí)器t1的溢出中斷標(biāo)志,其功能同tfo。 ri(scono)和ti(scon1):串口中斷申請標(biāo)志。串口的接收中斷ri和發(fā)送中斷ti“邏輯”或以后為內(nèi)部一個(gè)中斷源。串口申請幀,cpu響應(yīng)中斷后,無硬件清戶斷功能,t1和ri必須由軟件清0(中斷服務(wù)程序中必須有清ti和ri指令

39、)。mcs-51 與adc0809 的接口在討論mcs-51與adc0809 的接口設(shè)計(jì)之前,先來討論單片機(jī)如何來控制adc的問題。用單片機(jī)控制adc的時(shí)候,多數(shù)采用查詢和中斷控制兩種方法。查詢法是在單片機(jī)把啟動(dòng)命令送到adc之后,執(zhí)行別的程序,同時(shí)對adc的狀態(tài)進(jìn)行查詢,以檢查adc變換是否已經(jīng)結(jié)束,如查詢到變換已結(jié)束,則讀入轉(zhuǎn)換完畢的數(shù)據(jù)。中斷控制法是在啟動(dòng)信號送到adc之后,單片機(jī)執(zhí)行別的程序。當(dāng)adc變換結(jié)束并向單片機(jī)發(fā)出中斷請求信號時(shí),單片機(jī)相應(yīng)此中斷請求,進(jìn)入中斷服務(wù)程序,讀入轉(zhuǎn)換數(shù)據(jù),并進(jìn)行必要的數(shù)據(jù)處理,然后返回到原程序。這種方法單片機(jī)無需進(jìn)行轉(zhuǎn)換時(shí)間的管理,cpu效率高,所以

40、特別適合于轉(zhuǎn)換時(shí)間較長的adc。如果對轉(zhuǎn)換速度要求高,采用上述兩種adc控制方法往往不能滿足要求,可采用dma(直接存儲(chǔ)器存?。┑姆椒?,這時(shí),可在adc與單片機(jī)之間插入一個(gè)dma接口(例如intel公司的8237dma控制器)。傳輸一開始,ad轉(zhuǎn)換的數(shù)據(jù)就可以從輸出寄存器經(jīng)過dma中的數(shù)據(jù)寄存器直接傳輸?shù)街鞔鎯?chǔ)器,因而不必受程序的限制。 軟件延時(shí)方式adc0809與 8031單片機(jī)的接口如下圖所示。 延時(shí)方式接口圖由于adc0809片內(nèi)無時(shí)鐘,可利用8031單片機(jī)提供的地址鎖存允許信號 ale經(jīng)d觸發(fā)器二分頻后獲得,ale腳的頻率時(shí)單片機(jī)時(shí)鐘頻率的1/6(但要注意的是,每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)

41、,將少一個(gè)ale脈沖)。如果單片機(jī)時(shí)鐘頻率采用6mhz,則ale腳的輸出頻率為1mhz,再二分頻后為500khz,恰好符合adc0809對時(shí)鐘頻率的要求。由于adc0809具有三態(tài)鎖存器,其8位數(shù)據(jù)輸出引腳可直接與數(shù)據(jù)總線相連。地址譯碼腳a、b、c分別與地址總線的低三位a0、a1、a2相連,以宣統(tǒng)in0in7中的一個(gè)通路。將p2.7(地址總線a15)作為片選信號,在啟動(dòng)a/d轉(zhuǎn)換時(shí),由單片機(jī)的寫入信號和p2.7控制adc的地址鎖存和轉(zhuǎn)換啟動(dòng),由于ale和start連在一起,因此adc0809在鎖存通道地址的同時(shí),啟動(dòng)并進(jìn)行轉(zhuǎn)換。在讀取轉(zhuǎn)換結(jié)構(gòu)時(shí),用低電平的讀信號和p2.7腳經(jīng)一級或非門后,產(chǎn)生

42、的正脈沖作為oe信號,用以打開三態(tài)輸出鎖存器。 中斷方式adc0809與8031的中斷方式接口電路只需要將上圖中的adc0809的eoc腳經(jīng)過一個(gè)非門連接到8031的int1腳即可。采用中斷方式可大大節(jié)省cpu的世軍安,當(dāng)轉(zhuǎn)換結(jié)束時(shí),eoc發(fā)出一個(gè)脈沖向單片機(jī)提出中斷請求,單片機(jī)響應(yīng)中斷請求,由外部中斷1的中斷服務(wù)程序讀a/d結(jié)果,并啟動(dòng) adc0809的下一個(gè)轉(zhuǎn)換,外部中斷1采用跳沿觸發(fā)方式。 查詢方式 adc0809有表明轉(zhuǎn)換完成的狀態(tài)信號的eoc端。因此,可以用查詢方式,軟件測試eoc的狀態(tài),即可確知轉(zhuǎn)換是否完成,然后進(jìn)行數(shù)據(jù)傳送。3.1.4.2具體方案設(shè)計(jì)和比較電路連接主要涉及兩個(gè)問題

43、,一是8路模擬信號通道選擇,二是a/d轉(zhuǎn)換完成后轉(zhuǎn)換數(shù)據(jù)的傳送。8路模擬通道選擇a、d、c分別接地址鋇存器提供的低三位地址,只要把三位地址寫入佃09中的地址鎖存器,就實(shí)現(xiàn)了模擬通道選擇。對系統(tǒng)來說,地址鎖存器是一個(gè)輸出口,為了把三位地址寫入,還要提供口地址。本系統(tǒng)使用的是線選法,口地址由p2.7確定,同時(shí)和wr相或取反后作為開始轉(zhuǎn)換的選通信號。因此,若無關(guān)位都取o,則該adc0809的8路通道in0in7通道地址分別為0000h一0007h。從前面的圖中可以看到,把a(bǔ)dc0809的ale信號與start信號連接在一起了,這樣使得在ale信號的前沿寫入地址信號,緊接著在其后沿就啟動(dòng)轉(zhuǎn)換。因此,啟

44、動(dòng)adc0809進(jìn)行轉(zhuǎn)換只需要下面的指令(以通道0為例):mov dptr, #6000h ;選中通道0mov dptr, a ;wr信號有效,啟動(dòng)轉(zhuǎn)換轉(zhuǎn)換后數(shù)據(jù)的傳送 方案一此方案主要采用的是軟件延時(shí)的方法來確定轉(zhuǎn)換過程的完成與否。因?yàn)閍/d轉(zhuǎn)換一次所需要的時(shí)間是一定的,所以只需要通過軟件延時(shí)足夠的時(shí)間就可以確定轉(zhuǎn)換已經(jīng)完成。此時(shí)就可以直接去讀取轉(zhuǎn)換的結(jié)果了。由以上分析可知:在編寫軟件時(shí),應(yīng)令p2.7=a15=0 ; a0、a1、a2給出被選擇的模擬通道的地址;執(zhí)行一條輸出指令,啟動(dòng)a/d轉(zhuǎn)換;執(zhí)行一條輸入指令,讀取轉(zhuǎn)換結(jié)果。譯碼的程序時(shí)采用軟件延時(shí)的方法,分別對8路模擬信號輪流采樣一次,并

45、依次把結(jié)果轉(zhuǎn)儲(chǔ)到數(shù)據(jù)存儲(chǔ)區(qū)的轉(zhuǎn)換程序。main: mov r1 , #data ;置數(shù)據(jù)區(qū)首地址 mov dptr , #7ff8h ;p2.7=0 , 且指向通道0 mov r7 , #08h ;置通道數(shù)loop: mov dptr , a ;啟動(dòng)a/d轉(zhuǎn)換 mov r6 , #0ah ;軟件延時(shí),等待轉(zhuǎn)換結(jié)束dlay: nop nop nop djnz r6 , dlay movx a , dptr ;讀取轉(zhuǎn)換結(jié)果 mov r1 , a ;轉(zhuǎn)存到內(nèi)pram中 inc dptr ;指向下一個(gè)通道 inc r1 ;修改數(shù)據(jù)區(qū)指針 djnz r7 , loop ;8個(gè)通道全采樣完了嗎? 方案二

46、此方案采用的是中斷的方法來完成對轉(zhuǎn)換完成與否的判別的。當(dāng)a/d轉(zhuǎn)換完成的時(shí)候,adc0809會(huì)有一個(gè)完成信號從eoc腳發(fā)出。那么,我們就可以運(yùn)用這個(gè)信號來申請到單片機(jī)的中斷,通過中斷服務(wù)程序來完成對轉(zhuǎn)換結(jié)果的讀取。這種方法的實(shí)現(xiàn)程序如下:int1: setb it1 ;外部中斷1初始化編程 setb ea setb ex1 mov dptr , # 7ff8h ;啟動(dòng)adc0809對in0通道轉(zhuǎn)換 mov a , # 00h movx dptr , a 中斷服務(wù)程序:pint1:mov dptr , #7ff8h ;讀取a/d結(jié)果送緩沖單元30hmovx a , dptrmov 0h , am

47、ov a , #00h ;啟動(dòng)adc0809對in0的轉(zhuǎn)換movx dptr , a reti 方案比較和確定考慮到才本系統(tǒng)中單片機(jī)不只是控制a/d轉(zhuǎn)換和對轉(zhuǎn)換結(jié)果的讀取,還有很多工作要做。那么,方案一這種軟件延時(shí)的方案就太浪費(fèi)單片機(jī)的資源了。于之相比,方案二的中斷方式更加適合本系統(tǒng),因?yàn)樵趩?dòng)a/d轉(zhuǎn)換之后,單片機(jī)可以轉(zhuǎn)去處理其他的事情,而當(dāng)a/d轉(zhuǎn)換完成后,又可以第一時(shí)間將轉(zhuǎn)換結(jié)果讀出來。很明顯,方案二的中斷方式讀取轉(zhuǎn)換結(jié)果更適合本系統(tǒng)。它也是本設(shè)計(jì)作品最終選定的方案。3.1.5 led數(shù)碼管顯示電路的設(shè)計(jì)這部分電路所要完成的功能主要有片選中一個(gè)led數(shù)碼管,傳送所要顯示的數(shù)據(jù)和對數(shù)據(jù)的鎖

48、存。為了能讓單片機(jī)去同時(shí)處理其他的事情,單片機(jī)不能一直掃描所以數(shù)碼管,來實(shí)現(xiàn)led數(shù)碼管數(shù)據(jù)一直顯示的滿意效果。所以必須引入數(shù)據(jù)鎖存功能,來實(shí)現(xiàn)led數(shù)碼管一直有顯示數(shù)據(jù)。當(dāng)有新的數(shù)據(jù)要顯示的時(shí)候,直需要單片機(jī)重新對每個(gè)led數(shù)碼管重新輸出一次數(shù)據(jù)即可。其中,有一個(gè)問題,就是當(dāng)數(shù)據(jù)還沒有全部傳送給led數(shù)碼管,新的數(shù)據(jù)就已經(jīng)準(zhǔn)備好了。此時(shí),如果數(shù)據(jù)處理不好,就會(huì)新舊數(shù)據(jù)混合顯示出來。而造成數(shù)據(jù)輸出并不是我們想要的結(jié)果。這個(gè)問題,可以從軟件方面來解決。就是當(dāng)有新的數(shù)據(jù)完成的時(shí)候,無論已經(jīng)傳輸了幾個(gè)led數(shù)碼管的數(shù)據(jù),都從第一個(gè)數(shù)據(jù)從新傳輸,就可以很好的避免這個(gè)問題的發(fā)生了。3.1.5.1設(shè)計(jì)原理

49、從led顯示器的顯示原理可知,為了顯示字母數(shù)字,必須最終轉(zhuǎn)換成響應(yīng)段選碼。這種轉(zhuǎn)換可通過硬件譯碼器或軟件進(jìn)行譯碼。下面介紹用譯碼器或軟件譯碼的一些接口電路。軟件譯碼顯示器接口bcd七段16進(jìn)制譯碼驅(qū)動(dòng)顯示接口。單片機(jī)應(yīng)用系統(tǒng),通常要求led顯示器能顯示16進(jìn)制及十進(jìn)制帶小數(shù)點(diǎn)的數(shù)。因此,在選擇譯碼器時(shí),要能夠完成bcd碼至16進(jìn)制的鎖存、譯碼,并具有驅(qū)動(dòng)功能,否則就不如用軟件譯碼接口。motorola公司生產(chǎn)的cmos bcd七段16進(jìn)制鎖存、譯碼驅(qū)動(dòng)芯片。該電路的特點(diǎn)時(shí)可用字母a b c d e f來顯示二進(jìn)制數(shù)10、11、12、13、14、15,同時(shí)還有譯碼器輸入大于等于10時(shí)的指示端(h

50、i )。當(dāng)輸入數(shù)據(jù)>10時(shí),(hi)端輸出“1”電平。另外還有輸入數(shù)據(jù)時(shí),電路輸入端vcr為0電平(其他輸入狀態(tài)時(shí)為高阻)的功能。電路內(nèi)部還有一個(gè)290的限流電阻。而為選通端,電路中的鎖存器在le為0時(shí)輸入數(shù)據(jù),在le1時(shí)鎖存數(shù)據(jù)。下表為4511的真值表。從表中可以看出,當(dāng)顯示數(shù)據(jù)大于等于10時(shí),(hi)端輸出1電平。 4511真值表及顯示內(nèi)容表輸 入 輸 出顯 示d c b aa b c d e f g h+i數(shù) 值0 0 0 01 1 1 1 1 1 0 0 00 0 0 10 1 1 0 0 1 0 0 10 0 1 01 1 0 1 1 0 1 0 20 0 1 11 1 1 1

51、 0 0 1 0 30 1 0 00 1 1 0 0 1 1 0 40 1 0 11 0 1 1 0 1 1 0 50 1 1 01 0 1 1 1 1 1 0 60 1 1 1 1 1 1 0 0 0 0 0 71 0 0 01 1 1 1 1 1 1 0 81 0 0 11 1 1 1 0 1 1 0 91 0 1 01 1 1 0 1 1 1 1 a1 0 1 10 0 1 1 1 1 1 1 b1 1 0 01 0 0 1 1 1 0 1 c1 1 0 1 0 1 1 1 1 0 1 1 d 1 1 1 01 0 0 1 1 1 1 1 e1 1 1 11 0 0 0 1 1 1 0

52、f如附圖2所示的led顯示部分是使用4511的多位靜態(tài)led顯示接口電路,該電路中可直接顯示多位16進(jìn)制數(shù)。若要顯示帶小數(shù)點(diǎn)的十進(jìn)制數(shù),則只要在led的dp端另加驅(qū)動(dòng)控制即可。led顯示塊采用共陰極。在4511內(nèi)部有輸出限流電阻,故led不需要外加限流電阻。該接口軟件十分簡單。當(dāng)給p1.7高電平時(shí)開顯示,由p1.4、p1.5、p1.6控制而一次選中一位led然后由p1.0p1.3送入bcd碼,在le轉(zhuǎn)高電平時(shí)鎖存該位數(shù)據(jù)并譯碼、驅(qū)動(dòng)顯示。顯示方法如下:程序功能:將以r0為首地址的連續(xù)8個(gè)bcd碼在led上顯示。入口參數(shù):r0:存儲(chǔ)顯示字節(jié)的首地址,為mcs51片上存儲(chǔ)器。出口參數(shù):空。變量說明:conbit是p1扣p1.4p1.5的數(shù)據(jù),是控制位顯示位變量,片上存儲(chǔ)器。程序如下:stadisp:clrp1.7; 使74ls138無效mova, #00h; 先賦值movconbit, #00h; 控制位初值movr7, #08h; 循環(huán)次數(shù)控制器display:mova, r0; 將數(shù)據(jù)賦給aadda, conbit; 加上控制位數(shù)據(jù)movp1, a; 將數(shù)據(jù)輸出在p1口上adda, #10h; anla, #7fh; 保持p1.7有效movp1, a; 將數(shù)據(jù)鎖存入mc14495數(shù)據(jù)置于總線上,需要將選中電平變高incr0mova,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論