最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

当前位置: 主页 > 电子DIY > 单片机 >

使用51单片机diy制作玩具电子琴

时间:2012-12-29 19:10来源:www.jiangx.com 作者:admin 点击:
CPL BUZZ ;输出方波 RETI END (点击图片可放大) 特价电子琴玩具 电子科技小diy制作小发明益智套件散件 15.00
这是一款用51单片机控制的玩具电子琴,用到了51的定时器和键盘技术,它的汇编程序流程如下,很适合初学者学习制作。

        说明:由单片机的P1.0口输出音频信号,在P1.0口接三极管以驱动喇叭,最好用两个三极管构成达林顿结构。P2口连接8个一端接地的按键作为输入,当然也需要连接8只10K的电阻至电源作为上拉电阻。P2.0~P2.7依次为Do、Re、Mi、Fa、So、La、Si、Do(高)音。

 

       BUZZ     EQU P1.0
       ORG      0000H
       LJMP     MAIN
       ORG      000BH
       LJMP     INT_T0
       ORG      0100H
MAIN:  
       MOV      SP,#60H        ;初始化堆栈指针
       MOV      30H,#00        ;定时器初值清零
       MOV      31H,#00
       MOV      P1,#0FFH       ;设置P1口为输入模式
       MOV      TMOD,#01H      ;设置定时器0为工作模式1
       SETB     ET0            ;开定时器0中断
       SETB     EA             ;开总中断
       CLR      TR0            ;关闭定时器0
START: 
       MOV      R0,P2      
       CJNE     R0,#0FFH,KEY1  ;键盘扫描
       CLR      TR0
       SJMP     START
KEY1:
       CJNE     R0,#0FEH,KEY2  ;K1键按下
       MOV      30H,#0FBH      ;设置音阶1
       MOV      31H,#0E9H
       LJMP     SET_TIMER
KEY2:  
       CJNE     R0,#0FDH,KEY3  ;K2键按下
       MOV      30H,#0FCH      ;设置音阶2
       MOV      31H,#5CH
       LJMP     SET_TIMER
KEY3:
       CJNE     R0,#0FBH,KEY4  ;K3键按下
       MOV      30H,#0FCH      ;设置音阶3
       MOV      31H,#0C1H
       LJMP     SET_TIMER
KEY4:
       CJNE     R0,#0F7H,KEY5  ;K4键按下
       MOV      30H,#0FCH      ;设置音阶4
       MOV      31H,#0EFH
       LJMP     SET_TIMER
KEY5:
       CJNE     R0,#0EFH,KEY6  ;K5键按下
       MOV      30H,#0FDH      ;设置音阶5
       MOV      31H,#045H
       LJMP     SET_TIMER
KEY6:
       CJNE     R0,#0DFH,KEY7  ;K6键按下
       MOV      30H,#0FDH      ;设置音阶6
       MOV      31H,#92H
       LJMP     SET_TIMER
KEY7:
       CJNE     R0,#0BFH,KEY8  ;K7键按下
       MOV      30H,#0FDH      ;设置音阶7
       MOV      31H,#0D6H
       LJMP     SET_TIMER
KEY8: 
       CJNE R0,#7FH,NOKEY  ;K8按下
       MOV      30H,#0FDH      ;设置音阶8
       MOV      31H,#0FBH
SET_TIMER:
       SETB     TR0            ;发声
       SJMP     START
NOKEY:
       CLR      TR0            ;无键按下
       SJMP     START
INT_T0:                        ;T0中断服务程序
       MOV      TH0,30H        ;定时器赋初值
       MOV      TL0,31H#p#分页标题#e#
       CPL      BUZZ           ;输出方波
       RETI
       END

(点击图片可放大)


 

特价电子琴玩具 电子科技小diy制作小发明益智套件散件
特价电子琴玩具 电子科技小diy制作小发明益智套件散件
¥15.00

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(1)
100%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容