main.lis

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

LIS
1,068
字号
 02B8 10                push X
 02B9 5003              mov A,3
 02BB 7C0000            xcall _CSR_1_SetScanSpeed
 02BE 20                pop X
 02BF                   .dbline 278
 02BF           ;               bDACcurrent[i] = 20; // a DAC current of 20 will start us in range      
 02BF 62D000            mov REG[0xd0],>_i
 02C2 5101              mov A,[_i+1]
 02C4 0100              add A,<_bDACcurrent
 02C6 62D000            mov REG[0xd0],>__r0
 02C9 5300              mov [__r1],A
 02CB 62D000            mov REG[0xd0],>_i
 02CE 5100              mov A,[_i]
 02D0 0900              adc A,>_bDACcurrent
 02D2 62D000            mov REG[0xd0],>__r0
 02D5 60D5              mov REG[0xd5],A
 02D7 5014              mov A,20
 02D9 3F00              mvi [__r1],A
 02DB           L53:
 02DB                   .dbline 287
 02DB           ;               
 02DB           ;               // do one scan and compare the raw count value against
 02DB           ;               // the defined range. 
 02DB           ;               // - If the counts are BELOW the set range
 02DB           ;               // DECREASE the DAC setting to INCREASE the counts
 02DB           ;               // - If the counts are ABOVE the set range
 02DB           ;               // INCREASE the DAC setting to DECREASE the counts
 02DB           ;               do
 02DB           ;               {
 02DB                   .dbline 289
 02DB           ;                       // set the DAC current
 02DB           ;                       CSR_1_SetDacCurrent(bDACcurrent[i], 0);
 02DB 10                push X
 02DC 5000              mov A,0
 02DE 08                push A
 02DF 62D000            mov REG[0xd0],>_i
 02E2 5101              mov A,[_i+1]
 02E4 0100              add A,<_bDACcurrent
 02E6 62D000            mov REG[0xd0],>__r0
 02E9 5300              mov [__r1],A
 02EB 62D000            mov REG[0xd0],>_i
 02EE 5100              mov A,[_i]
 02F0 0900              adc A,>_bDACcurrent
 02F2 62D000            mov REG[0xd0],>__r0
 02F5 60D4              mov REG[0xd4],A
 02F7 3E00              mvi A,[__r1]
 02F9 20                pop X
 02FA 7C0000            xcall _CSR_1_SetDacCurrent
 02FD                   .dbline 291
 02FD           ;                       // scan just the one button
 02FD           ;                       CSR_1_StartScan(i,1,0);
 02FD 5000              mov A,0
 02FF 08                push A
 0300 5001              mov A,1
 0302 08                push A
 0303 62D000            mov REG[0xd0],>_i
 0306 5101              mov A,[_i+1]
 0308 62D000            mov REG[0xd0],>__r0
 030B 08                push A
 030C 7C0000            xcall _CSR_1_StartScan
 030F 38FD              add SP,-3
 0311 20                pop X
 0312           L56:
 0312                   .dbline 292
 0312           L57:
 0312                   .dbline 292
 0312           ;                       while(!(CSR_1_GetScanStatus() & CSR_1_SCAN_SET_COMPLETE));
 0312 10                push X
 0313 7C0000            xcall _CSR_1_GetScanStatus
 0316 62D000            mov REG[0xd0],>__r0
 0319 20                pop X
 031A 5300              mov [__r0],A
 031C 470020            tst [__r0],32
 031F AFF2              jz L56
 0321                   .dbline 295
 0321           ;               
 0321           ;                       // check to see if the counts are in range
 0321           ;                       if (CSR_1_iaSwResult[i] < DAC_MIN_RAW_COUNT)
 0321 62D000            mov REG[0xd0],>_i
 0324 5101              mov A,[_i+1]
 0326 08                push A
 0327 5100              mov A,[_i]
 0329 62D000            mov REG[0xd0],>__r0
 032C 5300              mov [__r0],A
 032E 18                pop A
 032F 5300              mov [__r1],A
 0331 6500              asl [__r1]
 0333 6B00              rlc [__r0]
 0335 060000            add [__r1],<_CSR_1_iaSwResult
 0338 0E0000            adc [__r0],>_CSR_1_iaSwResult
 033B 5100              mov A,[__r0]
 033D 60D4              mov REG[0xd4],A
 033F 3E00              mvi A,[__r1]
 0341 5300              mov [__r0],A
 0343 3E00              mvi A,[__r1]
 0345 1122              sub A,34
 0347 5100              mov A,[__r0]
 0349 1901              sbb A,1
 034B D02E              jnc L59
 034D           X4:
 034D                   .dbline 296
 034D           ;                       {
 034D                   .dbline 297
 034D           ;                               bDACcurrent[i]--; // counts are BELOW the range so DECREASE the DAC setting
 034D 62D000            mov REG[0xd0],>_i
 0350 5101              mov A,[_i+1]
 0352 0100              add A,<_bDACcurrent
 0354 62D000            mov REG[0xd0],>__r0
 0357 5300              mov [__r1],A
 0359 62D000            mov REG[0xd0],>_i
 035C 5100              mov A,[_i]
 035E 0900              adc A,>_bDACcurrent
 0360 62D000            mov REG[0xd0],>__r0
 0363 5300              mov [__r0],A
 0365 60D4              mov REG[0xd4],A
 0367 3E00              mvi A,[__r1]
 0369 7A00              dec [__r1]
 036B 5300              mov [__r2],A
 036D 160001            sub [__r2],1
 0370 5100              mov A,[__r0]
 0372 60D5              mov REG[0xd5],A
 0374 5100              mov A,[__r2]
 0376 3F00              mvi [__r1],A
 0378                   .dbline 298
 0378           ;                       }
 0378 8061              xjmp L60
 037A           L59:
 037A                   .dbline 299
 037A           ;                       else if (CSR_1_iaSwResult[i] > DAC_MAX_RAW_COUNT)
 037A 62D000            mov REG[0xd0],>_i
 037D 5101              mov A,[_i+1]
 037F 08                push A
 0380 5100              mov A,[_i]
 0382 62D000            mov REG[0xd0],>__r0
 0385 5300              mov [__r0],A
 0387 18                pop A
 0388 5300              mov [__r1],A
 038A 6500              asl [__r1]
 038C 6B00              rlc [__r0]
 038E 060000            add [__r1],<_CSR_1_iaSwResult
 0391 0E0000            adc [__r0],>_CSR_1_iaSwResult
 0394 5100              mov A,[__r0]
 0396 60D4              mov REG[0xd4],A
 0398 3E00              mvi A,[__r1]
 039A 5300              mov [__r0],A
 039C 3E00              mvi A,[__r1]
 039E 5300              mov [__r1],A
 03A0 5036              mov A,54
 03A2 1200              sub A,[__r1]
 03A4 5001              mov A,1
 03A6 1A00              sbb A,[__r0]
 03A8 D02E              jnc L61
 03AA           X5:
 03AA                   .dbline 300
 03AA           ;                       {
 03AA                   .dbline 301
 03AA           ;                               bDACcurrent[i]++; // counts are ABOVE the range so INCREASE the DAC setting
 03AA 62D000            mov REG[0xd0],>_i
 03AD 5101              mov A,[_i+1]
 03AF 0100              add A,<_bDACcurrent
 03B1 62D000            mov REG[0xd0],>__r0
 03B4 5300              mov [__r1],A
 03B6 62D000            mov REG[0xd0],>_i
 03B9 5100              mov A,[_i]
 03BB 0900              adc A,>_bDACcurrent
 03BD 62D000            mov REG[0xd0],>__r0
 03C0 5300              mov [__r0],A
 03C2 60D4              mov REG[0xd4],A
 03C4 3E00              mvi A,[__r1]
 03C6 7A00              dec [__r1]
 03C8 5300              mov [__r2],A
 03CA 060001            add [__r2],1
 03CD 5100              mov A,[__r0]
 03CF 60D5              mov REG[0xd5],A
 03D1 5100              mov A,[__r2]
 03D3 3F00              mvi [__r1],A
 03D5                   .dbline 302
 03D5           ;                       }
 03D5 8004              xjmp L62
 03D7           L61:
 03D7                   .dbline 304
 03D7           ;                       else
 03D7           ;                       {
 03D7                   .dbline 305
 03D7           ;                               bFlag = 0; // the counts are in range so exit the do loop
 03D7 560000            mov [X+0],0
 03DA                   .dbline 306
 03DA           ;                       }               
 03DA           L62:
 03DA           L60:
 03DA                   .dbline 307
 03DA           L54:
 03DA                   .dbline 307
 03DA 3D0000            cmp [X+0],0
 03DD BEFD              jnz L53
 03DF                   .dbline 308
 03DF           L50:
 03DF                   .dbline 272
 03DF 62D000            mov REG[0xd0],>_i
 03E2 7601              inc [_i+1]
 03E4 0E0000            adc [_i],0
 03E7           L52:
 03E7                   .dbline 272
 03E7 62D000            mov REG[0xd0],>_i
 03EA 5101              mov A,[_i+1]
 03EC 1107              sub A,7
 03EE 5100              mov A,[_i]
 03F0 1900              sbb A,0
 03F2 CEC2              jc L49
 03F4           X6:
 03F4                   .dbline -2
 03F4                   .dbline 309
 03F4           ;               }while (bFlag); //if the flag is still 1 then go back and rescan the switch
 03F4           ;       }
 03F4           ; }
 03F4           L48:
 03F4 38FF              add SP,-1
 03F6 20                pop X
 03F7                   .dbline 0 ; func end
 03F7 7F                ret
 03F8                   .dbsym l bFlag 0 c
 03F8                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile ./main.c
 0000           _x::
 0000 0000              .byte 0,0
 0002                   .dbsym e x _x i
                        .area data(ram, con, rel)
 0000                   .dbfile ./main.c
 0000           _i::
 0000 0000              .byte 0,0
 0002                   .dbsym e i _i i
                        .area data(ram, con, rel)
 0000                   .dbfile ./main.c
 0000           _bDACcurrent::
 0000 00000000000000    .byte 0,0,0,0,0,0,0
 0007                   .dbsym e bDACcurrent _bDACcurrent A[7:7]c
                        .area lit(rom, con, rel)
 0000           L47:
 0000 626153774F6E4D61736B5B305D3A2020  .byte 'b,'a,'S,'w,'O,'n,'M,'a,'s,'k,91,48,93,58,32,32
 0010 00                .byte 0
 0011           L46:
 0011 362000            .byte 54,32,0
 0014           L43:
 0014 352000            .byte 53,32,0
 0017           L40:
 0017 342000            .byte 52,32,0
 001A           L37:
 001A 332000            .byte 51,32,0
 001D           L34:
 001D 322000            .byte 50,32,0
 0020           L31:
 0020 312000            .byte 49,32,0
 0023           L28:
 0023 202000            .byte 32,32,0
 0026           L27:
 0026 302000            .byte 48,32,0
 0029           L12:
 0029 20202020202020202020202020202020  .byte 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
 0039 00                .byte 0
 003A           L3:
 003A 44656D6F2076322E3020202020202020  .byte 'D,'e,'m,'o,32,'v,50,46,48,32,32,32,32,32,32,32
 004A 00                .byte 0
 004B           L2:
 004B 372D427574746F6E2020202020202020  .byte 55,45,'B,'u,'t,'t,'o,'n,32,32,32,32,32,32,32,32
 005B 00                .byte 0

⌨️ 快捷键说明

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