玩了一把怪兽调频发射器,bh1415芯片
网上一款二手怪兽调频发射器,芯片是tiny26,控制的bh1415。价格15元一个,直接进来两个玩玩。
调频发射模块有3种:BH1417适合中国频段,87.7-88.9MHz;106.7-107.9MHz,步进0.2MHz,
BH1416适用与日本段。
这两款是用编码开关设置频率的。
BH1415通过外部MCU置频,频率可以从70MHz-120MHz ,步进可设置为0.1MHz。通过串口传输数据调节频率,频率用pll锁相环设置,
通过比较1417,1416设置频率简单,1415可玩性较大,频率可以连续可调。
这几款芯片,音质很好,立体声分离度不错。 1http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_213179.jpg
2http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_213180.jpg
3http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_213181.jpg
看内部图 哪里买的?那么便宜、!!! 由于频率是固定的8个,感觉心里不爽。
尤其看一些啊片的时候,用它传声音,被隔壁邻居听到很不爽。
fm频率88到108,如果频率改到115普通的收音机肯定收不到。
把自己的收音机电感改到很轻松扩到115.
把isp线连接好居然可以读出flash和eep。赶快保持备份,留作改频不成功恢复。
电路图和数据如下:
1http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_213182.JPG
点击此处下载ourdev_213183.rar(文件大小:679字节) 玩了一年的51,还没有用过avr编过程序。书倒是看过几本,拿它来练练手。
我喜欢通过实战来学习。不喜欢学习板的学习方式。
通过一下午的调试程序终于可以工作了:
#include <iot26v.h>
#include <macros.h >
const unsigned int fri={0x4b71,0x4b73,0x4b75,0x4b77,0x4b79,0x4b7b,0x4c31,0x447e};//
//这是存入的8个频率最后两个是107.5和115前6个是低端的频率。
const unsigned char led={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//////////////////////////////////
void delay(void)
{
unsigned int m,n;
for(m=0;m<100;m++)
{
for(n=0;n<500;n++);
}
}
////////////////////////////////////写频率程序
void writef(unsigned int f)
{
unsigned char i;
PORTB|=(1<<PB5);//CE为1
PORTB&=~(1<<PB4);//CK 0
for(i=0;i<16;i++)
{
if(f&0x01==0X01)
PORTB|=(1<<PB3);
else
PORTB&=~(1<<PB3);//送出数据da
_NOP();
_NOP();
PORTB|=(1<<PB4);//CLK为1,
_NOP();
_NOP();
PORTB&=~(1<<PB4);//CLK 0
_NOP();
_NOP();
f=(f>>1);
}
PORTB&=~(1<<PB5);//CE - 0;
PORTB&=~(1<<PB4);
PORTB&=~(1<<PB3);
}
////////////////////////////////////
////////////////////////////写eeprom
void eepromwrite(unsigned int address,unsigned char date)
{
while(EECR&(1<<EEWE));//等待变为0
EEAR=address;
EEDR=date;
EECR|=(1<<EEMWE);
EECR|=(1<<EEWE);
}
//////////////////////////////////读eeprom
unsigned char eepromread(unsigned int address)
{
while(EECR&(1<<EEWE));//等待变为0
EEAR=address;
EECR|=(1<<EERE);
return EEDR;
}
void main(void)
{
unsigned char i,k;
DDRA=0XFF;
PORTA=0x01;//A口为输出,控制8个led指示灯
DDRB=0X38;//00111000
PORTB=0XC7;//11000111
for(i=0;i<8;i++)
{
delay();
PORTA=(PORTA<<1);
}/////流水灯测试led
/////////////////////////////
k=eepromread(0x0001);//读出上次实用的频率,实现记忆上次频率作用
if(k>7)k=7;
writef( fri);
PORTA=led;//led为指示灯
while(1)
{
if((PINB&0X40)==0)//////////////PINB&0X40要加括号
{
k++;
if(k>7)k=0;
writef( fri);
PORTA=led;
eepromwrite(0x0001,k);
delay();
delay();
delay();
}
}
} 回二楼,在论坛买的二手的,以前还有7元的,
卖玩了,这个是我后来卖的。玩起来不错的。
下面是芯片1415资料
点击此处打开ourdev_213184.pdf(文件大小:168K) 不错! 怎么弄到115MHz呢? 回7楼
1415的芯片可以通过串行传送频率数据。
频率最高可以到120
收音机可以改频电感实现接收频率范围。改变电感线圈的松紧 呵呵,有点意思。也打算买个,刚在淘宝搜了下得120块啊 我以前也读出过内部的程序,当时只是把程序中频率参数的位置改过,未重编程序。 http://www.hellocq.com/member/topic.cgi?forum=39&topic=4002
我是在论坛上买的两个一共30包普邮。
感觉很超值。
但是都是旧的,连线都被剪掉了。
估计是洋垃圾 啊片!哈哈!玩过,不过是搞的现成的模块! 二手就是了,rohm的1415就要近15块,现在基本都不用了。 还是要谢谢楼主的原创及共享! 我有一个怪兽2代数码管显示,连续可调就是步进为0.2M 怎样改成0.1M步进 是不是得把单片机焊下来编程啊希望哪位朋友给个详细资料。 用这个芯片吧 QN8000。
http://www.quinticcorp.com/CN/Product-1.html
价格比1415便宜多了,芯片体积也小。外围简单的多,音质非常好。
北天星有代理,阿莫可以代理模块。 顶一个 呵呵,这块板子,有用过,现在手上还有几块,不错,把线引出来,自己写程序,频率可调范围可以从80-110,80以下, 110以上,出不来,可能是变容范围:)板子后面还特意留了个并电容的焊盘,想来是用来调节工作在那一段的 编程代码怎么写 引线从那引出 我不懂请详细说明一下好吗 要不上张照片谢谢! 有点意思。 标记学习
页:
[1]