单片机怎么实现演奏两首歌(生日快乐+两只老虎) 汇编语言 求51单片机蜂鸣器音乐汇编语言,两只老虎的

\u7528C51\u5355\u7247\u673a\u5982\u4f55\u7f16\u7a0b\u51fa\u4e24\u53ea\u8001\u864e\u8fd9\u9996\u6b4c\u66f2\uff1f\uff08\u8981\u7528C\u8bed\u8a00\u7f16\u7a0b\uff09

\u7528T0/T1\uff0c\u4e00\u4e2a\u7528\u4e8e\u9891\u7387\u63a7\u5236\uff08\u97f3\u8c03\uff09\uff0c\u4e00\u4e2a\u63a7\u5236\u65f6\u957f\uff08\u8282\u594f\uff09

ORG 0000H
AJMP MAIN
ORG 000BH
AJMP T0INT
ORG 0050H
MAIN: MOV TMOD,#01H
MOV IE,#82H
Again: MOV DPTR,#TAB;\u8868\u9996\u5730\u5740
LOOP: CLR A
MOVC A,@A+DPTR
MOV R2,A ;\u65f6\u95f4\u9ad8\u4f4d
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R3,A;\u65f6\u95f4\u4f4e\u4f4d 2
ORL A,R2
JZ STOP
MOV A,R2
ANL A,R3
CJNE A,#0FFH,NEXT
AJMP Again
NEXT: MOV TH0,R2
MOV TL0,R3
SETB TR0
NEXT1: CLR A
INC DPTR
MOVC A,@A+DPTR
MOV P1,A;\u5b57\u5f62\u7801\u663e\u793a 3
CLR A
INC DPTR
MOVC A,@A+DPTR; \u5ef6\u65f6\u5e38\u6570 4
DEL: MOVR5, 2
DEL0: MOVR6 ,#250
DEL1: MOVR7, #248
NOP
DEL2: DJNZR7, DEL2
DJNZR6,DEL1
DJNZR5,DEL0
CLR TR0
INC DPTR;\u4e0b\u4e00\u4e2a\u97f3\u8282
LJMP LOOP
STOP: AJMP NEXT1
T0INT: PUSH A
PUSH PSW
PUSH DPH
PUSH DPL
CPL P3.0;\u97f3\u9891\u53d6\u53cd
MOV TH0,R2
MOV TL0,R3
SETB TR0
POP DPL
POP DPH
POP PSW
POP A
RETI
TAB: DB


\u5728TAB\u540e\u628a\u7b80\u8c31\u6253\u4e0a

  ;音乐生日快乐的播放
  numtim equ 20h
  EQUei equ 21h
  EQUwei equ 22h
  EQUnled equ 23h
  EQU 000hORGp startJMPg 00bh
  jORGtim0
  oJMP100h
  ORGart:; JB P3.7,$ ;检测播放按键是否按下
  mov tmod,#00000001b
  MOV mov ie,#10000010b
  MOV mov numtim,#01h
  startMOVov 30h,#00h

  nextMOVv a,30h
  mov MOVr,#table
  MOVovc a,@a+dptr
  mov r2,a
  jz eMOV
  anl aJZ0fh
  mov r5,a
  mov aMOV
  swap MOV anl a,#0fh
  jnz sing
  clr tJNZ
  jmp d1
  sing: dec aJMP mov 22h,DEC rl aMOV mov dptr,#table1
  MOVmovc a,@a+dptr
  mov th0,a
  mov MOV,a
  mov MOV2h
  rl aMOV inc a
  movc a,@INCptr
  mov tl0,a
  mov MOV,a
  setbMOV0
  d1:lcall delay
  inc 30h
  jmp neINC
  end0:clr JMP
  jmp start0
  tim0:puJMPacc
  pushPUSH
  mov PUSH2PSW
  MOV th0,21h
  MOV p1.6 ;由该口输出音频数据
  pop psw
  pop acc
  POPrPSW

  dPOPy: mov r7,#02h
  d2: mov r4,#1MOV
  d3: mov r3,#MOV
  djnz r3,MOV djnz r4,d3
  djnz r7,d2
  djnz r5,delay
  ret
  table1: RET ;音乐码表
  dw 64260,64400,64524,64580
  DW dw 64684,64777,64820,64898
  DW dw 64968,65030,65058,65110
  DW dw 65157,65178,65217
  table:dDW82h,01h,81h,94h,84h
  DB 0b4h,0a4h,04h
  db 82hDB1h,81h,94h,84h
  DB 0c4h,0b4h,04h

  db 8DB,01h,81h,0f4h,0d4h
  DBdb 0b4h,0a4h,94h
  db 0e2DB01h,0e1h,0d4h,0b4h
  DB db 0c4h,0b4h,04h

  db 8DB,01h,81h,94h,84h
  DB 0b4h,0a4h,04h
  db 82hDB1h,81h,94h,84h
  DB 0c4h,0b4h,04h

  db 8DB,01h,81h,0f4h,0d4h
  DBdb 0b4h,0a4h,94h
  db 0e2DB01h,0e1h,0d4h,0b4h
  DB db 0c4h,0b4h,04h
  db 00DB
  TABLE2:DB 0C0H,0F9H,DB4H,0B0H,99H,92H,8DB,0F8H,80H,90H
  end

  END

  我只有生日快乐的程序,希望对你有帮助,从我这个程序你了解了原理,你就可以随意搞了,玩熟悉了就简单了!

  • 鍗曠墖鏈烘庝箞瀹炵幇婕斿涓ら姝(鐢熸棩蹇箰+涓ゅ彧鑰佽檸) 姹囩紪璇█
    绛旓細pushPUSH mov PUSH2PSW MOV th0,21h MOV p1.6 ;鐢辫鍙h緭鍑洪煶棰戞暟鎹 pop psw pop acc POPrPSW dPOPy: mov r7,#02h d2: mov r4,#1MOV d3: mov r3,#MOV djnz r3,MOV djnz r4,d3 djnz r7,d2 djnz r5,delay ret table1: RET ;闊充箰鐮佽〃 dw 64260,64400,64524,64580...
  • 濡備綍浣跨敤msp430f6638鍗曠墖鏈鎾斁涓ゅ彧鑰佽檸鍜鐢熸棩姝
    绛旓細鏈変袱绉嶆柟娉曪細涓銆佺敤鑴夊啿鎺у埗铚傞福鍣ㄩ鐜囨潵妯′豢闊宠氨锛屾妸闇瑕佺殑鍝ユ洸杞崲鎴愯剦鍐查鐜囩殑鍊锛屼簩銆傜敤璇煶鑺墖锛屾妸鍝ョ儳褰曡繘璇煶鑺墖锛岀劧鍚庣敤鍗曠墖鏈烘帶鍒舵挱鏀惧嵆鍙傝鏄庯細绗竴绉 闇瑕佸鍗曠墖浜嗚В寰楃浉瀵规繁鍏ヤ簺锛岀浜岀寰堢畝鍗曪紝浼氭帶鍒跺崟鐗囨満IO灏卞彲浠ヤ簡銆俉T588璇煶鑺墖灏辫兘瀹炵幇锛屽叿浣撹鐪嬩綘鐨勬澘瀛愮殑灏哄鍜屽畨瑁呬綅缃槸鍚﹀厖瓒...
  • 姹: 鐢51鍗曠墖鏈c璇█鎿嶄綔浣胯渹楦e櫒濂忓嚭鈥滅浣鐢熸棩蹇箰鈥闊充箰鐨勫叏閮ㄧ▼搴...
    绛旓細unsigned char timer0h,timer0l,time;//鐢熸棩姝 code unsigned char sszymmh[]={5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,4,2,1, 4...
  • 璺眰涓涓鍗曠墖鏈虹敓鏃蹇箰姝孋璇█绋嬪簭.
    绛旓細12,9, 12,3, 11,12, 9,12, 10,12, 9,24}; //姝岃氨 2涓竴缁(0,0)(闊宠皟,鑺傛媿)void init () //鍒濆鍖 { EA=1;TMOD=0x11;ET0=1;ET1=1;i=0;flag=1;} void sing(){ if(flag==1){ h=song[i];jiep=song[i+1];i=i+2;if(i>46) i=0;hz=fre[h];TH0=(hz)/256...
  • 鐢89C51鍗曠墖鏈鍜岃渹楦e櫒鎾斁鈥 鐢熸棩蹇箰鈥濇瓕鐨凜绋嬪簭 12M鏅舵尟
    绛旓細1銆佸啓鍏ュご鏂囦欢銆2銆佸姞鍏ュ畯瀹氫箟銆3銆佷綅瀹氫箟 缁欏嚭铚傞福鍣ㄥ彉閲 beep锛屾帴鍙f槸P2^3銆俿bit beep = P2^3;銆4銆佽璁″欢杩熷嚱鏁帮細void delay(uint z){uint x,y;for(x = z; x > 0; x--)for(y = 60; y > 0 ; y--);} 銆5銆佽璁′富鍑芥暟銆6銆佸姞鍏ュ惊鐜晥鏋滐紝铚傞福鍣ㄣ俠eep = ~beep涓細 ~鎸...
  • 鐢鍗曠墖鏈濂忓嚭鐢熸棩蹇箰姝
    绛旓細//鐢熸棩蹇箰姝岃妭鎷嶈〃锛岃妭鎷嶅喅瀹氭瘡涓煶绗︾殑婕斿闀跨煭 uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0};//寤舵椂 void DelayMS(uint x){ uchar t;while(x--) for(t=0;t<120;t++);//鎾斁鍑芥暟 void PlayMusic(){ uint i=...
  • 姹傚姪鈥滃熀浜巗tc51鍗曠墖鏈鐨鐢熸棩蹇箰姝屸
    绛旓細鍏跺疄寰堝鏄撶殑鍛傛壘涓涓鍗曠墖鏈鏈灏忕郴缁熸澘鎴栬呭紑鍙戞澘锛岀劧鍚庢帴濂借渹楦e櫒鐢佃矾銆傚湪缃戜笂鎵句竴涓渹楦e櫒濂忎箰鐨勪緥绋嬶紝鏀瑰ソI/O锛屽氨鍙互濂忎箰浜嗐傚啀鎵句竴涓渹楦e櫒璧颁篃鐨勮緟鍔╄蒋浠讹紝杈撳叆鐢熸棩姝鐨勭畝璋憋紝灏卞彲浠ュ鐢熸棩姝屼簡銆
  • 鍗曠墖鏈鐨勮渹楦e櫒婕斿 鐢熸棩姝
    绛旓細瑕佹兂鐢ㄦā鎷熸瓕澹伴鍏堣瀹氫箟1234567涓嶅悓鐨勯煶绗,鍋氫釜h鏂囦欢鏀捐繖閲,,浣犲悗鍋氬叾浠栫殑姝屾洸鍙互鍏变韩銆傝繖閲岀綉涓婂彲浠ユ壘鍒,鎴戠粰浣犱竴涓傘傜劧鍚庡缓绔嬩釜姝屾洸涓荤▼搴,鏍规嵁姝岃氨瀛,缁撳悎浣犵殑闊崇瀹氫箟缁欎粬浠栫紪鐮,鎶婄紪鐨勭爜鏀惧埌涓涓暟缁勯噷闈㈢劧鍚庤緭鍑哄氨濂戒簡,,涓嬮潰鎴戠粰浣涓棣栨瓕浣滀负渚嬪瓙,,鎴戜篃娌″仛涓綘閭d釜浠涔鐢熸棩姝,浣犺嚜宸卞幓缂栫爜鍚,,鏈...
  • 鍗曠墖鏈楂樻墜甯繖鐢 at89s52鑺墖 鍐欎釜鐢熸棩蹇箰姝岀殑绋嬪簭!!
    绛旓細;瀹氭椂鍣ㄥ艰瀹氫负62500锛屽垯鍙鎵ц涓ゆ涓柇锛屽嵆鍙骇鐢1/4鎷嶇殑闀垮害銆侭ASE EQU -62500 SPEAKER EQU P1.0 ;=== ORG 0000H LJMP INITIAL ORG 000BH LJMP TONE_INT ORG 001BH LJMP BEAT_INT INITIAL:MOV TMOD,#11H MOV IE,#10001010B MOV SP,#70H START:CLR F0 MOV R7,#00H MOV R6,#...
  • 杩欐槸涓涓埄鐢89C52RC鍗曠墖鏈铚傞福鍣婕斿鐢熸棩蹇箰姝屻傝楂樻墜甯垜瑙i噴涓涓...
    绛旓細delay(time); //寤舵椂褰撳墠棰戠巼鐨婕斿鏃堕棿 } void main(void){ unsigned char k,i;TMOD=1; //缃瓹T0瀹氭椂宸ヤ綔鏂瑰紡1 EA=1; ET0=1;//IE=0x82 //CPU寮涓柇,CT0寮涓柇 while(1){ i=0;while(i<75){ //闊充箰鏁扮粍闀垮害 锛屽敱瀹屼粠澶村啀鏉 k=sszymmh[i]+7*sszymmh[i+1]-1; //鍙栧綋鍓...
  • 扩展阅读:51单片机如何播放两首音乐 ... 单片机生日快乐歌 ... 51单片机演奏音乐代码 ... 单片机完整开发流程 ... 单片机入门教程视频 ... 51单片机音乐代码生成器 ... 51单片机蜂鸣器生日歌 ... 单片机生日快乐代码仿真 ... 单片机入门基础知识 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网