久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12690|回復: 2
打印 上一主題 下一主題
收起左側

單片機+BH1415F無線調頻發(fā)射器的設計論文

[復制鏈接]
跳轉到指定樓層
樓主
ID:367157 發(fā)表于 2018-7-8 09:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
無線調頻發(fā)射器的設計

The Design of Wireless Frequency Modulation Transmitter


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


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ā)展現狀

1.3 設計思路

2系統(tǒng)概述

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

2.2系統(tǒng)組成

3 方案論證與比較

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

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

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

4.1 單片機控制電路

4.1.1 內部結構

4.1.2 引腳功能

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

4.2.1 調頻調制電路的特點

4.2.2 結構圖

4.2.3 允許的最大值

4.2.4 工作范圍

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

4.3 鍵盤部分

4.3.1 單片機鍵盤和鍵盤接口概述

4.3.2 單片機鍵盤接口和鍵功能的實現

4.4  LC振蕩電路

4.5 調頻放大電路

4.6 電源模塊設計

4.6.1 單元電源電路設計

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

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

5.1 主程序

5.2 延時子程序

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

5.4 頻率數據轉換子程序

5.5 控制命令合成子程序

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

5.7 查鍵子程序

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

6.1 硬件調試

6.2 軟件調試

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

6.4 性能分析

結   論

參考文獻

附錄1:原理圖

附錄2:程序源代碼

附錄3:英文原文

附錄4:中文譯文

致   謝

1


天津工程師范學院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)缺點比較

調幅(AM)
調頻(FM)
優(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℃ 基本電路測量)
項目
符號
范圍
單位
條件
電源電壓
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℃)
項目
符號
數值
單位
條件
工作電源電壓
Vcc
4.0~6.0
V
Pin8、12
工作溫度
Topr
-40~85

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

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)壓電源的測試結果

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

  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:原理圖



單片機源程序如下:
  1. ;26H-29H放顯示小數位、個位、十位、百位BCD碼數,24H-25H放頻率控制數據(十六進制)
  2. ;
  3.          CONBITL  EQU  21H  ;頻率控制字節(jié)低8位
  4.          CONBITH  EQU  22H  ;頻率控制字節(jié)高8位
  5.          KEYWORD  EQU  23H  ;存放鍵掃描時P1口值
  6.          ORG              0000H      ;程序開始地址
  7.          LJMP START    ;轉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                      ;調查鍵子程序
  45.              LCALL  DISPLAY                      ;LED顯示一次
  46.              AJMP   MAIN                                   ;轉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(有鍵按下)轉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(有鍵按下)轉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(有鍵按下)轉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(有鍵按下)轉KEYCOON
  72.             SETB   P1.3                                   ;結束行掃描
  73.              RET                                                               ;子程序返回
  74. KEYCON:      LCALL  DL10MS          ;消抖處理
  75.              MOV    A,P1                                   ;再讀入P1口值
  76.              ANL    A,#0F0H                     ; 低四位為0
  77.              CJNE   A,#0F0H,KEYCHE   ; 高四位不為全1,確有鍵按下,轉KEYCHE
  78. KEYOUT:      RET                                                               ;干擾,子程序返回
  79. KEYCHE:      MOV    A,P1                                   ;讀P1口值
  80.              MOV    KEYWORD,A        ;放入23H暫存
  81. CJLOOP:      LCALL  DISPLAY                     ;調顯示子程序
  82.              MOV    A,P1                                   ;讀P1口值
  83.              ANL    A,#0F0H                     ;低四位為0
  84.              CJNE   A,#0F0H,CJLOOP   ;高四位為全1(鍵還按著),轉CJLOOP等待釋放
  85.              MOV    R7,#00H                     ;鍵釋放,置R7初值為#00H(查表次數)
  86.              MOV    DPTR,#KEYTAB     ;取鍵值表首址
  87. CHEKEYLOOP:  MOV    A,R7                                   ;查表次數入A
  88.              MOVC    A,@A+DPTR       ;查表
  89.             XRL    A,KEYWORD                     ;查表值與P1口讀入值比較
  90.              JZ     KEYOK                                   ;為0(相等)轉KEYOK
  91.              INC    R7                                                 ;不等,查表次數加1
  92.              CJNE   R7,#10H,CHEKEYLOOP   ;查表次數不超過16次轉CHEKEYLOOP再查
  93.              RET                                                                             ;16次到,退出
  94. ;
  95. KEYOK:       MOV    A,R7                                   ;查表次數入A(即鍵號值)
  96.              MOV    B,A                                   ;放入B
  97.              RL                  A                                                 ;左移
  98.                    ADD    A,B                                   ;相加(鍵號乘3處理JMP 3字節(jié)指令)
  99.                    MOV    DPTR,#KEYFUNTAB              ;取鍵功能散轉表首址
  100.                    JMP    @A+DPTR                     ;查表
  101. KEYFUNTAB:   LJMP   KEYFUN00                     ; 鍵功能散轉表。跳至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                                                               ;散轉出錯返回
  118. ;
  119. ;鍵號對應P1口數值表(同時按下兩鍵為無效操作)
  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碼轉為十六進制數,與5位控制碼合成操作碼,寫入控制芯片
  279. DISPUPDAT:   LCALL  BCDB                                            
  280. LCALL  CONCOMMAND                                       
  281. LCALL  PUTBIT      
  282.              RET                                                                         ;
  283. ; 將BCD碼轉為十六進制數程序
  284. BCDB:        MOV    CONBITL,#00H                 ; 控制字清0
  285.              MOV    CONBITH,#00H                 ; 控制字清0
  286.              MOV    CONBITL,26H               
  287.              MOV    A,27H                                             ;個位數乘10操作
  288.              MOV    B,#10                                             ;
  289.              LCALL  MULLOOP                                   ;調乘法子程序
  290.              MOV    A,28H                                             ;十位數乘100操作
  291.              MOV    B,#100                              
  292.              LCALL  MULLOOP                                   ; 調乘法子程序
  293.              MOV    A,29H                                             ;
  294.              JNZ    ADD3E8                              
  295.              RET                                                                            ; 百位數為0退出
  296. ADD3E8:      CLR    C                                                           ;清進位檔標志
  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. ;乘法及累加處理程序(將四位顯示的十進制BCD碼轉為1個二進制數)
  306. MULLOOP:     MUL    AB                                                           ;乘法
  307.              CLR    C                                                           ;清進位標志
  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. ;頻率控制數據與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                                             ;設掃描字
  328. PLAY:        MOV A,R5                                                           ;放入A
  329.              MOV P2,A                                                           ;P2口輸出
  330.              MOV A,@R1                                                           ;取顯示數據
  331.              MOV DPTR,#TAB                                             ;取段碼表首址
  332.              MOVC A,@A+DPTR                                             ;查段碼
  333.              MOV P0,A                                                           ;從P0輸出
  334.              MOV A,R5                                                           ;讀入掃描字
  335.              JB ACC.1,PLAY1                                             ; 不是十位(LED),不顯示小數點
  336.              CLR P0.7                                                           ;是十位,顯示小數點
  337. PLAY1:       LCALL DL1MS                                                           ;點亮1毫秒
  338.              INC R1                                                                         ;指向下一顯示數據
  339.              JNB ACC.3,ENDOUT                               ;是第四位LED,退出
  340.              RL A                                                                                       ;不是,左移一位
  341.              MOV R5,A                                                           ;放回R5
  342.              SETB  P0.7                                                           ;關小數點
  343.              AJMP PLAY                                                           ;轉PLAY循環(huán)
  344. ENDOUT:      MOV  P2,#0FFH                                             ;顯示結束,關顯示輸出口
  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黑下載附件…………
復制代碼

所有資料51hei提供下載:

答辯提綱.doc

33 KB, 下載次數: 21, 下載積分: 黑幣 -5

開題報告附頁.doc

47 KB, 下載次數: 10, 下載積分: 黑幣 -5

論文.doc

829.5 KB, 下載次數: 29, 下載積分: 黑幣 -5

任務書.doc

37.5 KB, 下載次數: 14, 下載積分: 黑幣 -5

無線調頻發(fā)射器的設計.doc

539.5 KB, 下載次數: 38, 下載積分: 黑幣 -5

中期報告.doc

32.5 KB, 下載次數: 12, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:491420 發(fā)表于 2019-3-15 14:11 | 只看該作者
請問BH14515F芯片為什么要外接一個LC振蕩回路,其內部已經有振蕩電路了,振蕩頻率怎么計算?
回復

使用道具 舉報

板凳
ID:777175 發(fā)表于 2023-12-25 18:24 | 只看該作者
感謝樓主分享  這里有你更精彩
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一区二区久久久久 | 激情一区二区三区 | 99爱在线 | 国产综合av | 成人在线视频观看 | 四虎最新地址 | 亚洲成人在线免费 | 国产精品久久久久久久久免费软件 | 国产日韩精品视频 | 一区二区三区四区国产 | 国产成人综合网 | 久久久激情 | 超碰在线国产 | 日韩中出 | 色综合一区二区 | 国产精品久久久久久久久久久久 | 日本韩国电影免费观看 | 亚洲日本欧美日韩高观看 | 久久精品一区二 | 久久久婷婷| 日韩免费| 天天干视频 | 免费观看日韩精品 | 久久99国产精品 | 亚洲毛片在线观看 | 一区二区三区中文字幕 | 久久伊人青青草 | 日韩中文一区 | 国产成人免费 | 午夜免费成人 | 在线啊v | 日韩av在线一区 | 国产亚洲网站 | 久久久久亚洲 | 成年人免费看的视频 | 色橹橹欧美在线观看视频高清 | 色网站视频 | 色橹橹欧美在线观看视频高清 | 免费污视频 | 成人午夜精品一区二区三区 | 国产一区91精品张津瑜 |