那曲檬骨新材料有限公司

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>匯編編程>

單片機之匯編語言會唱歌

大小:0.1 MB 人氣: 2017-09-06 需要積分:0
? ? ?DATA1?? EQU?? 30H?????? ;
?DATA2?? EQU?? 31H?????? ;
?SP1???? EQU?? P3.7????? ;
;-----------------------------------------------------????????
??ORG???? 0000H?????????? ;
?LJMP??? START?????????? ;
?ORG???? 000BH?????????? ;
?INC???? DATA1?????????? ;中斷服務,中斷計數器加1
?MOV???? TH0,#0DBH?????? ;
?MOV???? TL0,#0FEH?????? ;11.0592M晶振,形成10毫秒中斷
?RETI??????????????????? ;
;---------------------------------------------------
START:
?CPL???? SP1???????????? ;
?MOV???? SP,#50H???????? ;
?MOV???? TH0,#0DBH?????? ;
?MOV???? TL0,#0FEH?????? ;
?MOV???? TMOD,#01H?????? ;
?MOV???? IE,#82H???????? ;
VOICE0:
?NOP???????????????????? ;
?MOV???? DPTR,#TABLE???? ;表頭地址送DPTR
?MOV???? DATA1,#00H????? ;中斷計數器清0
?MOV???? DATA2,#00H????? ;表序號清0
VOICE1:
?NOP???????????????????? ;???
?CLR???? A?????????????? ;
?MOVC??? A,@A+DPTR?????? ;查表取代碼???????
?JZ????? EXIT_END??????? ;是00H,則結束
?CJNE??? A,#0FFH,VOICE5? ;??????
?LJMP??? VOICE3????????? ;
VOICE5:??????
?NOP???????????????????? ;
?MOV???? R6,A??????????? ;??
?INC???? DPTR??????????? ;?????????
?MOV???? A,DATA2???????? ;????
?MOVC??? A,@A+DPTR?????? ;取節拍代碼送R7
?MOV???? R7,A??????????? ;????
?SETB??? TR0???????????? ;啟動計數
VOICE2:??????
?NOP???????????????????? ;
?CPL???? P3.7??????????? ;????
?MOV???? A,R6??????????? ;
?MOV???? R3,A??????????? ;???
?LCALL?? DELAY?????????? ;
?MOV???? A,R7??????????? ;????
?CJNE??? A,DATA1,VOICE2? ;中斷計數器(20H)=R7否?
????;不等,則繼續循環
?MOV???? DATA1,#00H????? ;等于,則取下一代碼???????
?INC???? DPTR??????????? ;????
?LJMP??? VOICE1????????? ;
VOICE3:????????
?NOP???????????????????? ;
?CLR???? TR0???????????? ;休止100毫秒
?MOV???? R2,#0DH???????? ;
VOICE4:?????????
?NOP???????????????????? ;???????
?MOV???? R3,#0FFH??????? ;???????
?LCALL?? DELAY?????????? ;???
?DJNZ??? R2,VOICE4?????? ;?????
?INC???? DPTR??????????? ;??
?LJMP??? VOICE1????????? ;
;--------------------------------------------------
EXIT_END:????????
?NOP????????
?MOV???? R2,#64H???????? ;歌曲結束,延時1秒后繼續
VOICE6:????????
?MOV???? R3,#00H???????? ;??????
?LCALL?? DELAY?????????? ;
?DJNZ??? R2,VOICE6?????? ;???????
?LJMP??? VOICE0????????? ;
;--------------------------------------------------
DELAY:???????
?NOP???????????????????? ;
DEL3:?
??????? MOV???? R4,#02H???????? ;
DEL4:?
?NOP???????????????????? ;
?DJNZ??? R4,DEL4???????? ;??????
?NOP???????????????????? ;
?DJNZ??? R3,DEL3???????? ;???????
?RET???????????????????? ;??????????????
;-------------------------------------------------?
TABLE:???
?DB????? 18H,???? 30H,???? 1CH ,??? 10H
?DB????? 20H,???? 40H,???? 1CH ,??? 10H?
?DB????? 18H,???? 10H,???? 20H ,??? 10H
?DB????? 1CH,???? 10H,???? 18H ,??? 40H
?DB????? 1CH,???? 20H,???? 20H ,??? 20H
?DB????? 1CH,???? 20H,???? 18H ,??? 20H?
?DB????? 20H,???? 80H,???? 0FFH,??? 20H
?DB????? 30H,???? 1CH,???? 10H ,??? 18H
?DB????? 20H,???? 15H,???? 20H ,??? 1CH
?DB????? 20H,???? 20H,???? 20H ,??? 26H
?DB????? 40H,???? 20H,???? 20H ,??? 2BH
?DB????? 20H,???? 26H,???? 20H ,??? 20H
?DB????? 20H,???? 30H,???? 80H ,??? 0FFH
?DB????? 20H,???? 20H,???? 1CH ,??? 10H
?DB????? 18H,???? 10H,???? 20H ,??? 20H
?DB????? 26H,???? 20H,???? 2BH ,??? 20H
?DB????? 30H,???? 20H,???? 2BH ,??? 40H
?DB????? 20H,???? 20H,???? 1CH ,??? 10H
?DB????? 18H,???? 10H,???? 20H ,??? 20H
?DB????? 26H,???? 20H,???? 2BH ,??? 20H
?DB????? 30H,???? 20H,???? 2BH ,??? 40H
?DB????? 20H,???? 30H,???? 1CH ,??? 10H
?DB????? 18H,???? 20H,???? 15H ,??? 20H
?DB????? 1CH,???? 20H,???? 20H ,??? 20H
?DB????? 26H,???? 40H,???? 20H ,??? 20H??
?DB????? 2BH,???? 20H,???? 26H ,??? 20H
?DB????? 20H,???? 20H,???? 30H ,??? 80H
?DB????? 20H,???? 30H,???? 1CH ,??? 10H
?DB????? 20H,???? 10H,???? 1CH ,??? 10H
?DB????? 20H,???? 20H,???? 26H ,??? 20H
?DB????? 2BH,???? 20H,???? 30H ,??? 20H
?DB????? 2BH,???? 40H,???? 20H ,??? 15H
?DB????? 1FH,???? 05H,???? 20H ,??? 10H
?DB????? 1CH,???? 10H,???? 20H ,??? 20H
?DB????? 26H,???? 20H,???? 2BH ,??? 20H
?DB????? 30H,???? 20H,???? 2BH ,??? 40H
?DB????? 20H,???? 30H,???? 1CH ,??? 10H
?DB????? 18H,???? 20H ,??? 15H ,??? 20H
?DB????? 1CH,???? 20H ,??? 20H ,??? 20H
?DB????? 26H,???? 40H,???? 20H ,??? 20H
?DB????? 2BH,???? 20H,???? 26H ,??? 20H
?DB????? 20H,???? 20H,???? 30H ,??? 30H?
?DB????? 20H,???? 30H,???? 1CH ,??? 10H
?DB????? 18H,???? 40H,???? 1CH ,??? 20H
?DB????? 20H,???? 20H,???? 26H ,??? 40H
?DB????? 13H,???? 60H,???? 18H ,??? 20H
?DB????? 15H,???? 40H,???? 13H ,??? 40H
?DB????? 18H,???? 80H,???? 00H
?END
?
?

2、單片機播放歌曲《蘭花草》

?*******************************************************???
??????? SPK?? EQU? P3.7???; 蜂鳴器所在端口
?ORG?0000H
?JMP?START
?
START:
?MOV?R3,#00H
NEXT:
?MOV?A,R3
?MOV?DPTR,#TABLE
?MOVC?A,@A+DPTR
?JZ?START
?MOV?R7,A
?INC?R3
?MOV?A,R3
?MOVC?A,@A+DPTR
?MOV?R2,A
?ACALL?SONG
?INC?R3
?SJMP?NEXT

;===============================================================================?
;===? 歌曲播放子程序 ===
SONG:
?MOV?A,R2?????; 取出節拍
?RL?A
?JNZ?KEEP
?MOV?A,#01H
KEEP:
?MOV?R2,A
REPEAT:
?ACALL?EIGHTH
?DJNZ?R2,REPEAT
?RET
?
;===============================================================================?
;===? 產生1/8拍延時子程序? ===??
EIGHTH:
?MOV?A,R7?????; 查表取出廷時參數,保存到R4
?MOV?DPTR,#DELAY_T
?MOVC?A,@A+DPTR
?MOV?R4,A
?MOV?A,R7?????; 查表取出1/8拍周期數,保存到R5
?MOV?DPTR,#S_PARA
?MOVC?A,@A+DPTR
?MOV?R5,A
NEXTCYC:
?ACALL?SOUND
?DJNZ?R5,NEXTCYC
?RET
?
;===============================================================================?
;===? 發聲子程序 ===?
SOUND:
?SETB?SPK
?ACALL?SDELAY
?CLR?SPK
?ACALL?SDELAY
?RET
?
;===============================================================================?
;===? 延時子程序? ===
SDELAY:
?MOV?A,R4?????; 廷時值在R4內
?MOV?R0,A
XL2:
?MOV?R1,#03H
DL1:
?NOP
?DJNZ?R1,DL1
?DJNZ?R0,XL2
?RET
;===============================================================================?
;===? 1/8拍周期表? ===
S_PARA:
?DS?1DH
?DB?15H,16H,00
?DB?19H,00H,1CH,00H,1FH,21H,00H,25H
?DB?00H,29H,2CH,00H,31H,34H,37H,00H
?DB?3EH,41H,00H,49H,00H,52H,57H,00H
?DB?62H
?
;===============================================================================?
;===? 延時參數表? ===
DELAY_T:
?DS?1DH
?DB?7EH,77H,00H
?DB?6AH,00H,5EH,00H,54H,4FH,00H,46H
?DB?00H,3FH,3BH,00H,35H,32H,2FH,00H
?DB?2AH,27H,00H,23H,00H,1FH,1DH,0C0H
?DB?1AH
?
;===============================================================================?
;===? 歌曲表? ===
TABLE:
?DW?2202H,2902H,2902H,2902H,2906H,2702H?;我從山中來
?DW?2502H,2702H,2502H,2402H,2208H??;帶著蘭花草
?DW?2E02H,2E02H,2E02H,2E02H,2E06H,2C02H?;種在小園中
?DW?2902H,2C02H,2D02H,2A02H,2908H??;祈禱花開早
?DW?2902H,2E02H,2E02H,2C02H,2906H,2702H?;一日看三回
?DW?2502H,2702H,2502H,2402H,2206H,1D02H?;看得花時過
?DW?1D02H,2502H,2502H,2402H,2206H,2902H?;蘭花卻依然
?DW?2702H,2502H,2402H,2002H,2208H??;苞也無一個
?DW?0000H?????;
?
?END?
?

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      网络百家乐怎么作弊| 月华百家乐官网的玩法技巧和规则| 百家乐官网最佳注码法| 百家乐官网有没有单机版的| 百家乐官网平玩法可以吗| 在线百家乐技巧| 龍城百家乐的玩法技巧和规则| 大发888 登陆不上| 澳门赌场分布| 赌博百家乐官网趋势把握| 成人百家乐官网的玩法技巧和规则| 网上玩百家乐技巧| 黄金城百家乐苹果版| 百家乐官网电子路单谁| 百家乐决战推筒子| 大发888通宝| 百家乐官网网址是多少| 678百家乐官网博彩娱乐场| 百家乐是不是有假| 威尼斯人娱乐城注册网址| 武隆县| 百家乐官网怎么玩最保险| 百家乐玩的技巧| 欧博娱乐| 澳门百家乐官网心| 至尊百家乐娱乐网| 大发888斗地主| 视频百家乐官网游戏| 百家乐那个平台信誉高| 晓游棋牌游戏大厅下载| 百家乐官网信息| 百家乐平台有什么优势| 圣淘沙娱乐| 贵族百家乐官网的玩法技巧和规则| 百家乐特殊技巧| 永春县| CEO百家乐现金网| 娱乐城简介| 百家乐官网长胜攻略| 太阳城菲律宾官方网| 百家乐官网玩揽法的论坛|