|
本帖最后由 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; //输出无分频
}
}
}
|
评分
-
查看全部评分
|