main.lis

来自「Button 一个国外大学生毕业设计,用的是AVR单片机」· LIS 代码 · 共 1,068 行 · 第 1/4 页

LIS
1,068
字号
 01E0 5023              mov A,<L28
 01E2 5C                mov X,A
 01E3 18                pop A
 01E4 7C0000            xcall _LCD_1_PrCString
 01E7 20                pop X
 01E8                   .dbline 191
 01E8           ;                       }                       
 01E8           L36:
 01E8                   .dbline 194
 01E8           ; 
 01E8           ;                       // check to see if BUTTON 4 is on or off
 01E8           ;                       if ((CSR_1_baSwOnMask[0]) & BUTTON_4) 
 01E8 62D000            mov REG[0xd0],>_CSR_1_baSwOnMask
 01EB 470010            tst [_CSR_1_baSwOnMask],16
 01EE A016              jz L38
 01F0                   .dbline 195
 01F0           ;                       {
 01F0                   .dbline 197
 01F0           ;                               // switch is ON
 01F0           ;                               LCD_1_Position(0,8);
 01F0 10                push X
 01F1 5708              mov X,8
 01F3 5000              mov A,0
 01F5 7C0000            xcall _LCD_1_Position
 01F8                   .dbline 198
 01F8           ;                               LCD_1_PrCString("4 ");
 01F8 5017              mov A,>L40
 01FA 08                push A
 01FB 5017              mov A,<L40
 01FD 5C                mov X,A
 01FE 18                pop A
 01FF 7C0000            xcall _LCD_1_PrCString
 0202 20                pop X
 0203                   .dbline 199
 0203           ;                       }else
 0203 8014              xjmp L39
 0205           L38:
 0205                   .dbline 200
 0205           ;                       {
 0205                   .dbline 202
 0205           ;                               // switch is OFF
 0205           ;                               LCD_1_Position(0,8);
 0205 10                push X
 0206 5708              mov X,8
 0208 5000              mov A,0
 020A 7C0000            xcall _LCD_1_Position
 020D                   .dbline 203
 020D           ;                               LCD_1_PrCString("  ");
 020D 5023              mov A,>L28
 020F 08                push A
 0210 5023              mov A,<L28
 0212 5C                mov X,A
 0213 18                pop A
 0214 7C0000            xcall _LCD_1_PrCString
 0217 20                pop X
 0218                   .dbline 204
 0218           ;                       }                       
 0218           L39:
 0218                   .dbline 207
 0218           ; 
 0218           ;                       // check to see if BUTTON 5 is on or off
 0218           ;                       if ((CSR_1_baSwOnMask[0]) & BUTTON_5) 
 0218 62D000            mov REG[0xd0],>_CSR_1_baSwOnMask
 021B 470020            tst [_CSR_1_baSwOnMask],32
 021E A016              jz L41
 0220                   .dbline 208
 0220           ;                       {
 0220                   .dbline 210
 0220           ;                               // switch is ON
 0220           ;                               LCD_1_Position(0,10);
 0220 10                push X
 0221 570A              mov X,10
 0223 5000              mov A,0
 0225 7C0000            xcall _LCD_1_Position
 0228                   .dbline 211
 0228           ;                               LCD_1_PrCString("5 ");
 0228 5014              mov A,>L43
 022A 08                push A
 022B 5014              mov A,<L43
 022D 5C                mov X,A
 022E 18                pop A
 022F 7C0000            xcall _LCD_1_PrCString
 0232 20                pop X
 0233                   .dbline 212
 0233           ;                       }else
 0233 8014              xjmp L42
 0235           L41:
 0235                   .dbline 213
 0235           ;                       {
 0235                   .dbline 215
 0235           ;                               // switch is OFF
 0235           ;                               LCD_1_Position(0,10);
 0235 10                push X
 0236 570A              mov X,10
 0238 5000              mov A,0
 023A 7C0000            xcall _LCD_1_Position
 023D                   .dbline 216
 023D           ;                               LCD_1_PrCString("  ");
 023D 5023              mov A,>L28
 023F 08                push A
 0240 5023              mov A,<L28
 0242 5C                mov X,A
 0243 18                pop A
 0244 7C0000            xcall _LCD_1_PrCString
 0247 20                pop X
 0248                   .dbline 217
 0248           ;                       }                       
 0248           L42:
 0248                   .dbline 220
 0248           ; 
 0248           ;                       // check to see if BUTTON 6 is on or off
 0248           ;                       if ((CSR_1_baSwOnMask[0]) & BUTTON_6) 
 0248 62D000            mov REG[0xd0],>_CSR_1_baSwOnMask
 024B 470040            tst [_CSR_1_baSwOnMask],64
 024E A016              jz L44
 0250                   .dbline 221
 0250           ;                       {
 0250                   .dbline 223
 0250           ;                               // switch is ON
 0250           ;                               LCD_1_Position(0,12);
 0250 10                push X
 0251 570C              mov X,12
 0253 5000              mov A,0
 0255 7C0000            xcall _LCD_1_Position
 0258                   .dbline 224
 0258           ;                               LCD_1_PrCString("6 ");
 0258 5011              mov A,>L46
 025A 08                push A
 025B 5011              mov A,<L46
 025D 5C                mov X,A
 025E 18                pop A
 025F 7C0000            xcall _LCD_1_PrCString
 0262 20                pop X
 0263                   .dbline 225
 0263           ;                       }else
 0263 8028              xjmp L24
 0265           L44:
 0265                   .dbline 226
 0265           ;                       {
 0265                   .dbline 228
 0265           ;                               // switch is OFF
 0265           ;                               LCD_1_Position(0,12);
 0265 10                push X
 0266 570C              mov X,12
 0268 5000              mov A,0
 026A 7C0000            xcall _LCD_1_Position
 026D                   .dbline 229
 026D           ;                               LCD_1_PrCString("  ");
 026D 5023              mov A,>L28
 026F 08                push A
 0270 5023              mov A,<L28
 0272 5C                mov X,A
 0273 18                pop A
 0274 7C0000            xcall _LCD_1_PrCString
 0277 20                pop X
 0278                   .dbline 230
 0278           ;                       }
 0278                   .dbline 231
 0278           ;               }
 0278 8013              xjmp L24
 027A           L23:
 027A                   .dbline 233
 027A           ;               else // blank the top line of the LCD screen
 027A           ;               {
 027A                   .dbline 234
 027A           ;                               LCD_1_Position(0,0);
 027A 10                push X
 027B 5000              mov A,0
 027D 5C                mov X,A
 027E 7C0000            xcall _LCD_1_Position
 0281                   .dbline 235
 0281           ;                               LCD_1_PrCString("                ");
 0281 5029              mov A,>L12
 0283 08                push A
 0284 5029              mov A,<L12
 0286 5C                mov X,A
 0287 18                pop A
 0288 7C0000            xcall _LCD_1_PrCString
 028B 20                pop X
 028C                   .dbline 236
 028C           ;               }
 028C           L24:
 028C                   .dbline 239
 028C 10                push X
 028D 5700              mov X,0
 028F 5001              mov A,1
 0291 7C0000            xcall _LCD_1_Position
 0294                   .dbline 240
 0294 5000              mov A,>L47
 0296 08                push A
 0297 5000              mov A,<L47
 0299 5C                mov X,A
 029A 18                pop A
 029B 7C0000            xcall _LCD_1_PrCString
 029E 20                pop X
 029F                   .dbline 243
 029F           L14:
 029F                   .dbline 119
 029F 8E14              xjmp L13
 02A1           X0:
 02A1                   .dbline -2
 02A1                   .dbline 244
 02A1           ; 
 02A1           ;               // output the value of CSR_baSwOnMask[0] to the LCD screen
 02A1           ;               LCD_1_Position(1,0);
 02A1           ;               LCD_1_PrCString("baSwOnMask[0]:  ");
 02A1           ; 
 02A1           ;                       
 02A1           ;       } // End of normal operation loop
 02A1           ; } // End of main
 02A1           L1:
 02A1                   .dbline 0 ; func end
 02A1 8FFF              jmp .
 02A3                   .dbend
 02A3                   .dbfunc e CalibrateSwitches _CalibrateSwitches fV
 02A3           ;          bFlag -> X+0
 02A3           _CalibrateSwitches::
 02A3                   .dbline -1
 02A3 10                push X
 02A4 4F                mov X,SP
 02A5 3801              add SP,1
 02A7                   .dbline 269
 02A7           ; 
 02A7           ; // -------------------------------------------------------------
 02A7           ; //
 02A7           ; // Function: CalibrateSwitches()
 02A7           ; //
 02A7           ; // Description:
 02A7           ; //            This function will automatically determine the appropriate
 02A7           ; // DAC values for each switch in the system.  The values will be
 02A7           ; // stored in the variable - bDACcurrent[].  The function will set
 02A7           ; // the DAC value depending on the values set by the following lines:
 02A7           ; //
 02A7           ; // #define DAC_MAX_RAW_COUNT  310
 02A7           ; // #define DAC_MIN_RAW_COUNT  290
 02A7           ; //
 02A7           ; // These lines are located at the top of the program and give a range
 02A7           ; // for the raw CSR count values to be in to set the DAC value.  This 
 02A7           ; // function will iterate through each switch.  It will do a single
 02A7           ; // scan and compare the raw count values with the range defined above.  
 02A7           ; // If the count values for that particular switch are outside of the
 02A7           ; // range, the function will change the DAC value appropriately and do
 02A7           ; // a rescan.  This process is repeated until the raw counts for each
 02A7           ; // particular switch are within the specified range.
 02A7           ; //
 02A7           ; void CalibrateSwitches(void)
 02A7           ; {
 02A7                   .dbline 270
 02A7           ;       BYTE bFlag = 1;
 02A7 560001            mov [X+0],1
 02AA                   .dbline 272
 02AA           ;       
 02AA           ;       for(i=0; i<NUM_SWITCHES; i++) // iterate through all the switches in the system
 02AA 62D000            mov REG[0xd0],>_i
 02AD 550100            mov [_i+1],0
 02B0 550000            mov [_i],0
 02B3 8133              xjmp L52
 02B5           L49:
 02B5                   .dbline 273
 02B5           ;       {
 02B5                   .dbline 276
 02B5           ;               // calibrate DAC setting for a switch
 02B5           ;               //------------------------------------------------------
 02B5           ;               bFlag = 1; // reset the flag to a true state
 02B5 560001            mov [X+0],1
 02B8                   .dbline 277
 02B8           ;               CSR_1_SetScanSpeed(3); // start with a scanspeed of three to get ONE oscillator cycle or period

⌨️ 快捷键说明

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