[請益] 關於8051音樂盒的程式
老師希望我們作8051 音樂盒
但是自己初學者很多的東西不懂
照著書上打了程式碼後
此程式是小蜜蜂的音樂盒
我所使用的 模擬器是 Pinnacle 52 語言為組合語言
1. 但是在 delay程式中的
DJNZ A,DELAY 一直出錯 無法執行
想請問到底是怎麼摟??
2.如果將MASK掉之後 會過 但是在跑時候出現
The Simulator executed 10 consecutive NOP instructions.
3.我要怎麼去確定這程式是真的可以跑出聲音的嗎?
模擬器要在哪裡看呢
感謝大家
程式↓
ORG 00H
AJMP START
ORG 0BH
AJMP TIMER0
START:
MOV SP,#60H
MOV R4,#50
MOV R5,#100
MOV TMOD,#2
MOV TH0,#156
MOV TL0,#156
SETB EA
SETB ET0
LOOP:
MOV R0,#0
NEXT:
CLR F0
MOV A,R0
MOV DPTR,#TONE
MOVC A,@A+DPTR
MOV R1,A
XRL A,#0
JZ LOOP
MOV A,R0
MOV DPTR,#BEAT
MOVC A,@A+DPTR
MOV R2,A
MOV A,R1
DEC A
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV R3,A
SETB TR0
S1:
ACALL SP
JNB F0,S1
CLR TR0
ACALL MUTE
INC R0
SJMP NEXT
TIMER0:
CLR TR0
DJNZ R5,EXIT
MOV R5,#100
DJNZ R4,EXIT
MOV R4,#50
DJNZ R2,EXIT
SETB F0
EXIT:
SETB TR0
RETI
SP:
MOV A,R3
SETB P1.0
ACALL DELAY
MOV A,R3
CLR P1.0
ACALL DELAY
RET
DELAY:
NOP
MOV R7,#8
DJNZ R7,$
DJNZ A,DELAY
RET
MUTE:
MOV R6,#100
S2:
MOV R7,#250
DJNZ R7,$
DJNZ R6,S2
RET
TABLE:
DB 48
DB 43
DB 38
DB 36
DB 32
DB 28
DB 25
DB 24
TONE:
DB 5,3,3
DB 4,2,2
DB 1,2,3,4,5,5,5
DB 5,3,3
DB 4,2,2
DB 1,3,5,5,3
DB 2,2,2,2,2,3,4
DB 3,3,3,3,3,4,5
DB 5,3,3
DB 4,2,2
DB 1,3,5,5,1
DB 0
BEAT:
DB 1,1,2
DB 1,1,2
DB 1,1,1,1,1,2
DB 1,1,2
DB 1,1,2
DB 1,1,1,1,4
DB 1,1,1,1,1,2
DB 1,1,1,1,1,2
DB 1,1,2
DB 1,1,2
DB 1,1,1,1,4
END
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.68.193.69
推
01/06 15:19, , 1F
01/06 15:19, 1F
→
01/06 15:20, , 2F
01/06 15:20, 2F
→
01/06 15:20, , 3F
01/06 15:20, 3F
→
01/06 15:20, , 4F
01/06 15:20, 4F
→
01/06 15:21, , 5F
01/06 15:21, 5F
→
01/06 15:23, , 6F
01/06 15:23, 6F
→
01/06 15:27, , 7F
01/06 15:27, 7F