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

📄 key.lis

📁 用ICCAVR编辑通过的
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0122                   .dbline 97
 0122           ;                               if ( NUM_CHANGE )
 0122 20900200          lds R2,L15
 0126 30900300          lds R3,L15+1
 012A 2220              tst R2
 012C 11F4              brne X1
 012E 3320              tst R3
 0130 91F0              breq L31
 0132           X1:
 0132                   .dbline 98
 0132           ;                               {
 0132                   .dbline 99
 0132           ;                                       NUM_CHANGE = FALSE;
 0132 2224              clr R2
 0134 3324              clr R3
 0136 30920300          sts L15+1,R3
 013A 20920200          sts L15,R2
 013E                   .dbline 100
 013E           ;                                       eeprom_busy_wait();
 013E 00D0              rcall _eeprom_busy_wait
 0140                   .dbline 101
 0140           ;                                       cli();
 0140 00D0              rcall _cli
 0142                   .dbline 102
 0142           ;                                       eeprom_write_block( (char*)MAX_A,(char*)0x20,6 );
 0142 86E0              ldi R24,6
 0144 90E0              ldi R25,0
 0146 9983              std y+1,R25
 0148 8883              std y+0,R24
 014A 20E2              ldi R18,32
 014C 30E0              ldi R19,0
 014E 00E0              ldi R16,<_MAX_A
 0150 10E0              ldi R17,>_MAX_A
 0152 00D0              rcall _eeprom_write_block
 0154                   .dbline 103
 0154           ;                                       sei();
 0154 00D0              rcall _sei
 0156                   .dbline 104
 0156           ;                               }
 0156           L31:
 0156                   .dbline 105
 0156           ;                               key_press = 0x00;
 0156 6627              clr R22
 0158                   .dbline 106
 0158           ;                               KEY_INPUT = 0x00;
 0158 2224              clr R2
 015A 20920500          sts _KEY_INPUT,R2
 015E                   .dbline 107
 015E           ;                               KEY_DOWN_TIME = 0;
 015E 3324              clr R3
 0160 30920100          sts L14+1,R3
 0164 20920000          sts L14,R2
 0168                   .dbline 108
 0168           ;                               TIMER_NUM = 0;
 0168 30920A00          sts _TIMER_NUM+1,R3
 016C 20920900          sts _TIMER_NUM,R2
 0170                   .dbline 109
 0170           ;                               delayMS(100);                                           //延时10MS
 0170 04E6              ldi R16,100
 0172 00D0              rcall _delayMS
 0174                   .dbline 110
 0174           ;                       }
 0174           L29:
 0174                   .dbline 111
 0174           ;               }
 0174           L23:
 0174                   .dbline 112
 0174           ;               if ( key_press ) 
 0174 6623              tst R22
 0176 09F4              brne X7
 0178 AFC0              rjmp L22
 017A           X7:
 017A                   .dbline 113
 017A           ;               {
 017A                   .dbline 114
 017A           ;                       KEY_INPUT = KEY_TEMP = key_end;
 017A 40930600          sts _KEY_TEMP,R20
 017E 40930500          sts _KEY_INPUT,R20
 0182                   .dbline 115
 0182           ;                       if ( !SET_STATU )
 0182 20900700          lds R2,_SET_STATU
 0186 2220              tst R2
 0188 09F0              breq X8
 018A A6C0              rjmp L22
 018C           X8:
 018C                   .dbline 116
 018C           ;                       {
 018C                   .dbline 118
 018C           ;                               //处理电源键
 018C           ;                               if ( KEY_INPUT == POWER_DOWN )
 018C 4130              cpi R20,1
 018E 21F5              brne L37
 0190                   .dbline 119
 0190           ;                               {
 0190                   .dbline 120
 0190           ;                                       POWER_STATE = !POWER_STATE;             //改变电源按键的状态
 0190 20900300          lds R2,_POWER_STATE
 0194 2220              tst R2
 0196 19F4              brne L39
 0198 41E0              ldi R20,1
 019A 50E0              ldi R21,0
 019C 02C0              rjmp L40
 019E           L39:
 019E 4427              clr R20
 01A0 5527              clr R21
 01A2           L40:
 01A2 40930300          sts _POWER_STATE,R20
 01A6                   .dbline 121
 01A6           ;                                       KEY_INPUT = 0;
 01A6 2224              clr R2
 01A8 20920500          sts _KEY_INPUT,R2
 01AC                   .dbline 122
 01AC           ;                                       if ( POWER_STATE )
 01AC 4423              tst R20
 01AE 51F0              breq L41
 01B0                   .dbline 123
 01B0           ;                                       {
 01B0                   .dbline 124
 01B0           ;                                               PORTB |= ( 1 << POWER );        //开启电源
 01B0 C49A              sbi 0x18,4
 01B2                   .dbline 125
 01B2           ;                                               eeprom_busy_wait();
 01B2 00D0              rcall _eeprom_busy_wait
 01B4                   .dbline 126
 01B4           ;                                               cli();
 01B4 00D0              rcall _cli
 01B6                   .dbline 127
 01B6           ;                                               eeprom_write_byte ( (char*)0x07, 0x01 );
 01B6 21E0              ldi R18,1
 01B8 30E0              ldi R19,0
 01BA 07E0              ldi R16,7
 01BC 10E0              ldi R17,0
 01BE 00D0              rcall _eeprom_write_byte
 01C0                   .dbline 128
 01C0           ;                                               sei();
 01C0 00D0              rcall _sei
 01C2                   .dbline 129
 01C2           ;                                       }
 01C2 31C0              rjmp L38
 01C4           L41:
 01C4                   .dbline 131
 01C4           ;                                       else
 01C4           ;                                       {
 01C4                   .dbline 132
 01C4           ;                                               PORTB &= ~( 1 << POWER );       //关闭电源
 01C4 C498              cbi 0x18,4
 01C6                   .dbline 133
 01C6           ;                                               eeprom_busy_wait();
 01C6 00D0              rcall _eeprom_busy_wait
 01C8                   .dbline 134
 01C8           ;                                               cli();
 01C8 00D0              rcall _cli
 01CA                   .dbline 135
 01CA           ;                                               eeprom_write_byte ( (char*)0x07, 0x00 );
 01CA 2227              clr R18
 01CC 3327              clr R19
 01CE 07E0              ldi R16,7
 01D0 10E0              ldi R17,0
 01D2 00D0              rcall _eeprom_write_byte
 01D4                   .dbline 136
 01D4           ;                                               sei();
 01D4 00D0              rcall _sei
 01D6                   .dbline 137
 01D6           ;                                       }
 01D6                   .dbline 138
 01D6           ;                               }       
 01D6 27C0              rjmp L38
 01D8           L37:
 01D8                   .dbline 140
 01D8           ;                               //处理电流/电压切换,默认状态是显示电压
 01D8           ;                               else if ( KEY_INPUT == A_V_DOWN )
 01D8 80910500          lds R24,_KEY_INPUT
 01DC 8230              cpi R24,2
 01DE 19F5              brne L43
 01E0                   .dbline 141
 01E0           ;                               {
 01E0                   .dbline 142
 01E0           ;                                       KEY_A_V_STATE = !KEY_A_V_STATE;         //切换AV状态
 01E0 20900400          lds R2,_KEY_A_V_STATE
 01E4 2220              tst R2
 01E6 19F4              brne L45
 01E8 41E0              ldi R20,1
 01EA 50E0              ldi R21,0
 01EC 02C0              rjmp L46
 01EE           L45:
 01EE 4427              clr R20
 01F0 5527              clr R21
 01F2           L46:
 01F2 40930400          sts _KEY_A_V_STATE,R20
 01F6                   .dbline 143
 01F6           ;                                       KEY_INPUT = 0;
 01F6 2224              clr R2
 01F8 20920500          sts _KEY_INPUT,R2
 01FC                   .dbline 144
 01FC           ;                                       if ( KEY_A_V_STATE )
 01FC 4423              tst R20
 01FE 51F0              breq L47
 0200                   .dbline 145
 0200           ;                                       {
 0200                   .dbline 146
 0200           ;                                               PORTB |= ( 1 << OUT_A );                //显示电流
 0200 C79A              sbi 0x18,7
 0202                   .dbline 147
 0202           ;                                               eeprom_busy_wait();
 0202 00D0              rcall _eeprom_busy_wait
 0204                   .dbline 148
 0204           ;                                               cli();
 0204 00D0              rcall _cli
 0206                   .dbline 149
 0206           ;                                               eeprom_write_byte ( (char*)0x01, 0x01 );
 0206 21E0              ldi R18,1
 0208 30E0              ldi R19,0
 020A 01E0              ldi R16,1
 020C 10E0              ldi R17,0
 020E 00D0              rcall _eeprom_write_byte
 0210                   .dbline 150
 0210           ;                                               sei();
 0210 00D0              rcall _sei
 0212                   .dbline 151
 0212           ;                                       }
 0212 09C0              rjmp L48
 0214           L47:
 0214                   .dbline 153
 0214           ;                                       else
 0214           ;                                       {
 0214                   .dbline 154
 0214           ;                                               PORTB &= ~( 1 << OUT_A );               //显示电压
 0214 C798              cbi 0x18,7
 0216                   .dbline 155
 0216           ;                                               eeprom_busy_wait();
 0216 00D0              rcall _eeprom_busy_wait
 0218                   .dbline 156
 0218           ;                                               cli();
 0218 00D0              rcall _cli
 021A                   .dbline 157
 021A           ;                                               eeprom_write_byte ( (char*)0x01, 0x00 );
 021A 2227              clr R18
 021C 3327              clr R19
 021E 01E0              ldi R16,1
 0220 10E0              ldi R17,0
 0222 00D0              rcall _eeprom_write_byte
 0224                   .dbline 158
 0224           ;                                               sei();
 0224 00D0              rcall _sei
 0226                   .dbline 159
 0226           ;                                       }
 0226           L48:
 0226                   .dbline 160
 0226           ;                               }
 0226           L43:
 0226           L38:
 0226                   .dbline 162
 0226           ;                               //处理稳流/稳压切换,默认状态是稳流
 0226           ;                               if ( KEY_INPUT == CC_CV_DOWN )
 0226 80910500          lds R24,_KEY_INPUT
 022A 8430              cpi R24,4
 022C 19F5              brne L49
 022E                   .dbline 163
 022E           ;                               {
 022E                   .dbline 164
 022E           ;                                       KEY_CC_CV_STATE = !KEY_CC_CV_STATE;
 022E 20900200          lds R2,_KEY_CC_CV_STATE
 0232 2220              tst R2
 0234 19F4              brne L51
 0236 41E0              ldi R20,1
 0238 50E0              ldi R21,0
 023A 02C0              rjmp L52
 023C           L51:
 023C 4427              clr R20
 023E 5527              clr R21
 0240           L52:
 0240 40930200          sts _KEY_CC_CV_STATE,R20
 0244                   .dbline 166
 0244           ;                                                                                               //改变稳流/稳压按键的状态
 0244           ;                                       KEY_INPUT = 0;
 0244 2224              clr R2
 0246 20920500          sts _KEY_INPUT,R2
 024A                   .dbline 167
 024A           ;                                       if ( KEY_CC_CV_STATE )
 024A 4423              tst R20
 024C 51F0              breq L53
 024E                   .dbline 168
 024E           ;                                       {
 024E                   .dbline 169
 024E           ;                                               PORTB |= ( 1 << OUT_CV );               //稳压
 024E C69A              sbi 0x18,6
 0250                   .dbline 170
 0250           ;                                               eeprom_busy_wait();
 0250 00D0              rcall _eeprom_busy_wait
 0252                   .dbline 171
 0252           ;                                               cli();                                                  
 0252 00D0              rcall _cli
 0254                   .dbline 172
 0254           ;                                               eeprom_write_byte ( (char*)0x05, 0x01 );                
 0254 21E0              ldi R18,1
 0256 30E0              ldi R19,0
 0258 05E0              ldi R16,5
 025A 10E0              ldi R17,0
 025C 00D0              rcall _eeprom_write_byte
 025E                   .dbline 173
 025E           ;                                               sei();
 025E 00D0              rcall _sei
 0260                   .dbline 174
 0260           ;                                       }
 0260 09C0              rjmp L54
 0262           L53:
 0262                   .dbline 176
 0262           ;                                       else
 0262           ;                                       {
 0262                   .dbline 177
 0262           ;                                               PORTB &= ~( 1 << OUT_CV );              //稳流
 0262 C698              cbi 0x18,6
 0264                   .dbline 178
 0264           ;                                               eeprom_busy_wait();
 0264 00D0              rcall _eeprom_busy_wait
 0266                   .dbline 179
 0266           ;                                               cli();                                                  
 0266 00D0              rcall _cli
 0268                   .dbline 180
 0268           ;                                               eeprom_write_byte ( (char*)0x05, 0x00 );                
 0268 2227              clr R18
 026A 3327              clr R19
 026C 05E0              ldi R16,5
 026E 10E0              ldi R17,0
 0270 00D0              rcall _eeprom_write_byte
 0272                   .dbline 181
 0272           ;                                               sei();
 0272 00D0              rcall _sei
 0274                   .dbline 182
 0274           ;                                       }
 0274           L54:
 0274                   .dbline 183
 0274           ;                               }
 0274           L49:
 0274                   .dbline 185
 0274           ;                               //处理手动/自动切换,默认状态是手动

⌨️ 快捷键说明

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