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

📄 m64.lst

📁 数字舵机(1) 数字脉宽检测 数字脉宽检测
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0132) 
(0133)  MCUCR = 0x00;
     1BC 2422      CLR	R2
     1BD BE25      OUT	0x35,R2
(0134)  EICRA = 0x00; //extended ext ints
     1BE 9220 006A STS	0x006A,R2
(0135)  EICRB = 0x00; //extended ext ints
     1C0 BE2A      OUT	0x3A,R2
(0136)  EIMSK = 0x00;
     1C1 BE29      OUT	0x39,R2
(0137)  TIMSK = 0x40; //timer interrupt sources
     1C2 E480      LDI	R24,0x40
     1C3 BF87      OUT	0x37,R24
(0138)  ETIMSK = 0x00; //extended timer interrupt sources
     1C4 9220 007D STS	0x007D,R2
(0139)  SEI(); //re-enable interrupts
     1C6 9478      BSET	7
     1C7 9508      RET
(0140)  //all peripherals are now initialized
(0141) }
(0142) //UART1 initialize
(0143) // desired baud rate:9600
(0144) // actual baud rate:9615 (0.2%)
(0145) void uart1_init(void)
(0146) {
(0147)  UCSR1B = 0x00; //disable while setting baud rate
_uart1_init:
     1C8 2422      CLR	R2
     1C9 9220 009A STS	0x009A,R2
(0148)  UCSR1A = 0x00;
     1CB 9220 009B STS	0x009B,R2
(0149)  UCSR1C = 0x06;
     1CD E086      LDI	R24,6
     1CE 9380 009D STS	0x009D,R24
(0150)  UBRR1L = 0x33; //set baud rate lo
     1D0 E383      LDI	R24,0x33
     1D1 9380 0099 STS	0x0099,R24
(0151)  UBRR1H = 0x00; //set baud rate hi
     1D3 9220 0098 STS	0x0098,R2
(0152)  UCSR1B = 0x98;
     1D5 E988      LDI	R24,0x98
     1D6 9380 009A STS	0x009A,R24
     1D8 9508      RET
_uart1_rx_isr:
     1D9 920A      ST	R0,-Y
     1DA 921A      ST	R1,-Y
     1DB 922A      ST	R2,-Y
     1DC 923A      ST	R3,-Y
     1DD 924A      ST	R4,-Y
     1DE 925A      ST	R5,-Y
     1DF 930A      ST	R16,-Y
     1E0 931A      ST	R17,-Y
     1E1 932A      ST	R18,-Y
     1E2 933A      ST	R19,-Y
     1E3 938A      ST	R24,-Y
     1E4 939A      ST	R25,-Y
     1E5 93EA      ST	R30,-Y
     1E6 93FA      ST	R31,-Y
     1E7 B60F      IN	R0,0x3F
     1E8 920A      ST	R0,-Y
(0153) }
(0154) 
(0155) #pragma interrupt_handler uart1_rx_isr:31
(0156) //cir+00100
(0157) void uart1_rx_isr(void)
(0158) {
(0159)  //uart has received a character in UDR
(0160)  if (all==CIR)
     1E9 9180 0116 LDS	R24,all
     1EB 3081      CPI	R24,1
     1EC F009      BEQ	0x01EE
     1ED C0B9      RJMP	0x02A7
(0161)  	{
(0162) 	   a=b;
     1EE 9020 0118 LDS	R2,b
     1F0 9220 0117 STS	a,R2
(0163) 	   b=c;
     1F2 9020 0119 LDS	R2,c
     1F4 9220 0118 STS	b,R2
(0164) 	   c=d;
     1F6 9020 011A LDS	R2,d
     1F8 9220 0119 STS	c,R2
(0165) 	   d=e;
     1FA 9020 011B LDS	R2,e
     1FC 9220 011A STS	d,R2
(0166) 	   e=f;
     1FE 9020 011C LDS	R2,f
     200 9220 011B STS	e,R2
(0167) 	   f=UDR1;
     202 9020 009C LDS	R2,0x009C
     204 9220 011C STS	f,R2
(0168) 	   if ((f<'0')||(f>'9'))return;
     206 2D82      MOV	R24,R2
     207 3380      CPI	R24,0x30
     208 F018      BCS	0x020C
     209 E389      LDI	R24,0x39
     20A 1582      CP	R24,R2
     20B F408      BCC	0x020D
     20C C1AA      RJMP	0x03B7
(0169) 	   if (a=='+')//0x2b
     20D 9180 0117 LDS	R24,a
     20F 328B      CPI	R24,0x2B
     210 F009      BEQ	0x0212
     211 C041      RJMP	0x0253
(0170) 	   	  {jiaodu=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
     212 9120 0119 LDS	R18,c
     214 2733      CLR	R19
     215 EE08      LDI	R16,0xE8
     216 E013      LDI	R17,3
     217 940E 076C CALL	empy16s
     219 01C8      MOVW	R24,R16
     21A 5880      SUBI	R24,0x80
     21B 4B9B      SBCI	R25,0xBB
     21C 9120 0118 LDS	R18,b
     21E 2733      CLR	R19
     21F E100      LDI	R16,0x10
     220 E217      LDI	R17,0x27
     221 940E 076C CALL	empy16s
     223 01F8      MOVW	R30,R16
     224 50E0      SUBI	R30,0
     225 45F3      SBCI	R31,0x53
     226 0FE8      ADD	R30,R24
     227 1FF9      ADC	R31,R25
     228 9020 011A LDS	R2,d
     22A E684      LDI	R24,0x64
     22B 9D82      MUL	R24,R2
     22C 01C0      MOVW	R24,R0
     22D 5C80      SUBI	R24,0xC0
     22E 4192      SBCI	R25,0x12
     22F 0FE8      ADD	R30,R24
     230 1FF9      ADC	R31,R25
     231 9020 011B LDS	R2,e
     233 E08A      LDI	R24,0xA
     234 9D82      MUL	R24,R2
     235 01C0      MOVW	R24,R0
     236 5E80      SUBI	R24,0xE0
     237 4091      SBCI	R25,1
     238 0FE8      ADD	R30,R24
     239 1FF9      ADC	R31,R25
     23A 9180 011C LDS	R24,f
     23C 2799      CLR	R25
     23D 97C0      SBIW	R24,0x30
     23E 0FE8      ADD	R30,R24
     23F 1FF9      ADC	R31,R25
     240 011F      MOVW	R2,R30
     241 2444      CLR	R4
     242 FC37      SBRC	R3,7
     243 9440      COM	R4
     244 2455      CLR	R5
     245 FC47      SBRC	R4,7
     246 9450      COM	R5
     247 9230 011E STS	jiaodu+1,R3
     249 9220 011D STS	jiaodu,R2
     24B 9250 0120 STS	jiaodu+3,R5
     24D 9240 011F STS	jiaodu+2,R4
(0171) 		   all=0;return;}
     24F 2422      CLR	R2
     250 9220 0116 STS	all,R2
     252 C164      RJMP	0x03B7
(0172) 	   else if (a=='-')//0x2d
     253 9180 0117 LDS	R24,a
     255 328D      CPI	R24,0x2D
     256 F009      BEQ	0x0258
     257 C046      RJMP	0x029E
(0173) 	   	  {jiaodu=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
     258 9120 0119 LDS	R18,c
     25A 2733      CLR	R19
     25B EE08      LDI	R16,0xE8
     25C E013      LDI	R17,3
     25D 940E 076C CALL	empy16s
     25F 01C8      MOVW	R24,R16
     260 5880      SUBI	R24,0x80
     261 4B9B      SBCI	R25,0xBB
     262 9120 0118 LDS	R18,b
     264 2733      CLR	R19
     265 E100      LDI	R16,0x10
     266 E217      LDI	R17,0x27
     267 940E 076C CALL	empy16s
     269 01F8      MOVW	R30,R16
     26A 50E0      SUBI	R30,0
     26B 45F3      SBCI	R31,0x53
     26C 0FE8      ADD	R30,R24
     26D 1FF9      ADC	R31,R25
     26E 9020 011A LDS	R2,d
     270 E684      LDI	R24,0x64
     271 9D82      MUL	R24,R2
     272 01C0      MOVW	R24,R0
     273 5C80      SUBI	R24,0xC0
     274 4192      SBCI	R25,0x12
     275 0FE8      ADD	R30,R24
     276 1FF9      ADC	R31,R25
     277 9020 011B LDS	R2,e
     279 E08A      LDI	R24,0xA
     27A 9D82      MUL	R24,R2
     27B 01C0      MOVW	R24,R0
     27C 5E80      SUBI	R24,0xE0
     27D 4091      SBCI	R25,1
     27E 0FE8      ADD	R30,R24
     27F 1FF9      ADC	R31,R25
     280 9180 011C LDS	R24,f
     282 2799      CLR	R25
     283 97C0      SBIW	R24,0x30
     284 0FE8      ADD	R30,R24
     285 1FF9      ADC	R31,R25
     286 01CF      MOVW	R24,R30
     287 9580      COM	R24
     288 9590      COM	R25
     289 5F8F      SUBI	R24,0xFF
     28A 4F9F      SBCI	R25,0xFF
     28B 011C      MOVW	R2,R24
     28C 2444      CLR	R4
     28D FC37      SBRC	R3,7
     28E 9440      COM	R4
     28F 2455      CLR	R5
     290 FC47      SBRC	R4,7
     291 9450      COM	R5
     292 9230 011E STS	jiaodu+1,R3
     294 9220 011D STS	jiaodu,R2
     296 9250 0120 STS	jiaodu+3,R5
     298 9240 011F STS	jiaodu+2,R4
(0174) 		   all=0;return;}
     29A 2422      CLR	R2
     29B 9220 0116 STS	all,R2
     29D C119      RJMP	0x03B7
(0175) 	   if (a!=0) {all=0;return;}
     29E 9020 0117 LDS	R2,a
     2A0 2022      TST	R2
     2A1 F409      BNE	0x02A3
     2A2 C114      RJMP	0x03B7
     2A3 2422      CLR	R2
     2A4 9220 0116 STS	all,R2
     2A6 C110      RJMP	0x03B7
(0176) 	     //PORTF=jiaodu;//while(1);
(0177) 	}
(0178)  else if (all==LINE)
     2A7 9180 0116 LDS	R24,all
     2A9 3082      CPI	R24,2
     2AA F009      BEQ	0x02AC
     2AB C0B9      RJMP	0x0365
(0179)  	{
(0180) 	   a=b;
     2AC 9020 0118 LDS	R2,b
     2AE 9220 0117 STS	a,R2
(0181) 	   b=c;
     2B0 9020 0119 LDS	R2,c
     2B2 9220 0118 STS	b,R2
(0182) 	   c=d;
     2B4 9020 011A LDS	R2,d
     2B6 9220 0119 STS	c,R2
(0183) 	   d=e;
     2B8 9020 011B LDS	R2,e
     2BA 9220 011A STS	d,R2
(0184) 	   e=f;
     2BC 9020 011C LDS	R2,f
     2BE 9220 011B STS	e,R2
(0185) 	   f=UDR1;
     2C0 9020 009C LDS	R2,0x009C
     2C2 9220 011C STS	f,R2
(0186) 	   if ((f<'0')||(f>'9'))return;
     2C4 2D82      MOV	R24,R2
     2C5 3380      CPI	R24,0x30
     2C6 F018      BCS	0x02CA
     2C7 E389      LDI	R24,0x39
     2C8 1582      CP	R24,R2
     2C9 F408      BCC	0x02CB
     2CA C0EC      RJMP	0x03B7
(0187) 	   if (a=='+')
     2CB 9180 0117 LDS	R24,a
     2CD 328B      CPI	R24,0x2B
     2CE F009      BEQ	0x02D0
     2CF C041      RJMP	0x0311
(0188) 	   	  {juli=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
     2D0 9120 0119 LDS	R18,c
     2D2 2733      CLR	R19
     2D3 EE08      LDI	R16,0xE8
     2D4 E013      LDI	R17,3
     2D5 940E 076C CALL	empy16s
     2D7 01C8      MOVW	R24,R16
     2D8 5880      SUBI	R24,0x80
     2D9 4B9B      SBCI	R25,0xBB
     2DA 9120 0118 LDS	R18,b
     2DC 2733      CLR	R19
     2DD E100      LDI	R16,0x10
     2DE E217      LDI	R17,0x27
     2DF 940E 076C CALL	empy16s
     2E1 01F8      MOVW	R30,R16
     2E2 50E0      SUBI	R30,0
     2E3 45F3      SBCI	R31,0x53
     2E4 0FE8      ADD	R30,R24
     2E5 1FF9      ADC	R31,R25
     2E6 9020 011A LDS	R2,d
     2E8 E684      LDI	R24,0x64
     2E9 9D82      MUL	R24,R2
     2EA 01C0      MOVW	R24,R0
     2EB 5C80      SUBI	R24,0xC0
     2EC 4192      SBCI	R25,0x12
     2ED 0FE8      ADD	R30,R24
     2EE 1FF9      ADC	R31,R25
     2EF 9020 011B LDS	R2,e
     2F1 E08A      LDI	R24,0xA
     2F2 9D82      MUL	R24,R2
     2F3 01C0      MOVW	R24,R0
     2F4 5E80      SUBI	R24,0xE0
     2F5 4091      SBCI	R25,1
     2F6 0FE8      ADD	R30,R24
     2F7 1FF9      ADC	R31,R25
     2F8 9180 011C LDS	R24,f
     2FA 2799      CLR	R25
     2FB 97C0      SBIW	R24,0x30
     2FC 0FE8      ADD	R30,R24
     2FD 1FF9      ADC	R31,R25
     2FE 011F      MOVW	R2,R30
     2FF 2444      CLR	R4
     300 FC37      SBRC	R3,7
     301 9440      COM	R4
     302 2455      CLR	R5
     303 FC47      SBRC	R4,7
     304 9450      COM	R5
     305 9230 0122 STS	juli+1,R3
     307 9220 0121 STS	juli,R2
     309 9250 0124 STS	juli+3,R5
     30B 9240 0123 STS	juli+2,R4
(0189) 		   all=0;return;}
     30D 2422      CLR	R2
     30E 9220 0116 STS	all,R2
     310 C0A6      RJMP	0x03B7
(0190) 	   else if (a=='-')
     311 9180 0117 LDS	R24,a
     313 328D      CPI	R24,0x2D
     314 F009      BEQ	0x0316
     315 C046      RJMP	0x035C
(0191) 	   	  {juli=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
     316 9120 0119 LDS	R18,c
     318 2733      CLR	R19
     319 EE08      LDI	R16,0xE8
     31A E013      LDI	R17,3
     31B 940E 076C CALL	empy16s
     31D 01C8      MOVW	R24,R16
     31E 5880      SUBI	R24,0x80
     31F 4B9B      SBCI	R25,0xBB
     320 9120 0118 LDS	R18,b
     322 2733      CLR	R19
     323 E100      LDI	R16,0x10
     324 E217      LDI	R17,0x27
     325 940E 076C CALL	empy16s
     327 01F8      MOVW	R30,R16
     328 50E0      SUBI	R30,0
     329 45F3      SBCI	R31,0x53
     32A 0FE8      ADD	R30,R24
     32B 1FF9      ADC	R31,R25
     32C 9020 011A LDS	R2,d
     32E E684      LDI	R24,0x64
     32F 9D82      MUL	R24,R2
     330 01C0      MOVW	R24,R0
     331 5C80      SUBI	R24,0xC0
     332 4192      SBCI	R25,0x12
     333 0FE8      ADD	R30,R24
     334 1FF9      ADC	R31,R25
     335 9020 011B LDS	R2,e
     337 E08A      LDI	R24,0xA
     338 9D82      MUL	R24,R2
     339 01C0      MOVW	R24,R0
     33A 5E80      SUBI	R24,0xE0
     33B 4091      SBCI	R25,1
     33C 0FE8      ADD	R30,R24
     33D 1FF9      ADC	R31,R25
     33E 9180 011C LDS	R24,f
     340 2799      CLR	R25
     341 97C0      SBIW	R24,0x30
     342 0FE8      ADD	R30,R24
     343 1FF9      ADC	R31,R25
     344 01CF      MOVW	R24,R30
     345 9580      COM	R24
     346 9590      COM	R25
     347 5F8F      SUBI	R24,0xFF
     348 4F9F      SBCI	R25,0xFF
     349 011C      MOVW	R2,R24
     34A 2444      CLR	R4
     34B FC37      SBRC	R3,7
     34C 9440      COM	R4
     34D 2455      CLR	R5
     34E FC47      SBRC	R4,7
     34F 9450      COM	R5
     350 9230 0122 STS	juli+1,R3
     352 9220 0121 STS	juli,R2
     354 9250 0124 STS	juli+3,R5
     356 9240 0123 STS	juli+2,R4
(0192) 		   all=0;return;}
     358 2422      CLR	R2
     359 9220 0116 STS	all,R2
     35B C05B      RJMP	0x03B7
(0193) 	   if (a!=0) {all=0;return;}
     35C 9020 0117 LDS	R2,a
     35E 2022      TST	R2
     35F F409      BNE	0x0361
     360 C056      RJMP	0x03B7
     361 2422      CLR	R2
     362 9220 0116 STS	all,R2
     364 C052      RJMP	0x03B7
(0194) 	   //PORTF=a;
(0195) 	}
(0196)  else   if (all==0)//(johu!=3)&&(johu!=5)  //5:7-bit    3:8-bit
     365 9020 0116 LDS	R2,all
     367 2022      TST	R2
     368 F009      BEQ	0x036A
     369 C04D      RJMP	0x03B7
(0197)       {
(0198) 	   a=b;
     36A 9020 0118 LDS	R2,b
     36C 9220 0117 STS	a,R2
(0199) 	   b=c;
     36E 9020 0119 LDS	R2,c
     370 9220 0118 STS	b,R2
(0200) 	   c=d;
     372 9020 011A LDS	R2,d
     374 9220 0119 STS	c,R2
(0201) 	   d=UDR1;
     376 9020 009C LDS	R2,0x009C
     378 9220 011A STS	d,R2
(0202) 	   if ((a=='c')&&(b=='i')&&(c=='r'))
     37A 9180 0117 LDS	R24,a
     37C 3683      CPI	R24,0x63

⌨️ 快捷键说明

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