2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  本設(shè)計介紹的是數(shù)字控制調(diào)頻發(fā)射器,具有廉價、易制等特點(diǎn), 它可在80.0~109.9MHz的任意范圍內(nèi)設(shè)置發(fā)射頻率,可預(yù)置13個頻道,發(fā)射頻率調(diào)整最小值為0.1MHz,具有單聲道/立體聲控制,發(fā)射距離在20~50m范圍內(nèi),可應(yīng)用于學(xué)校室內(nèi)無線廣播教學(xué)、電視現(xiàn)場導(dǎo)播等場所,同時也發(fā)揮了現(xiàn)代化媒體自動控制的巨大作用。</p&

2、gt;<p>  同時本文介紹了當(dāng)今在從模擬向數(shù)字轉(zhuǎn)變、從小規(guī)模向大規(guī)模擴(kuò)展的過程中, 建造或改造一個調(diào)頻發(fā)射系統(tǒng)需要重視的幾項指標(biāo)。新型數(shù)字化調(diào)頻發(fā)射臺具有頻率穩(wěn)定、發(fā)射頻率在88.0 MHZ至110.0MHZ范圍內(nèi)任意可設(shè)等特點(diǎn),本文介紹了采用AT89C52單片機(jī)控制的數(shù)字化調(diào)頻發(fā)射器的設(shè)計方法。</p><p>  調(diào)頻發(fā)射系統(tǒng)影響人身及設(shè)備安全的因素涉及人、機(jī)(設(shè)備) 、環(huán)境和管理4 個方面

3、。其中人的因素是核心, 設(shè)備是基礎(chǔ), 環(huán)境是外部條件, 管理制度是關(guān)鍵。在當(dāng)今調(diào)頻發(fā)射系統(tǒng)在不斷發(fā)展的進(jìn)程中,因此科技的不斷更新與創(chuàng)新成為本行業(yè)一個永恒不變的主題。</p><p>  關(guān)鍵詞: 單片機(jī)  數(shù)字化控制  BH1415F  調(diào)頻發(fā)射</p><p><b>  目 錄</b></p&g

4、t;<p><b>  摘 要1</b></p><p>  Abstract2</p><p><b>  目 錄3</b></p><p><b>  1 引 言3</b></p><p>  1.1 單片機(jī)C程序設(shè)計3</p>

5、<p>  1.2 單片機(jī)C程序簡介4</p><p>  1.3 單片機(jī)C語言的特點(diǎn)5</p><p>  1.4 單片機(jī)C語言的組成與優(yōu)點(diǎn)6</p><p>  2 數(shù)字調(diào)頻發(fā)射器設(shè)計7</p><p>  2.1 功能概述7</p><p>  2.2 系統(tǒng)原理簡介7</p

6、><p>  2.3 系統(tǒng)原理分析8</p><p>  2.4 軟件設(shè)計18</p><p>  2.5 對系統(tǒng)程序的設(shè)計21</p><p>  2.6 硬件調(diào)試26</p><p>  2.7 軟件調(diào)試26</p><p>  2.8 發(fā)射頻率的調(diào)試及性能分析26<

7、;/p><p>  3 控制源程序清單27</p><p><b>  結(jié) 論33</b></p><p><b>  致 謝34</b></p><p>  參 考 文 獻(xiàn)35</p><p><b>  1 引 言</b></

8、p><p>  目前大多數(shù)高校校內(nèi)用的調(diào)頻廣播發(fā)射器,發(fā)射頻率固定單一,穩(wěn)定性差。本文設(shè)計了可在80.0 MHZ至110.0MHZ范圍內(nèi)任意設(shè)置發(fā)射頻率的數(shù)字調(diào)頻發(fā)射器,可預(yù)置13個頻道,發(fā)射頻率調(diào)整最小值為0.1MHZ,具有單聲道/立體聲控制,比傳統(tǒng)調(diào)頻臺應(yīng)用更靈活可靠,可廣泛應(yīng)用于學(xué)校無線廣播、電視現(xiàn)場導(dǎo)播、汽車航行、無線演說等。</p><p>  1.1 單片機(jī)C程序設(shè)計</p

9、><p>  單片機(jī)C程序設(shè)計步驟如下:</p><p>  1 分析設(shè)計任務(wù),確定算法,畫出編程算法的流程圖。</p><p>  2 使用通用的文字編輯軟件,如EDIT、寫字板、WORD等編寫C源程序,也可在支持C語言的仿真器或編輯器上直接編寫,如Keil 51C編輯器。</p><p>  3在C編輯器上進(jìn)行調(diào)試和編譯,編譯后可生成后綴名為

10、HEX的十六進(jìn)制目標(biāo)程序文件。</p><p>  4用編輯器將目標(biāo)程序文件寫入單片機(jī)。</p><p>  1.2 單片機(jī)C程序簡介 </p><p>  在沒有硬件仿真系統(tǒng)或在線調(diào)試器時,如何對系統(tǒng)進(jìn)行調(diào)試或仿真,介紹基于單片機(jī)C程序Keil 51環(huán)境下的程序調(diào)試與軟件仿真方法,合理使用這些方法模擬實(shí)際運(yùn)行環(huán)境,驗(yàn)證程序設(shè)計,可以減少調(diào)試時間,提高編程效率。&

11、lt;/p><p>  Keil 51C是目前流行的單片機(jī)開發(fā)工具之一,它具有編譯、匯編、鏈接、實(shí)時操作系統(tǒng)、項目管理以及調(diào)試的功能,可以完成編輯、編譯、鏈接、調(diào)試、仿真等整個單片機(jī)開發(fā)流程。</p><p>  單片機(jī)系統(tǒng)軟件的開發(fā)總要和片內(nèi)、片外硬件設(shè)備息息相關(guān),比如外部設(shè)備、鍵盤、引腳信號變化、AD轉(zhuǎn)換、液晶、串口等;同時還需根據(jù)設(shè)備信號輸出相應(yīng)的控制信息。在沒有硬件仿真系統(tǒng)或在線調(diào)試器

12、,必須使用Keil 51C提供的軟件調(diào)試、仿真功能,它可以很方便地模擬單片機(jī)的運(yùn)行以及模擬片內(nèi)和片外的外圍器件的工作。將Keil 51C調(diào)試器配置成純軟件模式,可以不需要實(shí)際的目標(biāo)硬件就能夠模擬、仿真51系列單片機(jī)及外圍器件的很多功能。</p><p>  1 Keil 51C主要界面</p><p>  Keil 51C輔助程序調(diào)試的窗口或界面主要有輸出窗口、反匯編窗口、Watch窗口、

13、Memory窗口、ToolBox按鈕、Serial窗口、性能分析儀等。他們使程序的調(diào)試更加方便、直觀且功能強(qiáng)大。</p><p>  (1)Command頁:通過命令行的形式,向運(yùn)行中的程序發(fā)出調(diào)試命令,如顯示變量、表達(dá)式、寄存器、CPU引腳、加載用戶調(diào)試函數(shù)、信號函數(shù)等,然后等待程序返回,以此來驗(yàn)證目標(biāo)程序的正確性。Keil 51C提供了大量的內(nèi)部調(diào)試命令,如BREAK、DIR、SIGNAL、DISPLAY、I

14、NCLUDE等。命令行中輸入的命令是C語言的子集,大多數(shù)的C語句可以在此運(yùn)行。另外, Keil 51C還可以將命令行中輸入的調(diào)試信息,即整個調(diào)試過程用log命令記錄在文本文件中。使用時再用INCLUDE命令加載該文件,使調(diào)試信息與目標(biāo)程序同時運(yùn)行,它們一個在前臺,另一個在后臺運(yùn)行。</p><p>  (2)Serial窗口:串口輸入輸出窗口可用于系統(tǒng)調(diào)試時的輸入和輸出窗口??梢酝ㄟ^該窗口輸入信息、響應(yīng)用戶的交互

15、操作、輸出程序執(zhí)行中的一些變量值或信息。</p><p>  (3)斷點(diǎn)編輯器:充分使用斷點(diǎn),編輯各種斷點(diǎn),使程序在需要時中止運(yùn)行,以便控制整個目標(biāo)程序的運(yùn)行過程,監(jiān)視相關(guān)變量、寄存器或存儲區(qū)的變化。Keil 51C有豐富的斷點(diǎn)編輯功能和三種斷點(diǎn)類型:執(zhí)行斷點(diǎn)、條件斷點(diǎn)、以及存取斷點(diǎn)。</p><p>  (4)CPU片內(nèi)設(shè)備界面:包括I/O口,定時器,串口等,它是具體硬件電路的輸入和輸出

16、窗口。在程序調(diào)試運(yùn)行時,打開設(shè)備界面可以觀察到設(shè)備各參數(shù)值及其動態(tài)變化情況。同時,在需要輸入開關(guān)量的模擬中,可以直接修改界面上的各參數(shù)值進(jìn)行仿真輸入。</p><p>  (5)ToolBox按鈕:包含用戶配置的命令按鈕,單擊按鈕可以調(diào)用相關(guān)調(diào)試命令、信號函數(shù)或自定義函數(shù),可以完成命令行中所有的調(diào)試功能,提供給用戶良好的調(diào)試界面。</p><p>  1.3 單片機(jī)C語言的特點(diǎn)</

17、p><p>  單片機(jī)C語言是硬件設(shè)計人員的一種描述工具,硬件設(shè)計本身還是要人來完成的。單片機(jī)C語言被設(shè)計出來的目的是為了硬件設(shè)計,具有硬件的性質(zhì)。它用于描述電路系統(tǒng)的結(jié)構(gòu),接口,行為和功能,除了它具有的硬件特征的語句外,它的語言形式和描述風(fēng)格,以及句法與一般的計算機(jī)高級語言相當(dāng)類似,然而它又與軟件語言具有完全不同的性質(zhì)。</p><p>  單片機(jī)C語言主要用于設(shè)計數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能

18、和接口。除了含有許多具有硬件特征的語句外,單片機(jī)C語言的語言形式和描述風(fēng)格與句法是十分類似于一般的計算機(jī)高級語言。單片機(jī)C語言的程序結(jié)構(gòu)特點(diǎn)是將一項工程設(shè)計,或稱設(shè)計實(shí)體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實(shí)體。這種將設(shè)計實(shí)體分成內(nèi)外部分的概念是單片機(jī)C語

19、言系統(tǒng)設(shè)計的基本點(diǎn)。應(yīng)用單片機(jī)C語言進(jìn)行工程設(shè)計的優(yōu)點(diǎn)是多方面的。</p><p> ?。?)與其他的硬件描述語言相比,單片機(jī)C語言具有更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。強(qiáng)大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計大規(guī)模電子系統(tǒng)的重要保證。</p><p>  (2)單片機(jī)C語言豐富的調(diào)用函數(shù)和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計早期就能查驗(yàn)設(shè)

20、計系統(tǒng)的功能可行性,隨時可對設(shè)計進(jìn)行調(diào)試驗(yàn)證。</p><p> ?。?)單片機(jī)C語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實(shí)現(xiàn)。</p><p> ?。?)對于用單片機(jī)C語言完成的一個確定的設(shè)計,可以利用單片機(jī)工具進(jìn)行邏輯綜合和優(yōu)化,并自動的把單片機(jī)C語言描述設(shè)計轉(zhuǎn)變

21、成門級網(wǎng)表。 </p><p> ?。?)單片機(jī)C語言對設(shè)計的描述具有相對獨(dú)立性,設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計。</p><p> ?。?)單片機(jī)C語言的設(shè)計不依賴于特定的器件,方便了工藝的轉(zhuǎn)換。</p><p>  (7)單片機(jī)C語言是一個標(biāo)準(zhǔn)語言,為眾多的單片機(jī)廠商支持,移植性好。單片機(jī)C語言描述系統(tǒng)時,一般

22、有三種描述層次:行為描述、數(shù)據(jù)流描述 、結(jié)構(gòu)描述。行為級描述注重描述對象的功能,表示輸入與輸出之間的轉(zhuǎn)換行為;不包含結(jié)構(gòu)信息;數(shù)據(jù)流描述用邏輯方程描述對象的關(guān)系;結(jié)構(gòu)描述 (門級描述)直接給出實(shí)體實(shí)現(xiàn)的邏輯網(wǎng)表。</p><p>  1.4 單片機(jī)C語言的組成與優(yōu)點(diǎn)</p><p>  單片機(jī)C語言程序大致由函數(shù)說明、指針和指針變量、文件包含、及宏定義4 個部分組成。</p>

23、<p>  單片機(jī)C語言的優(yōu)點(diǎn):</p><p> ?。?)具有更強(qiáng)的行為描述能力,是系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。</p><p> ?。?)具有豐富的自定義函數(shù)和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計早期就能查驗(yàn)設(shè)計系統(tǒng)的功能可行性,隨時可對設(shè)計進(jìn)行仿真模擬。</p><p>  (3)單片機(jī)C語句的行為描述能力和程序結(jié)構(gòu)決定了它具有支持大規(guī)模設(shè)計的分解

24、和已有設(shè)計的再利用功能。該功能能滿足市場大規(guī)模系統(tǒng)高效、高速的需要,可替代多人甚至多個代發(fā)組共同工作。</p><p> ?。?)對于用單片機(jī)C語言完成的一個確定的設(shè)計,可以利用單片機(jī)工具進(jìn)行邏輯綜合和優(yōu)化,并自動地將單片機(jī)C語言描述設(shè)計轉(zhuǎn)變成門級網(wǎng)表。</p><p> ?。?)單片機(jī)C語言對設(shè)計的描述具有相對獨(dú)立性,設(shè)計者可以不懂硬件結(jié)構(gòu),也不必管最終設(shè)計實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)

25、立的設(shè)計。</p><p>  2 數(shù)字調(diào)頻發(fā)射器設(shè)計</p><p><b>  2.1 功能概述</b></p><p>  本設(shè)計的數(shù)字調(diào)頻發(fā)射器是能夠在80.0~109.9MHz的任意范圍內(nèi)設(shè)置發(fā)射頻率,可預(yù)置13個頻道,發(fā)射頻率調(diào)整最小值為0.1MHz,具有單聲道/立體聲控制,發(fā)射距離在20~50m范圍內(nèi),預(yù)期的目標(biāo)是希望它能夠廣

26、泛應(yīng)用于學(xué)校室內(nèi)無線廣播教學(xué)、電視現(xiàn)場導(dǎo)播等場所。</p><p>  為了實(shí)現(xiàn)調(diào)頻中心頻率的控制,本設(shè)計采用ROHM公司生產(chǎn)的調(diào)頻發(fā)射專用集成電路BH1415F,內(nèi)含立體聲信號調(diào)制,調(diào)頻廣播信號發(fā)射電路。</p><p>  BH1415F內(nèi)有前置補(bǔ)償電路、限制器電路、低通濾波器電路等,具有良好的音色,而這些電路是由許多分立的無源元件組成的。BH1415F還內(nèi)置PLL系統(tǒng)調(diào)頻發(fā)射電路,傳

27、輸頻率非常穩(wěn)定,并且調(diào)頻發(fā)射頻率可用單片機(jī)通過串行口進(jìn)行控制。</p><p>  本設(shè)計系統(tǒng)的硬件電路主要由單片機(jī)控制電路、調(diào)頻調(diào)制電路、電源電路組成。其中單片機(jī)控制器采用ATMEL公司的AT89C52,32個端口可滿足4位LED動態(tài)顯示、16(4X4)個操作按鍵的設(shè)計需要。調(diào)頻調(diào)制電路采用BH1415F芯片。電路電源采用單片機(jī)控制的數(shù)字調(diào)頻器功耗小,可用7805三端穩(wěn)壓塊分別對單片機(jī)和BH1415F電路單獨(dú)供

28、電,電源變壓器功率大于10w即可。實(shí)物圖如下:</p><p>  2.2 系統(tǒng)原理簡介</p><p>  為了實(shí)現(xiàn)調(diào)頻中心頻率的控制,本設(shè)計采用ROHM公司生產(chǎn)的調(diào)頻發(fā)射專用集成電路BH1415F,內(nèi)含立體聲信號調(diào)制,調(diào)頻廣播信號發(fā)射電路。</p><p>  BH1415F內(nèi)有前置補(bǔ)償電路、限制器電路、低通濾波器電路等,具有良好的音色,而這些電路是由許多分立

29、的無源元件組成的。BH1415F還內(nèi)置PLL系統(tǒng)調(diào)頻發(fā)射電路,傳輸頻率非常穩(wěn)定,并且調(diào)頻發(fā)射頻率可用單片機(jī)通過串行口進(jìn)行控制。</p><p>  本設(shè)計系統(tǒng)的硬件電路主要由單片機(jī)控制電路、調(diào)頻調(diào)制電路、電源電路組成。其中單片機(jī)控制器采用ATMEL公司的AT89C52,32個端口可滿足4位LED動態(tài)顯示、16(4X4)個操作按鍵的設(shè)計需要。調(diào)頻調(diào)制電路采用BH1415F芯片。電路電源采用單片機(jī)控制的數(shù)字調(diào)頻器功耗

30、小,可用7805三端穩(wěn)壓塊分別對單片機(jī)和BH1415F電路單獨(dú)供電,電源變壓器功率大于10w即可。</p><p>  2.3 系統(tǒng)原理分析</p><p>  單片機(jī)原理控制圖如下:</p><p>  單片機(jī)采用AT89C52,采用最小化應(yīng)用系統(tǒng)設(shè)計,P0口和P2口作為共陽LED數(shù)碼管驅(qū)動用,P1口作為16鍵的鍵盤接口,其中T0—T3分別為百位、十位、個位、小

31、數(shù)位的頻率操作鍵,T4—T14為發(fā)射頻率預(yù)置鍵,T15為單聲道/立體聲控制鍵。 P3.0、P3.1、P3.2作為與HB1415的通訊端口,用于傳送發(fā)射頻率控制數(shù)據(jù),P3.3用于立體聲發(fā)射批示。采用12MHZ晶振,模擬串口通訊。</p><p>  調(diào)頻調(diào)制發(fā)射部分原理圖如下:</p><p>  BH1415功能表如下:</p><p>  1 右聲道輸入端:通過電

32、容器與右聲道音頻信號相連 1/2VCC2 左音源輸入端:通過電容器與左聲道音頻信號相連 2,21 時間常數(shù)端:它連接一個電容為時間常數(shù)τ=22.7kΩC 3,20 LPF 時間常數(shù)端:這是15KHz LPF.它連接150P 電容 1/2VCC4 濾波器端:它是聲頻部份濾波器叁考電壓 1/2VCC5 立體聲復(fù)合信號輸出端:它連接到調(diào)頻調(diào)制器 1/2VCC6 接地端 GND7 PLL相位檢波器輸出端:它連接到PLL LPF電路

33、 -8 電源供給端 Vcc9 射頻振蕩器端:這是振蕩器基端,它連接振蕩時間常數(shù) 4/7Vcc10 射頻地端 GND11 射頻發(fā)送輸出端 Vcc-1.912 PLL電源供給端 Vcc13,14 X’tal 振蕩器端:它連接一個7.6MHz 晶振 -15 芯片授權(quán)端:連續(xù)輸入高電平數(shù)據(jù) 16 時鐘輸入端:帶數(shù)據(jù)和同步的時鐘在序列數(shù)據(jù)輸入。 17 數(shù)據(jù)輸入端 18 靜音端:0.8Vcc≤ Pin18 : Mute ON 0

34、.2VCC≥ Pin18 : Mute OFF 19 控制信號調(diào)節(jié)端 1/2Vcc</p><p>  采用Rohm公司最新生產(chǎn)的調(diào)頻發(fā)射專用集成電路BH1415F,內(nèi)含立體聲信號調(diào)制、調(diào)頻廣播信號發(fā)射電路,BH1415F內(nèi)有前置補(bǔ)償電路、限制器電路、低通濾波電路等,因此具有良好的音色,內(nèi)置PLL系統(tǒng)調(diào)頻發(fā)射電路,傳輸頻率非常穩(wěn)定。調(diào)頻發(fā)射頻率可用單片機(jī)通過串行口直接控制。</p><p&g

35、t;  BH1415芯片圖如下:</p><p>  本芯片供電一定要穩(wěn),可以7805穩(wěn)壓后饋入,單片機(jī)控制時的編程可用模擬串行通信的方式,用P1引腳控制.程序如下:</p><p>  #include<reg52.h>#define uchar unsigned char#define uint  unsigned int sbit MUTE =

36、 P1^0;sbit DI   = P1^1; sbit CLK  = P1^2; sbit CE   = P1^3;sbit KEY_1= P1^4;sbit KEY_2= P1^5;sbit KEY_3= P1^6;sbit KEY_4= P1^7;void Send_16(uint ui_Date, uchar uc_MONO ,uchar uc_PD);

37、        //發(fā)送數(shù)據(jù)函數(shù)void Key_Scan_1(void);     //控制靜音void Key_Scan_2(void);     //頻率步進(jìn) 精度0.1MHZvoid Key_Scan_3(void);     //頻率步退 精度

38、0.1MHZvoid Key_Scan_4(void);     //立體聲控制void Delay(void);     uchar uc_Count_1;uchar uc_Cou</p><p><b>  發(fā)射板實(shí)物圖如下:</b></p><p>  本設(shè)計采用自頂向下的方

39、法。首先從系統(tǒng)設(shè)計入手,在頂層進(jìn)行功能方框圖的劃分;然后對個模塊進(jìn)行設(shè)計并調(diào)試,在將其進(jìn)一步綜合。本設(shè)計的調(diào)頻發(fā)射鐘基于Keil C51語言,用TOP-DOWN思想進(jìn)行設(shè)計。具有延時子函數(shù)、LED動態(tài)掃描、頻率數(shù)據(jù)進(jìn)制轉(zhuǎn)換、控制命令合成子函數(shù)、BH1415F字節(jié)寫入、4╳4查鍵函數(shù)。設(shè)計時,首先用單片機(jī)C語言編寫各個功能模塊,分別在Keil C51編譯器開發(fā)環(huán)境下編譯、調(diào)試,然后在用頂層文件將各功能模塊連接起來。 </p>

40、<p><b>  2.4 軟件設(shè)計</b></p><p><b>  1.主要程序模塊:</b></p><p>  1)鍵盤掃描程序:采用4*4行列式查詢法。</p><p>  2)顯示程序:采用動態(tài)掃描法顯示4位頻率數(shù)字值。</p><p>  3)串行通訊程序:由十進(jìn)制BC

41、D碼轉(zhuǎn)二進(jìn)制程序、16位頻率控制字節(jié)合成程序、模擬異步串行發(fā)送程序組成。</p><p>  2.BH1415F串行通訊格式:</p><p>  BH1415F的頻率控制碼為16位,其傳送格式如下圖,其中D0—D10為頻率控制數(shù)據(jù),其值乘0.1即為BH1415F的輸出頻率(單位MHZ)。</p><p>  D11—D15為控制位,其中D11(MONO)位為單聲道

42、/立體聲控制位,當(dāng)0時為單聲道發(fā)射模式,1時為立體聲發(fā)射模式。D12(PD0)、D13(PD1)位用于相位控制,通常為0,當(dāng)分別為01和10時可使發(fā)射頻率在最低和最高處。D14(T0)和D15(T1)為測試模式控制用,通常為00,當(dāng)為10時為測試模式。 以下是單片機(jī)與BH1415F通訊用的控制字節(jié)發(fā)送源程序:</p><p>  PUT:      &#

43、160;  MOV   R3,#8       ;發(fā)送8位控制</p><p>  CLR   C        ;清C</p><p>  PUT1:     

44、   RRC   A        ;帶進(jìn)位位右移(先發(fā)低位)</p><p>  MOV   P3.0,C       ;低位送至P3.0口</p><p>  NOP  

45、;       ;延時4微秒</p><p>  NOP         ;</p><p>  NOP         ;</p><p>  N

46、OP         ;</p><p>  SETB  P3.1  ;鎖存數(shù)據(jù)(上升沿時鎖存數(shù)據(jù))</p><p>  NOP         ;延時4微秒</p><p

47、>  NOP         ;</p><p>  NOP         ;</p><p>  NOP         ;</p>

48、;<p>  CLR   P3.1       ;</p><p>  DJNZ  R3,PUT1      ;8位未發(fā)完轉(zhuǎn)PUT1再發(fā)</p><p>  RET      &

49、#160;  ; 8位發(fā)完結(jié)束</p><p>  2.5 對系統(tǒng)程序的設(shè)計</p><p>  主函數(shù)先對系統(tǒng)初始化,開機(jī)時先顯示一下“8888”,以檢查LED的段碼,然后預(yù)置發(fā)射頻率為100MHz,送入BH1415,最后進(jìn)入查鍵和顯示函數(shù)的循環(huán)。主函數(shù)程序流程圖如下:</p><p><b>  延時子函數(shù):</b>&

50、lt;/p><p>  延時函數(shù)在本系統(tǒng)中主要用于1ms和2s的延時。</p><p>  LED動態(tài)掃描子函數(shù):</p><p>  掃描函數(shù)使用單片機(jī)的兩個接口,一個端口輸出段碼,一個端口進(jìn)行列掃描,以實(shí)現(xiàn)LED的動態(tài)顯示。掃描函數(shù)執(zhí)行一次約為4 ms,在第二位LED顯示時點(diǎn)亮小數(shù)點(diǎn)。其程序流程圖如下:</p><p>  4. 頻率數(shù)據(jù)轉(zhuǎn)十

51、進(jìn)制BCD碼子函數(shù):</p><p>  頻率數(shù)據(jù)轉(zhuǎn)十進(jìn)制BCD碼子函數(shù)用于將4位十進(jìn)制換算成4個十進(jìn)制BCD碼,分別用于顯示,當(dāng)最高位位“0”時放入“熄滅”代碼OxOa,這樣當(dāng)頻率在99.9MHz以下時最高位不顯示0。</p><p><b>  控制命令合成子函數(shù)</b></p><p>  BH1415F字節(jié)寫入子函數(shù):</p>

52、;<p>  按照BH1415F字節(jié)傳送要求,按低位要求、低字節(jié)先送的原則。傳送的延時應(yīng)精確,在延時中用了_nop_()庫函數(shù),程序流程圖如下:</p><p><b>  查鍵子函數(shù):</b></p><p>  系統(tǒng)采用4*4行列式鍵盤。查鍵方法是將鍵盤口的低4位置0,讀入鍵盤口高4位,看是否為全1,若為全1,說明無鍵按下,否則說明有鍵按下,應(yīng)進(jìn)行鍵

53、碼的查詢。查詢方法依次對鍵盤口的低4位和高4位置0,再將二次讀入的高4位和低4位合成一個字節(jié),這個字節(jié)與每個按鍵有著唯一對應(yīng)的關(guān)系,通過查對進(jìn)行每一個按鍵的功能執(zhí)行。查鍵子函數(shù)程序流程圖如下:</p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  2.6 硬

54、件調(diào)試</b></p><p>  硬件調(diào)試時先檢查印制板及焊接質(zhì)量情況,在檢查無誤后可通電檢查。實(shí)驗(yàn)室制作時可結(jié)合示波器對晶振及P0、P1、P2端口的波形情況進(jìn)行綜合硬件測試分析。</p><p><b>  2.7 軟件調(diào)試</b></p><p>  軟件調(diào)試試用Keil C51編譯器,源程序編譯及仿真調(diào)試應(yīng)分段或以子函數(shù)為

55、單位一個一個進(jìn)行,最后可結(jié)合硬件實(shí)時運(yùn)行調(diào)試。</p><p>  2.8 發(fā)射頻率的調(diào)試及性能分析</p><p><b>  發(fā)射頻率的調(diào)試:</b></p><p>  在調(diào)通程序及硬件的情況下,調(diào)頻發(fā)射器應(yīng)基本能工作。在BH1415的11腳上接一段電線作為反射天線,在室內(nèi)應(yīng)能收到調(diào)頻廣播。當(dāng)發(fā)現(xiàn)頻率的最高端達(dá)不到110.0MHz時,應(yīng)

56、將振蕩電感減?。p小匝數(shù));而在低端的頻率達(dá)不到80. MHz時,應(yīng)增加振蕩電感的匝數(shù)。若在調(diào)整電感后還是沒有達(dá)到頻率覆蓋范圍,應(yīng)考慮更換變?nèi)荻O管(換變?nèi)莘秶蟮模?。振蕩電感調(diào)整后應(yīng)用蠟封好,防止發(fā)射器工作時因振蕩而產(chǎn)生頻率漂移。</p><p><b>  性能分析:</b></p><p>  用BH1415設(shè)計的小功率調(diào)頻發(fā)射器不僅設(shè)計簡單,而且頻率設(shè)定靈活

57、,可有效地避開當(dāng)?shù)氐恼{(diào)頻臺干擾,可應(yīng)用于室內(nèi)廣播、電視伴音轉(zhuǎn)發(fā)等小范圍的無線調(diào)頻轉(zhuǎn)播。因?yàn)榘l(fā)散的頻率變化范圍較大,其功率放大級沒有設(shè)計選頻回路,因此工作時功率管較熱,與市場上的單點(diǎn)調(diào)頻發(fā)射器相比,發(fā)射效率不是很高。</p><p><b>  3 控制源程序清單</b></p><p><b>  源程序如下:</b></p>&l

58、t;p>  /****************************************************************/</p><p>  //BH1415F調(diào)頻臺控制C源程序</p><p>  //使用KeilC51</p><p>  /**********************************************

59、******************/</p><p>  //使用AT89C52單片機(jī),12MZ晶振。用共陽四位LED數(shù)碼管 P0口輸出緞碼,P2口掃描</p><p>  #Programe sre(d:/aa.asm)</p><p>  #include “reg52.h”</p><p>  #include “intrins.h

60、”</p><p>  #define Disdata p0</p><p>  #define Discan p2</p><p>  #define keyio p1</p><p>  #define uchar unsigned char</p><p>  #define

61、 uint unsigned int</p><p>  sbit DA=p3~0;</p><p>  sbit CK=p3~1;</p><p>  sbit CE=p3~2;</p><p>  sbit DIN=p0~7;</p><p>  sbit monnlamp=p3~3;</p>

62、<p><b>  uint h;</b></p><p><b>  //</b></p><p><b>  //</b></p><p><b>  //</b></p><p>  unchar code dis_7[12]={ox

63、c0,oxA4,oxB0,ox99,ox92,ox82,oxF8,ox80,ox90,oxff,oxbf};</p><p>  /*共陽LED段碼表 "0","1","2","3","4","5","6","7","8","

64、9","不亮""-"*/</p><p>  Uchar code scan_con[4]={oxfe,oxfd,oxfb,oxf7};</p><p>  Uint data f_data{ox00},f_data1;</p><p>  Uchar data display[4]

65、={ox00,ox00,ox00,ox00};</p><p>  Uchar bdata condata=ox08;</p><p>  Sbit mono=condata~3;</p><p>  Uchar data concommand[2],keytemp;</p><p><b>  //&l

66、t;/b></p><p>  /********************************************************************/</p><p><b>  //</b></p><p><b>  //</b></p><p><b> 

67、 //</b></p><p>  /**************1us延時程序**********************/</p><p><b>  //</b></p><p>  Void delay (uint t)</p><p><b>  { </b></

68、p><p>  for(;t>0;t--);</p><p><b>  }</b></p><p><b>  //</b></p><p>  /***************LED動態(tài)掃描函數(shù)****************/</p><p><b>  s

69、can( )</b></p><p>  {char K ;</p><p>  for (k=0;k<4;k++)</p><p><b>  { </b></p><p>  distada=dis_7[display];</p><p>  if(k==1){DIN

70、[=0];}</p><p>  discan=san_con[k];delay(90);discan=0xff;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //</b></p><p>

71、<b>  //</b></p><p>  /*********************頻率轉(zhuǎn)換為十進(jìn)制BCD碼函數(shù)**********/</p><p>  tnrn_ bcd ( )</p><p><b>  {</b></p><p>  display[3]=f_data/1000;

72、if(display[3]==0){display[3]=10;}</p><p>  f_data1=fdata%1000;</p><p>  display[2]=f_data1/100;</p><p>  f_data1=f_data%100;</p><p>  display[1]=f_data1/10;</p>

73、<p>  display[0]=f_data%10;</p><p><b>  }</b></p><p>  /***************控制合成字************************/</p><p>  Command ( )</p><p><b>  {</b&

74、gt;</p><p>  command( )</p><p><b>  {</b></p><p>  concommand[1]=f_data/256;</p><p>  concommand[2]=f_data%256;</p><p>  concommand[1]=concom

75、mand[1]+condata;</p><p><b>  }</b></p><p>  /*******************寫入1字節(jié)函數(shù)***************************/</p><p>  write (uchar val)</p><p><b>  {</b>

76、;</p><p><b>  uchar i;</b></p><p><b>  CE=1;</b></p><p>  for(i=8;i>0;i--)</p><p><b>  {</b></p><p>  DA=val&ox

77、01;</p><p>  _nop(); _nop(); _nop(); _nop();</p><p><b>  CK=1;</b></p><p>  _nop();_nop();_nop();_nop();</p><p><b>  CK=0;</b></p

78、><p>  val=val/2;</p><p><b>  }</b></p><p><b>  CE=0;</b></p><p><b>  }</b></p><p>  /*************************控制字寫入1415函數(shù)

79、*******************/</p><p>  w_1415( )</p><p><b>  {</b></p><p>  write(concomman[0]);</p><p>  write(concomman[1]);</p><p><b>  }<

80、/b></p><p><b>  //</b></p><p>  /***********************頻率刷新***************************/</p><p><b>  fup( )</b></p><p><b>  {</b&g

81、t;</p><p>  turn_bcd( );</p><p>  command( );</p><p>  w_1415 ( );</p><p><b>  }</b></p><p><b>  //</b></p><p>  /

82、**********************查鍵程序****************************/</p><p>  read_key( )</p><p><b>  {</b></p><p>  keyio=0xf0;</p><p>  keytemp=(~keyio)oxfo;</p&g

83、t;<p>  if(keytemp!=0)</p><p><b>  {</b></p><p>  keytemp=keyio;</p><p>  keyio=oxof;</p><p>  keytemp=keytemp|keyio;</p><p>  while(((~

84、keyio)&oxox)!=0);</p><p>  switch(keytemp)</p><p><b>  {</b></p><p>  case238:{f_data++;if(f_data>1099;}fup();break;} //加0.1MHZ</p><p>  case222:

85、{f_data--;if(f_data<800;)fup();break;} //減0.1MHZ</p><p>  case190:{mono=~mono;if(mono){monolamp=1;fup();break;} //立體聲/單聲道切換</p><p>  case126:{f_data=1090;fup();break;} //預(yù)

86、置109.0MH</p><p>  case237:{f_data=1070;fup();break;} //預(yù)置107.0MHZ</p><p>  case221:{f_data=1050;fup();break;} //預(yù)置105.0MHZ</p><p>  case189:{f_data=1

87、030;fup();break;} //預(yù)置103.0MHZ</p><p>  case125:{f_data=1000;fup();break;} //預(yù)置100.0MHZ</p><p>  case235:{f_data=970;fup();break;} //預(yù)置97.0

88、MHZ</p><p>  case219:{f_data=950;fup();break;} //預(yù)置95.0MHZ</p><p>  case187:{f_data=930;fup();break;} //預(yù)置93.0MHZ</p><p>  case123:{f_data=900;

89、fup();break;} //預(yù)置90.0MHZ</p><p>  case231:{f_data=870;fup();break;} //預(yù)置87.0MHZ</p><p>  case215:{f_data=850;fup();break;} //預(yù)置85.0MHZ&l

90、t;/p><p>  case183:{f_data=830;fup();break;} //預(yù)置83.0MHZ</p><p>  case119:{f_data=800;fup();break;} //預(yù)置80.0MHZ</p><p>  default:{break;}</p>

91、;<p><b>  }</b></p><p><b>  }</b></p><p>  keyio=oxff;</p><p><b>  }</b></p><p><b>  //</b></p><p>&

92、lt;b>  //</b></p><p>  /*******************主函數(shù)*********************************/</p><p>  Main ( )</p><p><b>  {</b></p><p>  disdata=oxff;

93、 //初始化端?</p><p>  discan=oxff;</p><p>  keyio=oxff;</p><p>  DA=0; //BH1415禁止</p><p><b>  CK=0;</

94、b></p><p>  CE=0; </p><p>  for(h=o;h<4;h++){diplay[h]=a;} //開機(jī)顯示“8888”</p><p>  for(h=0;h<500;h++)</p&g

95、t;<p>  { scan( ); } //預(yù)置1000MHZ</p><p>  f_data=1000; //開機(jī)立體聲燈點(diǎn)亮</p><p>  monolamp=0; //頻率送入BH1415</p&

96、gt;<p><b>  fup( );</b></p><p>  while( )</p><p><b>  {</b></p><p>  read_key(); //查鍵按鈕</p><p>  scan();

97、 //顯示4ms</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //</b></p><p>  /******************************

98、****************/</p><p><b>  結(jié) 論</b></p><p>  通過這次數(shù)字調(diào)頻發(fā)射器的畢業(yè)設(shè)計,說明了設(shè)計單片機(jī)的基本方法和過程。用Keil C51語言實(shí)現(xiàn)單片機(jī)的設(shè)計過程,是一個以軟件設(shè)計為主,器件配置相結(jié)合的過程。這種軟件設(shè)計與硬件設(shè)計的結(jié)合,以一片器件代替由多片小規(guī)模集成數(shù)字電路組成的電路,其優(yōu)勢已經(jīng)越來越明顯。由此可

99、見,在進(jìn)行系統(tǒng)設(shè)計時,如果系統(tǒng)比較復(fù)雜,所需器件數(shù)目多,并要求體積小、速度快、功耗低時,首先應(yīng)該考慮用Keil C51語言來進(jìn)行系統(tǒng)程序設(shè)計,然后再進(jìn)行整體設(shè)計。</p><p>  在這次畢業(yè)設(shè)計過程中,我從一個對Keil C51語言還不太懂,算是一個入門的新手,到現(xiàn)在可以基本讀懂程序,并會用Keil C51編譯器對錯誤程序進(jìn)行基本修改的層次,這算是一種進(jìn)步。通過對數(shù)字調(diào)頻發(fā)射器這個設(shè)計任務(wù)進(jìn)行實(shí)際設(shè)計和調(diào)試,

100、這使我產(chǎn)生了對Keil C51語言乃至單片機(jī)應(yīng)用的濃厚興趣,相信這種興趣會在今后的學(xué)習(xí)工作中起到很大推動作用,我也相信,在今后,我會更深一步的去接觸Keil C51及其相關(guān)的語言。</p><p>  Keil C51是一種通用的標(biāo)準(zhǔn)硬件描述語言,融合并發(fā)展了眾多的硬件描述語言的各種優(yōu)點(diǎn),支持層次化,能對單片機(jī)系統(tǒng)進(jìn)行從基本到系統(tǒng)的描述。本文介紹Keil C51編譯系統(tǒng)的設(shè)計和實(shí)現(xiàn)技術(shù),Keil C51編譯系統(tǒng)是

101、Keil C51高層次綜合系統(tǒng)的前端,接受Keil C51語言源描述,編譯后生成供用戶使用的系統(tǒng)。</p><p>  還需要做的后續(xù)工作:</p><p>  1.在編譯系統(tǒng)提供的語言格式的基礎(chǔ)上,進(jìn)行后續(xù)綜合系統(tǒng)的設(shè)計實(shí)現(xiàn),包括各種調(diào)度和分配流程的研究。</p><p>  2.綜合系統(tǒng)的前端,本編譯器還需不斷的完善和補(bǔ)充,程序見調(diào)用有出錯的地方,需要改進(jìn)。&l

102、t;/p><p>  3.錯誤處理程序相對簡單,需要改進(jìn)。</p><p>  4.程序運(yùn)行中出現(xiàn)錯誤,和管腳接觸不當(dāng),需要改進(jìn)。</p><p><b>  參考文獻(xiàn)</b></p><p> ?。?)朱清慧,電子線路設(shè)計、制作與仿真。北京:清華大學(xué)出版社</p><p> ?。?)胡宴如,高頻電子

103、線路。北京:高等教育出版社。</p><p>  (3)劉聘,高頻電子技術(shù)。北京:人民郵電出版社。</p><p> ?。?)康華光,電子技術(shù)基礎(chǔ):模擬部分。北京:高等教育出版社。</p><p>  (5)張蕭文,高頻電子線路。北京:高等教育出版社。</p><p> ?。?)高吉祥,高頻電子線路。北京:電子工業(yè)出版社。</p>

溫馨提示

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

評論

0/150

提交評論