單片機(jī)控制的微型頻率計(jì)設(shè)計(jì)[附程序]_第1頁(yè)
單片機(jī)控制的微型頻率計(jì)設(shè)計(jì)[附程序]_第2頁(yè)
單片機(jī)控制的微型頻率計(jì)設(shè)計(jì)[附程序]_第3頁(yè)
單片機(jī)控制的微型頻率計(jì)設(shè)計(jì)[附程序]_第4頁(yè)
單片機(jī)控制的微型頻率計(jì)設(shè)計(jì)[附程序]_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文)單片機(jī)控制的微型頻率計(jì)設(shè)計(jì)學(xué)生姓名: 楊 義 勇 學(xué)生學(xué)號(hào): 200310828020 院(系): 電氣信息工程學(xué)院 年級(jí)專業(yè): 03級(jí)自動(dòng)化 指導(dǎo)教師: 孫艷忠 講師 助理指導(dǎo)教師: 二七年六月摘 要傳統(tǒng)的測(cè)頻儀器體積很大,耗能量大,主要靠手工操作,而最大的缺點(diǎn)是不可編程,其量程轉(zhuǎn)換、數(shù)據(jù)測(cè)量、采樣控制和處理等均不能通過(guò)程序指令來(lái)進(jìn)行控制,無(wú)法作為一個(gè)微型智能子系統(tǒng)與某一大型自動(dòng)控制或測(cè)試系統(tǒng)進(jìn)行接口。針對(duì)這些缺點(diǎn),本頻率計(jì)在設(shè)計(jì)上作了根本的革新,其優(yōu)點(diǎn)是:所用核心器件是先進(jìn)的單片專用測(cè)頻器件單片頻率計(jì),集成度高,體積小,耗電省,功能強(qiáng),實(shí)現(xiàn)了頻率計(jì)的高度集成化

2、和微型化;單片頻率計(jì)只要加上晶振、量程選擇、頻率顯示等很少量的器件即可構(gòu)成一個(gè)dc(直流)至10mhz的微型基本測(cè)頻電路;而最大的優(yōu)點(diǎn)則是本頻率計(jì)完全實(shí)現(xiàn)了單片頻率計(jì)、頻率采樣與單片微機(jī)三者之間的硬件與軟件接口,使得測(cè)頻量程的選擇、頻率數(shù)據(jù)的測(cè)量、采樣以及編碼的邊境轉(zhuǎn)換和數(shù)據(jù)的轉(zhuǎn)儲(chǔ)均可能過(guò)單片微機(jī)的軟件編程自動(dòng)進(jìn)行,從而實(shí)現(xiàn)了測(cè)頻與采樣工作的完全智能化,使得本系統(tǒng)既可獨(dú)立構(gòu)成一個(gè)微型智能測(cè)率儀器的核心電路,也可作為大型自動(dòng)控制或測(cè)試系統(tǒng)中的一個(gè)智能子系統(tǒng)。 關(guān)鍵詞 高度集成化,單片機(jī),頻率計(jì),電路abstractthe traditional frequency measurement ins

3、trument volume is very big, consumes energy the quantity to be big, mainly depends on the manual operation, but the biggest shortcoming is unprogrammable, its measuring range transforms, the data survey, the sampling control and processing and so on cannot carry on the control through the program di

4、rective, is unable an achievement miniature intelligence subsystem carries on the connection with some large-scale automatic control or the test system. in view of these shortcomings, this frequency meter has made the radical innovation in the design, its merit is: uses the core component is the adv

5、anced monolithic special-purpose frequency measurement component - - monolithic frequency meter, the integration rate is high, the volume is small, consumes the electricity province, function, has realized the frequency meter high integration and the microminiaturization; so long as the monolithic f

6、requency meter adds on the crystal oscillator, the measuring range choice, the frequency demonstrated and so on the very few components then constitute dc (cocurrent) to the 10mhz miniature basic frequency measurement electric circuit; but the biggest merit was this frequency meter has realized mono

7、lithic frequency meter, frequency sampling electric circuit and the monolithic microcomputer three between hardware and the software connection completely, caused the frequency measurement measuring range the choice, the frequency data survey, the sampling as well as the code frontier transformation

8、 and the data dump possible monolithic microcomputer software programming automatically to carry on, thus has realized the frequency measurement and the sampling work intellectualizes completely, causes this system already to be possible to constitute a miniature intelligence to measure rate the ins

9、trument core electric circuit independently, also might take in the large-scale automatic control or a test system intelligent subsystem. keywords integrates highly, monolithic integrated circuit, frequency meter, electric circuit 目 錄摘 要iabstractii1 緒論12 系統(tǒng)邏輯框圖的介紹23 頻率計(jì)硬件電路的設(shè)計(jì)33.1 系統(tǒng)電源的設(shè)計(jì)33.2 單片頻率計(jì)電

10、路43.3量程選擇和顯示電路73.2 單片頻率計(jì)電路43.4 頻率計(jì)顯示電路93.5 頻率計(jì)自動(dòng)采樣電路103.6 單片機(jī)控制電路與保護(hù)電路113.6.1 掉電保護(hù)113.6.2 看門狗電路124 頻率計(jì)頻率計(jì)信號(hào)源134.1 掃頻信號(hào)產(chǎn)生電路134.2 當(dāng)前頻段自動(dòng)產(chǎn)生電路144.3掃頻電壓自動(dòng)轉(zhuǎn)換電路164.4 終止頻段碼預(yù)置電路175 系統(tǒng)軟件設(shè)計(jì)175.1 軟件設(shè)計(jì)思路175.5.1 信號(hào)源工作時(shí)的主程序說(shuō)明175.5.2 測(cè)頻中斷子程序說(shuō)明195.5.3 地址分配205.2 程序清單216 經(jīng)濟(jì)性分析25參 考 文 獻(xiàn)25致 謝261 緒論 在自動(dòng)控制、自動(dòng)測(cè)試、無(wú)線電通訊、聲納、遙

11、控遙測(cè)、測(cè)速計(jì)數(shù)、測(cè)頻智能儀器開(kāi)發(fā)等廣泛的領(lǐng)域中,均迫切需要一種能與單片微機(jī)接口的微型智能頻率計(jì)。傳統(tǒng)的測(cè)頻儀器體積很大,耗能量大,主要靠手工操作,而最大的缺點(diǎn)是不可編程,其量程轉(zhuǎn)換、數(shù)據(jù)測(cè)量、采樣控制和處理等均不能通過(guò)程序指令來(lái)進(jìn)行控制,無(wú)法作為一個(gè)微型智能子系統(tǒng)與某一大型自動(dòng)控制或測(cè)試系統(tǒng)進(jìn)行接口。針對(duì)這些缺點(diǎn),本頻率計(jì)在設(shè)計(jì)上作了根本的革新,其優(yōu)點(diǎn)是:所用核心器件是先進(jìn)的單片專用測(cè)頻器件單片頻率計(jì),集成度高,體積小,耗電省,功能強(qiáng),實(shí)現(xiàn)了頻率計(jì)的高度集成化和微型化;單片頻率計(jì)只要加上晶振、量程選擇、頻率顯示等很少量的器件即可構(gòu)成一個(gè)dc(直流)至10mhz的微型基本測(cè)頻電路;而最大的優(yōu)點(diǎn)

12、則是本頻率計(jì)完全實(shí)現(xiàn)了單片頻率計(jì)、頻率采樣電路與單片微機(jī)三者之間的硬件與軟件接口,使得測(cè)頻量程的選擇、頻率數(shù)據(jù)的測(cè)量、采樣以及編碼的邊境轉(zhuǎn)換和數(shù)據(jù)的轉(zhuǎn)儲(chǔ)均可能過(guò)單片微機(jī)的軟件編程自動(dòng)進(jìn)行,從而實(shí)現(xiàn)了測(cè)頻與采樣工作的完全智能化,使得本系統(tǒng)既可獨(dú)立構(gòu)成一個(gè)微型智能測(cè)率儀器的核心電路,也可作為大型自動(dòng)控制或測(cè)試系統(tǒng)中的一個(gè)智能子系統(tǒng)。2 系統(tǒng)邏輯框圖的介紹本頻率計(jì)由單片頻率計(jì)電路、量程選擇和顯示電路、頻率顯示電路、頻率自動(dòng)采樣電路和單片微機(jī)控制電路五大部分組成,其整體邏輯框圖見(jiàn)圖1,整體工作原理在后面結(jié)合測(cè)頻中斷子程序流程圖進(jìn)行闡述。圖1單片機(jī)控制的微型頻率超高頻整體邏輯框圖3 頻率計(jì)硬件電路的設(shè)計(jì)

13、3.1 系統(tǒng)電源的設(shè)計(jì)圖31 12v穩(wěn)壓電源電路圖 圖32 5v穩(wěn)壓電源電路圖 本系統(tǒng)電源完全采用220v交流電,經(jīng)過(guò)二極管橋式整流,在分別用78057905和78127912穩(wěn)壓整流得到。7879系列正負(fù)電壓輸出集成三端穩(wěn)壓器,是串聯(lián)調(diào)整式穩(wěn)壓器。其內(nèi)部有能帶間隙式基準(zhǔn)穩(wěn)壓源作為基準(zhǔn)。此基準(zhǔn)輸出電壓與采樣值進(jìn)行比較,根據(jù)誤差大小對(duì)輸出進(jìn)行調(diào)整。由于基準(zhǔn)源的噪聲小、漂移小、精度高,因此使整個(gè)穩(wěn)壓器的輸出穩(wěn)定、漂移小、精度也較高。 另外,7879系列集成穩(wěn)壓器內(nèi)部有較為完善的保護(hù)電路。它的內(nèi)部有過(guò)流保護(hù),保證輸出電流不會(huì)超過(guò)最充許值。它的內(nèi)部有熱保護(hù)電路,如果輸出管的結(jié)溫達(dá)到允許的最大值,它就會(huì)

14、自動(dòng)減小輸出電流。它內(nèi)部有工作區(qū)限制電路,使穩(wěn)壓器的工作不進(jìn)入不安全區(qū)(輸出管的管壓降和輸出電流小于規(guī)定值)。所以這種穩(wěn)壓器的可靠性較高。3.2單片頻率計(jì)電路單片頻率計(jì)icm7216d是美國(guó)intersil公司首先研制的專用測(cè)頻大規(guī)模集成電路(見(jiàn)圖33),圖33 單片頻率計(jì)電路 單片頻率計(jì)icm7216d的優(yōu)點(diǎn)之一是采用單一穩(wěn)壓電源+5v工作。在osin和osot(振蕩輸入和輸出)兩端外接10mhz晶體和阻容元件與片內(nèi)的高增益互補(bǔ)場(chǎng)效應(yīng)反相器構(gòu)成并聯(lián)諧振回路,產(chǎn)生了高穩(wěn)定度的時(shí)間基準(zhǔn)信號(hào),供片內(nèi)分頻后產(chǎn)生計(jì)數(shù)閘門時(shí)間用,測(cè)頻精度由外接晶本的性能確定(在精度要求高的場(chǎng)合,可將晶本置于帶屏蔽的恒溫

15、槽內(nèi))。 待測(cè)信號(hào)頻率fx從(a輸入)端輸入。為保證頻率計(jì)能正確可靠地進(jìn)行計(jì)數(shù),輸入信號(hào)必須滿足以下條件:(1)波形:必須是數(shù)字脈沖信號(hào),其它波形(如正波形,三角波等)必須通過(guò)施密特整形電路整形為方波(脈沖)信號(hào);(2)幅度:在電源電壓v+ =+5vj時(shí),端的閾值電壓為2.0伏,為了可靠地進(jìn)行計(jì)數(shù)且不損壞芯片,輸入方波的高電平值vih,必須滿足:+2.5v=vih=50ns(周期須=100ns)。單片頻率計(jì)是在輸入脈沖的下降沿進(jìn)行計(jì)數(shù)的。單片頻率計(jì)icm7216d芯片本身的測(cè)頻上限為10mhz。若要組成40mhz頻率計(jì),則只需在10mhz頻率計(jì)的基礎(chǔ)上作如下修改:(1)在端之前另加由74ls1

16、12組成的四分頻預(yù)置電路;(2)采用2.5mhz的晶體。若要組成100mh頻率計(jì),也只需在10mhz頻率計(jì)的基礎(chǔ)上作如下修改:(1)在端之前另加由11c90組成的十分頻預(yù)置電路;(2)將位碼輸入端連到coni(控制輸入)端,使頻率計(jì)處于外部小數(shù)點(diǎn)模式,并將edpi(外部小數(shù)點(diǎn)輸入)端連到(量程輸入)端,使數(shù)據(jù)顯示單位khz保持不變。在本頻率計(jì)中,將coni端懸空,使單片頻率計(jì)7216d進(jìn)入正常計(jì)數(shù)狀態(tài)。將edpi端懸空,使各量程顯示數(shù)據(jù)的小數(shù)點(diǎn)由片內(nèi)自動(dòng)產(chǎn)生。eosi(外部振蕩輸入)端不使用,故也懸空。在本頻率計(jì)開(kāi)始測(cè)量前,加電或復(fù)位使(外部振蕩輸入)端不使用,故也懸空。當(dāng)hldi(保持輸入)

17、端輸入高電平(有效)時(shí),7216d停止測(cè)頻,片內(nèi)主計(jì)數(shù)器復(fù)“0”,但鎖存器中鎖存的測(cè)頻值仍保持不變,并輸至片外供顯示和采樣用。當(dāng)hldi端恢復(fù)為低電平時(shí),7216d方可開(kāi)始進(jìn)行下一次新的測(cè)頻計(jì)數(shù)。在本頻率計(jì)中,用單片微機(jī)8031的p1.0端對(duì)hldi端進(jìn)行電平控制(見(jiàn)圖1),當(dāng)測(cè)頻系統(tǒng)需和其它數(shù)據(jù)采集系統(tǒng)同時(shí)進(jìn)行數(shù)據(jù)采樣時(shí),只需在測(cè)頻中斷子程序中利用兩條控指令setb p1.0及clr p1.0就可使單片微機(jī)8031的p1.0端發(fā)出一定寬度的正脈沖送至hlki端,使得別的系統(tǒng)在完成數(shù)據(jù)采樣之前單片頻率計(jì)7216d不進(jìn)行下一次新的測(cè)頻計(jì)數(shù),這樣各系統(tǒng)的采樣數(shù)據(jù)就能保證是同一次測(cè)量所得到的數(shù)據(jù)。圖

18、34 諸信號(hào)的時(shí)序關(guān)系7216d是(測(cè)量在進(jìn)行中)端是計(jì)數(shù)閘門時(shí)間輸入端(低電平有效)。及其反相扣的中斷申請(qǐng)信號(hào)mip、片內(nèi)計(jì)數(shù)鎖存與片內(nèi)復(fù)位諸信號(hào)的時(shí)序關(guān)系見(jiàn)圖24。 由圖34可見(jiàn)信號(hào)由閘門時(shí)間(低電平)和測(cè)量間隔時(shí)間titv(高電平)兩部分組成,隨量程不同而分為0.01s、0.1s、1s、10s四檔,而titv無(wú)論哪一量程均固定為200ms。當(dāng)處于低電平時(shí),7216d片內(nèi)計(jì)數(shù)閘門被打開(kāi),主計(jì)數(shù)器便對(duì)輸入頻率進(jìn)行計(jì)數(shù),一直計(jì)數(shù)到閘門時(shí)間結(jié)束、跳到高電平為止,延遲40ms等待計(jì)數(shù)值穩(wěn)定后,片內(nèi)產(chǎn)生40ms寬的鎖存負(fù)脈沖打開(kāi)片內(nèi)鎖存門,使主計(jì)數(shù)器中的本次測(cè)頻值打入到鎖存器中去更新上次測(cè)頻值,數(shù)據(jù)

19、更新完畢后鎖存門便關(guān)閉,新頻率值輸入到片外供顯示和采樣,再延遲60ms后,片內(nèi)產(chǎn)生成40ms寬的復(fù)位脈沖將主計(jì)數(shù)器等復(fù)“0”,使7216d處于下次測(cè)量準(zhǔn)備狀態(tài),但鎖存器中的本次測(cè)頻值并不得復(fù)“0”,一直保持到下次數(shù)據(jù)更新為止。過(guò)后再延遲20ms等待復(fù)位穩(wěn)定后便正式開(kāi)始下次頻率測(cè)量。定量了解片內(nèi)計(jì)數(shù),數(shù)據(jù)更新與復(fù)位三者之間的時(shí)序關(guān)系對(duì)正編制片外測(cè)頻中斷子程序是必不可少的,從片內(nèi)計(jì)數(shù)結(jié)束到鎖存器中草藥數(shù)據(jù)更新完畢所需時(shí)間=40ms+40ms=80ms,再延時(shí)20ms,待數(shù)據(jù)更新扣的新值穩(wěn)定時(shí)程序方可對(duì)該頻率數(shù)據(jù)進(jìn)行采樣,因此當(dāng)單片微機(jī)cpu每次轉(zhuǎn)入測(cè)頻中斷子程序頻率值進(jìn)行采樣之前,程序上必需延遲1

20、00ms時(shí)間(不要精確)才能保證采樣到的數(shù)據(jù)是更新后穩(wěn)定的本次新測(cè)量值。此外,單片微機(jī)8031的(外部中斷1請(qǐng)求信號(hào))必須在主程序初始化時(shí)設(shè)置為邊沿觸發(fā)方式和高優(yōu)先級(jí),用單片頻率計(jì)7216d發(fā)出的mip(中斷申請(qǐng))信號(hào)的負(fù)跳變向8031提出該中斷請(qǐng)求,而不能設(shè)置為電平觸發(fā)方式(低電平有效),否則在下次測(cè)頻開(kāi)始前,單片微機(jī)cpu會(huì)在本次測(cè)頻點(diǎn)產(chǎn)生多于一次的響應(yīng),造成一個(gè)測(cè)頻點(diǎn)多次重復(fù)采樣的錯(cuò)誤。 單片頻率計(jì)的端為8位顯示數(shù)碼管位碼(決定位置的編碼)輸出端(低電平有效),ga及dp端為七段顯示碼及小數(shù)點(diǎn)電位輸出端(高電平有效)。由于受集成電路各引腳數(shù)量的限制,單片頻率計(jì)不可能將8位測(cè)頻數(shù)據(jù)同時(shí)輸出

21、,只能采用8位分時(shí)循環(huán)掃描的方式將每一位數(shù)字的段碼及其右面?zhèn)让娴男?shù)點(diǎn)電位從ga及dp端愛(ài)位串行輸出,輸出順序?yàn)閺牡?位(最高位)到第0位(最低位),并用位碼來(lái)識(shí)別輸出的段碼屬于哪一位。7216d片內(nèi)鎖存器中的8位bcd碼頻率值被500hz顯示掃描信號(hào)從高到低還位送至片內(nèi)四七譯碼譯成七段顯示碼,加上dp4dp1中的某位小數(shù)點(diǎn)后,再經(jīng)8個(gè)段驅(qū)動(dòng)器功率放大產(chǎn)生出每段峰值驅(qū)動(dòng)電流可達(dá)12ma的七段碼和小數(shù)點(diǎn)電位輸出(高電平有效),可用來(lái)直接驅(qū)動(dòng)片外共陰極數(shù)字管相應(yīng)段及小數(shù)點(diǎn)的led發(fā)光。8位數(shù)碼循環(huán)掃描信號(hào)的周期均為2ms,當(dāng)每位位碼輸出有效時(shí)都是寬度為244us的負(fù)脈沖,用以克服顯示時(shí)的余輝重影現(xiàn)

22、象。由于每個(gè)位碼端最多要吸入8個(gè)led的驅(qū)動(dòng)電流,故每個(gè)位碼商量的驅(qū)動(dòng)電流最大均達(dá)8090ma以上。3.3量程選擇和顯示電路這部分電路由量程預(yù)置電路、量程選擇電路、閘門時(shí)間顯示電路及量程控制字寫入端口(8255及pc口和數(shù)據(jù)緩沖器pd)五小部分組成,見(jiàn)圖35a。圖35a 量程選擇和顯示電路圖3-5b 手工預(yù)置電路 單片頻率計(jì)7216d提供了一個(gè)量程輸入端,若將7216d的位碼輸出端中的一個(gè)通過(guò)量程選擇電路分別接到此輸入端(輸入低電平有效,電阻10k起抗噪聲干擾作用),則在片內(nèi)會(huì)相應(yīng)產(chǎn)生出四檔測(cè)頻量程(閘門時(shí)間),即0.01秒、0.1秒、1秒、10秒,如表1所示,表中#號(hào)表示為立即數(shù),以區(qū)別是于

23、直接地址。需特別注意的是,量程端的電平是隨機(jī)的,有可能是高電平,此時(shí)就會(huì)導(dǎo)致測(cè)頻停止,單片微機(jī)cpu也就不可能轉(zhuǎn)入測(cè)頻中斷子程序進(jìn)行數(shù)據(jù)采樣工作。 在主程序每次轉(zhuǎn)入測(cè)頻中斷子程序?qū)Ρ敬螠y(cè)得的頻率數(shù)據(jù)進(jìn)行采樣之前,可以對(duì)單片頻率計(jì)的下次測(cè)頻繁量程進(jìn)行修改(也可以保持不變)。為了增加量程修改的靈活性,本頻率設(shè)計(jì)了硬件手工預(yù)置(硬修改)和軟件編程選擇(軟修改)兩種修改方式。單片微機(jī)8031在轉(zhuǎn)入測(cè)頻繁中斷子程序后,首先從量程預(yù)置碼讀出端tp3讀出量程預(yù)置碼,并據(jù)此判斷采用哪種修改方式。當(dāng)量程預(yù)置碼=#00h時(shí),則采用軟修改,而當(dāng)量程預(yù)置不等于#00h時(shí)(注意非零碼修改方式),則采用硬修改。當(dāng)量程預(yù)置

24、碼=#00h時(shí),則采用軟修改,而當(dāng)量程預(yù)置不等于#00h時(shí)(注意非零碼修改方式),則采用硬修改。表1 單片頻率計(jì)icm7216d的量程選擇和量程控制字量程檔次閘門時(shí)間(s)與相連碼端量程預(yù)置碼所測(cè)信號(hào)源的頻段碼量程控制字pc7-pc4(顯示)pc3-pc0(選擇)pc7-pc010.01#01h#o6h,#07h#0001b#0001b#11h20.1#02h#05h#0010b#0010b#22h31#03h#01h-#04h#0011b#0100b#34h410#04h#00h#0100b#1000b#48h在軟修改的情況下,8031的cpu先判斷由主程序傳遞來(lái)的信號(hào)源當(dāng)前頻段碼是第幾頻段

25、碼,然后根據(jù)表1的量程設(shè)定,把相應(yīng)的量程控制字用指令送到可編程并行接口8255的pc口(量程控制字寫入端口),例如當(dāng)前頻段碼是第0頻段,則將量程控制字#48送至pc口。當(dāng)前頻段碼的改變也將導(dǎo)致由程序送入pc口的量程控制字作相應(yīng)改變。送入pc口的量程控制字的高四位pc4pc7(例如0100b)用作量程選擇控制信號(hào),通過(guò)四七譯碼/驅(qū)動(dòng)電路cc4511b譯成七段碼后用led數(shù)字管即可把下次測(cè)頻量程檔次(例如第四檔)顯示出來(lái)。量程控制字的低四位pc3pc0(例如1000b)則用作量程選擇控制信號(hào)。具體來(lái)說(shuō),即用作四雙向模擬開(kāi)關(guān)(連接成四選一開(kāi)關(guān)方式)cc4066r 控制端信號(hào),控制7216d的位碼輸出

26、端中的相應(yīng)一個(gè)端子(例如端)連接到7216的量程輸入端,使單片頻率計(jì)采相應(yīng)量程(例如10秒閘門時(shí)間,即第4檔)來(lái)對(duì)下一個(gè)測(cè)頻點(diǎn)的頻率進(jìn)行計(jì)數(shù)。在硬修改的情況下,測(cè)頻中斷子程序?qū)⒅苯右獡?jù)由量程預(yù)置碼讀出端pt3讀出的手工預(yù)置的量程碼,按照表1的設(shè)定選擇相應(yīng)的量程控制字送入8255芯片的pc口,以后的過(guò)程則和軟修改相同。注意7216d要求輸?shù)蕉说牧砍踢x擇負(fù)脈沖至少后半個(gè)周期(125us)是穩(wěn)定的負(fù)電平。 頻率計(jì)端輸出的負(fù)電平能過(guò)由兩級(jí)施密特觸發(fā)反相器(2/674ls14)組成的驅(qū)動(dòng)電路驅(qū)動(dòng)后用來(lái)點(diǎn)亮一個(gè)發(fā)光二極管led,使計(jì)數(shù)閘門時(shí)間可以直觀顯示出來(lái)。之所以要增加驅(qū)動(dòng)電路,是因?yàn)檩敵龆瞬豢赡苤苯游?/p>

27、收點(diǎn)亮led時(shí)所需的將近10ma電流。3.4頻率顯示電路這部分電路由兩塊共陰極四位連體紅光led數(shù)字顯示器(tlr41252)和溢出指示電路led所組成,見(jiàn)圖36。四位連體數(shù)字顯示器分共陰(tlr4125)和共陽(yáng)(tlr4115)兩種型號(hào),7216d型頻率計(jì)只能與共陰型號(hào)連接。該顯示器可用于時(shí)鐘、頻率、計(jì)數(shù)等多種用途顯示,外殼尺寸為:長(zhǎng)37.0mm高15.4mm,每位數(shù)字的尺寸為:寬3.8mm高7.6mm。每塊顯示器內(nèi)部包含4位十進(jìn)數(shù)字和7個(gè)led發(fā)光點(diǎn),4位十進(jìn)數(shù)字的相同顯示段(led正極)連在一起引出,構(gòu)成七個(gè)段碼引出端ag,每位數(shù)字的公共陰極單獨(dú)引出,構(gòu)成四個(gè)位碼引出端。圖36 頻率顯示

28、電路這種內(nèi)部結(jié)構(gòu)正好與單片頻率7216d的分時(shí)多路掃描顯示方式相配合。每個(gè)顯示段的最大直流工作電流為15ma。該顯示器體積小巧,價(jià)格低廉,顯示字體清晰美觀。單片頻率計(jì)時(shí)7216d各量程顯示的頻率數(shù)據(jù)格式及其分辯率如表2所示,小數(shù)點(diǎn)是片內(nèi)自動(dòng)產(chǎn)生的,數(shù)據(jù)顯示單位均為khz.量程檔 次閘門時(shí)間頻率數(shù)據(jù)格式(khz)分辨率10.01d7 d6 d5 d4 d3 d2 d1dp1 d010020.1d7 d6 d5 d4 d3d2 dp2 d1 d01031d7 d6 d5 d4 d3 dp3 d2 d1 d01410d7 d6 d5 d4 dp4 d3 d2 d1 d00.1表2 單片頻率計(jì)各量程顯

29、示和存儲(chǔ)的頻率數(shù)據(jù)格式圖3-6中第一塊顯示器用作d7d0四位數(shù)據(jù)顯示,第2塊用作d3d0四位顯示,其4個(gè)小數(shù)點(diǎn)dp4kp1的正極連在一起接到7216d的dp輸出端,而負(fù)極則分別受7216d位碼輸出端。單片頻率計(jì)在2ms掃描顯示周期內(nèi)將8位數(shù)字段碼及其小數(shù)點(diǎn)(電位)以及位碼從第7位(最高位)到第0位(最低位)逐位輸出到顯示器一遍,只有位碼為低電平的那位數(shù)字和小數(shù)點(diǎn)(若dp為高電位)才被點(diǎn)亮。由于人的視覺(jué)暫留現(xiàn)像,8位數(shù)字看上去象是被子同時(shí)穩(wěn)定顯示出來(lái)。7216d還具有小數(shù)點(diǎn)前無(wú)消穩(wěn)及小數(shù)點(diǎn)有效零保留的功能。把一個(gè)led接在7216d的dp端和端之間可用作溢出指示,當(dāng)8位數(shù)字全為“9”后,7216

30、d片內(nèi)便自動(dòng)發(fā)出溢出信號(hào)將溢出指示燈led點(diǎn)亮,告訴使用者應(yīng)把測(cè)頻量程修改到適當(dāng)?shù)臋n次。溢出情況下前零消穩(wěn)不起作用。3.5 頻率自動(dòng)采樣電路這部分電路由可編程并行接口芯片8255的方式選擇控制字寫入口(片內(nèi)數(shù)據(jù)控制器pd口)、段碼及小數(shù)點(diǎn)讀出口(pa口)位碼讀出口(pb口)三個(gè)i/o口組成,見(jiàn)圖37。在主程序頻率計(jì)初如化部分首先將8255的方式選擇控制字#92h用指令寫入pd口(芯片內(nèi)部的控制口),使8255的pa口、pb口、選擇方式0(無(wú)條件)輸入方式,pc口選擇輸出方式。pa口為頻率段碼和小數(shù)點(diǎn)的采樣端口,pb口為位碼的采樣端口。圖37 頻率自動(dòng)采樣電路單片微機(jī)8031測(cè)頻中斷子程序中的采

31、樣程序按照pb口采樣得到的有效位碼(低電平有效)順序,由pa口逐位采樣段碼和小數(shù)點(diǎn)數(shù)據(jù),并將段碼和小數(shù)點(diǎn)電位自動(dòng)分離,分離出來(lái)的段碼依次暫存到單片微機(jī)8031內(nèi)部ram的30h38h工作單元中。當(dāng)程序采樣到某位小數(shù)dp的高電平后,能自動(dòng)將小數(shù)點(diǎn)的ascii碼#2eh存到該位段碼數(shù)據(jù)的下一個(gè)存儲(chǔ)單元中,無(wú)需使用者在8位段碼頻率數(shù)據(jù)全部采樣完畢后再另外插入。由于每位段碼的掃描顯示時(shí)間為244us,而本單片微機(jī)程序采樣一位段碼和小數(shù)點(diǎn)所需時(shí)間為44us,因此足以保證8255pa口對(duì)段碼和小數(shù)點(diǎn)數(shù)據(jù)的可靠采樣。采樣到的段碼必須由程序自動(dòng)轉(zhuǎn)換為bcd碼后才能供計(jì)算使用,碼制轉(zhuǎn)換后的bcd碼頻率數(shù)據(jù)由程序

32、自動(dòng)從單片微機(jī)內(nèi)部ram區(qū)(6264芯片中)。七段顯示碼與bcd碼的轉(zhuǎn)換表見(jiàn)表(若led點(diǎn)亮,到段碼為“1”,暗則為“0”)。七段顯示碼bcd碼七段顯示碼bcd碼7eh#00h#5bh#05h#30h#01h#5fh#06h#6dh#02h#70h#07h#79h#03h#7fh#08h#33h#04h#7bh#09h表3 七段顯示碼與bcd碼轉(zhuǎn)換表對(duì)于測(cè)頻總點(diǎn)數(shù)n為已知的應(yīng)用系統(tǒng),可利用采樣n個(gè)頻率點(diǎn)的數(shù)據(jù)后總點(diǎn)數(shù)減為0的條件來(lái)控制測(cè)頻的結(jié)束,這在測(cè)頻程序中再加一個(gè)采樣點(diǎn)數(shù)的外循環(huán)是不難實(shí)現(xiàn)的。3.6 單片機(jī)控制電路與保護(hù)電路單片機(jī)控制電路由單片機(jī)8031、低8位地址鎖存器74ls373、外

33、部程序存儲(chǔ)器eprom2764、外部數(shù)據(jù)存儲(chǔ)器ram6264、片選址與口選址信號(hào)形成電路(譯碼器74ls138及與非門等)五小部分組成,具體見(jiàn)原理大圖。下面是保護(hù)電路的設(shè)計(jì)361 掉電保護(hù)掉電保護(hù)是為了單片機(jī)系統(tǒng)在運(yùn)行過(guò)程中,如果發(fā)生斷電,則cpu內(nèi)部數(shù)據(jù)存儲(chǔ)器、特殊功能寄存器以及外部數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)將丟失。然而在許多應(yīng)用場(chǎng)合,往往需要保護(hù)系統(tǒng)掉電前的狀態(tài)及數(shù)據(jù),以便再上電時(shí)能繼續(xù)原來(lái)的工作,這就需要單片機(jī)控制具有掉電保護(hù)功能。掉電保護(hù)功能由硬件保護(hù)電路和保護(hù)軟件兩個(gè)部分組成。硬件保護(hù)電路,它由下列部分組成:(1) 后備電池及電源切換電路。(2) 電源檢監(jiān)檢控電路,它跟蹤電源vcc的變化,以

34、便發(fā)出停電信號(hào)。(3) ram片選信號(hào)封鎖電路,由于ds12和ds13系列sram芯片內(nèi)部已有掉電、上電防誤寫入電路,當(dāng)采用這類芯片作為外部數(shù)據(jù)存儲(chǔ)器時(shí),無(wú)須考慮片選信號(hào)封鎖問(wèn)題。本系統(tǒng)對(duì)6264進(jìn)行了掉電保護(hù),電路圖如圖3-8。本系統(tǒng)沒(méi)有用8031的引腳rst進(jìn)行掉電保護(hù),因?yàn)榇朔▋H能保護(hù)單片機(jī)內(nèi)部容量很小的ram,耳采用外部ram掉電保護(hù)方式。當(dāng)正常電壓vcc加在6264引腳vcc和nc上時(shí),由于vcced(鋰錳電池),d1導(dǎo)通而d2截止,這樣后備電源ed與6264通路被斷開(kāi),系統(tǒng)正常工作;而當(dāng)vcc掉電時(shí),在vcc下降到維持6264內(nèi)部數(shù)據(jù)的最低極限值之前,二極管d1、d2偏壓相繼反轉(zhuǎn),

35、后備電源通過(guò)d2自動(dòng)加載,而d1反偏,將已失效電源vcc與存儲(chǔ)器隔離。圖3-7 掉電保護(hù)電路 圖3-8 看門狗電路362 看門狗電路“看門狗”電路“死機(jī)”是單片機(jī)系統(tǒng)中長(zhǎng)常出現(xiàn)的現(xiàn)象,它表現(xiàn)為系統(tǒng)無(wú)法繼續(xù)正常的運(yùn)行,而一直停止在某一狀態(tài),系統(tǒng)處于癱瘓。這時(shí)硬件電路并沒(méi)有壞,只是內(nèi)部運(yùn)行出現(xiàn)錯(cuò)誤,必須重新復(fù)位才能恢復(fù)。因此,了解“死機(jī)”產(chǎn)生的原因,并消除“死機(jī)”的影響是單片機(jī)系統(tǒng)抗干擾設(shè)計(jì)中的重要的一個(gè)環(huán)節(jié)。本系統(tǒng)采用“看門狗”電路,其作用是監(jiān)測(cè)單片機(jī)的運(yùn)行,一旦發(fā)現(xiàn)“死機(jī)”就發(fā)出復(fù)位信號(hào)恢復(fù)程序的正常運(yùn)行。如圖3-8所示,不可編程的14位計(jì)數(shù)器4020定時(shí)益出用來(lái)監(jiān)視程序的運(yùn)行,計(jì)數(shù)時(shí)鐘來(lái)自8

36、031的ale,定時(shí)間隔可通過(guò)改變輸出接線加以調(diào)整,它應(yīng)稍大于主程序運(yùn)行一個(gè)循環(huán)的時(shí)間,在主程序運(yùn)行過(guò)程中要執(zhí)行一次對(duì)地址dfff(y6)讀或?qū)懽鳎瑥?qiáng)制4020重新計(jì)數(shù),這樣,只要程序正常運(yùn)行,計(jì)數(shù)器不會(huì)溢出,而當(dāng)程序失常,不能刷新計(jì)數(shù)器,這時(shí)定時(shí)溢出信號(hào)下跳變經(jīng)74ls123單穩(wěn)電路后,產(chǎn)生20ms正脈沖送單片機(jī)rst復(fù)位端,導(dǎo)致系統(tǒng)復(fù)位而重新運(yùn)行。4 頻率計(jì)信號(hào)源4.1 掃頻信號(hào)產(chǎn)生電路本信號(hào)源的掃頻范圍從hz掃描到1mhz,分8個(gè)頻段實(shí)現(xiàn),只要簡(jiǎn)單改變頻段電容的的電容量,低端信號(hào)頻率即可擴(kuò)展到1hz以下,其最大優(yōu)點(diǎn)是完全實(shí)現(xiàn)了與單片機(jī)微機(jī)的硬件與軟件接口,使得信號(hào)源各頻段之間的轉(zhuǎn)換及段內(nèi)

37、各頻率點(diǎn)的產(chǎn)生均可通過(guò)軟件編程來(lái)自動(dòng)進(jìn)行,從而實(shí)現(xiàn)了掃頻信號(hào)源工作的智能化。信號(hào)源由掃頻信號(hào)產(chǎn)生電路、當(dāng)前頻段自動(dòng)轉(zhuǎn)換電路、掃頻電壓自動(dòng)產(chǎn)生電路、終止頻段碼預(yù)置電路、單片微機(jī)控制電路五大部分組成。其整體邏輯框見(jiàn)圖4-1。掃頻信號(hào)產(chǎn)生電路由單片精密函數(shù)波形發(fā)生器、測(cè)頻方波形成電路(74ls14)三部分組成,見(jiàn)圖4-2。精密函波形發(fā)生器5g8038是本掃頻信號(hào)源的核心器件。5g8038內(nèi)部有兩個(gè)電平比較器和一個(gè)觸發(fā)器的控制下,不斷向外頻段電容cfb線性充電和放電,從而產(chǎn)生出積分形三角波,再經(jīng)緩沖器tr(三角波)端輸出。在角波的線性度可高達(dá)0.1,幅度vpp為4v左右,輸出阻抗典型值為200(負(fù)載電

38、流為5ma)。三角波觸發(fā)器輸出端的電平經(jīng)緩沖器由sq(方波)端輸出方波。圖4-1 單片機(jī)控制的微型低頻掃頻信號(hào)源的整體框圖圖4-2 掃頻信號(hào)產(chǎn)生電路由于sq端是oc門(開(kāi)集門)輸出,所以sq端一般可通過(guò)一負(fù)載電阻rl10k連接到另一電源電壓vsq上去,使得片內(nèi)輸出方波的高電平(1ua漏電流時(shí))可在5v(ttl高電平)到30v(5g8038)單電源電壓值的上限)這樣寬的范圍內(nèi)變化,從面能很方便地達(dá)到電平轉(zhuǎn)換的目的。輸出方波的低電平為ttl低電平0.35v(2ma負(fù)載電流時(shí))。連接在asd1和asd2(頻率占空比調(diào)節(jié))端的電位器w1,可調(diào)節(jié)三角波和方波的占空比(可分別變?yōu)殇忼X波和脈沖波),可調(diào)范圍

39、達(dá)2到98。外接頻段電容cfb通過(guò)ct端接入片內(nèi),接入不同容量的電容即可粗即可粗調(diào)輸出信號(hào)的頻率即(轉(zhuǎn)換頻段)。直流掃頻電壓vfm由fmi(頻率調(diào)制輸入)端輸入,輸入信號(hào)的頻率fx與輸入掃頻掃電壓呈線性變化關(guān)系,在一個(gè)頻段內(nèi)部可對(duì)輸出頻率進(jìn)行細(xì)掃描(即產(chǎn)生出各頻率點(diǎn))。當(dāng)外接頻段電容cfb由4.7uf減小到30pf時(shí),三角波端輸出的信號(hào)頻率均可由5.6hz升高到1.0126mhz,但sq端直接輸出的片內(nèi)方波頻率升高到400khz左右時(shí)就停止上升,原因是片內(nèi)觸發(fā)器的翻轉(zhuǎn)速度跟不上,這給用單片頻率計(jì)(icm7216d)進(jìn)行同步測(cè)頻(其輸入信號(hào)必須是ttl電平的方波信號(hào))帶來(lái)了困難,但通過(guò)三角波測(cè)頻

40、方波開(kāi)成電路(為一施密特整形電路)得出方波克服 這一困難。只要簡(jiǎn)單地將cfb低端電容量4.7uf加大,則5g8038輸出信號(hào)的頻率即可降至1hz以下,但在固定8個(gè)頻率(受八選一模擬開(kāi)關(guān)路數(shù)的限制)、且相領(lǐng)頻段的頻率需彼此銜接的情況下,信號(hào)源輸出的高端頻率也需相應(yīng)降低(降至1mhz以下)。4.2當(dāng)前頻段自動(dòng)產(chǎn)生電路這部分電路由當(dāng)前頻段碼寫入端口pt0(74ls373)、ttlcmos電平轉(zhuǎn)換電路(mc1413)、當(dāng)前頻段轉(zhuǎn)換開(kāi)關(guān)四小部分組成,見(jiàn)圖4-3。圖4-3 當(dāng)前頻段自動(dòng)轉(zhuǎn)化電路單片微機(jī)8031把外部擴(kuò)展的io口均當(dāng)作外部數(shù)據(jù)存儲(chǔ)器的一個(gè)存儲(chǔ)單元來(lái)進(jìn)行尋址和讀寫操作。寫入到端口pt0k的當(dāng)前

41、頻段碼一方面通過(guò)四七譯碼器cc4511b譯成七段顯示碼驅(qū)動(dòng)led數(shù)字管顯示出來(lái),另一方面能過(guò)達(dá)林頓陣列mc1413將ttl電平(0.35v/3.8)轉(zhuǎn)換成cmos電平(0.45v/11.9)后輸出到單八選一多路選擇模擬開(kāi)關(guān)cc4051b的控制端abc。在當(dāng)前頻段碼由000b111b時(shí),cc4051b會(huì)自動(dòng)選擇i0i7中相應(yīng)的一路電容cfb接到輸出端s0,通過(guò)s0再接到5g8038的外接電容端ct,這樣通過(guò)單片微機(jī)程序的控制和圖4-3硬件電路的支持,就實(shí)現(xiàn)了掃頻信號(hào)源頻段的自動(dòng)轉(zhuǎn)換。本掃頻信號(hào)源分成8個(gè)頻段,相鄰頻段邊緣有一定的覆蓋。頻段劃分及每一頻段實(shí)測(cè)的掃頻范圍見(jiàn)表4。需說(shuō)明的是,頻率碼步長(zhǎng)

42、值須按具體應(yīng)用對(duì)象的要求選定,選取步長(zhǎng)值一定要滿足如下條件,即總的步長(zhǎng)值(終止頻率碼起始頻率碼)步長(zhǎng)值=正整數(shù),否則在編程時(shí)將會(huì)給頻段自動(dòng)轉(zhuǎn)換的判別帶來(lái)困難.頻段序號(hào)頻段碼(二進(jìn)制)頻段cfb頻段碼掃描范圍頻率碼步長(zhǎng)值每步頻率值每一頻段實(shí)測(cè)掃頻范圍(khz)0000b4.7uf/25v起始值#00h終止值#80h#04h0.00160.0050.03341001b1160nf0.0080.0280.1392010b220nf0.0400.1270.6433011b51.7nf0.1920.6393.2204100b10nf0.923.04715.5585101b3.2nf3.010.6055.

43、806110b510pf14.055.6262.57111b30pf46.0196.71016.8表4 掃頻信號(hào)源的頻段劃分及實(shí)測(cè)掃頻范圍4.3掃頻電壓自動(dòng)轉(zhuǎn)換電路這部分電路由當(dāng)前頻率碼寫入端口pt1與數(shù)/模轉(zhuǎn)換電路(組合在dac0832片內(nèi))以及掃頻電壓形成電路(ua741)組成,見(jiàn)見(jiàn)圖4-4。圖4-4 掃頻電壓自動(dòng)產(chǎn)生電路 寫入到端口pt1中的當(dāng)前頻率碼通過(guò)dac0832片內(nèi)的數(shù)模轉(zhuǎn)換電路自動(dòng)轉(zhuǎn)換成模擬電流從iout1和iout2兩個(gè)互補(bǔ)端輸出.模擬電流與輸出頻率碼fcod的關(guān)系為: iout1=. iout2=. iout1+iout2=const式中vref為dac0832的外接基準(zhǔn)電

44、壓,r為片內(nèi)r-2r梯形網(wǎng)絡(luò)電阻(15k).由此可見(jiàn),iout1與fcod成正比,而iout2則與fcod的補(bǔ)碼成正比,iout1和iout2之和為一常量。模擬電流必須通過(guò)掃頻電壓形成是電路(由運(yùn)放ua741組成反相放大器)才產(chǎn)生掃頻電壓vfm。在設(shè)計(jì)掃頻電壓自動(dòng)產(chǎn)生電路時(shí)需滿足函數(shù)波形發(fā)生器5g8038如下兩個(gè)特殊要求:一是其輸出頻率fx隨輸入電壓vfm的降低而線性升高,因此,為了將信號(hào)源8個(gè)頻段的頻率能夠由小到大線性地銜接起來(lái),vfm必須隨輸入頻碼fcod的增大而線性降低(下降型鋸齒波);二是為了使5g8038片內(nèi)產(chǎn)生振蕩,vfm的有效掃描范圍必須滿足:vfm2,式中為5g8038的電源電

45、壓。當(dāng)vfm-2時(shí),5g8038片內(nèi)會(huì)出現(xiàn)停振現(xiàn)象,無(wú)信號(hào)輸出。為了滿足5g8038的第一特殊要求,輸入到掃頻電壓形成電路的模擬電流必須取自dac0832的iout2輸出端,而不是iout1輸出端,而不是iout1輸出端。此時(shí)vfm的表達(dá)式為: vfmiout2rf2式中負(fù)號(hào)是由于相放大器而引入,rf2為dac0832片內(nèi)反饋電阻,一般rf2調(diào)得和dac0832片內(nèi)r2r梯形網(wǎng)絡(luò)電阻匹配(均為15k),vref為一常量(本身為一負(fù)值)。由上式可知,vfm確實(shí)隨輸入頻率碼fcod的增大而線性降低,而且當(dāng)fcod在#00h#80h范圍內(nèi)掃描時(shí), vfm也相應(yīng)在(-vref) (-vref)范圍內(nèi)掃

46、描。為了滿足5g8038的第二個(gè)特殊要求,必須滿足中下方程:=-vref-2=(- vref)由此可解得=-vref=12v。這說(shuō)明為了使vfm的掃描范圍處在5g8038的振蕩區(qū)內(nèi),5g8038的電源電壓和dac0832的基準(zhǔn)電壓絕對(duì)值都必須取12v。此時(shí)vfm有效掃描范圍為12v6v。這里需要指出的是,終止頻率碼80 h時(shí)編程時(shí)可作為頻段轉(zhuǎn)換的判別條件。4.4 終止頻段碼預(yù)置電路這部分電路由終止頻段碼顯示電路(cc4511led數(shù)字管)和終止頻段碼讀出端口pt2三小部分組成,見(jiàn)圖4-5。圖4-5 終止頻段碼預(yù)置電路本信號(hào)源共分8個(gè)頻段,若信號(hào)源掃完任意第i頻段之后需自動(dòng)終止掃頻工作,i是為0

47、到7。則只要在信號(hào)源加電工作以前將頻段碼i手工寫入終止段碼預(yù)置開(kāi)關(guān)上,信號(hào)源加電工作之后利用程序進(jìn)行判停工作即可實(shí)現(xiàn)。這給那此不需要信號(hào)源每次都從頭掃到尾的應(yīng)用系統(tǒng)帶來(lái)了方便,增加了本信號(hào)源使用的靈活性。終止頻段預(yù)置一方面能過(guò)顯示譯碼cc4051b譯為七段碼在led數(shù)字管上顯示出來(lái),另一方面又無(wú)條件地寫入并鎖存到端口pt2中(注意pt2的輸入允許端g恒接5v,即一直打開(kāi))。5 系統(tǒng)軟件設(shè)計(jì)5.1軟件設(shè)計(jì)思路5.1.1 信號(hào)源工作時(shí)的主程序說(shuō)明信號(hào)源工作時(shí)的主程序流程圖見(jiàn)6-1。本信號(hào)源主程序使用第0區(qū)工作寄存器r0r6存放如下數(shù)據(jù):r0當(dāng)前頻碼(起始值為#00h),r1終止頻段碼預(yù)置值,r2當(dāng)

48、前頻率碼(起始值為#00h),r3終止頻率碼(#80h),r4頻率碼步長(zhǎng)值(#04h),r6、r5外接數(shù)據(jù)存儲(chǔ)器(ram)地址指針當(dāng)前值(起始值為4000h)。堆棧區(qū)設(shè)置在內(nèi)部ram的70h7fh單元。本信號(hào)源加電或按復(fù)位按鈕進(jìn)行復(fù)位之后,單片機(jī)8031的cpu立即自動(dòng)轉(zhuǎn)到加電/復(fù)位中斷入口reset(0000h),以該單元為首址設(shè)置了一條無(wú)條件轉(zhuǎn)移指令ljmp main,cpu執(zhí)行后便轉(zhuǎn)到主程序入口main。開(kāi)始動(dòng)行控制信號(hào)源工作的主程序。運(yùn)行主程序時(shí)首先將單片機(jī),頻率計(jì)、信號(hào)源三者初始化。在頻率計(jì)對(duì)該信號(hào)頻率進(jìn)行計(jì)數(shù)測(cè)量結(jié)束時(shí),頻率計(jì)便自動(dòng)向單片機(jī)提出外部中斷( )申請(qǐng),若單片機(jī)響應(yīng)該中斷

49、,則自動(dòng)轉(zhuǎn)至中斷入口int1p,隨即執(zhí)行一條無(wú)條件轉(zhuǎn)移指令ljmp subf便轉(zhuǎn)至測(cè)頻中斷子程序入口subf,運(yùn)行該子程序時(shí)便對(duì)所測(cè)頻率數(shù)據(jù)進(jìn)行采樣和處理。測(cè)頻子程序運(yùn)行完畢返回主程序后,立即判斷一下當(dāng)前頻率碼是否等于終止頻率碼,若不等,說(shuō)明當(dāng)前頻段碼尚未掃完,則將該頻率碼加上頻率碼步長(zhǎng)值形成下一個(gè)新頻率碼再繼續(xù)寫入到端口pt1中,產(chǎn)生出下一個(gè)更高頻率的信號(hào)波形輸出;若相等,說(shuō)明當(dāng)前頻已經(jīng)掃描完畢,則立即從內(nèi)循環(huán)轉(zhuǎn)出到外循環(huán),再判斷一下該頻段碼是否等于預(yù)置的終止頻段碼,若不等說(shuō)明信號(hào)源尚未掃完預(yù)置的終止頻段,則將該頻段碼加上頻段碼步長(zhǎng)值(#01h)形成下一個(gè)新頻段碼再繼續(xù)寫入到端口pt0中,使

50、信號(hào)源自動(dòng)轉(zhuǎn)換到圖61 掃頻信號(hào)源工作時(shí)的主程序流程圖下一個(gè)更高頻段進(jìn)行頻率掃描;若相等說(shuō)明信號(hào)源已掃完預(yù)置的終止頻段,則立即自動(dòng)結(jié)束掃頻工作5.1.2 測(cè)頻中斷子程序說(shuō)明本頻率計(jì)工作時(shí)的測(cè)頻中斷子程序圖見(jiàn)圖6-2。測(cè)頻中斷子程序所使用的單片微機(jī)內(nèi)部ram工作單元說(shuō)明如下:堆棧區(qū)仍為70h7fh;當(dāng)前工作寄存器區(qū)為第1區(qū):r0轉(zhuǎn)存主程序當(dāng)前頻段碼,r1頻率采樣數(shù)據(jù)暫存區(qū)地址指針(起始值為30h),r2頻率計(jì)量程控制字,r3一個(gè)測(cè)頻點(diǎn)采樣數(shù)據(jù)的位指針(起始值為08h),r4被采位位碼左移至進(jìn)位位中的次數(shù),r5一個(gè)測(cè)頻點(diǎn)存儲(chǔ)數(shù)據(jù)(包括8位頻率碼1位小數(shù)點(diǎn)碼)的位指針(起始值為90h);內(nèi)部存放10

51、0ms延時(shí)子程序3級(jí)指令循環(huán)次數(shù)。頻率計(jì)的初始化程序(在主程序中完成)包括給8255pa口pc口選擇io方式以及給單片頻率計(jì)設(shè)置初始測(cè)頻量程。結(jié)合圖1和圖62對(duì)本頻率計(jì)的測(cè)頻中斷子程序作如下說(shuō)明:當(dāng)單片頻率計(jì)7216d對(duì)掃頻信號(hào)源產(chǎn)生的待測(cè)方波頻率fx計(jì)數(shù)剛結(jié)束時(shí),其端經(jīng)反相輸出的中斷申請(qǐng)信號(hào)mip的跳變便向單片微機(jī)8031的cpu提出外部中斷1()申請(qǐng)。當(dāng)cpu響應(yīng)中斷后便自動(dòng)轉(zhuǎn)到8031片內(nèi)特定的中斷入口int1p(0013h單元),以該單元為首址存放了一條無(wú)條件轉(zhuǎn)移指令ljmp subf,cpu執(zhí)行該指令后便轉(zhuǎn)移到測(cè)頻中斷子程序的入口subf開(kāi)始均等該子程序。首先將主程序現(xiàn)場(chǎng)(如當(dāng)肖頻率

52、碼、程序狀態(tài)字psw、第0區(qū)工作寄存器內(nèi)容)保護(hù)起來(lái),當(dāng)前工作寄存器區(qū)由系0區(qū)轉(zhuǎn)為第1區(qū),并將主程序傳遞給子程序的參數(shù)值(如外部的ram地址指錢當(dāng)前值及當(dāng)前頻段碼)壓入堆棧,接著轉(zhuǎn)入為下次測(cè)頻計(jì)數(shù)修改(或保持)量程,先從端口pt3讀出量程預(yù)置碼送入8031累加器a中進(jìn)行判斷:若量程預(yù)置碼為00h,則將主程序傳遞來(lái)的當(dāng)前頻段碼彈出62 測(cè)頻中斷子程序流程圖到r0中,然后按照(r0)中的內(nèi)容(00h07h)和表1的設(shè)定,選擇相應(yīng)的量程控制字暫存到r2中(軟修改量程);若量程預(yù)置碼為非00h,則直接按照硬件預(yù)置的量程(01h04h)和表1的設(shè)定,選擇相應(yīng)的量程控制字暫存到r2中(硬修改量程)。暫存在

53、8031片內(nèi)ram r2中的量程控制字再用指令送到片外的量程控制口pc口,通過(guò)量程選擇電路將7216d的相應(yīng)一位位碼(i03)連接到量程輸入端,使7216d采用新修改(或保持不變)的量程進(jìn)行下一次測(cè)頻計(jì)數(shù)。之后程序采用3級(jí)指令循環(huán)的方式延時(shí)100ms,等待7216d片內(nèi)鎖存器中上次頻率老數(shù)據(jù)被本次新測(cè)數(shù)據(jù)更新完畢并穩(wěn)定一定時(shí)間后,8255片內(nèi)pb口先采樣7216d輸出的位碼,當(dāng)檢測(cè)到左移到進(jìn)位位中的被采樣位位碼為“0”(有效)時(shí),pa口再采樣位段碼和小數(shù)點(diǎn)電位,根據(jù)(r3)中的采樣位指針如此循環(huán)采樣8次,與此同時(shí),程序按照位碼采樣順序和暫存區(qū)地址指針(r1)將采樣到的8位段碼和1位小數(shù)點(diǎn)asc

54、碼#2eh(此即本次測(cè)頻數(shù)據(jù))依次存放到8031片內(nèi)ram的30h38h暫存區(qū)中。接著子程序按(r5)中的存儲(chǔ)位指針逐位將暫存區(qū)中的8位七段顯示碼取出并轉(zhuǎn)換為bcd碼,連同小數(shù)點(diǎn)asc碼(不變)一起轉(zhuǎn)儲(chǔ)到外部數(shù)據(jù)ram中。然后當(dāng)前工作寄存器由第1區(qū)轉(zhuǎn)達(dá)回第0區(qū),并將子程序中的一些參數(shù)值(如修改扣的外部數(shù)據(jù)ram地址指針當(dāng)前值)傳遞給主程序。最后恢復(fù)主程序現(xiàn)場(chǎng),中斷返回主程序。5.1.3 地址的分配由原理圖可知單片機(jī)8031輸出的地址線信號(hào)a15a11通過(guò)片選址和口選址信號(hào)形成電路分別形外部程序存儲(chǔ)器(eprom)、外部數(shù)據(jù)存儲(chǔ)器(ram)、外部擴(kuò)展i/o的片選。1cs0選定外部ram的地址空間0000h1fffh2cs1選定外部eprom的地址空間2000h3fffh3cs20為當(dāng)前段寫入口pt0的口選址信號(hào)cs20=a14=4000h4cs21為當(dāng)前頻率碼寫入口pt1的口選址信號(hào)cs21=a14a0=4001h5cs22為終止頻段碼預(yù)置值讀出口pt2的口信號(hào)cs22=a14a1=4002h6

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論