📄 music1.lst
字号:
000024 95a8 wdr ;
000025 e00f ldi temp,$0F ;
000026 bd01 out WDTCR,temp ;
000027 e060 LDI MUSN,$00 ;
000028 e000 ldi temp,$00 ;
000029 bd0f OUT TCCR1A,TEMP ;
00002a bd0e OUT TCCR1B,TEMP ;
00002b e002 LDI TEMP,$02 ;
00002c 9300 0100 STS $0100,TEMP ;
00002e 94f8 LEDA: CLI ;
00002f e800 ldi r16,0b10000000 ;
000030 bf09 out timsk,r16 ;
000031 ef0f LDI TEMP,$FF ;
000032 bb0a OUT DDRA,TEMP ;
000033 bb07 OUT DDRB,TEMP
000034 bb04 OUT DDRC,TEMP ;PC OUT,
; OUT DDRD,TEMP ;
000035 ef0f LDI TEMP,0B11111111 ;
000036 bb05 OUT PORTC,TEMP
000037 bb0b OUT PORTA,TEMP
000038 bb08 OUT PORTB,TEMP
000039 bb02 OUT PORTD,TEMP
00003a 2722 CLR TEMP2 ;
00003b 2711 CLR TEMP1 ;
00003c 24ff CLR KSNI
00003d e0a2 LDI SCNTT,$02
00003e 2777 CLR TONLNG
00003f 95a8 STARTP: WDR ;
000040 e0f2 LDI ZH,HIGH(PLYTAB*2) ;
000041 e0e0 LDI ZL,LOW(PLYTAB*2) ;
000042 95c8 NEXMUT: LPM
000043 2d90 MOV PLYTON,R0 ;
000044 9001 LD R0,Z+ ;
000045 95c8 LPM ;
000046 2d70 MOV TONLNG,R0 ;
000047 2a09 OR R0,PLYTON
000048 9001 LD R0,Z+
000049 f429 BRNE PLAYM
00004a e000 LDI TEMP,$00 ;
00004b bd0e OUT TCCR1B,TEMP ;
00004c 94f8 CLI ;
00004d 9a90 SBI PORTD,00
00004e cff0 RJMP STARTP ;
;
00004f 93ff PLAYM: PUSH ZH ;
000050 93ef PUSH ZL ;
000051 2399 TST PLYTON ;
000052 f0a9 BREQ MUSTD ;
000053 e0f1 LDI ZH,HIGH(MUSTAB*2) ;
000054 e4e0 LDI ZL,LOW(MUSTAB*2) ;
000055 2f09 MOV TEMP,PLYTON ;
000056 950a DEC TEMP ;
000057 0f00 LSL TEMP ;
000058 0fe0 ADD ZL,TEMP ;
000059 e000 LDI TEMP,$00 ;
00005a 1ff0 ADC ZH,TEMP ;
00005b 95c8 LPM ;
00005c 2d50 MOV TONL,R0 ;
00005d bc0c OUT TCNT1L,R0 ;
00005e 9001 LD R0,Z+ ;
00005f 95c8 LPM
000060 2d40 MOV TONH,R0
000061 bc0d OUT TCNT1H,R0 ;
000062 91ef POP ZL ;
000063 91ff POP ZH
000064 9100 0100 LDS TEMP,$0100 ;
000066 bd0e OUT TCCR1B,TEMP ;
000067 9478 SEI
000068 d003 MUSTD: RCALL PLYDEL ;
000069 957a DEC TONLNG ;
00006a f7e9 BRNE MUSTD ;
00006b cfd6 RJMP NEXMUT ;
;
00006c eb09 PLYDEL: LDI TEMP,185 ;
00006d e013 DT3: LDI TEMP1,03 ;
00006e ef2a DT2: LDI TEMP2,250
00006f 95a8 DT1: WDR ;1T
000070 95a8 WDR ;2T
000071 95a8 WDR ;3T
000072 95a8 WDR ;4T
000073 95a8 WDR ;5T
000074 952a DEC TEMP2 ;
000075 f7c9 BRNE DT1 ;
000076 951a DEC TEMP1 ;
000077 f7b1 BRNE DT2 ;
000078 950a DEC TEMP ;
000079 f799 BRNE DT3 ;
00007a 9508 RET ;
;约定:因为计算机不能表示简谱乐曲,低音为数字后一点表示,
; 高音为数字前一点表示,
; 半音为#号,'为隔开音符,
;乐曲节拍应对照简谱查看,音长为节拍,
;一拍为04,3/4拍为03,1/2(2/4)拍为02,1/4拍为01,
;00为表示休止符,
;#为升半度音
; 乐曲低八度音
; 曲码代号 1 2 3 4 5 6 7 8 9 10 11 12
; 音符代号 1 #1 2 #2 3 4 #4 5 #5 6 #6 7
;******************************************************************
; 乐曲中音
; 曲码代号 13 14 15 16 17 18 19 20 21 22 23 24
; 音符代号 1 #1 2 #2 3 4 #4 5 #5 6 #6 7
;
;******************************************************************
;; 乐曲高八度音
; 曲码代号 25 26 27 28 29 30 31 32 33 34 35 36
; 音符代号 1 #1 2 #2 3 4 #4 5 #5 6 #6 7
;
;******************************************************************
;
.EQU PLYTAB=0X0100
.EQU MUSTAB=0X00A0
.cseg
.org PLYTAB ;"祝你生日快乐" 乐曲 1=C 4/4 乐曲存放起始地址,请查看对照简谱乐曲
;
;| 5 5, 6 5|
.DB 20,02,00,01,20,01,22,04,20,04
000100 0214
000101 0100
000102 0114
000103 0416
000104 0414
;| .1 7 -|
.DB 25,04,24,04,00,04
000105 0419
000106 0418
000107 0400
;| 5 5, 6 5|
.DB 20,02,00,01,20,01,22,04,20,04
000108 0214
000109 0100
00010a 0114
00010b 0416
00010c 0414
;| .2 .1 -|
.DB 27,04,25,04,00,04
00010d 041b
00010e 0419
00010f 0400
;| 5 5, .5 .3|
.DB 20,02,00,01,20,01,32,04,29,04
000110 0214
000111 0100
000112 0114
000113 0420
000114 041d
;| .1 7 6|
.DB 25,04,24,04,22,04
000115 0419
000116 0418
000117 0416
;| .4 .4 .3 .1|
.DB 30,02,00,01,30,01,29,04,25,04
000118 021e
000119 0100
00011a 011e
00011b 041d
00011c 0419
;| .2 .1 - |
.DB 27,04,25,04,00,04
00011d 041b
00011e 0419
00011f 0400
;REAGAIN
;| 5 5, 6 5|
.DB 20,02,00,01,20,01,22,04,20,04
000120 0214
000121 0100
000122 0114
000123 0416
000124 0414
;|.1 7 - |
.DB 25,04,24,04,00,04
000125 0419
000126 0418
000127 0400
;| 5 5, 6 5|
.DB 20,02,00,01,20,01,22,04,20,04
000128 0214
000129 0100
00012a 0114
00012b 0416
00012c 0414
;| .2 .1 - |
.DB 27,04,25,04,00,04
00012d 041b
00012e 0419
00012f 0400
;| 5 5, .5 .3|
.DB 20,02,00,01,20,01,32,04,29,04
000130 0214
000131 0100
000132 0114
000133 0420
000134 041d
;| .1 7 6|
.DB 25,04,24,04,22,04
000135 0419
000136 0418
000137 0416
;| .4 .4 .3 .1|
.DB 30,02,00,01,30,01,29,04,25,04
000138 021e
000139 0100
00013a 011e
00013b 041d
00013c 0419
;| .2 .1 - |
.DB 27,04,25,04,00,04
00013d 041b
00013e 0419
00013f 0400
; 万水千山总是情
.db 17,04,18,04,20,06,20,02,22,04,20,04,17,12,15,04 ;
000140 0411
000141 0412
000142 0614
000143 0214
000144 0416
000145 0414
000146 0c11
000147 040f
.db 13,06,17,02,15,04,13,04,10,12,10,04,8,8,13,04 ;
000148 060d
000149 0211
00014a 040f
00014b 040d
00014c 0c0a
00014d 040a
00014e 0808
00014f 040d
.db 15,04,17,04,20,04,22,04,17,04,15,15,15,04,00,04 ;
000150 040f
000151 0411
000152 0414
000153 0416
000154 0411
000155 0f0f
000156 040f
000157 0400
.db 17,04,18,04,20,06,20,02,22,04,20,04,17,12,15,04 ;
000158 0411
000159 0412
00015a 0614
00015b 0214
00015c 0416
00015d 0414
00015e 0c11
00015f 040f
.db 13,06,17,02,15,04,13,04,10,12,10,04,8,8,13,06 ;
000160 060d
000161 0211
000162 040f
000163 040d
000164 0c0a
000165 040a
000166 0808
000167 060d
.db 17,02,15,06,13,02,13,04,10,04,13,15,13,8,17,04 ;
000168 0211
000169 060f
00016a 020d
00016b 040d
00016c 040a
00016d 0f0d
00016e 080d
00016f 0411
.db 20,04,22,12,25,10,22,04,18,04,20,06,22,02,20,12 ;
000170 0414
000171 0c16
000172 0a19
000173 0416
000174 0412
000175 0614
000176 0216
000177 0c14
.db 17,04,20,8,17,04,20,04,22,12,25,04,25,04,22,04 ;
000178 0411
000179 0814
00017a 0411
00017b 0414
00017c 0c16
00017d 0419
00017e 0419
00017f 0416
; .db 20,04,17,04,15,15,15,08,17,04,18,04,20,06,20,02 ;
.db 22,04,20,04,17,12,15,04,13,06,17,02,15,04,13,04 ;
000180 0416
000181 0414
000182 0c11
000183 040f
000184 060d
000185 0211
000186 040f
000187 040d
; .db 10,12,10,04,08,08,13,04,17,04,15,06,13,02,10,04
.db 12,04,13,15,13,15 ;
000188 040c
000189 0f0d
00018a 0f0d
.DB 00,00 ;END
00018b 0000
.cseg
.org MUSTAB ;
;约定:低音为数字后一点表示,高音为数字前一点表示,
; 半音为#号,'为隔开音符
;1 2 3 4 5 6 7 8 9
;1. '#1. '2. '#2. '3. '4. '#4. '5. '#5.
;10 11 12 13 14 15 16 17 18
;6. '#6. '7. '1 '#1 '2 '#2 '3 '4
.DW 63627,63730,63835,63927
0000a0 f88b
0000a1 f8f2
0000a2 f95b
0000a3 f9b7
.DW 64020,64102,64185,64259
0000a4 fa14
0000a5 fa66
0000a6 fab9
0000a7 fb03
.DW 64330,64399,64463,64523
0000a8 fb4a
0000a9 fb8f
0000aa fbcf
0000ab fc0b
.DW 64579,64632,64683,64731
0000ac fc43
0000ad fc78
0000ae fcab
0000af fcdb
.DW 64776,64819
0000b0 fd08
0000b1 fd33
;19 20 21 22 23 24 25 26 27
;#4 '5 '#5 '6 '#6 '7 '.1 '#.1 '.2
; 28 29 30 31 32 33 34 35 36
;'#.2 '.3 '.4 '#.4 '.5 '#.5 '.6 '#.6 '.7
.DW 64859,64897
0000b2 fd5b
0000b3 fd81
.DW 64933,64967,64999,65029
0000b4 fda5
0000b5 fdc7
0000b6 fde7
0000b7 fe05
.DW 65057,65084,65109,65133
0000b8 fe21
0000b9 fe3c
0000ba fe55
0000bb fe6d
.DW 65156,65177,65197,65216
0000bc fe84
0000bd fe99
0000be fead
0000bf fec0
.DW 65243,65251,65267,65282
0000c0 fedb
0000c1 fee3
0000c2 fef3
0000c3 ff02
Assembly complete with no errors.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -