找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 14605|回复: 11
收起左侧

用STC单片机制作世界上最简单的AM/FM发射电路 新手制作100%成功!

  [复制链接]
npn 发表于 2016-6-26 20:28 | 显示全部楼层 |阅读模式
本帖最后由 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; //输出无分频
                }

        }
}



评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

51hei电流 发表于 2016-6-26 23:17 | 显示全部楼层
是个很有创意的方法,收音机能收到的fm大约在100mhz左右,不知道楼主这个能用收音机收吗?再就是能发射多远?
回复

使用道具 举报

 楼主| npn 发表于 2016-6-26 23:25 | 显示全部楼层
51hei电流 发表于 2016-6-26 23:17
是个很有创意的方法,收音机能收到的fm大约在100mhz左右,不知道楼主这个能用收音机收吗?再就是能发射多远 ...

由于用方波作为载波,在收音机的多处频段都能接收,发射功率需要用专业仪器进行测量。
回复

使用道具 举报

lemonack 发表于 2016-6-27 10:38 | 显示全部楼层
受教了
回复

使用道具 举报

行云流水 发表于 2016-6-27 21:41 | 显示全部楼层
佩服,好利害喔!
回复

使用道具 举报

mrliangg 发表于 2016-12-30 15:49 | 显示全部楼层
佩服,好利害喔!
回复

使用道具 举报

mrliangg 发表于 2016-12-30 15:54 | 显示全部楼层
如果晶振是8MHZ,是不是二分频后是4MHZ输出阿?有点不懂怎么是100多MHZ了呢?如果设定计数器能不能固定某一频率输出,如果谐波多的话将其输出再加入选频后放大会不会更远一点?问多一点问题,看看楼主会不会回答
回复

使用道具 举报

mrliangg 发表于 2016-12-30 16:01 | 显示全部楼层
上边所说的100多MHZ是怎么回事,晶振是8MHZ的话,二分频输出是不是4MHZ才对阿?
回复

使用道具 举报

cyhu0215 发表于 2016-12-30 16:03 | 显示全部楼层
没有明白您的设计,真不明白!
回复

使用道具 举报

垃圾王 发表于 2017-10-20 01:57 | 显示全部楼层
我倒是有点明白了。不过这个机器跑这个没问题?不会烧?
回复

使用道具 举报

技术狗 发表于 2017-10-30 20:52 | 显示全部楼层
用51能实现吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表