5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 9436|回复: 33
打印 上一主题 下一主题

自制遥控BB响,这下再也不怕找不到飞机了!

[复制链接]
跳转到指定楼层
楼主
发表于 2015-10-12 11:46 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 xxdcq 于 2015-10-12 11:48 编辑

众所周知最初由第三人称转第一人称飞穿越机极容易飞丢飞机,这玩意又小,掉在树林草堆里很难发现,有次找了1个多小时才找到
为此做了一个遥控BB响。
电路非常简单,采用宏晶单片机STC15F102W,成本不超过3元钱




只需利用一个遥控器没用的通道来控制,最好是两档的拨杆
本人用的第七通道来控制


视频:

?from=y1.7-1.2[/media]

程序源代码:
;******************************************************************************
;程序功能:遥控器控制蜂鸣器鸣叫
;mcu STC15F102W;内部晶振11.0592M,1.38T
;******************************************************************************
;特殊功能寄存器定义
p1m1                equ        91h
p1m0                equ        92h
p0m1                equ        93h
p0m0                equ        94h
p2m1                equ        95h
p2m0                equ        96h
p3m1                equ        0b1h
p3m0                equ        0b2h
p1asf                equ        9dh                                ;p1.x口作为a/d的使能
auxr                equ        8eh
auxr1                equ        0a2h                                ;选择双指针
ie2                equ        0afh
adcontr                equ        0bch                                ;a/d控制
adres                equ        0bdh                                ;a/d结果
wdtrst                equ        0c1h
isp_data        equ        0c2h
isp_addh        equ        0c3h
isp_addl        equ        0c4h
isp_cmd                equ        0c5h
isp_trig        equ        0c6h
isp_contr        equ        0c7h
p5m1                equ        0c9h
p5m0                equ        0cah
t2h                equ        0d6h
t2l                equ        0d7h
;******************************************************************************
;引脚定义
pin                bit        p3.3                                ;标准IO
spout                bit        p3.4                                ;推挽输出
;******************************************************************************
;所用的寄存器
;00h--0bh        工作寄存器
;0ch--13h        堆栈
;******************************************************************************
;位状态
alestatus        bit        00h                                ;0为不报警,1为报警
;******************************************************************************
;isp参数定义(常数)
enable_isp        equ        3eh                                ;<12MHz
enable_isp1        equ        7dh
enable_isp2        equ        52h
ispwaitcmd        equ        00h
isprdcmd        equ        01h
ispwrcmd        equ        02h
isperasecmd        equ        03h
;******************************************************************************
;命令(常数)
;******************************************************************************
                org        0000h
                ljmp        start
                org        0003h
                reti
                org        000bh
                ljmp        t0_int
                org        0013h
                reti
                org        001bh
                reti
;******************************************************************************
;11.0592M晶震,延时25ms
dt25ms:
                mov        r6,#200
dt0:
                mov        r7,#125
dt1:
                mov        wdtrst,#00110001b                ;清看门狗
                nop
                nop
                nop
                nop
                djnz        r7,dt1
                djnz        r6,dt0
                ret
                org        0043h
;******************************************************************************
start:
                clr        ea
                mov        sp,#0ch
                mov        wdtrst,#00110001b                ;启动看门狗,看门狗溢出时间为142.2ms
                lcall        ioinit
                lcall        sysinit
;主程序开始
                lcall        go
                mov        r5,#32                                ;蜂鸣器叫800ms
main:
                lcall        dt25ms
                djnz        r5,main
                clr        alestatus                        ;停止鸣叫
main5:
                lcall        pcl                                ;测量脉冲宽度
                mov        a,t2h
                cjne        a,#4bh,main6
                mov        a,t2l
                cjne        a,#0ach,main7
                ljmp        main9
main6:
                jnc        main8
                ljmp        main9
main7:
                jnc        main8
                ljmp        main9
main8:
                setb        alestatus                        ;报警
                ljmp        main5
main9:
                clr        alestatus                        ;停止报警
                ljmp        main5
;******************************************************************************
ioinit:
                mov        p0,#0ffh
                mov        p1,#0ffh
                mov        p2,#0ffh
                mov        p3,#0ffh
                mov        p3m1,#00000000b
                mov        p3m0,#00010000b
                ret
;******************************************************************************
sysinit:
                mov        tmod,#11h                        ;t0,t1都为16位定时器方式
                mov        auxr,#04h                        ;先禁止t2工作,t2不需要12分频
                mov        th0,#0ffh                        ;200us定时,产生2.5KHz的信号驱动蜂鸣器
                                                                      ;实测2.5KHz频率能使蜂鸣器最响
                mov        tl0,#48h
                clr        psw.4                                ;第一组工作寄存器
                clr        psw.3
                clr        c
                clr        ex1
                clr        tf0
                clr        tf1
                clr        tr1
                setb        alestatus                        ;上电先叫一下
                ret
;******************************************************************************
go:
                setb        et0
                setb        ea
                setb        tr0
                ret
;******************************************************************************
;测量输入脉冲宽度
pcl:
                mov        wdtrst,#00110001b                ;清看门狗
                jb        pin,pcl                                ;如果是高电平需要等到变低
pcl1:
                mov        wdtrst,#00110001b                ;清看门狗
                jnb        pin,pcl1                        ;等待上升沿
                mov        t2h,#00h                        ;最大5.92ms
                mov        t2l,#00h
                orl        auxr,#10h                        ;启动T2
pcl2:
                mov        wdtrst,#00110001b                ;清看门狗
                jb        pin,pcl2                        ;等待脉冲结束
                anl        auxr,#0efh                        ;停止T2
                ret
;******************************************************************************
t0_int:
                jnb        alestatus,t0_int1
                cpl        spout                                ;蜂鸣器响
                ljmp        t0_int2
t0_int1:
                setb        spout                                ;蜂鸣器停止响
t0_int2:
                clr        tf0
                mov        th0,#0ffh                        ;200us定时
                mov        tl0,#48h
                reti
;******************************************************************************
                end




欢迎继续阅读楼主其他信息

33
发表于 2018-10-30 08:22 | 只看该作者
炸香机 发表于 2015-10-12 12:44
一个拉烟开关和一个有源蜂鸣器搞定

        噢噢 直接买成品好了
32
发表于 2016-8-21 12:20 | 只看该作者
佩服。bl电调支持寻机功能,四个电机就是四个bb响
来自苹果客户端来自苹果客户端
31
发表于 2016-8-21 10:16 | 只看该作者
汇编写的。。。前辈。。。
30
发表于 2016-8-21 09:43 | 只看该作者
DVR是王道!
29
发表于 2016-2-9 23:23 | 只看该作者
厉害
28
发表于 2016-2-6 20:56 | 只看该作者
我用C写的。  没找到大声音的蜂鸣器。用了一个普通的有源蜂鸣器
27
发表于 2016-1-31 15:59 | 只看该作者
安个儿童定位手表或者gps追踪器在飞机上,然后就可以定位了
来自苹果客户端来自苹果客户端
26
发表于 2016-1-30 11:39 | 只看该作者
很多接收机不是带电压回传吗》。
25
发表于 2016-1-27 20:44 | 只看该作者
nzg8899 发表于 2016-1-27 12:48
我就是这样 但是一个bb声音太小  想弄2个

留意的话 还是能听到的
来自安卓客户端来自安卓客户端
24
发表于 2016-1-27 12:48 | 只看该作者
侯伟玺 发表于 2015-11-4 05:08
楼主这个高端不太懂  但是买个蜂鸣器 插板子上 调参MODE里面BEEPER随便设置个开关不就OK?

我就是这样 但是一个bb声音太小  想弄2个
来自苹果客户端来自苹果客户端
23
发表于 2016-1-26 20:41 | 只看该作者
总觉得汇编是神一般的存在
22
发表于 2016-1-26 20:15 | 只看该作者
21
发表于 2016-1-2 20:00 | 只看该作者
中华龙 发表于 2015-10-12 11:47
其实用个费舵机加个蜂鸣器即可。

可以说得具体一点吗

20
发表于 2015-12-29 08:39 | 只看该作者
楼主我想跟你说:没必要这么折腾,直接买一个有源蜂鸣器焊到飞控上不就OK啦,成本0.45,你这个太贵了
来自苹果客户端来自苹果客户端
19
发表于 2015-12-28 20:39 | 只看该作者
楼主可是试一下用坏的舵机来做一个试试也管用
来自苹果客户端来自苹果客户端
18
发表于 2015-12-28 19:26 | 只看该作者
你这个那几个角是 写入接口
17
发表于 2015-11-5 02:11 | 只看该作者
hcc 发表于 2015-10-12 14:02
这东西炸鸡掉水里就嗝屁了啊!我上次就掉水沟了,BB叫不出来了!后来靠DVR录像找回的!所以DVR是王道!

没图传信号自由降落看你dvr如何王道?!

16
发表于 2015-11-4 05:08 | 只看该作者
楼主这个高端不太懂  但是买个蜂鸣器 插板子上 调参MODE里面BEEPER随便设置个开关不就OK?
来自安卓客户端来自安卓客户端
15
发表于 2015-11-3 17:20 | 只看该作者
炸机把电池或者接收器炸坏了,就over了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

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