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

📄 assembly.lis

📁 AVR系列被广泛应用的单片机MEGA8开发(原理图)及例程
💻 LIS
字号:
                                .text
                
 0037           SPMCR = 0x37
 0000           
 0000           ; void write_page (unsigned int adr, unsigned char function);
 0000           _write_page::
 0000           
 0000 F12F                      MOV R31,R17        
 0002 E02F              MOV R30,R16         ;move adress to z pointer (R31=ZH R30=ZL)
 0004 27BF              OUT SPMCR,R18       ;argument 2 decides function
 0006 E895              SPM                 ;perform pagewrite
 0008 FFFF                      .dw $ffff
 000A 0000                      NOP
 000C 0895              RET
 000E           
 000E           ; void fill_temp_buffer (unsigned int data, unsigned int adr);
 000E           _fill_temp_buffer::
 000E           
 000E           
 000E F32F              MOV R31,R19        
 0010 E22F              MOV R30,R18         ;move adress to z pointer (R31=ZH R30=ZL)
 0012 112E              MOV R1,R17
 0014 002E              MOV R0,R16          ;move data to reg 0 and 1      
 0016 21E0              LDI R18,0x01
 0018 27BF              OUT SPMCR,R18
 001A E895              SPM            ;Store program memory
 001C 0895              RET      
 001E           
 001E           ;unsigned int read_program_memory (unsigned int adr ,unsigned char cmd);
 001E           _read_program_memory::
 001E                   
 001E F12F              MOV R31,R17         ;R31=ZH R30=ZL
 0020 E02F              MOV R30,R16         ;move adress to z pointer
 0022 20FD              SBRC R18,0          ;read lockbits? (second argument=0x09)
 0024 27BF              OUT SPMCR,R18       ;if so, place second argument in SPMEN register
 0026 C895              LPM                 ;read LSB
 0028 002D              MOV R16,R0         
 002A E395              INC R30
 002C C895              LPM
 002E 102D              MOV R17,R0          ;read MSB (ignored when reading lockbits)
 0030 0895              RET
 0032           
 0032           ;void write_lock_bits (unsigned char val);
 0032           _write_lock_bits::
 0032           
 0032 002E              MOV R0,R16   
 0034 19E0              LDI R17,0x09     
 0036 17BF              OUT SPMCR,R17
 0038 E895              SPM                ;write lockbits
 003A FFFF                      .dw $ffff
 003C 0000                      NOP
 003E 0895              RET

⌨️ 快捷键说明

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