打印

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

[复制链接]
3635|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xxdcq|  楼主 | 2016-4-17 12:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
众所周知最初由第三人称转第一人称飞穿越机极容易飞丢飞机,这玩意又小,掉在树林草堆里很难发现,有一次找了1个多小时才找到
为此做了一个遥控BB响。
电路非常简单,采用宏晶单片机STC15F102W,成本不超过3元钱

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


视频:



程序源代码:
;******************************************************************************
;程序功能:遥控器控制蜂鸣器鸣叫
;mcu STC15F102W;内部晶振11.0592M,1.38T
;******************************************************************************
;特殊功能寄存器定义
p3m1                equ        0b1h
p3m0                equ        0b2h
auxr                equ        8eh
auxr1                equ        0a2h                                ;选择双指针
ie2                equ        0afh
wdtrst                equ        0c1h
t2h                equ        0d6h
t2l                equ        0d7h
;******************************************************************************
;引脚定义
pin                bit        p3.3                                ;标准IO
spout                bit        p3.4                                ;推挽输出
;******************************************************************************
;所用的寄存器
;00h--0bh        工作寄存器
;0ch--13h        堆栈
;******************************************************************************
;位状态
alestatus        bit        00h                                ;0为不报警,1为报警
;******************************************************************************
                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

相关帖子

沙发
598330983| | 2016-4-24 16:38 | 只看该作者
高大上啊,还会汇编呢

使用特权

评论回复
板凳
cnb12345| | 2016-4-25 16:39 | 只看该作者

使用特权

评论回复
地板
z7z8king| | 2016-4-28 11:56 | 只看该作者
汇编是高手

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:专业红外遥控解决方案smartcontrol.taobao.com

37

主题

1268

帖子

23

粉丝