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 + -
显示快捷键?