单片机中断控制 type=text/css rel=stylesheet> rel=stylesheet>
borderColorLight=#000000 border=0>
color=#ff0000>单片机提高 src="小喇叭的爬音演奏.files/gif091.gif" width=28 border=0> color=#454545>WWW.51C51.COM
自学单片机的网站:作中国单片机编程技术普及推广第一站!倚天一出宝刀屠龙 src="小喇叭的爬音演奏.files/titou2.jpg" width=760 border=0> font>返回主页 给我留言 href="http://www.8951.com/jiaoxue.htm">单片机教学 href="http://www.8951.com/tigao.htm">单片机提高 href="http://www.8951.com/pinzhi.htm">品质技术 单片机网址 href="http://www.8951.com/down/down.htm">软件下载 href="http://www.8951.com/yejin/yejin.htm">学液晶显示 href="http://www.8951.com/chanpin.htm">产品介绍 href="http://www.8951.com/10/huikan.htm">如何购买
;小喇叭的爬音演奏,即do,rui,mi,fa,so,la,xi,do;30h=步进值,21h低8位
22h高8位;***************************************************************************;*
(程序转载请著明出处 ,未声明可适应本站腾龙/isp开发套件/倚天版开发套件
*;* E-mail:sxj1974@163.com (51c51 test web)
51单片机学习网,自学单片机的网站
*;* Create by :石学军 href="http://www.51c51.com/">http://www.51c51.com/
www.8951.com
更多例程请登陆网站
*;***************************************************************************org
0000hajmp mainorg 000bhjmp tim0org 0030hmain:
;主程序mov tmod,#01h ;设定时方式mov ie,#82h ;开中断start0:mov
30h,#00h ;next: mov a,30hjnz sing ;根据音调决定是否演奏.clr
tr0jmp d1sing: dec amov 22h,a ;将音调存入22H.rl amov
dptr,#table1movc a,@a+dptr ;根据音调决定定时器初值.mov th0,a ;放入TH0mov
21h,amov a,22hrl ainc amovc a,@a+dptrmov tl0,a
;放入TL0mov 20h,ajz end0 ;如果到了00则停止发音setb tr0 ;启动定时d1: call
delayinc 30h ;取下一个码jmp nextend0: clr tr0jmp start0
;重新开始tim0: ;定时器中断服务程序push accpush pswmov tl0,20h
;重赋初值.mov th0,21hcpl p3.3pop pswpop
accretidelay: mov r7,#03h ;延时子程序 决定每个音的时间d2: mov
r4,#187d3: mov r3,#248djnz r3,$djnz r4,d3djnz
r7,d2rettable1: ;决定音调的定时初值.dw 64260,64400,64524,64580dw
64684,64777,64820,64898dw 64968,65030,65058,65110dw
65157,65178,65217,00end