论坛风格切换切换到宽版
发帖 回复
返回列表  提醒:不能用迅雷等P2P下载,否则下载失败标(二级)的板块,需二级才能下载,没二级不要购买,下载不了
  • 2690阅读
  • 4回复

[资料贡献]单片机音乐盒DIY——生日快乐歌程序 [复制链接]

上一主题 下一主题
 

性别:
帅哥
发帖
12
金币
1
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看楼主 倒序阅读 使用道具 0楼 发表于: 2013-11-04
基于STC 89C52单片机的七彩迷你音乐盒。在单片机最小系统的基础上,对其他两个I/O口连接硬件电路。P1.0接一个七彩快闪LED灯。P1.5口接一个NPN型三极管的放大电路,再连接一个无源蜂鸣器(用来播放乐曲)。 Ted tmX$  
    这样一个迷你音乐盒就完成了。硬件电路非常简单,其中单片机任意一个I/O口都可以作为乐曲的输出,信号经过NPN三极管放大驱动蜂鸣器发出电子乐曲。 !]9qQ7+R%  
    紧接着就是为单片机设计运行的程序了,这里我用汇编写了一段《生日快乐》的程序。大家可以仿照,我的思路修改乐曲。 DZ $O%  
    DIY手记:用C52这么大块头的单片机,确实很浪费。因为一共有32个I/O引脚,设计音乐盒只用了其中的两个,非常的浪费。大家可以用其他的单片机代替,例如16引脚的单片机。价格相对会便宜一点。 OlptO60{ ]  
单片机汇编源代码分享
~]Av$S  
 ;\f0II3  
org 0000h +6~zMKp  
ajmp main !b+!] 2~g}  
org 000bh z_#HJ}R=  
jmp tim0 :o87<) _F  
org 0030h tkff\W[JU  
main: ;主程序 k py)kS  
setb p1.1 "HwlN_PA  
clr p1.4 Nx+5rp  
setb p3.0 i7rk%q  
mov tmod,#01h ;设定时方式 wzmQRn;s  
mov ie,#82h ;开中断 *5\'$;Rg  
start0: @7;}6,)  
mov 30h,#00h ; naA8RD5/  
next:mov a,30h }IdkXAB.  
mov dptr,#table ynf!1!4  
movc a,@a+dptr ;查表取音调和节拍 (]VY==t~  
mov r2,a G)f!AuN=  
jz end0 ;为零,不进行处理. ^rO!-  
anl a,#0fh uJ fXe  
mov r5,a ;将节拍存入R5 \IEuu^  
mov a,r2 C[l5[DpH  
swap a pB]*cd B?  
anl a,#0fh l>hvWK[ ?I  
jnz sing ;根据音调决定是否演奏. U-$nwji  
clr tr0 KdzV^6K<c  
jmp d1 `Tk~?aY  
sing:dec a 'Q=(1a11  
mov 22h,a ;将音调存入22H. L s3r( Tf  
rl a DMSC(Sz  
mov dptr,#table1 / %F,  
movc a,@a+dptr ;根据音调决定定时器初值. T.B7QAI. H  
mov th0,a ;放入TH0 <xrya _R?  
mov 21h,a gR_Exs'K  
mov a,22h L)S V?FBx  
rl a K(?p]wh  
inc a et(AO)uv6  
movc a,@a+dptr ?k@;,l :s  
mov tl0,a ;放入TL0 (\wV)c9  
mov 20h,a 3Tc90p l*t  
setb tr0 ;启动定时 1zCgPiAem  
d1: call delay <K>qK]|C  
inc 30h 4af^SZ )l  
jmp next v`Ja Bn  
end0:clr tr0 _Kh8 <$h  
jmp start0 v-"nyy-&Z  
tim0: ;定时器中断服务程序 /YvwQ  
push acc  H =&K_  
push psw |@f\[v9`  
mov tl0,20h ;重赋初值. g:6 `1C  
mov th0,21h o,?h}@  
cpl p1.7 }D3hP|.X  
pop psw znIS2{p/`  
pop acc n;:C{5  
reti
delay:mov r7,#02h ;延时子程序 ~LP5hL  
d2: mov r4,#130 myd:"u,}9  
d3: mov r3,#248 Um*&S.y  
djnz r3,$ (B?ZUXM,  
djnz r4,d3 *<h)q)HS  
djnz r7,d2 afu!.}4Ct  
djnz r5,delay 5aXE^.`  
ret
0< }BSv  
table1: ;决定音调的定时初值. EN8xn9M?  
dw 64260,64400,64524,64580 #>sI XY  
dw 64684,64777,64820,64898 i.KRw6  
dw 64968,65030,65058,65110 _kBx2>qQ  
dw 65157,65178,65217
YTr+"\CkA  
table: ;决定音调和节拍的表格,不同的歌曲只是此表不同 .&8a ;Q?c  
;1 @Q&k6.{4Z  
db 82h,01h,81h,94h,84h,0b4h,0a4h,04h,82h,01h,81h,94h,84h,0c4h,0b4h,04h %&s4YD/{  
;2 U8,pe;/ln`  
db 82h,01h,81h,0f4h,0d4h,0b4h,0a4h,94h,0e2h,01h,0e1h,0d4h,0b4h,0c4h,0b4h,04h ,e GF~  
;3 58eO|c(  
db 82h,01h,81h,94h,84h,0b4h,0a4h,04h,82h,01h,81h,94h,84h,0c4h,0b4h,04h a(G}<  
;4 7?);wh7`  
db 82h,01h,81h,0f4h,0d4h,0b4h,0a4h,94h,0e2h,01h,0e1h,0d4h,0b4h,0c4h,0b4h,04h,00 :YLurng/]  
end


评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

一般

差劲
希望结识更多的电子工程师朋友们32.768KHZ晶振
离线xinyuliangen

性别:
帅哥
发帖
433
金币
387
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 1楼 发表于: 2013-11-04
  


离线逆天pads

性别:
帅哥
发帖
3796
金币
1200
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 2楼 发表于: 2020-10-17


在线jjkks2020

性别:
帅哥
发帖
419
金币
691
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 3楼 发表于: 2021-04-12
w%])  


~只要思想不滑坡,办法总比困难多~
离线h09721

性别:
人妖
发帖
8020
金币
7190
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 4楼 发表于: 2022-01-04


快速回复
限150 字节
 
上一个 下一个