|
本帖最后由 npn 于 2016-6-26 20:40 編輯
用STC單片機制作世界上最簡單的AM/FM發射電路 可同時發射 無需調試 無需任何外圍模塊 新手制作100%成功!
軟件:
USB轉TTL驅動 (用于讓轉換器正常運行,不同型號轉換器有不同驅動,根據型號到正規網站進行下載安裝)。
STC-ISP (STC系列單片機程序燒寫軟件,官方網站提供免費下載最新版本,無需安裝即可運行)。
WinHex 漢化破解版 (16進制文件編輯器,可修改任何文件的數據,各大網站均有免費下載安裝)。
Goldwave 漢化破解版 (強大的音頻處理軟件,支持格式多,功能強大,各大網站均有免費下載安裝)。
Keil 漢化破解版 (單片機C源碼編譯軟件,所有的C51系列指令集單片機C語言編譯大部分使用該軟件完成)。
硬件:
USB轉TTL轉換器。
單片機 STC15F104E。
若干米導線,用于制作天線。
連接導線若干根或印刷PCB。
包含電壓比較器的話筒模塊或者帶自動增益控制器的模數轉換器并且取最高位(可選,可省略GoldWave和WinHex軟件)
信號放大電路(可選,用于增加覆蓋范圍)
硬件連接:
P3.4接若干米長天線并且懸空即可。
P3.0連接話筒模塊的數字信號輸出端(若用電腦輸出音頻信號則連接串口即可)。
連接VCC與GND(電壓越高信號覆蓋距離越遠,強烈建議使用大功率放大電路進行放大避免電壓高導致芯片壽命縮短)。
編譯失敗或出現警告可能的原因:
缺少頭文件,下載該頭文件并且復制到同一個目錄即可完成編譯。
Keil 破解存在不完整,重新下載破解補丁以及注冊機即可解決。
存在全角字符,刪除所有全角符號等無關字符重新嘗試編譯。
缺少括號,源碼復制不完整,重新復制一次源碼即可成功編譯。
無高頻信號輸出可能的原因:
固件版本過低 。
該I/O口已損壞。
無相關特殊功能寄存器。
晶振頻率不在范圍內。
解決方法:更換另一片單片機并且合理調整內部晶振頻率進行重新嘗試。
可配合有電壓比較器的話筒模塊使用,也可通過串口直接發送音頻,修改音頻需用到goldwave軟件。
發送波特率115200,每秒可發送11520字節,音頻采樣率修改為單聲道11520hz 8bit,晶振頻率高的和硬件支持的可嘗試使用更高的波特率。
去除音頻的所有自動偏移效果最佳,并且將音頻信號整形為數字信號,最后另存為snd格式,用winhex檢測只包含0x00和0xFF為止。
或者將0x00~0x7F數據替換為0x00,0x80~0xFF全部替換為0xFF,即可通過串口直接送出,否則其他位的數據都會被串口送出,就可能會是噪音
。
信號輸出口連接P3.0,采用IRC_CLKO寄存器實現直接輸出晶振的振蕩信號,P3M0寄存器用于增加發射功率,成功率最高的無線電發射電路。
由于使用方波作為載波,方波包含豐富的寄次諧波成分,使用AM/FM收音機均可接收,同時寄次諧波會覆蓋多個頻率進行發射。
P3.0口高電平,P3.4等于IRC頻率,P3.0口低電平,P3.4等于IRC頻率/2。
若其他芯片沒有該功能寄存器或晶振頻率過高會無法輸出信號。
P3.4分別與LED的VCC和GND連接(兩邊同時連接需要加電阻),如果與兩邊接都會亮說明該口已有高頻振蕩信號,P3.4口功能由硬件寄存
器決定,不同型號芯片可能會有不同,無法直接修改。
電路起振后將天線接在P3.4并且懸空,長度等于晶振頻率的波長/4或波長/8效果最佳。
打開串口和收音機,用串口隨便發送一些數據,用收音機接收到效果最佳的聲音為止,最后向串口發送音頻數據即可。
也可使用該功能代替有源晶振為其他單片機起振,XTAL1接地或懸空,XTAL2接本芯片的P3.4。
下面是源碼(用Keil直接編譯即可):
#include "STC15F104E.h"
#include "intrins.h"
sbit r=P3^0; //信號輸入口
void main(){ //入口函數
P3M0=0xFF; //配置IO口模式
IRC_CLKO|=0x80; //開啟內部IRC輸出到外部P3.4口功能
while(1){ //進入死循環
if(r==0){ //輸入低電平
IRC_CLKO|=0x08; //輸出二分頻
} else { //輸入高電平
IRC_CLKO&=0xF7; //輸出無分頻
}
}
}
|
評分
-
查看全部評分
|