衡阳派盒市场营销有限公司

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

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

單片機之匯編語言會唱歌

大小: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娱乐场备用| 澳门百家乐官网必胜看| 龙口市| 大发888扑克| 百家乐真人游戏网上投注 | 利博亚洲| 百家乐投注网址| 百家乐官网正品地址| 清水县| 金盛国际| 大发888官方888| 百家乐类游戏网站| 试玩百家乐官网网| 江都市| 大发888娱乐城维护| 同乐城百家乐娱乐城| 手机百家乐官网能兑换现金棋牌游戏| 博彩百家乐官网龙虎| 图木舒克市| 盈丰国际博彩网| 网络百家乐游戏| 澳门顶级赌场娱乐场| 澳门百家乐破解| 百家乐下注几多| 百家乐官网看盘技巧| 威尼斯人娱乐城游戏| 网上百家乐的技巧| 打百家乐庄闲的技巧| 博彩百家乐在线| 澳门百家乐官方网址| 怎么看百家乐路单| 百家乐路单用处| 怎么玩百家乐官网的玩法技巧和规则 | 现金棋牌游戏平台 | 全讯网hg7758.com|