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

3 方案論證與比較3.1 無線調頻發(fā)射電路設計方案論證與選擇方案1:采用單片調頻發(fā)射集成電路組成芯片MC2833。它可構成發(fā)射高頻率信號的功率放大器。電路由音頻放大器、可變電抗器、射頻振蕩器、輸出緩沖器以及放大電路構成。由集成芯片MC2833組成的調頻發(fā)射機,先將語音通過話筒變成音頻電壓信號送給音頻放大器進行音頻電壓放大,此音頻電壓信號經耦合電容送給可變電抗的輸入端腳3去控制可變電抗,而由可變電抗以及電感、晶體與高頻振蕩器組成調頻振蕩電路,產生調頻波經緩沖送給兩級二倍頻放大器。電路實現基本框圖如圖3-1所示。但由于該芯片涉及到的諧振回路較多,不易統(tǒng)調,因而頻率不易控制,導致信號不穩(wěn)定,容易跑臺,實現較為困難。
方案2:采用集成芯片BA1404及相關電路構成。它主要由前置音頻放大器,立體聲調制器,FM調制器及射頻放大器組成。利用內部參考電壓改變變容二極管的電容值,可實現發(fā)射頻率的調整。圖3-2所示為電路框圖。此電路可實現立體聲調頻發(fā)射,典型調頻頻段為75-108MHz,振蕩頻率不易調整,尤其是低端頻率實現困難,難以實現要求頻段的調整。
方案3:采用集成芯片BH1415F及相關電路構成。BH1415F是將預加重電路、限幅電路、低通濾波電路(LPF)一體化,使音頻信號的質量比分立元件的電路(如:BA1404、NJM2035等)有很大改進。此電路可實現立體聲調頻發(fā)射,采用了MCU 數據直接頻率設定,可設定70-120MHz頻率,由于采用了鎖相環(huán)鎖頻并與調頻發(fā)射電路一體化,使發(fā)射的頻率非常穩(wěn)定,并且可靠性好,抗干擾能力強,容易實現調頻的要求。
綜上所述,為了實現中心頻率的控制和系統(tǒng)設計的功能要求,本設計選擇方案3,即采用集成芯片BH1415F及相關電路構成音頻無線發(fā)射電路。
3.2 壓控振蕩器方案論證與選擇
方案1:采用分立元件構成。利用低噪聲場效應管,用單個變容二極管直接接入振蕩回路作為壓控器件。
圖3-3 壓控振蕩電路
電路是電容三點式振蕩器,如圖3-3所示。該方法實現簡單,但是調試困難,而且輸出頻率不易靈活控制[5]。
方案2:采用壓控振蕩器和變容二極管,及一個LC諧振回路構成變容二極管壓控振蕩器。只需要調節(jié)變容二極管兩端的電壓,便可改變壓控振蕩的輸出頻率。由于采用了集成芯片,電路設計簡單,系統(tǒng)可靠性高,并且利用鎖相環(huán)頻率合成技術可以使輸出頻率穩(wěn)定度進一步提高。
綜上所述,方案2具有更優(yōu)良的特性和更簡單的電路構成,所以使用方案2作為本次設計的方案。
4 系統(tǒng)硬件電路的設計4.1 單片機控制電路 系統(tǒng)采用的微控制器是ATMEL公司生產的低功耗、高性能單片機AT89S52,它有32個外部雙向輸入/輸出 (I/O) 端口,片內含8k bytes的可重復編程的Flash存儲器和256 bytes的隨機存取數據存儲器 (RAM),3個16位可編程定時計數器,1個全雙工串行通信口,器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統(tǒng)。AT89S52可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發(fā)成本。
4.1.1 內部結構AT89S52單片機包含中央處理器、程序存儲器(ROM)、數據存儲器(RAM)、定時器/計數器、并行I/O口、串行I/O口和中斷系統(tǒng)等幾大單元以及數據總線、地址總線和控制總線三大總線構成。圖4-1為單片機內部結構框圖[13]。
(1) 中央處理器
中央處理器(CPU)是整個單片機的核心部件,能處理8位二進制數據或代碼,CPU負責控制、指揮和調度整個單元系統(tǒng)協(xié)調的工作,完成運算和控制輸入輸出功能等操作。
(2) 程序存儲器
AT89S52共有8KB個E2PROM,用于存放用戶程序,原始數據或表格。
(3) 數據存儲器(RAM)
AT89S52內部有128個8位用戶數據存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數據,用戶只能訪問,而不能用于存放用戶數據,所以,用戶能使用的RAM只有128個,可存放讀寫的數據,運算的中間結果或用戶定義的字型表。

圖4-1內部結構框圖
(4) 并行輸入輸出口
AT89S52共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數據的傳輸。
(5) 串行輸入輸出口
AT89S52內置一個全雙工串行通信口,用于與其它設備間的串行數據傳送,該串行口既可以用作異步通信收發(fā)器,也可以當同步移位器使用。
(6) 定時/計數器
AT89S52有三個16位的可編程定時/計數器,以實現定時或計數功能,并以其定時或計數結果對單片機進行控制。
(7) 中斷系統(tǒng)
AT89S52具備較完善的中斷功能,有兩個外中斷、三個定時/計數器中斷和一個串行中斷,可滿足不同的控制要求,并具有兩級的優(yōu)先級別選擇。
4.1.2 引腳功能

圖4-2 AT89S52芯片引腳圖
(1) 電源和晶振
VCC:供電電壓。
GND:接地。
XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出。
(2) I/O口
① P0口
P0口的字節(jié)地址為80H,位地址為80H~87H。P0口既可以作為通用I/O口使用,也可以作為單片機系統(tǒng)的地址/數據線使用。當作為輸出口使用時,由于輸出電路是漏極開路,必須外接上拉電阻才能有高電平輸出。
② P1口
P1口的字節(jié)地址為90H,位地址為90H~97H。P1口只能作為通用I/O口使用。當作為輸出口使用時,已能對外提供推拉電流負載,外電路無需再接上拉電阻;當作為輸入口使用時,應先向其鎖存器寫入“1”,使輸出驅動電路的FET截止。
③ P2口
P2口的字節(jié)地址為0A0H,位地址為0A0H~0A7H。P2口用于為系統(tǒng)提供高位地址,但只作為地址線使用而不作為數據線使用。此外,P2口也可作為通用I/O口使用。
④ P3口
P3口的字節(jié)地址為0B0H,位地址為0B0H~0B7H。P3口可以作為通用I/O口使用,但在實際應用中它的第二功能信號更為重要。
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(外部數據存儲器寫選通)
P3.7 /RD(外部數據存儲器讀選通)
(3) 4根控制線
① RST:復位信號。保持RST腳兩個機器周期以上的高電平,就可以完成CPU系統(tǒng)復位操作,使系統(tǒng)的一些單元內容回到規(guī)定值。
② /PSEN:外部程序存儲器讀選通信號。在讀外部ROM時,/PSEN有效(低電平),以實現外部ROM單元的讀操作。
③ /EA/VPP:訪問程序存儲器控制信號。當/EA信號為低電平時,對ROM的讀操作限定在外部程序存儲器;而當/EA為高電平時,則對ROM的讀操作是從內部程序存儲器開始,并可延續(xù)至外部程序存儲器。
④ ALE/PROG:地址鎖存控制信號。在系統(tǒng)擴展時,ALE用于控制P0口輸出的低8位地址送入鎖存器鎖存起來,以實現低位地址和數據的分時傳送。此外由于ALE是以六分之一晶振頻率的固定頻率輸出的正脈沖,因此也可作為外部時鐘或外部定時脈沖使用。
4.2 調頻調制發(fā)射電路 本系統(tǒng)調頻調制發(fā)射部分電路采用了ROHM公司的調頻發(fā)射專用集成電路BH1415F。BH1415F 是一種無線音頻傳輸集成電路,它可以將計算機聲卡、游戲機、CD、DVD、MP3、調音臺等立體聲音頻信號進行立體聲調制發(fā)射傳輸,配合普通的調頻立體聲接收機就可實現無線調頻立體聲傳送。適合用于生產立體聲的無線音箱、無線耳機、CD、MP3、DVD、PAD、筆記本計算機等的無線音頻適配器開發(fā)生產。這個集成電路是由提高信噪比(S/N)的預加重電路、防止信號過調的限幅電路、控制輸入信號頻率的低通濾波電路(LPF)、產生立體聲復合信號的立體聲調制電路、調頻發(fā)射的鎖相環(huán)電路(PLL)組成。
4.2.1 調頻調制電路的特點(1)將預加重電路、限幅電路、低通濾波電路(LPF)一體化,使音頻信號的質
量比分立元件的電路(如:BA1404、NJM2035等)有很大改進。
(2)導頻方式的立體聲調制電路。
(3)采用了鎖相環(huán)鎖頻并與調頻發(fā)射電路一體化,合發(fā)射的頻率非常穩(wěn)定。
(4)采用了MCU 數據直接頻率設定,可設定70-120MHz頻率,使用上非常方便。
4.2.2 結構圖
圖4-3 BH1415F 內部結構圖
4.2.3 允許的最大值
表4-1 BH1415F 工作時允許的最大值(Ta=25℃ 基本電路測量)
4.2.4 工作范圍
表4-2 BH1415F 工作范圍(Ta=25℃)
4.2.5 調頻調制發(fā)射電路的組成(1)預加重電路
預加重電路是一個非線性的音頻放大器,它的內部工作點為1/2Vcc,因為它是非線性放大器,所以輸入阻抗取決為內部電阻R3=43 KΩ,預加重時間取決于內部電阻R2=22.7K和外部電容C1=2200p。
(2)限幅電路
限幅電路是由二極管限幅的反相放大器組成,它的內部工作點為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)立體聲調制電路
音頻信號從第1腳和第22腳輸入后通過預加重電路、限幅電路和低通濾波電路后送到混合器(MPX)中,另外由第13、14腳接入7.6MHz晶體的振蕩電路通過200分頻后產生的38KHz副載波信號,同時38KHz副載波通2分頻產生的19KHz導頻信號。音頻信號和38KHz的副載波信號被多路復合器進行了平衡調制,產生了一個主信號(L+R)和一個通過DSB 調制的38KHz 副載波信號(L-R),并與19KHz導頻信號組成復合信號從第5腳輸出。
(5)FM發(fā)射電路
FM發(fā)射電路采用穩(wěn)定頻率的鎖相環(huán)系統(tǒng)。這一部分由高頻振蕩器、高頻放大器及鎖相環(huán)頻率合成器組成。調頻調制由變容二極管組成的高頻振蕩器實現,高頻振蕩器是一個鎖相環(huán)的VCO,立體聲復合信號通過它直接進行調頻調制。
高頻振蕩器是由第9腳外部的LC 回路與內部電路組成,振蕩信號經過高頻放大器從11腳輸出,同時輸送到鎖相環(huán)電路進行比較后從第7腳輸出一個信號對高頻振蕩器的值進行修正,確保頻率穩(wěn)定。如果頻率超過鎖相環(huán)設定的頻率,第7 腳將輸出的電平變高;如果是低于設定頻率,它將輸出的電平變低;相同的時候,它的電平將不變。
4.3 鍵盤部分4.3.1 單片機鍵盤和鍵盤接口概述
單片機使用的鍵盤可分為獨立式和矩陣式兩種。獨立式實際上就是一組相互獨立的按鍵,這些按鍵可直接與單片機的I/O接口連接,其方法是每個按鍵獨占一條口線,接口簡單[12]。矩陣式鍵盤也稱行列式鍵盤,因為鍵的數目較多,所以鍵按行列組成矩陣(如圖4-6所示)。
圖4-6 鍵盤接口電路圖
按一個鍵到鍵的功能被執(zhí)行主要應包括兩項工作:一是鍵的識別,即在鍵盤中找出被按的是哪個鍵,通過接口電路來實現;另一項是鍵功能的實現,通過執(zhí)行中斷服務程序來完成。下面來介紹鍵盤接口問題[13]。
具體來說,鍵盤接口應完成以下操作功能:
a 鍵盤掃描,以判定是否有鍵被按下(稱之為“閉合鍵”)。
b 鍵識別,以確定閉合鍵的行列位置。
c 產生閉合鍵的鍵碼。
d 排除多鍵、串鍵(復按)及去抖動。
這些內容通常是以軟硬件結合的方式來完成的,即在軟件的配合下由接口電路來完成。但具體那些由硬件完成由軟件完成,要看接口電路的情況。總的原則是,硬件復雜軟件就簡單,硬件簡單軟件就得復雜一些。
4.3.2 單片機鍵盤接口和鍵功能的實現(1) 鍵盤接口處理內容
① 鍵掃描
鍵盤上的鍵按行列組成矩陣,在行列的交點上都對應有一個鍵。為判定有無鍵按下(閉合鍵)以及被按鍵的位置,可使用兩種方法:掃描法和翻轉法,其中
掃描法使用較為普遍。
② 去抖動
當掃描表明有鍵被按下之后,緊接著應進行去抖動處理。因為常用鍵盤的鍵實際上就是一個機械開關結構,被按下時,由于機械接觸點的彈性及電壓突跳等原因,在觸點閉合或斷開的瞬間會出現電壓抖動,如圖4-7所示。抖動時間長短與鍵的機械特性有關,一般為5~10ms。而鍵的穩(wěn)定閉合時間和操作者按鍵動作有關,大約為十分之幾到幾秒不等。
圖4-7 鍵閉合和斷開時的電壓抖動
③ 鍵碼計算
被按鍵確定下來之后,接下來的工作是計算閉合鍵的鍵碼,因為有了鍵碼,才能通過散轉指令把程序執(zhí)行轉到閉合鍵所對應的中斷服務程序上去。也可以直接使用該閉合鍵的行列值組合產生鍵碼,但這樣做會使各子程序的入口地址比較散亂,給JMP指令的使用帶來不便。所以通常都是以鍵的排列順序安排鍵號,這樣安排,使鍵碼既可以根據行號列號以查表求得,也可以通過計算得到。若各行的首號依次是00H,04H,08H,0CH。若列號按0~3順序,則鍵碼的計算公式為: 鍵碼=行首號+列號
④ 等待鍵釋放
計算鍵碼之后,再以延時后進行掃描的方法等待鍵釋放。等待鍵釋放是為了保證鍵的一次閉合僅進行一次處理。
綜上所述,鍵盤接口處理的核心內容是測試有無閉合鍵,對閉合鍵進行去抖動處理,求得閉合鍵的鍵碼。
為了使鍵盤操作更穩(wěn)定可靠,還可以加一些附加功能。例如屏蔽功能:在對一個閉合鍵已進行處理時,再按下其它鍵不會產生影響;對于一個鍵,不管按下多長時間,僅執(zhí)行一次鍵處理子程序等。
(2) 鍵盤接口的控制方式
在單片機的運行過程中,何時執(zhí)行鍵盤掃描和處理,可有以下3種情況:
① 隨機方式,每當CPU空閑時執(zhí)行鍵盤掃描程序。
② 中斷方式,每當有鍵閉合時才向CPU發(fā)出中斷請求,中斷響應后執(zhí)行鍵盤掃描程序。
③ 定時方式,每隔一定時間執(zhí)行一次鍵盤掃描程序,定時可由單片機定時器完成。
(3) 鍵處理子程序
在計算機中每一個鍵都對應一個處理子程序,得到閉合鍵的鍵碼后,就可以根據鍵碼,轉相應的鍵處理子程序(分支是使用JMP等散轉指令實現的),進行字符、數據的輸入或命令的處理,這樣就可以實現相應鍵所設定的功能[14]。
4.4 LC振蕩電路LC振蕩器起振條件
相位平衡條件:Xce和Xbe必需為同性質的電抗,Xcb必需為異性質的電抗,且它們之間滿足下列關系:

(4-5)
即

(4-6)
幅度起振條件:
(4-7)
式中:

——晶體管的跨導,

——反饋系數, AU——放大器的增益,

——晶體管的輸入電導,

——晶體管的輸出電導,

——晶體管的等效負載電導,

一般在0.1~0.5之間取值。
4.5 調頻放大電路 調頻放大電路部分采用UPC1651 對調制信號進行放大。
4.6 電源模塊設計4.6.1 單元電源電路設計為了能夠讓單片機和調頻發(fā)射部分更好,更穩(wěn)定地工作,采用了圖4-8所示單元電源電路,由電源變壓器、橋堆和濾波電容器所組成。電源變壓器的初級電壓輸入為220V,次級輸出電壓為12V[15] [16]。
由于單片機所需的是+5V電源,經濾波電容和三端穩(wěn)壓集成電路MC7812后可得到+12V電壓,MC7812能將15V~25V的直流電壓變換成12V的穩(wěn)定電壓,在12V的電壓中含有少量的低頻成分和接收外界的高頻成分,再經后一級濾波后送三端穩(wěn)壓集成電路7805,7805能將大于7V~15V的直流電壓變換成5V的穩(wěn)定電壓。同時由于電流較大導致三端穩(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)定,抗干擾能力強,以滿足調頻發(fā)射機的要求[12]。
數字萬用表對穩(wěn)壓電源的測試結果:
表4-3 穩(wěn)壓電源的測試結果
5 系統(tǒng)程序的設計5.1 主程序首先,進行整個程序的初始化及清屏,開機時先顯示一下“088.0”,預制發(fā)射頻率為88MHz,送入BH1415F,然后進入查鍵和顯示函數的循環(huán)。當有按鍵按下時,程序判斷是哪個鍵被按下,然后執(zhí)行相應的按鍵功能,并調用數碼顯示,顯示所設置的發(fā)射頻率;當沒有鍵按下時,返回鍵盤掃描,再判斷是否有鍵被按下。本次程序設計的整體流程圖,如圖5-1所示:
5.2 延時子程序延時函數在本系統(tǒng)中主要用于1ms的顯示延時和10ms的按鍵消抖。
5.3 LED動態(tài)掃描子程序掃描函數使用單片機的兩個端口,一個端口用于輸出段碼,一個端口用于行掃描,以實現LED 的動態(tài)顯示。掃描函數執(zhí)行一次約為4ms,在第二位LED顯示時點亮小數點。其程序流程圖如圖5-2所示:
5.4 頻率數據轉換子程序 將頻率數據由十進制BCD碼轉為十六進制數。
5.5 控制命令合成子程序BH1415F的頻率控制字為兩個字節(jié)(如圖5—3所示)。兩個字節(jié)中低11位(D0—D10)為頻率數據,其值乘以0.1即為BH1415F 的輸出頻率(單位為MHz)。高5位(D0—D15)為控制位。其中D11(MONO)位單聲道/立體聲控制位,該位為0時表示單聲道發(fā)射模式,該位為1時表示立體聲發(fā)射模式。D12(PD0)、D13(PD1)位用于相位控制,通常為0,當分別為01和10時可使發(fā)射頻率在最低和最高處。D14(T0)和D15(T1)用于測試模式控制,通常為00,當為10時為測試模式。合成時將控制命令(5位)與數據的最高3位合成一個字節(jié)。
圖5-3 BH1415F的頻率控制字及傳送格式
5.6 BH1415F字節(jié)寫入子程序按照BH1415F字節(jié)傳送要求,按低位先送、低字節(jié)先送的原則。傳送的延時應精確,程序流程圖如圖5-4、5-5所示。
5.7 查鍵子程序系統(tǒng)采用4×4行列式鍵盤。鍵盤部分應實現如下功能:首先,對鍵盤進行掃描,判斷是否有鍵被按下。如果沒有,則轉回鍵盤掃描,看下次是否有鍵被按下;如果有鍵被按下,則先對鍵進行去抖動,然后算出是哪個鍵被按下,再延時等待鍵釋放。因為每一個鍵都對應一個處理子程序,得到閉合鍵的鍵碼后,就可以根據鍵碼,轉相應的鍵處理子程序(分支是使用JMP等散轉指令實現的),進行字符、數據的輸入或命令的處理。這樣就可以實現該鍵所設定的功能。
根據上述說明,畫出本次程序設計的鍵處理流程圖,如圖5-6所示:
6 系統(tǒng)調試及性能分析6.1 硬件調試硬件調試時先檢查電路板的焊接情況,在檢查無誤后可以通電檢查。實際制作中可結合示波器對晶振及P0、P1、P2口的波形情況進行綜合硬件測試分析。
6.2 軟件調試軟件調試使用偉福編譯軟件,源程序編譯及仿真調試應分段或以子程序為單位一個一個進行,最后可以結合硬件實時運行調試。
6.3 發(fā)射頻率的調試調通程序及硬件的情況下,在BH1415F的11腳接上一段電線作為發(fā)射天線,在室內可以收到調頻廣播。
如果調不出頻率,或者出了頻率但不由單片機控制,該類問題主要是壓控調試不對,沒有鎖相。在LC振蕩電路中,把振蕩產生的信號接入示波器,觀察示波器,調節(jié)中周的磁芯改變L的值使示波器的頻率讀數達到93MHz左右。先測試變容二極管上的電壓,頻率越高,電壓越高,調節(jié)電感匝距,使得頻率設置在98MHz時,電壓接近Vcc,頻率設置在88MHz時,電壓接近0V。當發(fā)現頻率的最高端達不到98MHz時應減小振蕩電感(減小匝數);而在低端的頻率達不到要求時,要增加線圈匝數。
在調試中選用MC1648做壓控振蕩,雖然頻率達到了設計要求,但是干擾特別明顯,導致接收到的音頻信號質量下降。考慮發(fā)射信號的音質很重要,不采用MC1648,直接使用LC 振蕩電路。LC 振蕩電路的調試過程中需要多次更換電容和電感線圈,調整振蕩電路使BH1415F 可以振蕩。
如果調試中頻率覆蓋范圍沒有達到預期的效果,一個原因是變容二極管變容范圍不夠大;也有可能LC振蕩電路調整的不完善。振蕩電感調好后用膠封住,防止發(fā)射器工作時由于振動而產生頻率漂移。
6.4 性能分析用BH1415F設計的小功率調頻發(fā)射器不僅設計簡單,而且頻率設定靈活,可有效地避開當地的調頻電臺,可應用于室內廣播、電視伴音轉發(fā)等小范圍的無線調頻轉播。
結 論此次設計將應用于無線通信領域,并且針對當前市場上短距離無線產品的不足進行了改進。測試結果表明,設計要求的各項指標均可以基本實現,盡管發(fā)射的帶寬沒有到達預計的結果,原因是變容二極管的變容范圍不夠大。要得到穩(wěn)定度高的發(fā)射頻率應采用鎖相環(huán)技術,來降低中心頻率的漂移。此外,語音信號采用調頻方式與調幅相比,有利于改善輸出音頻信號的信噪比,以保證語音業(yè)務的可靠傳輸。
無線調頻發(fā)射系統(tǒng)應用了大量的高頻電子線路技術,尤其是其中的高頻信號處理設計電路要有電路調試的環(huán)境,受實際調試環(huán)境的影響教大,調試具有較大難度。在電路的設計制作中,一定要遵循高頻布線規(guī)則,并且可以在焊接電路的過程中適當接入退耦電容,有效的濾除雜波信號的干擾。
通過方案論證、資料查詢及電路設計和反復調試,不斷的解決電路調試過程中的問題,最終在規(guī)定的時間內完成了設計任務。本設計由于水平有限,電路及程序設計還有需要改進的地方,在今后的學習和研究中,將繼續(xù)改進完善。
另外在調試過程中,以保證作品實現功能準確為前提,盡量做到電路簡單、美觀,效果好成本低,以增強其實用價值。
參考文獻[1] 李廣第,朱月秀等.單片機基礎.北京:北京航空航天大學出版社,2001.
[2] 何立民.單片機高級教程-應用與設計.北京:北京航空航天大學出版社, 2000.
[3] 沈德金等. MCS-51系列單片機接口電路與應用程序實例.北京:北京航空航天大學出版社,1990.
[4] 李光飛,李良兒等.單片機課程設計實例指導.北京:北京航空航天大學出版社,2004.
[5] 鈴木憲次.高頻電路的設計與制作.科學出版社,2005.
[6] 張洪潤,藍清華等. 單片機應用技術教程.北京:清華大學出版社,1997.
[7] 李華. MCS-51系列單片機實用接口技術.北京:北京航空航天大學出版社 1993.
[8] 全國大學生電子設計競賽組委會.第五屆全國大學生電子設計競賽獲獎作品選編第1版,北京理工大學出版社,2005.
[9] 李鵬飛.AVR單片機與4×4小鍵盤的使用.無線電, 2006 (5):39-41.
[10] 李光飛,樓然苗等單片機C程序設計實例指導.北京:北京航空航天大學出版社, 2005.
[11] 趙曉安. MCS-51單片機原理及應用.天津:天津大學出版社,2001.
[12] 宋東生.整流濾波電路,無線電,2002(453):42-43.
[13] 吳景狄.單片機的鍵盤及LED數碼顯示接口.電子世界,2001(4):30-31.
[14] 陳粵初等. 單片機應用系統(tǒng)設計與實踐.北京:北京航空航天大學出版社,1991.
[15] 譚博學,苗匯靜等.集及成電路原理應用.電子工業(yè)出版社,2003.
[16] 黃智偉,王彥等.全國大學生電子設計競賽訓練教程.電子工業(yè)出版社,2004.
[17] 周興華.變容二極管和電調諧.電子世界,2000(6):54.
[18] 求是科技. 單片機典型模塊設計實例導航.北京:人民郵電出版社,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:原理圖
單片機源程序如下:
- ;26H-29H放顯示小數位、個位、十位、百位BCD碼數,24H-25H放頻率控制數據(十六進制)
- ;
- CONBITL EQU 21H ;頻率控制字節(jié)低8位
- CONBITH EQU 22H ;頻率控制字節(jié)高8位
- KEYWORD EQU 23H ;存放鍵掃描時P1口值
- ORG 0000H ;程序開始地址
- LJMP START ;轉START執(zhí)行
- ORG 0003H ;
- RETI ;不用中斷程序
- ORG 000BH ;
- RETI ; 不用中斷程序
- ORG 0013H ;
- RETI ; 不用中斷程序
- ORG 001BH ;
- RETI ; 不用中斷程序
- ORG 0023H ;
- RETI ; 不用中斷程序
- ORG 002BH ;
- RETI ;
- ;初始化程序
- CLEARMEN: MOV R0,#20H ;20H-29H循環(huán)清0
- MOV R1,#0AH ;
- CLEARLOOP: MOV @R0,#00H ;
- INC R0 ;
- DJNZ R1,CLEARLOOP ;
- MOV P0,#0FFH ;四端口置1
- MOV P1,#0FFH ;
- MOV P2,#0FFH ;
- MOV P3,#0FFH ;
- CLR P3.0 ;BH1415禁止操作
- CLR P3.1 ;
- CLR P3.2 ;
- LCALL KEYFUN15 ;置立體聲發(fā)射方式,開立體聲發(fā)射指示燈
- CLEAR1: MOV PCON,#00H ;控制寄存器清0
- MOV 29H,#00H ; 置初始值為88MHZ(顯示為088.0)
- MOV 28H,#08H ;
- MOV 27H,#08H ;
- MOV 26H,#00H ;
- LCALL DISPUPDAT
- RET ;子程序返回
- ;
- ;主程序
- START: LCALL CLEARMEN ;上電初始化
- MAIN: LCALL KEYWORK ;調查鍵子程序
- LCALL DISPLAY ;LED顯示一次
- AJMP MAIN ;轉MAIN循環(huán)
- NOP ;PC出錯處理
- NOP ;
- AJMP START ;重新初始化
- ;
- ; 4*4行列掃描查鍵子程序
- KEYWORK: MOV P1,#0FFH ; 置P1口為輸入狀態(tài)
- CLR P1.0 ;掃描第一行(第一行為0)
- MOV A,P1 ;讀入P1口值
- ANL A,#0F0H ;低四位為0
- CJNE A,#0F0H,KEYCON ;高四位不為全1(有鍵按下)轉KEYCOON
- SETB P1.0 ; 掃描第二行(第二行為0)
- CLR P1.1 ;
- MOV A,P1 ; 讀入P1口值
- ANL A,#0F0H ; 低四位為0
- CJNE A,#0F0H,KEYCON ; 高四位不為全1(有鍵按下)轉KEYCOON
- SETB P1.1 ; 掃描第三行(第三行為0)
- CLR P1.2 ;
- MOV A,P1 ; 讀入P1口值
- ANL A,#0F0H ; 低四位為0
- CJNE A,#0F0H,KEYCON ; 高四位不為全1(有鍵按下)轉KEYCOON
- SETB P1.2 ; 掃描第四行(第四行為0)
- CLR P1.3 ;
- MOV A,P1 ; 讀入P1口值
- ANL A,#0F0H ; 低四位為0
- CJNE A,#0F0H,KEYCON ; 高四位不為全1(有鍵按下)轉KEYCOON
- SETB P1.3 ;結束行掃描
- RET ;子程序返回
- KEYCON: LCALL DL10MS ;消抖處理
- MOV A,P1 ;再讀入P1口值
- ANL A,#0F0H ; 低四位為0
- CJNE A,#0F0H,KEYCHE ; 高四位不為全1,確有鍵按下,轉KEYCHE
- KEYOUT: RET ;干擾,子程序返回
- KEYCHE: MOV A,P1 ;讀P1口值
- MOV KEYWORD,A ;放入23H暫存
- CJLOOP: LCALL DISPLAY ;調顯示子程序
- MOV A,P1 ;讀P1口值
- ANL A,#0F0H ;低四位為0
- CJNE A,#0F0H,CJLOOP ;高四位為全1(鍵還按著),轉CJLOOP等待釋放
- MOV R7,#00H ;鍵釋放,置R7初值為#00H(查表次數)
- MOV DPTR,#KEYTAB ;取鍵值表首址
- CHEKEYLOOP: MOV A,R7 ;查表次數入A
- MOVC A,@A+DPTR ;查表
- XRL A,KEYWORD ;查表值與P1口讀入值比較
- JZ KEYOK ;為0(相等)轉KEYOK
- INC R7 ;不等,查表次數加1
- CJNE R7,#10H,CHEKEYLOOP ;查表次數不超過16次轉CHEKEYLOOP再查
- RET ;16次到,退出
- ;
- KEYOK: MOV A,R7 ;查表次數入A(即鍵號值)
- MOV B,A ;放入B
- RL A ;左移
- ADD A,B ;相加(鍵號乘3處理JMP 3字節(jié)指令)
- MOV DPTR,#KEYFUNTAB ;取鍵功能散轉表首址
- JMP @A+DPTR ;查表
- KEYFUNTAB: LJMP KEYFUN00 ; 鍵功能散轉表。跳至0號鍵功能程序
- LJMP KEYFUN01 ;
- LJMP KEYFUN02
- LJMP KEYFUN03
- LJMP KEYFUN04
- LJMP KEYFUN05
- LJMP KEYFUN06
- LJMP KEYFUN07
- LJMP KEYFUN08
- LJMP KEYFUN09
- LJMP KEYFUN10
- LJMP KEYFUN11
- LJMP KEYFUN12
- LJMP KEYFUN13
- LJMP KEYFUN14
- LJMP KEYFUN15 ; 跳至15號鍵功能程序
- RET ;散轉出錯返回
- ;
- ;鍵號對應P1口數值表(同時按下兩鍵為無效操作)
- KEYTAB: DB 0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH
- DB 0EBH,0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H,0FFH,0FFH
- ;
- ;0號鍵功能程序
- KEYFUN00: INC 29H
- MOV A,29H
- CLR C
- CJNE A,#02H,FUN00
- FUN00: JC FUN00OUT
- MOV 29H,#00H
- FUN00OUT: MOV A,29H
- XRL A,#01H
- JNZ F00OUT1
- MOV 28H,#00H
- AJMP F00OUT
- F00OUT1: MOV 28H,#08H
- F00OUT: LCALL DISPUPDAT
- RET
- ;
- ;01號鍵功能程序
- KEYFUN01: INC 28H
- MOV A,28H
- CLR C
- CJNE A,#0AH,FUN01
- FUN01: JC FUN01OUT
- MOV 28H,#00H
- FUN01OUT: MOV A,29H
- XRL A,#01H
- JNZ F01OUT
- MOV 28H,#00H
- AJMP F001OUT
- F01OUT: MOV A,28H
- XRL A,#08H
- JZ F001OUT
- MOV A,28H
- XRL A,#09H
- JZ F001OUT
- MOV 28H,#08H
- F001OUT: LCALL DISPUPDAT
- RET
- ;
- ;02號鍵功能程序
- KEYFUN02: INC 27H
- MOV A,27H ;
- CLR C ;
- CJNE A,#0AH,FUN02
- FUN02: JC FUN02OUT
- MOV 27H,#00H
- FUN02OUT: LCALL DISPUPDAT
- RET ;
- ;
- ;03號鍵功能程序
- KEYFUN03: INC 26H ;
- MOV A,26H ;
- CLR C ;
- CJNE A,#0AH,FUN03
- FUN03: JC FUN03OUT
- MOV 26H,#00H
- FUN03OUT: LCALL DISPUPDAT
- RET
- ;
- ;04號鍵功能程序
- KEYFUN04: MOV 29H,#01H
- MOV 28H,#00H
- MOV 27H,#09H
- MOV 26H,#00H
- LCALL DISPUPDAT
- RET
- ;
- ;05號鍵功能程序
- KEYFUN05: MOV 29H,#01H ;
- MOV 28H,#00H
- MOV 27H,#08H
- MOV 26H,#00H
- LCALL DISPUPDAT ;
- RET
- ;
- ;06號鍵功能程序
- KEYFUN06: MOV 29H,#01H
- MOV 28H,#00H
- MOV 27H,#05H
- MOV 26H,#00H
- LCALL DISPUPDAT
- RET
- ;
- ;07號鍵功能程序
- KEYFUN07: MOV 29H,#01H
- MOV 28H,#00H
- MOV 27H,#00H
- MOV 26H,#00H
- LCALL DISPUPDAT
- RET
- ;
- ;08號鍵功能程序
- KEYFUN08: MOV 29H,#00H
- MOV 28H,#09H
- MOV 27H,#08H
- MOV 26H,#00H
- LCALL DISPUPDAT
- RET
- ;
- ;09號鍵功能程序
- KEYFUN09: MOV 29H,#00H
- MOV 28H,#09H
- MOV 27H,#06H
- MOV 26H,#00H
- LCALL DISPUPDAT
- RET
- ;
- ;10號鍵功能程序
- KEYFUN10: MOV 29H,#00H
- MOV 28H,#09H
- MOV 27H,#04H
- MOV 26H,#00H
- LCALL DISPUPDAT
- ; RET
- ;11號鍵功能程序
- KEYFUN11: MOV 29H,#00H
- MOV 28H,#09H
- MOV 27H,#02H
- MOV 26H,#00H
- LCALL DISPUPDAT
- RET
- ;
- ;12號鍵功能程序
- KEYFUN12: MOV 29H,#00H
- MOV 28H,#09H
- MOV 27H,#00H
- MOV 26H,#00H
- LCALL DISPUPDAT
- RET
- ;
- ;13號鍵功能程序
- KEYFUN13: MOV 29H,#00H
- MOV 28H,#08H
- MOV 27H,#08H
- MOV 26H,#00H
- LCALL DISPUPDAT
- RET
- ;
- ;14號鍵功能程序
- KEYFUN14: MOV 29H,#00H
- MOV 28H,#08H
- MOV 27H,#07H
- MOV 26H,#08H
- LCALL DISPUPDAT
- RET
- ;
- ;15號鍵功能程序
- KEYFUN15: CPL 03H
- JNB 03H,MONO
- CLR P3.3
- LCALL PUTBIT
- RET
- MONO: SETB P3.3
- LCALL PUTBIT
- RET
- ;
- ; 將BCD碼轉為十六進制數,與5位控制碼合成操作碼,寫入控制芯片
- DISPUPDAT: LCALL BCDB
- LCALL CONCOMMAND
- LCALL PUTBIT
- RET ;
- ; 將BCD碼轉為十六進制數程序
- BCDB: MOV CONBITL,#00H ; 控制字清0
- MOV CONBITH,#00H ; 控制字清0
- MOV CONBITL,26H
- MOV A,27H ;個位數乘10操作
- MOV B,#10 ;
- LCALL MULLOOP ;調乘法子程序
- MOV A,28H ;十位數乘100操作
- MOV B,#100
- LCALL MULLOOP ; 調乘法子程序
- MOV A,29H ;
- JNZ ADD3E8
- RET ; 百位數為0退出
- ADD3E8: CLR C ;清進位檔標志
- MOV A,#0E8H ;低8位加法
- ADD A,CONBITL ;累加
- MOV CONBITL,A ;放回CONBITL
- MOV A,#03H ; 高8位加法
- ADDC A,CONBITH ;控制字高8位處理
- MOV CONBITH,A ;放回CONBITH
- RET ;返回
- ;
- ;乘法及累加處理程序(將四位顯示的十進制BCD碼轉為1個二進制數)
- MULLOOP: MUL AB ;乘法
- CLR C ;清進位標志
- ADD A,CONBITL ;積低8位與CONBITL相加
- MOV CONBITL,A ;放回CONBITL
- MOV A,CONBITH ;
- ADDC A,B
- MOV CONBITH,A ;放回CONBITH
- RET ;返回
- ;
- ;頻率控制數據與5位控制碼合成BH1415控制字
- CONCOMMAND: ANL CONBITH,#07H ;高四位為0
- MOV A,20H ;控制字放入A
- ORL A,CONBITH ;合成控制字
- MOV CONBITH,A ;放回CONBITH
- RET ;返回
- ;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; 顯示程序 ;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;共陽LED顯示,P0口輸出段碼,P2口輸出掃描字
- DISPLAY: MOV R1,#26H ;顯示首址
- MOV R5,#0FEH ;設掃描字
- PLAY: MOV A,R5 ;放入A
- MOV P2,A ;P2口輸出
- MOV A,@R1 ;取顯示數據
- MOV DPTR,#TAB ;取段碼表首址
- MOVC A,@A+DPTR ;查段碼
- MOV P0,A ;從P0輸出
- MOV A,R5 ;讀入掃描字
- JB ACC.1,PLAY1 ; 不是十位(LED),不顯示小數點
- CLR P0.7 ;是十位,顯示小數點
- PLAY1: LCALL DL1MS ;點亮1毫秒
- INC R1 ;指向下一顯示數據
- JNB ACC.3,ENDOUT ;是第四位LED,退出
- RL A ;不是,左移一位
- MOV R5,A ;放回R5
- SETB P0.7 ;關小數點
- AJMP PLAY ;轉PLAY循環(huán)
- ENDOUT: MOV P2,#0FFH ;顯示結束,關顯示輸出口
- MOV P0,#0FFH ;
- RET ;返回
- ;
- ;0-9共陽段碼表
- TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0FFH
- ;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; 發(fā)送控制字節(jié)子程序 ;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;
- PUTBIT: MOV A,CONBITL ;低8位控制字入A
- SETB P3.2 ;BH1415使能(允許寫)
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載: