⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 music.lis

📁 双龙公司开发版源程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module music.c
                        .area eeprom(rom, con, rel)
 0000           _sound::
 0000 6627              .byte 'f,39
 0002 6826              .byte 'h,38
 0004 2828              .byte 40,40
 0006 2726              .byte 39,38
 0008 4743              .byte 'G,'C
 000A 6728              .byte 'g,40
 000C 6927              .byte 'i,39
 000E 2929              .byte 41,41
 0010 2827              .byte 40,39
 0012 4646              .byte 'F,'F
 0014 4A4D              .byte 'J,'M
 0016 4C2D              .byte 'L,45
 0018 2C2B              .byte 44,43
 001A 2B2A              .byte 43,42
 001C 294A              .byte 41,'J
 001E 4620              .byte 'F,32
 0020 4B29              .byte 'K,41
 0022 6A28              .byte 'j,40
 0024 2723              .byte 39,35
 0026 2827              .byte 40,39
 0028 4646              .byte 'F,'F
 002A 4A4D              .byte 'J,'M
 002C 4C2D              .byte 'L,45
 002E 2C2B              .byte 44,43
 0030 2B2A              .byte 43,42
 0032 294A              .byte 41,'J
 0034 4620              .byte 'F,32
 0036 4B29              .byte 'K,41
 0038 6A28              .byte 'j,40
 003A 2723              .byte 39,35
 003C 2827              .byte 40,39
 003E 4646              .byte 'F,'F
 0040 00                .byte 0
 0041                   .dbfile E:\icc\iccavr\mega8\mega8\music\music.c
 0041                   .dbsym e sound _sound A[65:65]c
                        .area data(ram, con, rel)
 0000                   .dbfile E:\icc\iccavr\mega8\mega8\music\music.c
                        .area lit(rom, con, rel)
 0000           _TONETABLE::
 0000 44FC              .word 64580
 0002 ACFC              .word 64684
 0004 09FD              .word 64777
 0006 34FD              .word 64820
 0008 82FD              .word 64898
 000A C8FD              .word 64968
 000C 06FE              .word 65030
 000E 22FE              .word 65058
 0010 56FE              .word 65110
 0012 85FE              .word 65157
 0014 9AFE              .word 65178
 0016 C1FE              .word 65217
 0018 E4FE              .word 65252
 001A 03FF              .word 65283
 001C 11FF              .word 65297
 001E                   .dbsym e TONETABLE _TONETABLE A[30:15]ki
                        .area text(rom, con, rel)
 0000                   .dbfile E:\icc\iccavr\mega8\mega8\music\music.c
 0000                   .dbfunc e delay_us _delay_us fV
 0000           ;           time -> R16,R17
                        .even
 0000           _delay_us::
 0000                   .dbline -1
 0000                   .dbline 39
 0000           ; /*******************************************/
 0000           ; /*            广州天河双龙电子公司         */ 
 0000           ; /*            http://www.sl.com.cn         */
 0000           ; /*              电子音乐演示程序           */
 0000           ; /*            作者:ntzwq@wx88.net          */
 0000           ; /*                2002年5月10日            */
 0000           ; /*   目标MCU:MEGA8   晶振:外部(EXT) 8MHZ   */
 0000           ; /*******************************************/
 0000           ; //使用说明:音乐输出端口:PORTC.0,音乐数据存放
 0000           ; //于ATMEGA8的EEPROM存贮器中,可以使用music.exe
 0000           ; //程序通过RS232通信口进行修改。
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000           ; #include <eeprom.h>
 0000           ; #include "music.h"
 0000           ; extern void uart_init(void);
 0000           ; //extern void isp(void);
 0000           ; /*              音乐数据(卡秒莎)        */
 0000           ; /* 四分之一拍为0x10, 二分之一拍为0x20, 一拍为0x40*/
 0000           ; /* 低1-1 2-2 3-3 4-4 5-5 6-6 7-7 */
 0000           ; /* 中1-8 2-9 3-A 4-B 5-C 6-D 7-E */
 0000           ; /* 高1-F*/                                                                    
 0000           ; #pragma data:eeprom
 0000           ; unsigned char sound[]={0x66,0x27,0x68,0x26,0x28,0x28,0x27,0x26,0x47,0x43,
 0000           ;                                          0x67,0x28,0x69,0x27,0x29,0x29,0x28,0x27,0x46,0x46,
 0000           ;                                          0x4a,0x4d,0x4c,0x2d,0x2c,0x2b,0x2b,0x2a,0x29,0x4a,
 0000           ;                                          0x46,0x20,0x4b,0x29,0x6a,0x28,0x27,0x23,0x28,0x27,
 0000           ;                                          0x46,0x46,0x4a,0x4d,0x4c,0x2d,0x2c,0x2b,0x2b,0x2a,
 0000           ;                                          0x29,0x4a,0x46,0x20,0x4b,0x29,0x6a,0x28,0x27,0x23,
 0000           ;                                          0x28,0x27,0x46,0x46,0x00};
 0000           ; #pragma data:data                                                                                                                       
 0000           ; /*                        音阶表                              */      
 0000           ; const unsigned int TONETABLE[15]={DO,RE,MI,FA,SO,LA,TI,DO_H,
 0000           ;                                       RE_H,MI_H,FA_H,SO_H,LA_H,TI_H,DO_HH};
 0000           ; /*                      音阶重装常数                  */                                              
 0000           ; unsigned int toneconst;                                                                                                                                                                                                                        
 0000           ; /*                            微秒级延时程序                  */
 0000           ; void delay_us(int time)
 0000           ;        {     
 0000           L2:
 0000                   .dbline 41
 0000           ;         do
 0000           ;               {
 0000                   .dbline 42
 0000           ;                time--;
 0000 0150              subi R16,1
 0002 1040              sbci R17,0
 0004                   .dbline 43
 0004           ;               }       
 0004           L3:
 0004                   .dbline 44
 0004           ;         while (time>1);
 0004 81E0              ldi R24,1
 0006 90E0              ldi R25,0
 0008 8017              cp R24,R16
 000A 9107              cpc R25,R17
 000C CCF3              brlt L2
 000E                   .dbline -2
 000E                   .dbline 45
 000E           ;        }
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbsym r time 16 I
 0010                   .dbend
 0010                   .dbfunc e delay_ms _delay_ms fV
 0010           ;           time -> R20,R21
                        .even
 0010           _delay_ms::
 0010 00D0              rcall push_gset1
 0012 A801              movw R20,R16
 0014                   .dbline -1
 0014                   .dbline 48
 0014           ; /*                        毫秒级延时程序                      */       
 0014           ; void delay_ms(unsigned int time)
 0014           ;        {
 0014 05C0              rjmp L7
 0016           L6:
 0016                   .dbline 50
 0016                   .dbline 51
 0016 08EE              ldi R16,1000
 0018 13E0              ldi R17,3
 001A F2DF              rcall _delay_us
 001C                   .dbline 52
 001C 4150              subi R20,1
 001E 5040              sbci R21,0
 0020                   .dbline 53
 0020           L7:
 0020                   .dbline 49
 0020           ;         while(time!=0)
 0020 4030              cpi R20,0
 0022 4507              cpc R20,R21
 0024 C1F7              brne L6
 0026           X0:
 0026                   .dbline -2
 0026                   .dbline 54
 0026           ;                 {             
 0026           ;                  delay_us(1000);
 0026           ;                  time--;
 0026           ;                 }
 0026           ;        }                                      
 0026           L5:
 0026 00D0              rcall pop_gset1
 0028                   .dbline 0 ; func end
 0028 0895              ret
 002A                   .dbsym r time 20 i
 002A                   .dbend
                        .area vector(rom, abs)
                        .org 16
 0010 15C0              rjmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 002A                   .dbfile E:\icc\iccavr\mega8\mega8\music\music.c
 002A                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 002A           _timer1_ovf_isr::
 002A 2A92              st -y,R2
 002C 3A92              st -y,R3
 002E 8A93              st -y,R24
 0030 2FB6              in R2,0x3f
 0032 2A92              st -y,R2
 0034                   .dbline -1
 0034                   .dbline 57
 0034           ; #pragma interrupt_handler timer1_ovf_isr:iv_TIMER1_OVF
 0034           ; void timer1_ovf_isr(void)
 0034           ;        {
 0034                   .dbline 58
 0034           ;         TCNT1=toneconst;
 0034 20900000          lds R2,_toneconst
 0038 30900100          lds R3,_toneconst+1
 003C 3DBC              out 0x2d,R3
 003E 2CBC              out 0x2c,R2
 0040                   .dbline 59
 0040           ;         PORTC^=1;
 0040 81E0              ldi R24,1
 0042 25B2              in R2,0x15
 0044 2826              eor R2,R24

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -