📄 小喇叭的爬音演奏.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0039)http://www.8951.com/TEST/TEST/p33pa.HTM -->
<HTML><HEAD><TITLE>单片机中断控制</TITLE><LINK href="小喇叭的爬音演奏.files/gpszx.css"
type=text/css rel=stylesheet><LINK href="../index.files/gpszx.css" type=text/css
rel=stylesheet>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.2523" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId></HEAD>
<BODY>
<DIV align=center>
<CENTER>
<TABLE height=402 cellSpacing=0 cellPadding=0 width=769 bgColor=#66ccff
borderColorLight=#000000 border=0>
<TBODY>
<TR>
<TD align=middle width=752 bgColor=#ffffff height=402><FONT font><FONT
color=#ff0000>单片机提高</FONT><FONT color=#ff0000><IMG height=11
src="小喇叭的爬音演奏.files/gif091.gif" width=28 border=0></FONT><FONT
color=#454545>WWW.51C51.COM
自学单片机的网站:作中国单片机编程技术普及推广第一站!倚天一出宝刀屠龙</FONT></FONT><IMG height=100
src="小喇叭的爬音演奏.files/titou2.jpg" width=760 border=0> <FONT color=#454545
font><A href="http://www.8951.com/index.htm">返回主页 给我留言</A> <A
href="http://www.8951.com/jiaoxue.htm">单片机教学</A> <A
href="http://www.8951.com/tigao.htm">单片机提高</A> <A
href="http://www.8951.com/pinzhi.htm">品质技术</A> 单片机网址 <A
href="http://www.8951.com/down/down.htm">软件下载</A> <A
href="http://www.8951.com/yejin/yejin.htm">学液晶显示</A> <A
href="http://www.8951.com/chanpin.htm">产品介绍</A> <A
href="http://www.8951.com/10/huikan.htm">如何购买</A></FONT>
<CENTER></CENTER>
<P align=left>;小喇叭的爬音演奏,即do,rui,mi,fa,so,la,xi,do<BR>;30h=步进值,21h低8位
22h高8位<BR>;***************************************************************************<BR>;*
(程序转载请著明出处 ,未声明可适应本站腾龙/isp开发套件/倚天版开发套件
*<BR>;* E-mail:sxj1974@163.com (51c51 test web)
51单片机学习网,自学单片机的网站
*<BR>;* Create by :石学军 <A
href="http://www.51c51.com/">http://www.51c51.com/</A>
www.8951.com
更多例程请登陆网站
*<BR>;***************************************************************************<BR>org
0000h<BR>ajmp main<BR>org 000bh<BR>jmp tim0<BR>org 0030h<BR>main:
;主程序<BR>mov tmod,#01h ;设定时方式<BR>mov ie,#82h ;开中断<BR>start0:<BR>mov
30h,#00h ;<BR>next: mov a,30h<BR><BR>jnz sing ;根据音调决定是否演奏.<BR>clr
tr0<BR>jmp d1<BR>sing: dec a<BR>mov 22h,a ;将音调存入22H.<BR>rl a<BR>mov
dptr,#table1<BR>movc a,@a+dptr ;根据音调决定定时器初值.<BR>mov th0,a ;放入TH0<BR>mov
21h,a<BR>mov a,22h<BR>rl a<BR>inc a<BR>movc a,@a+dptr<BR>mov tl0,a
;放入TL0<BR>mov 20h,a<BR>jz end0 ;如果到了00则停止发音<BR>setb tr0 ;启动定时<BR>d1: call
delay<BR>inc 30h ;取下一个码<BR>jmp next<BR>end0: clr tr0<BR>jmp start0
;重新开始<BR><BR>tim0: ;定时器中断服务程序<BR>push acc<BR>push psw<BR>mov tl0,20h
;重赋初值.<BR>mov th0,21h<BR>cpl p3.3<BR>pop psw<BR>pop
acc<BR>reti<BR><BR>delay: mov r7,#03h ;延时子程序 决定每个音的时间<BR>d2: mov
r4,#187<BR>d3: mov r3,#248<BR>djnz r3,$<BR>djnz r4,d3<BR>djnz
r7,d2<BR>ret<BR>table1: ;决定音调的定时初值.<BR>dw 64260,64400,64524,64580<BR>dw
64684,64777,64820,64898<BR>dw 64968,65030,65058,65110<BR>dw
65157,65178,65217,00<BR>end<BR></P></TD></TR></TBODY></TABLE></DIV></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -