找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12737|回復(fù): 2
收起左側(cè)

單片機(jī)+BH1415F無線調(diào)頻發(fā)射器的設(shè)計論文

[復(fù)制鏈接]
ID:367157 發(fā)表于 2018-7-8 09:31 | 顯示全部樓層 |閱讀模式
無線調(diào)頻發(fā)射器的設(shè)計

The Design of Wireless Frequency Modulation Transmitter


摘    要
利用無線通信信道的遠(yuǎn)距離語音傳輸業(yè)務(wù),是近年來發(fā)展很快的一門技術(shù)。由于語音業(yè)務(wù)對誤碼不敏感,可以采用調(diào)頻方式發(fā)送信息。調(diào)頻發(fā)射器可以使音頻信息傳送到附近的任意FM接收機(jī)。本設(shè)計中使用AT89S52控制調(diào)頻發(fā)射的頻率,選擇了數(shù)碼管顯示發(fā)射的頻率狀態(tài)。選擇了ROHM  BH1415F集成電路產(chǎn)生調(diào)頻調(diào)制發(fā)射信號的頻率。芯片的主要特征:體積小,準(zhǔn)確性高,而且容易產(chǎn)生發(fā)射頻率。這個系統(tǒng)的各個部分可以進(jìn)行深入的獨立設(shè)計研究,現(xiàn)在把它們組合成一個典型的調(diào)頻發(fā)射系統(tǒng)。 本設(shè)計使用模擬調(diào)頻技術(shù),在88MHz--98MHz的頻段上,實現(xiàn)了線路輸入語音信號的小功率遠(yuǎn)距離單工發(fā)送。系統(tǒng)發(fā)射功率大約20mW,發(fā)射距離大于20m,本系統(tǒng)可實現(xiàn)無明顯失真的語音傳輸。


ABSTRACT
  The remote audio service code through wireless communication channels is a fast developing technology in recent years. As the audio service code is not sensitive to the mistaken code, the frequency modulation can be used to send information.The FM Transmitter will allow almost any audio source to be transmitted to any nearby FM receiver. The AT89S52 to be used to control the transmission frequency. The LED was chosen, providing enough space for all output situations. The ROHM BH1415F integrated circuit was chosen to create the frequency modulated audio output signal.  Chip features include: small size, accuracy, and easily programmed transmission frequency.  These system components have been thoroughly researched separately and are now in the process of being integrated to produce a working prototype FM Transmitter. The simulating frequency modulation technique was adopted in the design .In the frequency interval of 88MHz---98 MHz, the audio signals can be sent out and received with the small power in a long distance .The emissive power of the system is about20mW and the emissive distance is more than 20m.There is no obvious distortion in the audio transmission.     



目    錄

1 引言

1.1 通信的發(fā)展

1.2 廣播的發(fā)展現(xiàn)狀

1.3 設(shè)計思路

2系統(tǒng)概述

2.1 系統(tǒng)功能要求

2.2系統(tǒng)組成

3 方案論證與比較

3.1 無線調(diào)頻發(fā)射電路設(shè)計方案論證與選擇

3.2 壓控振蕩器方案論證與選擇

4 系統(tǒng)硬件電路的設(shè)計

4.1 單片機(jī)控制電路

4.1.1 內(nèi)部結(jié)構(gòu)

4.1.2 引腳功能

4.2 調(diào)頻調(diào)制發(fā)射電路

4.2.1 調(diào)頻調(diào)制電路的特點

4.2.2 結(jié)構(gòu)圖

4.2.3 允許的最大值

4.2.4 工作范圍

4.2.5 調(diào)頻調(diào)制發(fā)射電路的組成

4.3 鍵盤部分

4.3.1 單片機(jī)鍵盤和鍵盤接口概述

4.3.2 單片機(jī)鍵盤接口和鍵功能的實現(xiàn)

4.4  LC振蕩電路

4.5 調(diào)頻放大電路

4.6 電源模塊設(shè)計

4.6.1 單元電源電路設(shè)計

4.6.2 直流穩(wěn)壓電源的檢測

5 系統(tǒng)程序的設(shè)計

5.1 主程序

5.2 延時子程序

5.3 LED動態(tài)掃描子程序

5.4 頻率數(shù)據(jù)轉(zhuǎn)換子程序

5.5 控制命令合成子程序

5.6 BH1415F字節(jié)寫入子程序

5.7 查鍵子程序

6 系統(tǒng)調(diào)試及性能分析

6.1 硬件調(diào)試

6.2 軟件調(diào)試

6.3 發(fā)射頻率的調(diào)試

6.4 性能分析

結(jié)   論

參考文獻(xiàn)

附錄1:原理圖

附錄2:程序源代碼

附錄3:英文原文

附錄4:中文譯文

致   謝

1


天津工程師范學(xué)院2007屆本科生畢業(yè)設(shè)計  
1 引言1.1 通信的發(fā)展
人類社會的發(fā)展可視為一部信息傳播技術(shù)的發(fā)展史。從古代的烽火到近代的旗語,都是人們尋求快速遠(yuǎn)距離通信的手段。直到19世紀(jì)電磁學(xué)的理論與實踐已有堅實的基礎(chǔ)后,人們開始尋求用電磁能量傳送信息的方法。信息傳播促進(jìn)社會進(jìn)步和科學(xué)技術(shù)的發(fā)展;科學(xué)技術(shù)的進(jìn)步又不斷地改進(jìn)、更新人類信息傳播的媒體和工具,并促進(jìn)信息更迅速、更廣泛的傳播。
面向21世紀(jì)的無線通信,無線通信的系統(tǒng)組成、信道特性、調(diào)制與編碼、接入技術(shù)、網(wǎng)絡(luò)技術(shù)、抗衰落與抗干擾技術(shù)以及無線通信的新技術(shù)和新應(yīng)用的發(fā)展更是一日千里。
1.2 廣播的發(fā)展現(xiàn)狀
在21世紀(jì)的今天,廣播的主要技術(shù)方式是調(diào)頻廣播,它是繼調(diào)幅廣播(20世紀(jì)20年代開始的)的第二代廣播,它開始于20世紀(jì)50年代,克服了中波廣播的很多致命不足,如串臺嚴(yán)重、頻帶不夠分配,信噪比差等,而實現(xiàn)了高保真度、動態(tài)范圍寬、信噪比較好、較少串臺現(xiàn)象。
調(diào)頻廣播因其優(yōu)秀的音質(zhì)和抗干擾性能而成為城市廣播覆蓋的主要手段。隨著城市規(guī)模的日益擴(kuò)展,調(diào)頻發(fā)射臺的功率也跟著成數(shù)量級地增大,由原來的100W、300W上升到1KW、3KW、甚至10KW,而發(fā)射天線的高度也由幾十米上升到百余米甚至三四百米。隨之逐步形成了高塔大功率覆蓋的格局。
從廣播業(yè)界的角度來看,高塔大功率覆蓋模式的主要優(yōu)點是建設(shè)方便,省事省力,見效快。但其固有缺點和帶來的負(fù)面影響也是不容忽視的,主要有以下幾點:因調(diào)頻廣播工作于米波段,極易因高大建筑物和其他物體反射形成多徑干擾;因高山和低谷等地形因素會產(chǎn)生收不到信號的陰影區(qū);大區(qū)制覆蓋因頻率不能復(fù)用造成規(guī)劃困難;頻譜利用率低;不能解決長距離交通線的連續(xù)覆蓋問題。從社會發(fā)展的角度來看,它還有更重要的三條缺點:浪費能源,覆蓋區(qū)場強(qiáng)不均勻度可達(dá)60dB,大量超出需要的無效輻射,形成能源的巨大浪費;污染環(huán)境,大功率FM發(fā)射臺在天線附近周邊地區(qū)輻射場強(qiáng)超過環(huán)境電磁波衛(wèi)生標(biāo)準(zhǔn)已是不爭的事實;對航空無線電業(yè)務(wù)造成干擾。
由于相關(guān)的國家標(biāo)準(zhǔn)和國家軍用標(biāo)準(zhǔn)及頻率規(guī)劃多是10年以前制定的,那時尋呼業(yè)和調(diào)頻廣播剛起步不久,對干擾的認(rèn)識還遠(yuǎn)不充分,已不適應(yīng)當(dāng)今電磁環(huán)境現(xiàn)狀。當(dāng)時規(guī)定的17dB的防護(hù)率早已被突破,10KM的防護(hù)間距也已形同虛設(shè)。
在世界各國,頻率資源是有限的。國家已嚴(yán)格限制頻率的使用范圍。廣播頻率是政府部門頒發(fā)的,現(xiàn)在很多公司、媒體都愿意斥巨資競標(biāo)頻譜使用權(quán)。無線廣播中,單一載頻用來傳輸單一的或者單套立體聲節(jié)目。由于傳統(tǒng)的大功率的調(diào)頻廣播頻率資源的限制,使廣播技術(shù)工作者開辟了另一種廣播技術(shù)形式:小調(diào)頻同步廣播,它的特點是多布點、小功率、同頻、同相、同步廣播,使用的是現(xiàn)有的調(diào)頻技術(shù),不過存在著多點同步問題,這在技術(shù)上是可以克服的。信號傳輸可使用微波、有線甚至衛(wèi)星方式。
由于采用小功率按需布點的方法,在滿足覆蓋需要的前提下,把單臺發(fā)射機(jī)的功率大幅度降了下來,降到10W、50W、最大不超過300W,這就使諸多問題迎刃而解。對于多徑干擾,由于功率小了,大部分反射波場強(qiáng)下降到不至于產(chǎn)生干涉的水平,并且由于布點多,部分多徑干擾區(qū)可能被互相掩蓋;可以用同步補(bǔ)點的辦法消除陰影區(qū);小功率輻射易于規(guī)劃,且提高頻譜利用率;可方便組成單頻網(wǎng),滿足交通線上的無縫覆蓋,保證駕乘人員的不間斷接收;場強(qiáng)不均勻度僅為30dB,加上使用低高度垂直極化天線,極大地減小對空輻射和根部近場輻射,既節(jié)約能源,又滿足電磁環(huán)境衛(wèi)生標(biāo)準(zhǔn),并可避免造成對航空頻段的干擾。
1.3 設(shè)計思路
任何一個地區(qū)、一個城市都需要有很多專業(yè)的服務(wù)及新聞宣傳,如交通信息咨詢、健康咨詢、股市信息咨詢等,廣播又是大眾最靈活的信息接受媒體,這需要建立很多的廣播電臺,而作為一個國家的頻率資源是嚴(yán)格控制和有限的,因此,小調(diào)頻廣播就成了未來廣播的另一種主要形式,它是廣播發(fā)展的其中一個方向,是數(shù)字音頻廣播(DAB)、網(wǎng)絡(luò)廣播的有力補(bǔ)充,既節(jié)約了頻譜資源,又實現(xiàn)了廣播功能。  
為了實現(xiàn)上述要求,本文作者采用單片機(jī)AT89S52和調(diào)頻專用發(fā)射芯片 BH1415F及數(shù)碼顯示設(shè)計了一套完整的無線調(diào)頻發(fā)射系統(tǒng),設(shè)計為可在88MHz--98MHz范圍內(nèi)任意設(shè)置發(fā)射頻率,并且可以預(yù)置頻道,發(fā)射頻率通過單片機(jī)控制最小調(diào)整值為0.1MHz,具有單聲道/立體聲控制,實現(xiàn)了語音信息的短距離無線傳輸,可廣泛應(yīng)用于學(xué)校無線廣播、電視現(xiàn)場導(dǎo)播、汽車航行、無線演說等場所。


2系統(tǒng)概述
2.1 系統(tǒng)功能要求
設(shè)計一個無線調(diào)頻發(fā)射系統(tǒng),實現(xiàn)語音信號的短距離傳輸。由于語音業(yè)務(wù)對誤碼不敏感,可以采用調(diào)頻方式發(fā)送信息,設(shè)計中采用了BH1415F構(gòu)成音頻無線發(fā)射電路。無線調(diào)頻發(fā)射器可以在88--98MHz范圍內(nèi)任意設(shè)置發(fā)射頻率,可以預(yù)置發(fā)射頻道,發(fā)射頻率的最小調(diào)整值為0.1MHz,具有單聲道/立體聲控制,發(fā)射距離在20--50米之間。
語音信號采用調(diào)頻方式與調(diào)幅相比,有利于改善輸出音頻信號的信噪比,以保證語音業(yè)務(wù)的可靠傳輸,下表是調(diào)幅和調(diào)頻的優(yōu)缺點比較:

表2-1 調(diào)幅和調(diào)頻優(yōu)缺點比較

調(diào)幅(AM)
調(diào)頻(FM)
優(yōu)
傳播距離遠(yuǎn),覆蓋面大
  •    電路相對簡單
1.傳送音頻頻帶較寬(100Hz—5KHz)適宜于高保真音樂廣播
2.抗干擾性強(qiáng),內(nèi)設(shè)限幅器除去幅度干擾
3.應(yīng)用范圍廣,用于多種信息傳遞
4.可實現(xiàn)立體聲廣播
1.傳送音頻頻帶窄
(200Hz—2500Hz),高音缺乏      
2.傳播中易受干擾,噪聲大
傳播衰減大,覆蓋范圍小

2.2系統(tǒng)組成
本設(shè)計由單片機(jī)、鍵盤、數(shù)碼顯示、調(diào)頻發(fā)射、調(diào)頻放大和電源模塊等六部分組成,系統(tǒng)框圖如圖2-1所示。通過操作鍵盤可以設(shè)置和更改發(fā)射的頻率;單片機(jī)用于控制數(shù)碼管顯示對應(yīng)的發(fā)射頻率和發(fā)送頻率信號到調(diào)頻調(diào)制電路中;調(diào)頻發(fā)射將輸入的音頻信號調(diào)制后通過載波發(fā)送出去;數(shù)碼管用于顯示發(fā)射的頻率;調(diào)頻放大將得到的調(diào)制信號進(jìn)行放大;電源模塊則為整個電路提供電源。



3 方案論證與比較
3.1 無線調(diào)頻發(fā)射電路設(shè)計方案論證與選擇
方案1:采用單片調(diào)頻發(fā)射集成電路組成芯片MC2833。它可構(gòu)成發(fā)射高頻率信號的功率放大器。電路由音頻放大器、可變電抗器、射頻振蕩器、輸出緩沖器以及放大電路構(gòu)成。由集成芯片MC2833組成的調(diào)頻發(fā)射機(jī),先將語音通過話筒變成音頻電壓信號送給音頻放大器進(jìn)行音頻電壓放大,此音頻電壓信號經(jīng)耦合電容送給可變電抗的輸入端腳3去控制可變電抗,而由可變電抗以及電感、晶體與高頻振蕩器組成調(diào)頻振蕩電路,產(chǎn)生調(diào)頻波經(jīng)緩沖送給兩級二倍頻放大器。電路實現(xiàn)基本框圖如圖3-1所示。但由于該芯片涉及到的諧振回路較多,不易統(tǒng)調(diào),因而頻率不易控制,導(dǎo)致信號不穩(wěn)定,容易跑臺,實現(xiàn)較為困難。


方案2:采用集成芯片BA1404及相關(guān)電路構(gòu)成。它主要由前置音頻放大器,立體聲調(diào)制器,F(xiàn)M調(diào)制器及射頻放大器組成。利用內(nèi)部參考電壓改變變?nèi)荻䴓O管的電容值,可實現(xiàn)發(fā)射頻率的調(diào)整。圖3-2所示為電路框圖。此電路可實現(xiàn)立體聲調(diào)頻發(fā)射,典型調(diào)頻頻段為75-108MHz,振蕩頻率不易調(diào)整,尤其是低端頻率實現(xiàn)困難,難以實現(xiàn)要求頻段的調(diào)整。

方案3:采用集成芯片BH1415F及相關(guān)電路構(gòu)成。BH1415F是將預(yù)加重電路、限幅電路、低通濾波電路(LPF)一體化,使音頻信號的質(zhì)量比分立元件的電路(如:BA1404、NJM2035等)有很大改進(jìn)。此電路可實現(xiàn)立體聲調(diào)頻發(fā)射,采用了MCU 數(shù)據(jù)直接頻率設(shè)定,可設(shè)定70-120MHz頻率,由于采用了鎖相環(huán)鎖頻并與調(diào)頻發(fā)射電路一體化,使發(fā)射的頻率非常穩(wěn)定,并且可靠性好,抗干擾能力強(qiáng),容易實現(xiàn)調(diào)頻的要求。
綜上所述,為了實現(xiàn)中心頻率的控制和系統(tǒng)設(shè)計的功能要求,本設(shè)計選擇方案3,即采用集成芯片BH1415F及相關(guān)電路構(gòu)成音頻無線發(fā)射電路。
3.2 壓控振蕩器方案論證與選擇
方案1:采用分立元件構(gòu)成。利用低噪聲場效應(yīng)管,用單個變?nèi)荻䴓O管直接接入振蕩回路作為壓控器件。

圖3-3 壓控振蕩電路
電路是電容三點式振蕩器,如圖3-3所示。該方法實現(xiàn)簡單,但是調(diào)試?yán)щy,而且輸出頻率不易靈活控制[5]。
方案2:采用壓控振蕩器和變?nèi)荻䴓O管,及一個LC諧振回路構(gòu)成變?nèi)荻䴓O管壓控振蕩器。只需要調(diào)節(jié)變?nèi)荻䴓O管兩端的電壓,便可改變壓控振蕩的輸出頻率。由于采用了集成芯片,電路設(shè)計簡單,系統(tǒng)可靠性高,并且利用鎖相環(huán)頻率合成技術(shù)可以使輸出頻率穩(wěn)定度進(jìn)一步提高。
綜上所述,方案2具有更優(yōu)良的特性和更簡單的電路構(gòu)成,所以使用方案2作為本次設(shè)計的方案。


4 系統(tǒng)硬件電路的設(shè)計
4.1 單片機(jī)控制電路

    系統(tǒng)采用的微控制器是ATMEL公司生產(chǎn)的低功耗、高性能單片機(jī)AT89S52,它有32個外部雙向輸入/輸出 (I/O) 端口,片內(nèi)含8k bytes的可重復(fù)編程的Flash存儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器 (RAM),3個16位可編程定時計數(shù)器,1個全雙工串行通信口,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)。AT89S52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。

4.1.1 內(nèi)部結(jié)構(gòu)

AT89S52單片機(jī)包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時器/計數(shù)器、并行I/O口、串行I/O口和中斷系統(tǒng)等幾大單元以及數(shù)據(jù)總線、地址總線和控制總線三大總線構(gòu)成。圖4-1為單片機(jī)內(nèi)部結(jié)構(gòu)框圖[13]。

(1) 中央處理器

中央處理器(CPU)是整個單片機(jī)的核心部件,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運算和控制輸入輸出功能等操作。

(2) 程序存儲器

AT89S52共有8KB個E2PROM,用于存放用戶程序,原始數(shù)據(jù)或表格。

(3) 數(shù)據(jù)存儲器(RAM)

AT89S52內(nèi)部有128個8位用戶數(shù)據(jù)存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運算的中間結(jié)果或用戶定義的字型表。

圖4-1內(nèi)部結(jié)構(gòu)框圖

(4) 并行輸入輸出口

AT89S52共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。

(5) 串行輸入輸出口

AT89S52內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。

(6) 定時/計數(shù)器

AT89S52有三個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)功能,并以其定時或計數(shù)結(jié)果對單片機(jī)進(jìn)行控制。

(7) 中斷系統(tǒng)

AT89S52具備較完善的中斷功能,有兩個外中斷、三個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有兩級的優(yōu)先級別選擇。

4.1.2 引腳功能

圖4-2 AT89S52芯片引腳圖

(1) 電源和晶振

VCC:供電電壓。
GND:接地。

XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出。

(2) I/O口

① P0口

P0口的字節(jié)地址為80H,位地址為80H~87H。P0口既可以作為通用I/O口使用,也可以作為單片機(jī)系統(tǒng)的地址/數(shù)據(jù)線使用。當(dāng)作為輸出口使用時,由于輸出電路是漏極開路,必須外接上拉電阻才能有高電平輸出。
② P1口

P1口的字節(jié)地址為90H,位地址為90H~97H。P1口只能作為通用I/O口使用。當(dāng)作為輸出口使用時,已能對外提供推拉電流負(fù)載,外電路無需再接上拉電阻;當(dāng)作為輸入口使用時,應(yīng)先向其鎖存器寫入“1”,使輸出驅(qū)動電路的FET截止。

③ P2口

P2口的字節(jié)地址為0A0H,位地址為0A0H~0A7H。P2口用于為系統(tǒng)提供高位地址,但只作為地址線使用而不作為數(shù)據(jù)線使用。此外,P2口也可作為通用I/O口使用。

④ P3口

P3口的字節(jié)地址為0B0H,位地址為0B0H~0B7H。P3口可以作為通用I/O口使用,但在實際應(yīng)用中它的第二功能信號更為重要。

P3口引腳的第二功能,如下所示:
P3.0 RXD(串行輸入口)
P3.1 TXD(串行輸出口)
P3.2 /INT0(外部中斷0)
P3.3 /INT1(外部中斷1)
P3.4 T0(計時器0外部輸入)
P3.5 T1(計時器1外部輸入)
P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)
P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)
(3) 4根控制線

① RST:復(fù)位信號。保持RST腳兩個機(jī)器周期以上的高電平,就可以完成CPU系統(tǒng)復(fù)位操作,使系統(tǒng)的一些單元內(nèi)容回到規(guī)定值。
② /PSEN:外部程序存儲器讀選通信號。在讀外部ROM時,/PSEN有效(低電平),以實現(xiàn)外部ROM單元的讀操作。
③ /EA/VPP:訪問程序存儲器控制信號。當(dāng)/EA信號為低電平時,對ROM的讀操作限定在外部程序存儲器;而當(dāng)/EA為高電平時,則對ROM的讀操作是從內(nèi)部程序存儲器開始,并可延續(xù)至外部程序存儲器。

④ ALE/PROG:地址鎖存控制信號。在系統(tǒng)擴(kuò)展時,ALE用于控制P0口輸出的低8位地址送入鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的分時傳送。此外由于ALE是以六分之一晶振頻率的固定頻率輸出的正脈沖,因此也可作為外部時鐘或外部定時脈沖使用。



4.2 調(diào)頻調(diào)制發(fā)射電路
  本系統(tǒng)調(diào)頻調(diào)制發(fā)射部分電路采用了ROHM公司的調(diào)頻發(fā)射專用集成電路BH1415F。BH1415F 是一種無線音頻傳輸集成電路,它可以將計算機(jī)聲卡、游戲機(jī)、CD、DVD、MP3、調(diào)音臺等立體聲音頻信號進(jìn)行立體聲調(diào)制發(fā)射傳輸,配合普通的調(diào)頻立體聲接收機(jī)就可實現(xiàn)無線調(diào)頻立體聲傳送。適合用于生產(chǎn)立體聲的無線音箱、無線耳機(jī)、CD、MP3、DVD、PAD、筆記本計算機(jī)等的無線音頻適配器開發(fā)生產(chǎn)。這個集成電路是由提高信噪比(S/N)的預(yù)加重電路、防止信號過調(diào)的限幅電路、控制輸入信號頻率的低通濾波電路(LPF)、產(chǎn)生立體聲復(fù)合信號的立體聲調(diào)制電路、調(diào)頻發(fā)射的鎖相環(huán)電路(PLL)組成。
4.2.1 調(diào)頻調(diào)制電路的特點
(1)將預(yù)加重電路、限幅電路、低通濾波電路(LPF)一體化,使音頻信號的質(zhì)
量比分立元件的電路(如:BA1404、NJM2035等)有很大改進(jìn)。
(2)導(dǎo)頻方式的立體聲調(diào)制電路。
(3)采用了鎖相環(huán)鎖頻并與調(diào)頻發(fā)射電路一體化,合發(fā)射的頻率非常穩(wěn)定。
(4)采用了MCU 數(shù)據(jù)直接頻率設(shè)定,可設(shè)定70-120MHz頻率,使用上非常方便。
4.2.2 結(jié)構(gòu)圖
圖4-3 BH1415F 內(nèi)部結(jié)構(gòu)圖

4.2.3 允許的最大值
表4-1 BH1415F 工作時允許的最大值Ta=25℃ 基本電路測量)
項目
符號
范圍
單位
條件
電源電壓
Vcc
+7v
V
Pin8、12
輸入電壓
VIN-D
-0.3~Vcc+0.3
V
Pin15、16、17、18
相位比較器輸出電壓
VOUT-D
-0.3~Vcc+0.3
V
Pin7
功率
Pd
450
mW            

工作溫度范圍
Tstg
-55~+125


4.2.4 工作范圍
表4-2 BH1415F 工作范圍(Ta=25℃)
項目
符號
數(shù)值
單位
條件
工作電源電壓
Vcc
4.0~6.0
V
Pin8、12
工作溫度
Topr
-40~85

音頻輸入電平
VIN-A
~-10
dBV
Pin1、22
音頻輸入頻率
fIN-A
20~15K
Hz
Pin1、22
預(yù)加重延時
τPRE
~155
μsec
Pin2、21
發(fā)射頻率
fTX
87.7~107.9
MHz
Pin9、11
高電平電壓標(biāo)準(zhǔn)(H)
VIH
0.8Vcc~Vcc
V
Pin15、16、17、18
低電平電壓標(biāo)準(zhǔn)(L)
VIL
GND~0.2Vcc
V
Pin15、16、17、18

4.2.5 調(diào)頻調(diào)制發(fā)射電路的組成
(1)預(yù)加重電路
    預(yù)加重電路是一個非線性的音頻放大器,它的內(nèi)部工作點為1/2Vcc,因為它是非線性放大器,所以輸入阻抗取決為內(nèi)部電阻R3=43 KΩ,預(yù)加重時間取決于內(nèi)部電阻R2=22.7K和外部電容C1=2200p。
(2)限幅電路
限幅電路是由二極管限幅的反相放大器組成,它的內(nèi)部工作點為1/2 Vcc。
圖4-4 限幅電路

(3)低通濾波電路
    低通濾波電路是由二階低通反饋放大電路組成,它的分頻點為15KHz。

圖4-5 低通濾波電路

具體的公式如下:
Q=0.577、ω0=1.274 、fc=15KHz
R1=R2=R3=Rf=100KΩ                                      (4-1)
Cf=1/ω0 Rf=1/(2πX1.274X15KX100K)=83.28pF            (4-2)
C1=3Q Cf =3X0.577X83.28pF=144pF≈150pF                  (4-3)
C2=Cf/3Q=83.28p/(3X0.577)=48≈50pF                      (4-4)
(4)立體聲調(diào)制電路
音頻信號從第1腳和第22腳輸入后通過預(yù)加重電路、限幅電路和低通濾波電路后送到混合器(MPX)中,另外由第13、14腳接入7.6MHz晶體的振蕩電路通過200分頻后產(chǎn)生的38KHz副載波信號,同時38KHz副載波通2分頻產(chǎn)生的19KHz導(dǎo)頻信號。音頻信號和38KHz的副載波信號被多路復(fù)合器進(jìn)行了平衡調(diào)制,產(chǎn)生了一個主信號(L+R)和一個通過DSB 調(diào)制的38KHz 副載波信號(L-R),并與19KHz導(dǎo)頻信號組成復(fù)合信號從第5腳輸出。
(5)FM發(fā)射電路
    FM發(fā)射電路采用穩(wěn)定頻率的鎖相環(huán)系統(tǒng)。這一部分由高頻振蕩器、高頻放大器及鎖相環(huán)頻率合成器組成。調(diào)頻調(diào)制由變?nèi)荻䴓O管組成的高頻振蕩器實現(xiàn),高頻振蕩器是一個鎖相環(huán)的VCO,立體聲復(fù)合信號通過它直接進(jìn)行調(diào)頻調(diào)制。
高頻振蕩器是由第9腳外部的LC 回路與內(nèi)部電路組成,振蕩信號經(jīng)過高頻放大器從11腳輸出,同時輸送到鎖相環(huán)電路進(jìn)行比較后從第7腳輸出一個信號對高頻振蕩器的值進(jìn)行修正,確保頻率穩(wěn)定。如果頻率超過鎖相環(huán)設(shè)定的頻率,第7 腳將輸出的電平變高;如果是低于設(shè)定頻率,它將輸出的電平變低;相同的時候,它的電平將不變。
4.3 鍵盤部分4.3.1 單片機(jī)鍵盤和鍵盤接口概述
單片機(jī)使用的鍵盤可分為獨立式和矩陣式兩種。獨立式實際上就是一組相互獨立的按鍵,這些按鍵可直接與單片機(jī)的I/O接口連接,其方法是每個按鍵獨占一條口線,接口簡單[12]。矩陣式鍵盤也稱行列式鍵盤,因為鍵的數(shù)目較多,所以鍵按行列組成矩陣(如圖4-6所示)。









圖4-6 鍵盤接口電路圖

按一個鍵到鍵的功能被執(zhí)行主要應(yīng)包括兩項工作:一是鍵的識別,即在鍵盤中找出被按的是哪個鍵,通過接口電路來實現(xiàn);另一項是鍵功能的實現(xiàn),通過執(zhí)行中斷服務(wù)程序來完成。下面來介紹鍵盤接口問題[13]。
具體來說,鍵盤接口應(yīng)完成以下操作功能:
a 鍵盤掃描,以判定是否有鍵被按下(稱之為“閉合鍵”)。
b 鍵識別,以確定閉合鍵的行列位置。
c 產(chǎn)生閉合鍵的鍵碼。
d 排除多鍵、串鍵(復(fù)按)及去抖動。
這些內(nèi)容通常是以軟硬件結(jié)合的方式來完成的,即在軟件的配合下由接口電路來完成。但具體那些由硬件完成由軟件完成,要看接口電路的情況?偟脑瓌t是,硬件復(fù)雜軟件就簡單,硬件簡單軟件就得復(fù)雜一些。
4.3.2 單片機(jī)鍵盤接口和鍵功能的實現(xiàn)
(1) 鍵盤接口處理內(nèi)容
① 鍵掃描
鍵盤上的鍵按行列組成矩陣,在行列的交點上都對應(yīng)有一個鍵。為判定有無鍵按下(閉合鍵)以及被按鍵的位置,可使用兩種方法:掃描法和翻轉(zhuǎn)法,其中
掃描法使用較為普遍。
② 去抖動
當(dāng)掃描表明有鍵被按下之后,緊接著應(yīng)進(jìn)行去抖動處理。因為常用鍵盤的鍵實際上就是一個機(jī)械開關(guān)結(jié)構(gòu),被按下時,由于機(jī)械接觸點的彈性及電壓突跳等原因,在觸點閉合或斷開的瞬間會出現(xiàn)電壓抖動,如圖4-7所示。抖動時間長短與鍵的機(jī)械特性有關(guān),一般為5~10ms。而鍵的穩(wěn)定閉合時間和操作者按鍵動作有關(guān),大約為十分之幾到幾秒不等。

圖4-7 鍵閉合和斷開時的電壓抖動
③ 鍵碼計算
被按鍵確定下來之后,接下來的工作是計算閉合鍵的鍵碼,因為有了鍵碼,才能通過散轉(zhuǎn)指令把程序執(zhí)行轉(zhuǎn)到閉合鍵所對應(yīng)的中斷服務(wù)程序上去。也可以直接使用該閉合鍵的行列值組合產(chǎn)生鍵碼,但這樣做會使各子程序的入口地址比較散亂,給JMP指令的使用帶來不便。所以通常都是以鍵的排列順序安排鍵號,這樣安排,使鍵碼既可以根據(jù)行號列號以查表求得,也可以通過計算得到。若各行的首號依次是00H,04H,08H,0CH。若列號按0~3順序,則鍵碼的計算公式為:  鍵碼=行首號+列號
④ 等待鍵釋放
計算鍵碼之后,再以延時后進(jìn)行掃描的方法等待鍵釋放。等待鍵釋放是為了保證鍵的一次閉合僅進(jìn)行一次處理。
綜上所述,鍵盤接口處理的核心內(nèi)容是測試有無閉合鍵,對閉合鍵進(jìn)行去抖動處理,求得閉合鍵的鍵碼。
為了使鍵盤操作更穩(wěn)定可靠,還可以加一些附加功能。例如屏蔽功能:在對一個閉合鍵已進(jìn)行處理時,再按下其它鍵不會產(chǎn)生影響;對于一個鍵,不管按下多長時間,僅執(zhí)行一次鍵處理子程序等。
(2) 鍵盤接口的控制方式
在單片機(jī)的運行過程中,何時執(zhí)行鍵盤掃描和處理,可有以下3種情況:
① 隨機(jī)方式,每當(dāng)CPU空閑時執(zhí)行鍵盤掃描程序。
② 中斷方式,每當(dāng)有鍵閉合時才向CPU發(fā)出中斷請求,中斷響應(yīng)后執(zhí)行鍵盤掃描程序。
③ 定時方式,每隔一定時間執(zhí)行一次鍵盤掃描程序,定時可由單片機(jī)定時器完成。
(3) 鍵處理子程序
在計算機(jī)中每一個鍵都對應(yīng)一個處理子程序,得到閉合鍵的鍵碼后,就可以根據(jù)鍵碼,轉(zhuǎn)相應(yīng)的鍵處理子程序(分支是使用JMP等散轉(zhuǎn)指令實現(xiàn)的),進(jìn)行字符、數(shù)據(jù)的輸入或命令的處理,這樣就可以實現(xiàn)相應(yīng)鍵所設(shè)定的功能[14]。
4.4 LC振蕩電路
LC振蕩器起振條件
相位平衡條件:Xce和Xbe必需為同性質(zhì)的電抗,Xcb必需為異性質(zhì)的電抗,且它們之間滿足下列關(guān)系:
                                     (4-5)
即                                 
                                 (4-6)
幅度起振條件:                  
                                                    (4-7)
式中:——晶體管的跨導(dǎo),                  
——反饋系數(shù),   AU——放大器的增益,
——晶體管的輸入電導(dǎo),                  
——晶體管的輸出電導(dǎo),
——晶體管的等效負(fù)載電導(dǎo),
一般在0.1~0.5之間取值。
4.5 調(diào)頻放大電路
   調(diào)頻放大電路部分采用UPC1651 對調(diào)制信號進(jìn)行放大。
4.6 電源模塊設(shè)計4.6.1 單元電源電路設(shè)計
為了能夠讓單片機(jī)和調(diào)頻發(fā)射部分更好,更穩(wěn)定地工作,采用了圖4-8所示單元電源電路,由電源變壓器、橋堆和濾波電容器所組成。電源變壓器的初級電壓輸入為220V,次級輸出電壓為12V[15] [16]。
由于單片機(jī)所需的是+5V電源,經(jīng)濾波電容和三端穩(wěn)壓集成電路MC7812后可得到+12V電壓,MC7812能將15V~25V的直流電壓變換成12V的穩(wěn)定電壓,在12V的電壓中含有少量的低頻成分和接收外界的高頻成分,再經(jīng)后一級濾波后送三端穩(wěn)壓集成電路7805,7805能將大于7V~15V的直流電壓變換成5V的穩(wěn)定電壓。同時由于電流較大導(dǎo)致三端穩(wěn)壓集成電路MC7812和7805過熱,為了確保電路工作正常,給兩個芯片分別加上散熱片。



圖4-8 電源電路圖
4.6.2 直流穩(wěn)壓電源的檢測
本系統(tǒng)對電源要求高,因為穩(wěn)定性和可靠性在發(fā)射電路重要意義。為了提高穩(wěn)定性,所以采用如圖4-8的穩(wěn)壓電源,電源電路的主要部件采用集成的三端穩(wěn)壓器件如7812與7805,穩(wěn)壓電源輸入電壓范圍寬,輸出電壓穩(wěn)定,抗干擾能力強(qiáng),以滿足調(diào)頻發(fā)射機(jī)的要求[12]。
數(shù)字萬用表對穩(wěn)壓電源的測試結(jié)果:

表4-3 穩(wěn)壓電源的測試結(jié)果

輸入級(原)
濾波穩(wěn)壓輸出
輸出級
+12V直流穩(wěn)壓電源
220V
11.99 V
4.99V

  5 系統(tǒng)程序的設(shè)計5.1 主程序
首先,進(jìn)行整個程序的初始化及清屏,開機(jī)時先顯示一下“088.0”,預(yù)制發(fā)射頻率為88MHz,送入BH1415F,然后進(jìn)入查鍵和顯示函數(shù)的循環(huán)。當(dāng)有按鍵按下時,程序判斷是哪個鍵被按下,然后執(zhí)行相應(yīng)的按鍵功能,并調(diào)用數(shù)碼顯示,顯示所設(shè)置的發(fā)射頻率;當(dāng)沒有鍵按下時,返回鍵盤掃描,再判斷是否有鍵被按下。本次程序設(shè)計的整體流程圖,如圖5-1所示:


5.2 延時子程序
延時函數(shù)在本系統(tǒng)中主要用于1ms的顯示延時和10ms的按鍵消抖。
5.3 LED動態(tài)掃描子程序
掃描函數(shù)使用單片機(jī)的兩個端口,一個端口用于輸出段碼,一個端口用于行掃描,以實現(xiàn)LED 的動態(tài)顯示。掃描函數(shù)執(zhí)行一次約為4ms,在第二位LED顯示時點亮小數(shù)點。其程序流程圖如圖5-2所示:


5.4 頻率數(shù)據(jù)轉(zhuǎn)換子程序
將頻率數(shù)據(jù)由十進(jìn)制BCD碼轉(zhuǎn)為十六進(jìn)制數(shù)。
5.5 控制命令合成子程序
BH1415F的頻率控制字為兩個字節(jié)(如圖5—3所示)。兩個字節(jié)中低11位(D0—D10)為頻率數(shù)據(jù),其值乘以0.1即為BH1415F 的輸出頻率(單位為MHz)。高5位(D0—D15)為控制位。其中D11(MONO)位單聲道/立體聲控制位,該位為0時表示單聲道發(fā)射模式,該位為1時表示立體聲發(fā)射模式。D12(PD0)、D13(PD1)位用于相位控制,通常為0,當(dāng)分別為01和10時可使發(fā)射頻率在最低和最高處。D14(T0)和D15(T1)用于測試模式控制,通常為00,當(dāng)為10時為測試模式。合成時將控制命令(5位)與數(shù)據(jù)的最高3位合成一個字節(jié)。


圖5-3  BH1415F的頻率控制字及傳送格式

5.6 BH1415F字節(jié)寫入子程序
按照BH1415F字節(jié)傳送要求,按低位先送、低字節(jié)先送的原則。傳送的延時應(yīng)精確,程序流程圖如圖5-4、5-5所示。


5.7 查鍵子程序
系統(tǒng)采用4×4行列式鍵盤。鍵盤部分應(yīng)實現(xiàn)如下功能:首先,對鍵盤進(jìn)行掃描,判斷是否有鍵被按下。如果沒有,則轉(zhuǎn)回鍵盤掃描,看下次是否有鍵被按下;如果有鍵被按下,則先對鍵進(jìn)行去抖動,然后算出是哪個鍵被按下,再延時等待鍵釋放。因為每一個鍵都對應(yīng)一個處理子程序,得到閉合鍵的鍵碼后,就可以根據(jù)鍵碼,轉(zhuǎn)相應(yīng)的鍵處理子程序(分支是使用JMP等散轉(zhuǎn)指令實現(xiàn)的),進(jìn)行字符、數(shù)據(jù)的輸入或命令的處理。這樣就可以實現(xiàn)該鍵所設(shè)定的功能。
根據(jù)上述說明,畫出本次程序設(shè)計的鍵處理流程圖,如圖5-6所示:


6 系統(tǒng)調(diào)試及性能分析
6.1 硬件調(diào)試
硬件調(diào)試時先檢查電路板的焊接情況,在檢查無誤后可以通電檢查。實際制作中可結(jié)合示波器對晶振及P0、P1、P2口的波形情況進(jìn)行綜合硬件測試分析。
6.2 軟件調(diào)試
軟件調(diào)試使用偉福編譯軟件,源程序編譯及仿真調(diào)試應(yīng)分段或以子程序為單位一個一個進(jìn)行,最后可以結(jié)合硬件實時運行調(diào)試。
6.3 發(fā)射頻率的調(diào)試
調(diào)通程序及硬件的情況下,在BH1415F的11腳接上一段電線作為發(fā)射天線,在室內(nèi)可以收到調(diào)頻廣播。
如果調(diào)不出頻率,或者出了頻率但不由單片機(jī)控制,該類問題主要是壓控調(diào)試不對,沒有鎖相。在LC振蕩電路中,把振蕩產(chǎn)生的信號接入示波器,觀察示波器,調(diào)節(jié)中周的磁芯改變L的值使示波器的頻率讀數(shù)達(dá)到93MHz左右。先測試變?nèi)荻䴓O管上的電壓,頻率越高,電壓越高,調(diào)節(jié)電感匝距,使得頻率設(shè)置在98MHz時,電壓接近Vcc,頻率設(shè)置在88MHz時,電壓接近0V。當(dāng)發(fā)現(xiàn)頻率的最高端達(dá)不到98MHz時應(yīng)減小振蕩電感(減小匝數(shù));而在低端的頻率達(dá)不到要求時,要增加線圈匝數(shù)。
在調(diào)試中選用MC1648做壓控振蕩,雖然頻率達(dá)到了設(shè)計要求,但是干擾特別明顯,導(dǎo)致接收到的音頻信號質(zhì)量下降?紤]發(fā)射信號的音質(zhì)很重要,不采用MC1648,直接使用LC 振蕩電路。LC 振蕩電路的調(diào)試過程中需要多次更換電容和電感線圈,調(diào)整振蕩電路使BH1415F 可以振蕩。
如果調(diào)試中頻率覆蓋范圍沒有達(dá)到預(yù)期的效果,一個原因是變?nèi)荻䴓O管變?nèi)莘秶粔虼;也有可能LC振蕩電路調(diào)整的不完善。振蕩電感調(diào)好后用膠封住,防止發(fā)射器工作時由于振動而產(chǎn)生頻率漂移。
6.4 性能分析
用BH1415F設(shè)計的小功率調(diào)頻發(fā)射器不僅設(shè)計簡單,而且頻率設(shè)定靈活,可有效地避開當(dāng)?shù)氐恼{(diào)頻電臺,可應(yīng)用于室內(nèi)廣播、電視伴音轉(zhuǎn)發(fā)等小范圍的無線調(diào)頻轉(zhuǎn)播。

結(jié)   論
此次設(shè)計將應(yīng)用于無線通信領(lǐng)域,并且針對當(dāng)前市場上短距離無線產(chǎn)品的不足進(jìn)行了改進(jìn)。測試結(jié)果表明,設(shè)計要求的各項指標(biāo)均可以基本實現(xiàn),盡管發(fā)射的帶寬沒有到達(dá)預(yù)計的結(jié)果,原因是變?nèi)荻䴓O管的變?nèi)莘秶粔虼蟆R玫椒(wěn)定度高的發(fā)射頻率應(yīng)采用鎖相環(huán)技術(shù),來降低中心頻率的漂移。此外,語音信號采用調(diào)頻方式與調(diào)幅相比,有利于改善輸出音頻信號的信噪比,以保證語音業(yè)務(wù)的可靠傳輸。
無線調(diào)頻發(fā)射系統(tǒng)應(yīng)用了大量的高頻電子線路技術(shù),尤其是其中的高頻信號處理設(shè)計電路要有電路調(diào)試的環(huán)境,受實際調(diào)試環(huán)境的影響教大,調(diào)試具有較大難度。在電路的設(shè)計制作中,一定要遵循高頻布線規(guī)則,并且可以在焊接電路的過程中適當(dāng)接入退耦電容,有效的濾除雜波信號的干擾。
通過方案論證、資料查詢及電路設(shè)計和反復(fù)調(diào)試,不斷的解決電路調(diào)試過程中的問題,最終在規(guī)定的時間內(nèi)完成了設(shè)計任務(wù)。本設(shè)計由于水平有限,電路及程序設(shè)計還有需要改進(jìn)的地方,在今后的學(xué)習(xí)和研究中,將繼續(xù)改進(jìn)完善。
另外在調(diào)試過程中,以保證作品實現(xiàn)功能準(zhǔn)確為前提,盡量做到電路簡單、美觀,效果好成本低,以增強(qiáng)其實用價值。


參考文獻(xiàn)
[1] 李廣第,朱月秀等.單片機(jī)基礎(chǔ).北京:北京航空航天大學(xué)出版社,2001.
[2] 何立民.單片機(jī)高級教程-應(yīng)用與設(shè)計.北京:北京航空航天大學(xué)出版社, 2000.
[3] 沈德金等. MCS-51系列單片機(jī)接口電路與應(yīng)用程序?qū)嵗?北京:北京航空航天大學(xué)出版社,1990.
[4] 李光飛,李良兒等.單片機(jī)課程設(shè)計實例指導(dǎo).北京:北京航空航天大學(xué)出版社,2004.
[5] 鈴木憲次.高頻電路的設(shè)計與制作.科學(xué)出版社,2005.
[6] 張洪潤,藍(lán)清華等. 單片機(jī)應(yīng)用技術(shù)教程.北京:清華大學(xué)出版社,1997.
[7] 李華. MCS-51系列單片機(jī)實用接口技術(shù).北京:北京航空航天大學(xué)出版社 1993.
[8] 全國大學(xué)生電子設(shè)計競賽組委會.第五屆全國大學(xué)生電子設(shè)計競賽獲獎作品選編第1版,北京理工大學(xué)出版社,2005.
[9] 李鵬飛.AVR單片機(jī)與4×4小鍵盤的使用.無線電, 2006 (5):39-41.
[10] 李光飛,樓然苗等單片機(jī)C程序設(shè)計實例指導(dǎo).北京:北京航空航天大學(xué)出版社, 2005.
[11] 趙曉安. MCS-51單片機(jī)原理及應(yīng)用.天津:天津大學(xué)出版社,2001.
[12] 宋東生.整流濾波電路,無線電,2002(453):42-43.
[13] 吳景狄.單片機(jī)的鍵盤及LED數(shù)碼顯示接口.電子世界,2001(4):30-31.
[14] 陳粵初等. 單片機(jī)應(yīng)用系統(tǒng)設(shè)計與實踐.北京:北京航空航天大學(xué)出版社,1991.
[15] 譚博學(xué),苗匯靜等.集及成電路原理應(yīng)用.電子工業(yè)出版社,2003.
[16] 黃智偉,王彥等.全國大學(xué)生電子設(shè)計競賽訓(xùn)練教程.電子工業(yè)出版社,2004.
[17] 周興華.變?nèi)荻䴓O管和電調(diào)諧.電子世界,2000(6):54.
[18] 求是科技. 單片機(jī)典型模塊設(shè)計實例導(dǎo)航.北京:人民郵電出版社,2004.
[19] AT89C51,AT89C52說明書[S] ATMEL公司提供
[20] WU Xunwei,HANG Guoqiang,Massoud Pedram. Low power DC circuits employing AC power supply, SCIENCE IN CHINA (INFORMATION SCIENCES), 2002 Vol.45 No.3, 232.


附錄1:原理圖



單片機(jī)源程序如下:
  1. ;26H-29H放顯示小數(shù)位、個位、十位、百位BCD碼數(shù),24H-25H放頻率控制數(shù)據(jù)(十六進(jìn)制)
  2. ;
  3.          CONBITL  EQU  21H  ;頻率控制字節(jié)低8位
  4.          CONBITH  EQU  22H  ;頻率控制字節(jié)高8位
  5.          KEYWORD  EQU  23H  ;存放鍵掃描時P1口值
  6.          ORG              0000H      ;程序開始地址
  7.          LJMP START    ;轉(zhuǎn)START執(zhí)行
  8.          ORG               0003H      ;
  9.          RETI                                   ;不用中斷程序
  10.          ORG               000BH       ;
  11.                     RETI                                   ; 不用中斷程序
  12.          ORG 0013H       ;
  13.                     RETI                                   ; 不用中斷程序
  14.                     ORG               001BH       ;
  15.                     RETI                                   ; 不用中斷程序
  16.                     ORG               0023H       ;
  17.                     RETI                                   ; 不用中斷程序
  18.                     ORG              002BH      ;
  19.                     RETI                                   ;
  20. ;初始化程序
  21. CLEARMEN:    MOV   R0,#20H       ;20H-29H循環(huán)清0
  22.              MOV   R1,#0AH       ;
  23. CLEARLOOP:   MOV   @R0,#00H      ;
  24.              INC   R0                                   ;
  25.              DJNZ  R1,CLEARLOOP  ;
  26.              MOV   P0,#0FFH      ;四端口置1
  27.              MOV   P1,#0FFH      ;
  28.              MOV   P2,#0FFH      ;
  29.              MOV   P3,#0FFH      ;
  30.              CLR   P3.0                     ;BH1415禁止操作
  31.              CLR   P3.1                     ;
  32.              CLR   P3.2                     ;
  33.              LCALL KEYFUN15      ;置立體聲發(fā)射方式,開立體聲發(fā)射指示燈
  34. CLEAR1:      MOV   PCON,#00H                  ;控制寄存器清0
  35.              MOV   29H,#00H                     ; 置初始值為88MHZ(顯示為088.0)
  36.              MOV   28H,#08H                               ;
  37.              MOV   27H,#08H                     ;
  38.              MOV   26H,#00H                     ;
  39.              LCALL DISPUPDAT                              
  40.              RET                                                               ;子程序返回
  41. ;
  42. ;主程序
  43. START:       LCALL  CLEARMEN                     ;上電初始化
  44. MAIN:        LCALL  KEYWORK                      ;調(diào)查鍵子程序
  45.              LCALL  DISPLAY                      ;LED顯示一次
  46.              AJMP   MAIN                                   ;轉(zhuǎn)MAIN循環(huán)
  47.              NOP                                                               ;PC出錯處理
  48.              NOP                                                               ;
  49.              AJMP   START                                   ;重新初始化
  50. ;
  51. ; 4*4行列掃描查鍵子程序
  52. KEYWORK:     MOV    P1,#0FFH                   ; 置P1口為輸入狀態(tài)
  53.              CLR    P1.0                                   ;掃描第一行(第一行為0)
  54.              MOV    A,P1                                   ;讀入P1口值
  55.              ANL    A,#0F0H                     ;低四位為0
  56.              CJNE   A,#0F0H,KEYCON  ;高四位不為全1(有鍵按下)轉(zhuǎn)KEYCOON
  57.              SETB   P1.0                                   ; 掃描第二行(第二行為0)
  58.              CLR    P1.1                                   ;
  59.              MOV    A,P1                                   ; 讀入P1口值
  60.              ANL    A,#0F0H                     ; 低四位為0
  61.              CJNE   A,#0F0H,KEYCON  ; 高四位不為全1(有鍵按下)轉(zhuǎn)KEYCOON
  62.              SETB   P1.1                                   ; 掃描第三行(第三行為0)
  63.              CLR    P1.2                                   ;
  64.              MOV    A,P1                                   ; 讀入P1口值
  65.              ANL    A,#0F0H                     ; 低四位為0
  66.              CJNE   A,#0F0H,KEYCON   ; 高四位不為全1(有鍵按下)轉(zhuǎn)KEYCOON
  67.              SETB   P1.2                                   ; 掃描第四行(第四行為0)
  68.              CLR    P1.3                                   ;
  69.              MOV    A,P1                                   ; 讀入P1口值
  70.              ANL    A,#0F0H                     ; 低四位為0
  71.              CJNE   A,#0F0H,KEYCON   ; 高四位不為全1(有鍵按下)轉(zhuǎn)KEYCOON
  72.             SETB   P1.3                                   ;結(jié)束行掃描
  73.              RET                                                               ;子程序返回
  74. KEYCON:      LCALL  DL10MS          ;消抖處理
  75.              MOV    A,P1                                   ;再讀入P1口值
  76.              ANL    A,#0F0H                     ; 低四位為0
  77.              CJNE   A,#0F0H,KEYCHE   ; 高四位不為全1,確有鍵按下,轉(zhuǎn)KEYCHE
  78. KEYOUT:      RET                                                               ;干擾,子程序返回
  79. KEYCHE:      MOV    A,P1                                   ;讀P1口值
  80.              MOV    KEYWORD,A        ;放入23H暫存
  81. CJLOOP:      LCALL  DISPLAY                     ;調(diào)顯示子程序
  82.              MOV    A,P1                                   ;讀P1口值
  83.              ANL    A,#0F0H                     ;低四位為0
  84.              CJNE   A,#0F0H,CJLOOP   ;高四位為全1(鍵還按著),轉(zhuǎn)CJLOOP等待釋放
  85.              MOV    R7,#00H                     ;鍵釋放,置R7初值為#00H(查表次數(shù))
  86.              MOV    DPTR,#KEYTAB     ;取鍵值表首址
  87. CHEKEYLOOP:  MOV    A,R7                                   ;查表次數(shù)入A
  88.              MOVC    A,@A+DPTR       ;查表
  89.             XRL    A,KEYWORD                     ;查表值與P1口讀入值比較
  90.              JZ     KEYOK                                   ;為0(相等)轉(zhuǎn)KEYOK
  91.              INC    R7                                                 ;不等,查表次數(shù)加1
  92.              CJNE   R7,#10H,CHEKEYLOOP   ;查表次數(shù)不超過16次轉(zhuǎn)CHEKEYLOOP再查
  93.              RET                                                                             ;16次到,退出
  94. ;
  95. KEYOK:       MOV    A,R7                                   ;查表次數(shù)入A(即鍵號值)
  96.              MOV    B,A                                   ;放入B
  97.              RL                  A                                                 ;左移
  98.                    ADD    A,B                                   ;相加(鍵號乘3處理JMP 3字節(jié)指令)
  99.                    MOV    DPTR,#KEYFUNTAB              ;取鍵功能散轉(zhuǎn)表首址
  100.                    JMP    @A+DPTR                     ;查表
  101. KEYFUNTAB:   LJMP   KEYFUN00                     ; 鍵功能散轉(zhuǎn)表。跳至0號鍵功能程序
  102.                    LJMP   KEYFUN01                     ;
  103.              LJMP   KEYFUN02                                      
  104. LJMP   KEYFUN03
  105.              LJMP   KEYFUN04
  106.                    LJMP   KEYFUN05
  107.              LJMP   KEYFUN06
  108.                    LJMP   KEYFUN07
  109.              LJMP   KEYFUN08
  110.                    LJMP   KEYFUN09
  111.              LJMP   KEYFUN10
  112.                    LJMP   KEYFUN11
  113.              LJMP   KEYFUN12
  114.                    LJMP   KEYFUN13
  115.              LJMP   KEYFUN14
  116.                    LJMP   KEYFUN15                     ; 跳至15號鍵功能程序
  117.              RET                                                               ;散轉(zhuǎn)出錯返回
  118. ;
  119. ;鍵號對應(yīng)P1口數(shù)值表(同時按下兩鍵為無效操作)
  120. KEYTAB:      DB    0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH
  121.              DB    0EBH,0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H,0FFH,0FFH
  122. ;
  123. ;0號鍵功能程序
  124. KEYFUN00:    INC    29H         
  125.              MOV    A,29H                     
  126.              CLR    C                                    
  127.              CJNE   A,#02H,FUN00   
  128. FUN00:       JC     FUN00OUT        
  129.              MOV    29H,#00H        
  130. FUN00OUT:    MOV    A,29H                                 
  131.              XRL    A,#01H                                         
  132.              JNZ     F00OUT1                                         
  133.              MOV    28H,#00H                                         
  134.              AJMP   F00OUT                                         
  135. F00OUT1:     MOV    28H,#08H                                         
  136. F00OUT:      LCALL  DISPUPDAT     
  137.              RET                                                                                   
  138. ;
  139. ;01號鍵功能程序
  140. KEYFUN01:    INC    28H                                                      
  141.              MOV    A,28H                                         
  142.              CLR    C                                                      
  143.              CJNE   A,#0AH,FUN01                           
  144. FUN01:       JC     FUN01OUT                                         
  145.              MOV    28H,#00H                                         
  146. FUN01OUT:    MOV    A,29H                                         
  147.              XRL    A,#01H                                         
  148.              JNZ     F01OUT                                         
  149.              MOV    28H,#00H                                         
  150.              AJMP   F001OUT                                         
  151. F01OUT:      MOV    A,28H                                
  152.              XRL    A,#08H                                         
  153.              JZ     F001OUT                                         
  154.              MOV    A,28H                                         
  155.              XRL    A,#09H                                         
  156.              JZ     F001OUT                                         
  157.              MOV    28H,#08H                                         
  158. F001OUT:     LCALL  DISPUPDAT      
  159.              RET                                                                                   
  160. ;
  161. ;02號鍵功能程序
  162. KEYFUN02:    INC    27H                                                      
  163.              MOV    A,27H                                          ;
  164.              CLR    C                                                        ;
  165.              CJNE   A,#0AH,FUN02                           
  166. FUN02:       JC     FUN02OUT                                         
  167.              MOV    27H,#00H                                         
  168. FUN02OUT:    LCALL  DISPUPDAT                 
  169.             RET                                                                                    ;
  170. ;
  171. ;03號鍵功能程序
  172. KEYFUN03:    INC    26H                                                        ;
  173.              MOV    A,26H                                          ;
  174.              CLR    C                                                        ;
  175.              CJNE   A,#0AH,FUN03                           
  176. FUN03:       JC     FUN03OUT                                         
  177.              MOV    26H,#00H                                         
  178. FUN03OUT:    LCALL  DISPUPDAT      
  179.              RET                                                            
  180. ;
  181. ;04號鍵功能程序
  182. KEYFUN04:    MOV   29H,#01H      
  183.              MOV   28H,#00H
  184.              MOV   27H,#09H
  185.              MOV   26H,#00H
  186.              LCALL  DISPUPDAT      
  187.              RET
  188. ;
  189. ;05號鍵功能程序
  190. KEYFUN05:    MOV   29H,#01H       ;
  191.              MOV   28H,#00H
  192.              MOV   27H,#08H
  193.              MOV   26H,#00H
  194.              LCALL  DISPUPDAT       ;
  195.              RET
  196. ;
  197. ;06號鍵功能程序
  198. KEYFUN06:    MOV   29H,#01H      
  199.              MOV   28H,#00H
  200.              MOV   27H,#05H
  201.              MOV   26H,#00H
  202.              LCALL  DISPUPDAT      
  203.              RET
  204. ;
  205. ;07號鍵功能程序
  206. KEYFUN07:    MOV   29H,#01H      
  207.              MOV   28H,#00H
  208.              MOV   27H,#00H
  209.              MOV   26H,#00H
  210.              LCALL  DISPUPDAT      
  211.              RET
  212. ;
  213. ;08號鍵功能程序
  214. KEYFUN08:    MOV   29H,#00H      
  215.              MOV   28H,#09H
  216.              MOV   27H,#08H
  217.              MOV   26H,#00H
  218.              LCALL  DISPUPDAT      
  219.              RET
  220. ;
  221. ;09號鍵功能程序
  222. KEYFUN09:    MOV   29H,#00H        
  223.              MOV   28H,#09H
  224.              MOV   27H,#06H
  225.              MOV   26H,#00H
  226.              LCALL  DISPUPDAT      
  227.              RET
  228. ;
  229. ;10號鍵功能程序
  230. KEYFUN10:    MOV   29H,#00H        
  231.              MOV   28H,#09H
  232.              MOV   27H,#04H
  233.              MOV   26H,#00H
  234.              LCALL  DISPUPDAT      
  235. ;            RET
  236. ;11號鍵功能程序
  237. KEYFUN11:    MOV   29H,#00H        
  238.              MOV   28H,#09H
  239.              MOV   27H,#02H
  240.              MOV   26H,#00H
  241.              LCALL  DISPUPDAT                 
  242.              RET
  243. ;
  244. ;12號鍵功能程序
  245. KEYFUN12:   MOV   29H,#00H        
  246.              MOV   28H,#09H
  247.              MOV   27H,#00H
  248.              MOV   26H,#00H
  249.              LCALL  DISPUPDAT     
  250.              RET
  251. ;
  252. ;13號鍵功能程序
  253. KEYFUN13:    MOV   29H,#00H        
  254.              MOV   28H,#08H
  255.              MOV   27H,#08H
  256.              MOV   26H,#00H
  257.              LCALL  DISPUPDAT      
  258.              RET
  259. ;
  260. ;14號鍵功能程序      
  261. KEYFUN14:    MOV   29H,#00H
  262.              MOV   28H,#08H
  263.              MOV   27H,#07H
  264.              MOV   26H,#08H
  265.              LCALL  DISPUPDAT     
  266.              RET
  267. ;
  268. ;15號鍵功能程序
  269. KEYFUN15:    CPL   03H                                    
  270.              JNB    03H,MONO                              
  271.              CLR    P3.3                                            
  272.              LCALL  PUTBIT                              
  273.              RET                                                                        
  274. MONO:        SETB   P3.3                                            
  275.              LCALL  PUTBIT                              
  276.              RET                                                                        
  277. ;
  278. ; 將BCD碼轉(zhuǎn)為十六進(jìn)制數(shù),與5位控制碼合成操作碼,寫入控制芯片
  279. DISPUPDAT:   LCALL  BCDB                                            
  280. LCALL  CONCOMMAND                                       
  281. LCALL  PUTBIT      
  282.              RET                                                                         ;
  283. ; 將BCD碼轉(zhuǎn)為十六進(jìn)制數(shù)程序
  284. BCDB:        MOV    CONBITL,#00H                 ; 控制字清0
  285.              MOV    CONBITH,#00H                 ; 控制字清0
  286.              MOV    CONBITL,26H               
  287.              MOV    A,27H                                             ;個位數(shù)乘10操作
  288.              MOV    B,#10                                             ;
  289.              LCALL  MULLOOP                                   ;調(diào)乘法子程序
  290.              MOV    A,28H                                             ;十位數(shù)乘100操作
  291.              MOV    B,#100                              
  292.              LCALL  MULLOOP                                   ; 調(diào)乘法子程序
  293.              MOV    A,29H                                             ;
  294.              JNZ    ADD3E8                              
  295.              RET                                                                            ; 百位數(shù)為0退出
  296. ADD3E8:      CLR    C                                                           ;清進(jìn)位檔標(biāo)志
  297.              MOV    A,#0E8H                                             ;低8位加法
  298.              ADD    A,CONBITL                               ;累加
  299.              MOV    CONBITL,A                               ;放回CONBITL
  300.              MOV    A,#03H                                             ; 高8位加法
  301.              ADDC   A,CONBITH                               ;控制字高8位處理
  302.              MOV    CONBITH,A                               ;放回CONBITH
  303.              RET                                                                                       ;返回
  304. ;
  305. ;乘法及累加處理程序(將四位顯示的十進(jìn)制BCD碼轉(zhuǎn)為1個二進(jìn)制數(shù))
  306. MULLOOP:     MUL    AB                                                           ;乘法
  307.              CLR    C                                                           ;清進(jìn)位標(biāo)志
  308.              ADD    A,CONBITL                               ;積低8位與CONBITL相加
  309.              MOV    CONBITL,A                               ;放回CONBITL
  310.              MOV    A,CONBITH                               ;
  311.              ADDC   A,B                                            
  312.              MOV    CONBITH,A                               ;放回CONBITH
  313.              RET                                                                                       ;返回
  314. ;
  315. ;頻率控制數(shù)據(jù)與5位控制碼合成BH1415控制字
  316. CONCOMMAND:   ANL   CONBITH,#07H                 ;高四位為0
  317.              MOV   A,20H                                                           ;控制字放入A
  318.              ORL   A,CONBITH                               ;合成控制字
  319.              MOV   CONBITH,A                               ;放回CONBITH
  320.              RET                                                                                       ;返回
  321. ;
  322. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  323. ;;           顯示程序                  ;;
  324. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  325. ;共陽LED顯示,P0口輸出段碼,P2口輸出掃描字
  326. DISPLAY:     MOV R1,#26H                                                           ;顯示首址
  327.              MOV R5,#0FEH                                             ;設(shè)掃描字
  328. PLAY:        MOV A,R5                                                           ;放入A
  329.              MOV P2,A                                                           ;P2口輸出
  330.              MOV A,@R1                                                           ;取顯示數(shù)據(jù)
  331.              MOV DPTR,#TAB                                             ;取段碼表首址
  332.              MOVC A,@A+DPTR                                             ;查段碼
  333.              MOV P0,A                                                           ;從P0輸出
  334.              MOV A,R5                                                           ;讀入掃描字
  335.              JB ACC.1,PLAY1                                             ; 不是十位(LED),不顯示小數(shù)點
  336.              CLR P0.7                                                           ;是十位,顯示小數(shù)點
  337. PLAY1:       LCALL DL1MS                                                           ;點亮1毫秒
  338.              INC R1                                                                         ;指向下一顯示數(shù)據(jù)
  339.              JNB ACC.3,ENDOUT                               ;是第四位LED,退出
  340.              RL A                                                                                       ;不是,左移一位
  341.              MOV R5,A                                                           ;放回R5
  342.              SETB  P0.7                                                           ;關(guān)小數(shù)點
  343.              AJMP PLAY                                                           ;轉(zhuǎn)PLAY循環(huán)
  344. ENDOUT:      MOV  P2,#0FFH                                             ;顯示結(jié)束,關(guān)顯示輸出口
  345.              MOV  P0,#0FFH                                             ;
  346.              RET                                                                                       ;返回
  347. ;
  348. ;0-9共陽段碼表
  349. TAB: DB  0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0FFH
  350. ;
  351. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  352. ;;           發(fā)送控制字節(jié)子程序        ;;
  353. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  354. ;
  355. PUTBIT:      MOV   A,CONBITL                                             ;低8位控制字入A
  356.              SETB  P3.2                                                           ;BH1415使能(允許寫)
  357. ……………………

  358. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:

答辯提綱.doc

33 KB, 下載次數(shù): 21, 下載積分: 黑幣 -5

開題報告附頁.doc

47 KB, 下載次數(shù): 10, 下載積分: 黑幣 -5

論文.doc

829.5 KB, 下載次數(shù): 29, 下載積分: 黑幣 -5

任務(wù)書.doc

37.5 KB, 下載次數(shù): 14, 下載積分: 黑幣 -5

無線調(diào)頻發(fā)射器的設(shè)計.doc

539.5 KB, 下載次數(shù): 38, 下載積分: 黑幣 -5

中期報告.doc

32.5 KB, 下載次數(shù): 12, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報

ID:491420 發(fā)表于 2019-3-15 14:11 | 顯示全部樓層
請問BH14515F芯片為什么要外接一個LC振蕩回路,其內(nèi)部已經(jīng)有振蕩電路了,振蕩頻率怎么計算?
回復(fù)

使用道具 舉報

ID:777175 發(fā)表于 2023-12-25 18:24 | 顯示全部樓層
感謝樓主分享  這里有你更精彩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表