欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    音乐程序原理.doc

    • 资源ID:2386245       资源大小:32KB        全文页数:5页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    音乐程序原理.doc

    音乐程序的设计原理和程序如下:设计原理7 l9 8 R! ?! B3 T1 - J! Z 总体原理:- x9 L$ P* S3 c# P! 8 a 乐曲中不同的音符,实质就是不同频率的声音。通过单片机产生不同的频率的脉冲信号,经过放大电路,由蜂鸣器放出,就产生了美妙和谐的乐曲。# a& Q; m+ C. g# g2 C 单片机产生不同频率脉冲信号的原理:/ G& p8 r' p7 L' V$ k' t2 H0 T1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。: o5 _* o" T5 3 X) L2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下:+ O& O! 0 M1 p0 u, Y2 ?    例如,频率为523Hz,其周期天/523 S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。' 1 G2 5 e3 o7 V! B. M计数脉冲值与频率的关系公式如下:% 0 l+ ! f5 |5 |0 n+ N=Fi/2/Fr ) f1 Y9 |, ?7 ) J(N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率 )9 K  h8 l5 / b 其计数值的求法如下:/ Q: 4 ! a# W. L6 K" GT=65536-N=65536-Fi/2/Fr* N+ g1 y# d& l6 F; N7 L- T计算举例:9 w; W2 Q3 7 X1 X4 T0 J设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。6 k  Q# o% a. _T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr9 K& ) B0 w- - H- S' d低音DO的T=65536-500000/262=636279 V4 f; % U5 e4 Z) K7 中音DO的T=65536-500000/523=64580; t9 g/ x' c0 s, r高音DO的T=65536-500000/1047=65059! z' Q3 H2 q; z9 e C调个音符频率与计数值T的对照表如下表所示:- r* X# t! B' D, r" Z, G4 u( : X# H) x( W. 1 H# y0 K3 W表9.1  C调各音符频率与计数值T的对照表+ X! w- / 5 d5 s音符 频率(Hz) 简谱码T值 音符 频率(Hz) 简谱码T值- c/ X; c+ w3 t& Z; x9 E低1DO 262 63628 #4FA# 740 64860  f: Y2 y4 X3 K* i% 3 w4 L0 Z#1DO# 277 63731 中5SO 784 64898$ a. t0 W) |. _7 m& D低2RE 294 63835 #5SO# 831 649237 z% W# L6 d9 a1 Y/ a! D#2RE# 311 63928 中6LA 880 64968' u9 q5 L! # R8 4 l( h低3M 330 64103 #6 932 64994  L4 d7 : 3 K! S: q, A低4FA 349 64103 中7SI 988 650301 B, ?& - 8 A  C#4FA# 370 64260 高1DO 1046 65058* B& , . U3 x低5SO 392 64260 #1DO# 1109 65085) D/ D" I5 W* Q" J#5SO# 415 64331 高2RE 1175 65110; N; W2 G1 I, r+ h6 低6LA 440 64400 #2RE# 1245 65124. , r3 x! 6 z0 W#6 466 64463 高3M 1318 651576 R, c# k# i; x) N低7SI 494 64524 高4FA 1397 65178; K/ j  p- D4 W中1DO 523 64580 #4FA# 1480 651986 9 w; f" h( _+ J7 J/ H: V# Z# F, h7 W! c  D 每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,下表为节拍码的对照。但如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如下表为1/4和1/8节拍的时间设定。        1 G2 Y: 2 u# b表9.2  节拍码对照表# 1 L& z9 ?* e$ . Y; N1/4节拍 1/8节拍0 W9 s5 E5 I  l8 g& _2 T9 V节拍码 节拍数 节拍码 节拍数: R8 % _0 T" W; u! Z6 S, n) s1 1/4拍 1 1/8拍5 A. H: v, e( M1 s* U7 I2 2/4拍 2 1/4拍9 b( F- m5 O+ J/ x3 3/4拍 3 3/8拍* ( T$ p1 a6 W! D7 B! A" B4 1拍 4 1/2拍- m# c) Y$ q4 O8 l5 1又1/4拍 5 5/8拍- i2 . 7 B8 0 N6 1又1/2拍 6 3/4拍9 t6 K4 p) V/ O, P5 l  M, _7 1又3/4拍 7 7/8拍6 3 2 9 n+ c8 2拍 8 1拍) a2 U2 C, C- D# 9 2又1/4拍 9 1又1/8拍8 - Y; / q" X  + yA 2又1/2拍 A 1又1/4拍" Q( 2 |# v) h* N1 a8 S( aB 2又3/4拍 B 1又3/8拍3 b( ! u( g$ R+ p0 g  : B6 hC 3拍 C 1又1/2拍2 j9 b( I; k1 K! cD 3又1/4拍 D 1又5/8拍- ( g( c! - R3 A; gE 3又1/2拍 E 1又3/4拍; D. 5 e! b; J" KF 3又3/4拍 F 1又7/8拍) c1 U; V  0 p& m6 D9 K  q表9.3   各调节拍的时间设定表$ + 6 R. t6 E9 0 q1/4节拍 1/8节拍+ o/ Y  n5 Q4 e  U& |$ k5 m曲调值 DELAY 曲调值 DELAY8 * U! M' W# J5 p8 S+ c调4/4 125毫秒 调4/4 62毫秒4 c9 - n' O! y: T  F& I  C# a调3/4 187毫秒 调3/4 94毫秒& S8 e9 r# n$ f* Q/ K9 Y. b8 调2/4 250毫秒 调2/4 125毫秒$ v7 Q8 e. z5 W! y) 6 b* I 建立音乐的步骤:! K' t5 C% Z1 n0 G0 v- R7 W    1)先把吧乐谱的音符找出,然后由上表建立T值表的顺序。+ N' e; K) * |4 W; |+ F    2)把T值表建立在TABLE1,构成发音符的计数值放在“TABLE”。! w, D+ ! p5 k- p. N3)简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。+ o) a! 0 F) f; o/ G4 _! b6 u  1 B5 X表9.4  简谱对应的简谱码、T值、节拍数- C5 |5 ) C6 K3 L0 Z! X简谱 发音 简谱码 T值 节拍码 节拍数: F$ o+ B8 f' J2 u, e: % f5 低5SO 1 64260 1 1/4拍0 O; k5 x. U0 K+ V! y6 低6LA 2 64400 2 2/4拍5 T0 G% v: g; J  " n  Y+ Z7 低7SI 3 64524 3 3/4拍- r* S7 q" E, Z" U9 ( z7 I1 中1DO 4 64580 4 1拍! l- |. v0 P. m2 N/ - ! q; E, 2 中2RE 5 64684 5 1又1/4拍! G+ f5 k4 ( Z/ X7 K) * 3 中3M 6 64777 6 1又2/4拍. E' p' H) e  s4 中4FA 7 64820 7 1又3/4拍  q' p& I4 y  h5 4 * t9 Z. 5 中5SO 8 64898 8 2拍: y4 J/ m, 2 _& Q: u6 中6LA 9 64968 9 2又1/4拍( _6 Y6 G5 e2 K7 中7SI A 65030 A 2又2/4拍/ y: o% ! n8 p9 0 F9 y1 e9 T1 高1DO B 65058 B 2又3/4拍) H) & b" 4 P" 2 ' A7 U1 F" B2 高2RE C 65110 C 3拍* n, Z# P( W3 J5 F) q, * C' J3 高3M D 65157 D 3又1/4拍2 z$ p3 W3 j6 E  W- 5 _5 y4 高4FA E 65178 E 3又2/4拍1 e2 c5 x5 Z+ O0 D$ o- c5 高5SO F 65217 F 3又3/4拍8 b$ 6 ?% - 不发音 0   5 G6 K; E; |1 q7 n* f% J, y" T0 Y* A1/4拍的延迟时间=187毫秒8 t: e, v4 f) g- W' nDELAY:    MOV  R7,#2. n    v8 0 Q; g; d) fD2:       MOV  R4,#1874 ?1 ?! 0 S: l% e2 E5 V0 G0 T9 uD3:       MOV  R3,#2480 E# Y" g# N7 j; lDJNZ  R3,$0 t! j$ T. W6 B! p/ oDJNZ  R4,D38 a5 r3 k4 M5 H9 y5 ) q$ KDJNZ  R7,D2# _/ G* T, d1 P( ) J/ H. Z& GRET5 A7 m3 z) H0 R) T9 h9 d( V4程序范例3 N. O& B  U1 k  : j7 ORG 0000H      ;主程序起始地址% |, d' x7 j% l% L, R( T7 oSJMP START      ;跳至主程序, x. ?6 f, C- Q% z0 Z* v( T! BORG 000BH      ;TIMER0中断起 始地址  i1 o7 X, V% 7 1 g          LJMP TIM0      ;跳至TIMER0中断子程序9 9 ?  s. n5 v8 D" b3 lSTART:  MOV TMOD,#01H ;设T0在M1" C' - d/ x$ d    q          MOV IE,#82H     ;中断使能% z; o9 q" K, K" I. SSTART0:MOV 30H,#00     ;取简谱码指针! u; f" S& k+ bNEXT:   MOV A,30H       ;简谱码指针载入A2 e. F' ! - v# W) N%           MOV DPTR,#TAB ;至TAB取简谱码! D! X! ( r9 e, s  0 . LMOVC A,A+DPTR ;* 4 g' V. W2 r5 y& ?* I* d0 c& n          MOV R2,A        ;渠道的简谱码暂存于R2- O" w3 , d* b" % G0 U          JZ  END0       ;是否渠道00(结束码)% r' h' o+ y1 9 c          ANL  A,#0FH   ;不是,则取低4位(节拍码)2 g" R& G' m( w*   T          MOV R5,A  ;将节拍码存入R5. E7 R2 c! 1 o8 Y2 y+ F' U          MOV A,R2  ;将取到的简谱码再载入A+ . + y7 T0 l0 k1 A; F5           SWAP A   ;高低4位交换  m: u; I! + u5 m" l  W          ANL  A,#0FH  ;取低4位(音符码)% M6 H; J' e6 m9   e          JNZ  SING  ;取到的音符码是否为0?' x. A- k% C% Z1 t2 e' v! r9 P1 o* D, z          CLR TR0   ;开始,则不发音! L- T5 , P2 k' F; n           SJMP D1   ;跳至D1# U" 9 ) A: 3 / jSING:   DEC A   ;取到的音符码减1(不含0)5 e( g/ a+ C& h2 Z- l, b          MOV 22H,A  ;存入(22H)5 2 _% K% O" Z1           RL  A   ;乘23 l- t7 l5 u: O+ p          MOV DPTR,#TAB1 ;至TABLE1取相对的高位字节计数值. n8 e0 , Q0 t6 E" W' |$ u: J          MOVC A,A+DPTR ;5 _  O; * d* 0 c  H7 MOV TH0,A  ;取到的高位字节存入TH0+ r9 k/ T# * C: ?) sMOV 21H,A  ;取到的高位字节存入(21H)1 T7 ?0 j; Y' h" F6 aMOV A,22H  ;在载入取到的音符码& 6 u# z( 0 E  Z- M/ e& ORL  A   ;乘2  T  e) X6 r' g8 C% _0 XINC  A   ;加14 C. b) a: D5 ?MOVC A,A+DPTR ;至TABLE1取相对的低位字节计数值& G4 y+ N$ I/ n; g7 U) oMOV TL0,A  ;取到的低位字节存入TL01 n4 k& ?0 n8 , C+ % ZMOV 20H,A  ;取到的低位字节存入(20H)0 a1 w% S& . Q6 l: dSETB TR0   ;启动TIMER0$ 0 ?' ?/ U9 W2 G. z/ o: b0 PD1:  LCALL DELAY  ;其本单位时间1/4拍187毫秒1 g: G7 3 x1 e    INC  30H   ;取简谱码指针加1* z" z$ l: o5   m2 U    JMP NEXT  ;取下一个简谱码3 D1 S! N" E/ e# D1 yEND0: CLR TR0   ;停止TIMER0) q% : Q6 7 _: M5 v    JMP START0  ;重复循环' I0 r) m( W; i2 FTIM0: PUSH ACC  ;将A的值暂存于堆栈! r! p) K1 f. _6 m1 Q6 d' l, h  e    PUSH PSW  ;将PSW的值暂存于堆栈: V& L% f9 a% x    MOV TL0,20H ;重设计数值4 U/ n6 a3 6 w* z. U" ?1 b( W5 r2 P    MOV   TH0,21H ;: y  d8 0 M8 S    CPL  P3.0  ;将P3.0位反相,控制蜂鸣器发声( * e0 m4 v. F5 e( : j- g    POP    PSW  ;至堆栈取回PSW的值6 h( E$ H; S" K- ( o) K    POP ACC  ;至堆栈取回A的值* x8 g$ Y9 a+ D- / K2 S6     RETI        : s" z* O: w6 Y% k/ B/ U) . ?) IDELAY:MOV R7,#02     ) P& # w# e& 1 g0 q; e" Z* FD2: MOV   R4,#187    $ |. E! D9 V3 W$ K. ! TD3: MOV R3,#248    4 m4 h3 u! O! d* l: u  S    DJNZ R3,$     # Z" K, + K' I7 M% : Z    DJNZ R4,D3     4 G7 U- R/ ) a$ Q. v6 q. H    DJNZ R7,D2     " _7 O$ g+ U& $ L$ C    RET   " g2 a+ 9 O) - l6 y. TAB1:            ;决定节拍, U( G$ s9 O7 6 y+ W6 H' n0 Q5 DDW  64260,64400,64521,64580 ' N9 j" j, D9 # B: C    DW  64684,64777,64820,64898. r1 Q. R# 4 g' n# * k# A' N5     DW  64968,65030,65058,651100 U, p6 X9 E( k0 k; W4 I) l6 I    DW  65157,65178,65217 6 b  R$ e, X, G, H/ l9 " i( XTAB:           ;乐曲名称梁祝4 W  K" 1 W% w/ s$ M    DB  02H,82H,62H,52H,48H,02H,52H,32H,22H,18H4 N+ h: S0 n) d1 5 y& " _& , F: U    DB  83H,91H,72H,62H,51H,61H,71H,61H,83H,61H. t# B" G% l2 O# 8 L    DB  81H,51H,61H,71H,61H,51H,46H,82H,32H,52H9 K4 Y) x+ C: _2 Y. i" J    DB  22H,42H,16H,21H,41H,18H,0E4H,13H,21H,43H/ Z; d) P( F% c! s: v    DB  51H,21H,41H,12H,83H,81H,61H,81H,58H,53H# ?& 7 s* I/ |' wDB  61H,31H,22H,13H,21H,42H,52H,0E2H,42H,21H0 M: + m& d' ?1 B- ?    DB  11H,91H,41H,18H,63H,81H,32H,52H,21H,41H,$ h* B5 K5 , A0 i5 t    DB  16H,0E4H,11H,21H,31H,51H,26H,11H,21H,43H. T- h1 V4 v5 : ' T    DB  51H,82H,62H,52H,61H,51H,42H,21H,11H,0E4H" A( j$ w( Y4 p5 x1 c* H    DB  44H,21H,41H,21H,11H,0E1H,11H,21H,41H,18H. k7 x. O0 Z8 i8 K) G    DB  61H,81H,51H,61H,51H,41H,32H,21H,41H,18H5 n2 s! b9 !     DB  08H,0H,04H    ;曲子最后静音5拍长的时间# c) r9 O6 r5 o    DB  00H      ;乐曲结束*

    注意事项

    本文(音乐程序原理.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开