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

📄 main.lis

📁 数字舵机(1) 数字脉宽检测 数字脉宽检测
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0296                   .dbline -1
 0296                   .dbline 146
 0296           ;  //all peripherals are now initialized
 0296           ; }
 0296           ; //UART1 initialize
 0296           ; // desired baud rate:9600
 0296           ; // actual baud rate:9615 (0.2%)
 0296           ; void uart1_init(void)
 0296           ; {
 0296                   .dbline 147
 0296           ;  UCSR1B = 0x00; //disable while setting baud rate
 0296 2224              clr R2
 0298 20929A00          sts 154,R2
 029C                   .dbline 148
 029C           ;  UCSR1A = 0x00;
 029C 20929B00          sts 155,R2
 02A0                   .dbline 149
 02A0           ;  UCSR1C = 0x06;
 02A0 86E0              ldi R24,6
 02A2 80939D00          sts 157,R24
 02A6                   .dbline 150
 02A6           ;  UBRR1L = 0x33; //set baud rate lo
 02A6 83E3              ldi R24,51
 02A8 80939900          sts 153,R24
 02AC                   .dbline 151
 02AC           ;  UBRR1H = 0x00; //set baud rate hi
 02AC 20929800          sts 152,R2
 02B0                   .dbline 152
 02B0           ;  UCSR1B = 0x98;
 02B0 88E9              ldi R24,152
 02B2 80939A00          sts 154,R24
 02B6                   .dbline -2
 02B6           L16:
 02B6                   .dbline 0 ; func end
 02B6 0895              ret
 02B8                   .dbend
                        .area vector(rom, abs)
                        .org 120
 0078 0C945C01          jmp _uart1_rx_isr
                        .area text(rom, con, rel)
 02B8                   .dbfile C:\DOCUME~1\ZDH\桌面\JOHU_2~1.180\digital_duoji\main.c
 02B8                   .dbfunc e uart1_rx_isr _uart1_rx_isr fV
                        .even
 02B8           _uart1_rx_isr::
 02B8 0A92              st -y,R0
 02BA 1A92              st -y,R1
 02BC 2A92              st -y,R2
 02BE 3A92              st -y,R3
 02C0 4A92              st -y,R4
 02C2 5A92              st -y,R5
 02C4 0A93              st -y,R16
 02C6 1A93              st -y,R17
 02C8 2A93              st -y,R18
 02CA 3A93              st -y,R19
 02CC 8A93              st -y,R24
 02CE 9A93              st -y,R25
 02D0 EA93              st -y,R30
 02D2 FA93              st -y,R31
 02D4 0FB6              in R0,0x3f
 02D6 0A92              st -y,R0
 02D8                   .dbline -1
 02D8                   .dbline 158
 02D8           ; }
 02D8           ; 
 02D8           ; #pragma interrupt_handler uart1_rx_isr:31
 02D8           ; //cir+00100
 02D8           ; void uart1_rx_isr(void)
 02D8           ; {
 02D8                   .dbline 160
 02D8           ;  //uart has received a character in UDR
 02D8           ;  if (all==CIR)
 02D8 80911600          lds R24,_all
 02DC 8130              cpi R24,1
 02DE 09F0              breq X25
 02E0 B9C0              xjmp L18
 02E2           X25:
 02E2           X5:
 02E2                   .dbline 161
 02E2           ;       {
 02E2                   .dbline 162
 02E2           ;          a=b;
 02E2 20901800          lds R2,_b
 02E6 20921700          sts _a,R2
 02EA                   .dbline 163
 02EA           ;          b=c;
 02EA 20901900          lds R2,_c
 02EE 20921800          sts _b,R2
 02F2                   .dbline 164
 02F2           ;          c=d;
 02F2 20901A00          lds R2,_d
 02F6 20921900          sts _c,R2
 02FA                   .dbline 165
 02FA           ;          d=e;
 02FA 20901B00          lds R2,_e
 02FE 20921A00          sts _d,R2
 0302                   .dbline 166
 0302           ;          e=f;
 0302 20901C00          lds R2,_f
 0306 20921B00          sts _e,R2
 030A                   .dbline 167
 030A           ;          f=UDR1;
 030A 20909C00          lds R2,156
 030E 20921C00          sts _f,R2
 0312                   .dbline 168
 0312           ;          if ((f<'0')||(f>'9'))return;
 0312 822D              mov R24,R2
 0314 8033              cpi R24,48
 0316 18F0              brlo L22
 0318           X6:
 0318 89E3              ldi R24,57
 031A 8215              cp R24,R2
 031C 08F4              brsh L20
 031E           X7:
 031E           L22:
 031E                   .dbline 168
 031E AAC1              xjmp L17
 0320           L20:
 0320                   .dbline 169
 0320           ;          if (a=='+')//0x2b
 0320 80911700          lds R24,_a
 0324 8B32              cpi R24,43
 0326 09F0              breq X26
 0328 41C0              xjmp L23
 032A           X26:
 032A           X8:
 032A                   .dbline 170
 032A           ;                 {jiaodu=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
 032A                   .dbline 170
 032A 20911900          lds R18,_c
 032E 3327              clr R19
 0330 08EE              ldi R16,1000
 0332 13E0              ldi R17,3
 0334 0E940000          xcall empy16s
 0338 C801              movw R24,R16
 033A 8058              subi R24,128
 033C 9B4B              sbci R25,187
 033E 20911800          lds R18,_b
 0342 3327              clr R19
 0344 00E1              ldi R16,10000
 0346 17E2              ldi R17,39
 0348 0E940000          xcall empy16s
 034C F801              movw R30,R16
 034E E050              subi R30,0
 0350 F345              sbci R31,83
 0352 E80F              add R30,R24
 0354 F91F              adc R31,R25
 0356 20901A00          lds R2,_d
 035A 84E6              ldi R24,100
 035C 829D              mul R24,R2
 035E C001              movw R24,R0
 0360 805C              subi R24,192
 0362 9241              sbci R25,18
 0364 E80F              add R30,R24
 0366 F91F              adc R31,R25
 0368 20901B00          lds R2,_e
 036C 8AE0              ldi R24,10
 036E 829D              mul R24,R2
 0370 C001              movw R24,R0
 0372 805E              subi R24,224
 0374 9140              sbci R25,1
 0376 E80F              add R30,R24
 0378 F91F              adc R31,R25
 037A 80911C00          lds R24,_f
 037E 9927              clr R25
 0380 C097              sbiw R24,48
 0382 E80F              add R30,R24
 0384 F91F              adc R31,R25
 0386 1F01              movw R2,R30
 0388 4424              clr R4
 038A 37FC              sbrc R3,7
 038C 4094              com R4
 038E 5524              clr R5
 0390 47FC              sbrc R4,7
 0392 5094              com R5
 0394 30921E00          sts _jiaodu+1,R3
 0398 20921D00          sts _jiaodu,R2
 039C 50922000          sts _jiaodu+2+1,R5
 03A0 40921F00          sts _jiaodu+2,R4
 03A4                   .dbline 171
 03A4           ;                  all=0;return;}
 03A4 2224              clr R2
 03A6 20921600          sts _all,R2
 03AA                   .dbline 171
 03AA 64C1              xjmp L17
 03AC           L23:
 03AC                   .dbline 172
 03AC           ;          else if (a=='-')//0x2d
 03AC 80911700          lds R24,_a
 03B0 8D32              cpi R24,45
 03B2 09F0              breq X27
 03B4 46C0              xjmp L25
 03B6           X27:
 03B6           X9:
 03B6                   .dbline 173
 03B6           ;                 {jiaodu=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
 03B6                   .dbline 173
 03B6 20911900          lds R18,_c
 03BA 3327              clr R19
 03BC 08EE              ldi R16,1000
 03BE 13E0              ldi R17,3
 03C0 0E940000          xcall empy16s
 03C4 C801              movw R24,R16
 03C6 8058              subi R24,128
 03C8 9B4B              sbci R25,187
 03CA 20911800          lds R18,_b
 03CE 3327              clr R19
 03D0 00E1              ldi R16,10000
 03D2 17E2              ldi R17,39
 03D4 0E940000          xcall empy16s
 03D8 F801              movw R30,R16
 03DA E050              subi R30,0
 03DC F345              sbci R31,83
 03DE E80F              add R30,R24
 03E0 F91F              adc R31,R25
 03E2 20901A00          lds R2,_d
 03E6 84E6              ldi R24,100
 03E8 829D              mul R24,R2
 03EA C001              movw R24,R0
 03EC 805C              subi R24,192
 03EE 9241              sbci R25,18
 03F0 E80F              add R30,R24
 03F2 F91F              adc R31,R25
 03F4 20901B00          lds R2,_e
 03F8 8AE0              ldi R24,10
 03FA 829D              mul R24,R2
 03FC C001              movw R24,R0
 03FE 805E              subi R24,224
 0400 9140              sbci R25,1
 0402 E80F              add R30,R24
 0404 F91F              adc R31,R25
 0406 80911C00          lds R24,_f
 040A 9927              clr R25
 040C C097              sbiw R24,48
 040E E80F              add R30,R24
 0410 F91F              adc R31,R25
 0412 CF01              movw R24,R30
 0414 8095              com R24
 0416 9095              com R25
 0418 8F5F              subi R24,0xFF
 041A 9F4F              sbci R25,0xFF
 041C 1C01              movw R2,R24
 041E 4424              clr R4
 0420 37FC              sbrc R3,7
 0422 4094              com R4
 0424 5524              clr R5
 0426 47FC              sbrc R4,7
 0428 5094              com R5
 042A 30921E00          sts _jiaodu+1,R3
 042E 20921D00          sts _jiaodu,R2
 0432 50922000          sts _jiaodu+2+1,R5
 0436 40921F00          sts _jiaodu+2,R4
 043A                   .dbline 174
 043A           ;                  all=0;return;}
 043A 2224              clr R2
 043C 20921600          sts _all,R2
 0440                   .dbline 174
 0440 19C1              xjmp L17
 0442           L25:
 0442                   .dbline 175
 0442           ;          if (a!=0) {all=0;return;}
 0442 20901700          lds R2,_a
 0446 2220              tst R2
 0448 09F4              brne X28
 044A 14C1              xjmp L19
 044C           X28:
 044C           X10:
 044C                   .dbline 175
 044C                   .dbline 175
 044C 2224              clr R2
 044E 20921600          sts _all,R2
 0452                   .dbline 175
 0452 10C1              xjmp L17
 0454           L18:
 0454                   .dbline 178
 0454           ;            //PORTF=jiaodu;//while(1);
 0454           ;       }
 0454           ;  else if (all==LINE)
 0454 80911600          lds R24,_all
 0458 8230              cpi R24,2
 045A 09F0              breq X29
 045C B9C0              xjmp L29
 045E           X29:
 045E           X11:
 045E                   .dbline 179
 045E           ;       {
 045E                   .dbline 180
 045E           ;          a=b;
 045E 20901800          lds R2,_b
 0462 20921700          sts _a,R2
 0466                   .dbline 181
 0466           ;          b=c;
 0466 20901900          lds R2,_c
 046A 20921800          sts _b,R2
 046E                   .dbline 182
 046E           ;          c=d;
 046E 20901A00          lds R2,_d
 0472 20921900          sts _c,R2
 0476                   .dbline 183
 0476           ;          d=e;
 0476 20901B00          lds R2,_e
 047A 20921A00          sts _d,R2
 047E                   .dbline 184
 047E           ;          e=f;
 047E 20901C00          lds R2,_f
 0482 20921B00          sts _e,R2
 0486                   .dbline 185
 0486           ;          f=UDR1;
 0486 20909C00          lds R2,156
 048A 20921C00          sts _f,R2
 048E                   .dbline 186
 048E           ;          if ((f<'0')||(f>'9'))return;
 048E 822D              mov R24,R2
 0490 8033              cpi R24,48
 0492 18F0              brlo L33
 0494           X12:
 0494 89E3              ldi R24,57
 0496 8215              cp R24,R2
 0498 08F4              brsh L31
 049A           X13:
 049A           L33:
 049A                   .dbline 186
 049A ECC0              xjmp L17
 049C           L31:
 049C                   .dbline 187
 049C           ;          if (a=='+')
 049C 80911700          lds R24,_a
 04A0 8B32              cpi R24,43
 04A2 09F0              breq X30
 04A4 41C0              xjmp L34
 04A6           X30:
 04A6           X14:
 04A6                   .dbline 188
 04A6           ;                 {juli=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
 04A6                   .dbline 188
 04A6 20911900          lds R18,_c
 04AA 3327              clr R19
 04AC 08EE              ldi R16,1000
 04AE 13E0              ldi R17,3
 04B0 0E940000          xcall empy16s
 04B4 C801              movw R24,R16
 04B6 8058              subi R24,128
 04B8 9B4B              sbci R25,187
 04BA 20911800          lds R18,_b
 04BE 3327              clr R19
 04C0 00E1              ldi R16,10000
 04C2 17E2              ldi R17,39
 04C4 0E940000          xcall empy16s
 04C8 F801              movw R30,R16

⌨️ 快捷键说明

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