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

📄 assembly.lis

📁 硬盘MP3播放器-MEGA128-VS1001K-USB-遥控-LCD-ICCAVR代码-硬盘-支持FAT32-单面PCB 第三部分
💻 LIS
字号:
                                .text
                
 0068           SPMCR = 0x68
 0000           
 0000           ; void write_page (unsigned int adr, unsigned char function);
 0000           ; bits 8:15 adr addresses the page...(must setup RAMPZ beforehand!!!)
 0000           _write_page::
 0000 21D0              XCALL __WAIT_SPMEN__
 0002 F12F              MOV R31,R17        
 0004 E02F              MOV R30,R16         ;move address to z pointer (R31=ZH R30=ZL)
 0006 20936800          STS SPMCR,R18       ;argument 2 decides function
 000A E895              SPM                 ;perform pagewrite
 000C 0895              RET
 000E           
 000E           ; void fill_temp_buffer (unsigned int data, unsigned int adr);
 000E           ; bits 7:1 in adr addresses the word in the page... (2=first word, 4=second word etc..)
 000E           _fill_temp_buffer::
 000E           
 000E 1AD0              XCALL __WAIT_SPMEN__
 0010 F32F              MOV R31,R19        
 0012 E22F              MOV R30,R18         ;move adress to z pointer (R31=ZH R30=ZL)
 0014 112E              MOV R1,R17
 0016 002E              MOV R0,R16          ;move data to reg 0 and 1      
 0018 31E0              LDI R19,0x01
 001A 30936800          STS SPMCR,R19
 001E E895              SPM            ;Store program memory
 0020 0895              RET      
 0022           
 0022           ;unsigned int read_program_memory (unsigned int adr ,unsigned char cmd);
 0022           _read_program_memory::
 0022 F12F              MOV R31,R17         ;R31=ZH R30=ZL
 0024 E02F              MOV R30,R16         ;move adress to z pointer
 0026 20FD              SBRC R18,0          ;read lockbits? (second argument=0x09)
 0028 20936800          STS SPMCR,R18       ;if so, place second argument in SPMEN register
 002C D895              ELPM                ;read LSB
 002E 002D              MOV R16,R0         
 0030 E395              INC R30
 0032 D895              ELPM
 0034 102D              MOV R17,R0          ;read MSB (ignored when reading lockbits)
 0036 0895              RET
 0038                   
 0038           _enableRWW::
 0038 05D0              XCALL __WAIT_SPMEN__
 003A B1E1              LDI R27,0x11
 003C B0936800          STS SPMCR,R27
 0040 E895              SPM
 0042 0895              RET              
 0044           
 0044           __WAIT_SPMEN__:
 0044 B0916800          LDS     R27,SPMCR       ; load SPMCR to R27
 0048 B0FD              SBRC    R27,0          ; check SPMEN flag
 004A FCCF              RJMP    __WAIT_SPMEN__ ; wait for SPMEN flag cleared        
 004C 0895              RET
 004E           
 004E           

⌨️ 快捷键说明

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