main.lis

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

LIS
1,068
字号
 00C8 0100              add A,<_bDACcurrent
 00CA 62D000            mov REG[0xd0],>__r0
 00CD 5300              mov [__r1],A
 00CF 62D000            mov REG[0xd0],>_i
 00D2 5100              mov A,[_i]
 00D4 0900              adc A,>_bDACcurrent
 00D6 62D000            mov REG[0xd0],>__r0
 00D9 60D4              mov REG[0xd4],A
 00DB 3E00              mvi A,[__r1]
 00DD 20                pop X
 00DE 7C0000            xcall _CSR_1_SetDacCurrent
 00E1                   .dbline 125
 00E1           ;                       CSR_1_SetScanSpeed(3); // use a scanspeed of three (no overlay so buttons are very sensitive)
 00E1 5003              mov A,3
 00E3 7C0000            xcall _CSR_1_SetScanSpeed
 00E6                   .dbline 126
 00E6           ;                       CSR_1_StartScan(i,1,0); // Scan one Switch (i)
 00E6 5000              mov A,0
 00E8 08                push A
 00E9 5001              mov A,1
 00EB 08                push A
 00EC 62D000            mov REG[0xd0],>_i
 00EF 5101              mov A,[_i+1]
 00F1 62D000            mov REG[0xd0],>__r0
 00F4 08                push A
 00F5 7C0000            xcall _CSR_1_StartScan
 00F8 38FD              add SP,-3
 00FA 20                pop X
 00FB           L20:
 00FB                   .dbline 127
 00FB           L21:
 00FB                   .dbline 127
 00FB 10                push X
 00FC 7C0000            xcall _CSR_1_GetScanStatus
 00FF 62D000            mov REG[0xd0],>__r0
 0102 20                pop X
 0103 5300              mov [__r0],A
 0105 470020            tst [__r0],32
 0108 AFF2              jz L20
 010A                   .dbline 128
 010A           L17:
 010A                   .dbline 122
 010A 62D000            mov REG[0xd0],>_i
 010D 7601              inc [_i+1]
 010F 0E0000            adc [_i],0
 0112           L19:
 0112                   .dbline 122
 0112 62D000            mov REG[0xd0],>_i
 0115 5101              mov A,[_i+1]
 0117 1107              sub A,7
 0119 5100              mov A,[_i]
 011B 1900              sbb A,0
 011D CFA1              jc L16
 011F           X3:
 011F                   .dbline 139
 011F           ;                       while(!(CSR_1_GetScanStatus() & CSR_1_SCAN_SET_COMPLETE));              // wait until the scan is complete
 011F           ;               }
 011F           ;               
 011F           ;               // call the update baseline function which does several functions, the two main
 011F           ;               // functions it provides are:
 011F           ;               //  1) updates each switches baseline (if necessary and according to the rate
 011F           ;               //     set by the updateBaseline value
 011F           ;               //  2) determine the button status (on/off) and places this value
 011F           ;               //     in CSR_1_baSwOnMask[]
 011F           ;               //  if any of the buttons are determined to be "ON" then the function will
 011F           ;               //  return a non-zero value
 011F           ; 
 011F           ;               if(CSR_1_bUpdateBaseline(0))
 011F 10                push X
 0120 5000              mov A,0
 0122 7C0000            xcall _CSR_1_bUpdateBaseline
 0125 20                pop X
 0126 3900              cmp A,0
 0128 A151              jz L23
 012A                   .dbline 140
 012A           ;               {
 012A                   .dbline 142
 012A           ;                       // check to see if BUTTON 0 is on or off
 012A           ;                       if ((CSR_1_baSwOnMask[0]) & BUTTON_0)  
 012A 62D000            mov REG[0xd0],>_CSR_1_baSwOnMask
 012D 470001            tst [_CSR_1_baSwOnMask],1
 0130 A015              jz L25
 0132                   .dbline 143
 0132           ;                       {
 0132                   .dbline 145
 0132           ;                               // switch is ON
 0132           ;                               LCD_1_Position(0,0);
 0132 10                push X
 0133 5000              mov A,0
 0135 5C                mov X,A
 0136 7C0000            xcall _LCD_1_Position
 0139                   .dbline 146
 0139           ;                               LCD_1_PrCString("0 ");
 0139 5026              mov A,>L27
 013B 08                push A
 013C 5026              mov A,<L27
 013E 5C                mov X,A
 013F 18                pop A
 0140 7C0000            xcall _LCD_1_PrCString
 0143 20                pop X
 0144                   .dbline 147
 0144           ;                       }else
 0144 8013              xjmp L26
 0146           L25:
 0146                   .dbline 148
 0146           ;                       {
 0146                   .dbline 150
 0146           ;                               // switch is OFF
 0146           ;                               LCD_1_Position(0,0);
 0146 10                push X
 0147 5000              mov A,0
 0149 5C                mov X,A
 014A 7C0000            xcall _LCD_1_Position
 014D                   .dbline 151
 014D           ;                               LCD_1_PrCString("  ");
 014D 5023              mov A,>L28
 014F 08                push A
 0150 5023              mov A,<L28
 0152 5C                mov X,A
 0153 18                pop A
 0154 7C0000            xcall _LCD_1_PrCString
 0157 20                pop X
 0158                   .dbline 152
 0158           ;                       }                       
 0158           L26:
 0158                   .dbline 155
 0158           ; 
 0158           ;                       // check to see if BUTTON 1 is on or off
 0158           ;                       if ((CSR_1_baSwOnMask[0]) & BUTTON_1) 
 0158 62D000            mov REG[0xd0],>_CSR_1_baSwOnMask
 015B 470002            tst [_CSR_1_baSwOnMask],2
 015E A016              jz L29
 0160                   .dbline 156
 0160           ;                       {
 0160                   .dbline 158
 0160           ;                               // switch is ON
 0160           ;                               LCD_1_Position(0,2);
 0160 10                push X
 0161 5702              mov X,2
 0163 5000              mov A,0
 0165 7C0000            xcall _LCD_1_Position
 0168                   .dbline 159
 0168           ;                               LCD_1_PrCString("1 ");
 0168 5020              mov A,>L31
 016A 08                push A
 016B 5020              mov A,<L31
 016D 5C                mov X,A
 016E 18                pop A
 016F 7C0000            xcall _LCD_1_PrCString
 0172 20                pop X
 0173                   .dbline 160
 0173           ;                       }else
 0173 8014              xjmp L30
 0175           L29:
 0175                   .dbline 161
 0175           ;                       {
 0175                   .dbline 163
 0175           ;                               // switch is OFF
 0175           ;                               LCD_1_Position(0,2);
 0175 10                push X
 0176 5702              mov X,2
 0178 5000              mov A,0
 017A 7C0000            xcall _LCD_1_Position
 017D                   .dbline 164
 017D           ;                               LCD_1_PrCString("  ");
 017D 5023              mov A,>L28
 017F 08                push A
 0180 5023              mov A,<L28
 0182 5C                mov X,A
 0183 18                pop A
 0184 7C0000            xcall _LCD_1_PrCString
 0187 20                pop X
 0188                   .dbline 165
 0188           ;                       }                       
 0188           L30:
 0188                   .dbline 168
 0188           ; 
 0188           ;                       // check to see if BUTTON 2 is on or off
 0188           ;                       if ((CSR_1_baSwOnMask[0]) & BUTTON_2) 
 0188 62D000            mov REG[0xd0],>_CSR_1_baSwOnMask
 018B 470004            tst [_CSR_1_baSwOnMask],4
 018E A016              jz L32
 0190                   .dbline 169
 0190           ;                       {
 0190                   .dbline 171
 0190           ;                               // switch is ON
 0190           ;                               LCD_1_Position(0,4);
 0190 10                push X
 0191 5704              mov X,4
 0193 5000              mov A,0
 0195 7C0000            xcall _LCD_1_Position
 0198                   .dbline 172
 0198           ;                               LCD_1_PrCString("2 ");
 0198 501D              mov A,>L34
 019A 08                push A
 019B 501D              mov A,<L34
 019D 5C                mov X,A
 019E 18                pop A
 019F 7C0000            xcall _LCD_1_PrCString
 01A2 20                pop X
 01A3                   .dbline 173
 01A3           ;                       }else
 01A3 8014              xjmp L33
 01A5           L32:
 01A5                   .dbline 174
 01A5           ;                       {
 01A5                   .dbline 176
 01A5           ;                               // switch is OFF
 01A5           ;                               LCD_1_Position(0,4);
 01A5 10                push X
 01A6 5704              mov X,4
 01A8 5000              mov A,0
 01AA 7C0000            xcall _LCD_1_Position
 01AD                   .dbline 177
 01AD           ;                               LCD_1_PrCString("  ");
 01AD 5023              mov A,>L28
 01AF 08                push A
 01B0 5023              mov A,<L28
 01B2 5C                mov X,A
 01B3 18                pop A
 01B4 7C0000            xcall _LCD_1_PrCString
 01B7 20                pop X
 01B8                   .dbline 178
 01B8           ;                       }                       
 01B8           L33:
 01B8                   .dbline 181
 01B8           ; 
 01B8           ;                       // check to see if BUTTON 3 is on or off
 01B8           ;                       if ((CSR_1_baSwOnMask[0]) & BUTTON_3) 
 01B8 62D000            mov REG[0xd0],>_CSR_1_baSwOnMask
 01BB 470008            tst [_CSR_1_baSwOnMask],8
 01BE A016              jz L35
 01C0                   .dbline 182
 01C0           ;                       {
 01C0                   .dbline 184
 01C0           ;                               // switch is ON
 01C0           ;                               LCD_1_Position(0,6);
 01C0 10                push X
 01C1 5706              mov X,6
 01C3 5000              mov A,0
 01C5 7C0000            xcall _LCD_1_Position
 01C8                   .dbline 185
 01C8           ;                               LCD_1_PrCString("3 ");
 01C8 501A              mov A,>L37
 01CA 08                push A
 01CB 501A              mov A,<L37
 01CD 5C                mov X,A
 01CE 18                pop A
 01CF 7C0000            xcall _LCD_1_PrCString
 01D2 20                pop X
 01D3                   .dbline 186
 01D3           ;                       }else
 01D3 8014              xjmp L36
 01D5           L35:
 01D5                   .dbline 187
 01D5           ;                       {
 01D5                   .dbline 189
 01D5           ;                               // switch is OFF
 01D5           ;                               LCD_1_Position(0,6);
 01D5 10                push X
 01D6 5706              mov X,6
 01D8 5000              mov A,0
 01DA 7C0000            xcall _LCD_1_Position
 01DD                   .dbline 190
 01DD           ;                               LCD_1_PrCString("  ");
 01DD 5023              mov A,>L28
 01DF 08                push A

⌨️ 快捷键说明

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