【正文】
。跳轉(zhuǎn)到中音區(qū) LED DB 07H,66H,06H,3FH,7FH,6DH,5BH,71H,7FH,6DH,5BH,71H, 6FH,6FH,6FH,5EH DB 07H,66H,06H,3FH,7FH,6DH,77H,7CH,7FH,6DH,77H,7CH, 6FH,6FH,6FH,6FH,7DH,4FH,79H DB 06H,3FH,7FH,77H,7CH,39H,5EH G1: MOV DX, 210H MOV AL, 88H OUT DX, AL MOV AL, 18H OUT DX, AL CALL DELAY JMP G G2: MOV DX, 210H MOV AL, 04H OUT DX, AL MOV AL, 17H OUT DX, AL CALL DELAY JMP G G3: MOV DX, 210H 19 MOV AL, 17H OUT DX, AL MOV AL, 15H OUT DX, AL CALL DELAY JMP G G4: MOV DX, 210H MOV AL, 29H OUT DX, AL MOV AL, 14H OUT DX, AL CALL DELAY JMP G G5: MOV DX, 210H MOV AL, 76H OUT DX, AL MOV AL, 12H OUT DX, AL CALL DELAY JMP G G6: MOV DX, 210H MOV AL, 36H OUT DX, AL MOV AL, 11H OUT DX, AL CALL DELAY JMP G G7: MOV DX, 210H MOV AL, 12H OUT DX, AL MOV AL, 10H OUT DX, AL CALL DELAY JMP G GOON PROC NEAR MOV DX, 200H MOV AL, 00H OUT DX, AL GOON ENDP 20 DELAY PROC NEAR MOV DX, 200H MOV AL, 01H OUT DX, AL PUSH CX MOV CX, 60000D LOOP $ MOV DX, 200H MOV AL, 00H OUT DX, AL POP CX RET DELAY ENDP CODE ENDS END START 預(yù)存音樂程序:《歡樂頌》 Z8279 EQU 20AH D8279 EQU 208H LEDMOD EQU 00H 。8253 初始化 MOV AL, 00110111B OUT DX, AL PD: MOV DX, 200H MOV AL, 00H OUT DX, AL MOV AL, 00H MOV DX, Z8279 MOV AL, 0C2H OUT DX, AL 。判斷是哪個(gè)鍵 CMP AL, 2BH JE MU MU: JMP MUSIC MUSIC: WW1: MOV DX, 210H MOV AL, 34H OUT DX, AL MOV AL, 30H OUT DX, AL CALL DELAY2 MOV DX, 210H MOV AL, 34H OUT DX, AL MOV AL, 30H OUT DX, AL CALL DELAY2 MOV DX, 210H MOV AL, 65H OUT DX, AL MOV AL, 28H OUT DX, AL CALL DELAY2 MOV DX, 210H MOV AL, 51H OUT DX, AL MOV AL, 25H OUT DX, AL CALL DELAY2 22 MOV DX, 210H MOV AL, 51H OUT DX, AL MOV AL, 25H OUT DX, AL CALL DELAY2 MOV DX, 210H MOV AL, 65H OUT DX, AL MOV AL, 28H OUT DX, AL CALL DELAY2 mOV DX, 210H MOV AL, 34H OUT DX, AL MOV AL, 30H OUT DX, AL CALL DELAY2 MOV DX, 210H MOV AL, 07H OUT DX, AL MOV AL, 34H OUT DX, AL CALL DELAY2 MOV DX, 210H MOV AL, 24H OUT DX, AL MOV AL, 38H OUT DX ,AL CALL DELAY2 MOV DX, 210H MOV AL, 24H OUT DX, AL MOV AL, 38H OUT DX ,AL CALL DELAY2 MOV DX, 210H 23 MOV AL, 07H OUT DX, AL MOV AL, 34H OUT DX, AL CALL DELAY2 MOV DX, 210H MOV AL, 34H OUT DX, AL MOV AL, 30H OUT DX, AL CALL DELAY2 MOV DX, 210H MOV AL, 34H OUT DX, AL MOV AL, 30H OUT DX, AL CALL DELAY MOV DX, 210H MOV AL, 07H OUT DX, AL MOV AL, 34H OUT DX, AL CALL DELAY3 MOV DX, 210H MOV AL, 07H OUT DX, AL MOV AL, 34H OUT DX, AL CALL DELAY4 。延時(shí)時(shí)間為 一個(gè)四分音符再加上一個(gè)附點(diǎn)音符的時(shí)值 DELAY2 PROC NEAR MOV DX,200H MOV AL,01H OUT DX,AL PUSH CX MOV CX,60000D LOOP $ MOV CX,60000D LOOP $ MOV DX,200H MOV AL,00H OUT DX,AL POP CX RET DELAY2 ENDP 。 31 解決方法:分開編寫程序,實(shí)現(xiàn)不同的功能。為了實(shí)現(xiàn)基本功能,認(rèn)真研究了參考程序的意義,了解了電子琴的不同音階放音功能的實(shí)現(xiàn),長短音的實(shí)現(xiàn),更深入了解了 8253 計(jì)時(shí)器的使用方法。 參考資料: 【 1】周荷琴,吳秀清 《微型計(jì)算機(jī)原理與接口技術(shù)》(第四版) 中國科學(xué)技術(shù)大學(xué)出版社 【 2】《歡樂頌》簡譜