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

📄 m64.lst

📁 数字舵机(1) 数字脉宽检测 数字脉宽检测
💻 LST
📖 第 1 页 / 共 5 页
字号:
     1B8 BE2C      OUT	0x3C,R2
(0131)  XMCRA = 0x00; //external memory
     1B9 9220 006D STS	0x006D,R2
(0132)  port_init();
     1BB DEC4      RCALL	_port_init
(0133)  timer2_init(); 
     1BC DED7      RCALL	_timer2_init
(0134) 
(0135) adc_init();uart1_init();
     1BD DFE6      RCALL	_adc_init
     1BE D00C      RCALL	_uart1_init
(0136) 
(0137)  MCUCR = 0x00;
     1BF 2422      CLR	R2
     1C0 BE25      OUT	0x35,R2
(0138)  EICRA = 0x00; //extended ext ints
     1C1 9220 006A STS	0x006A,R2
(0139)  EICRB = 0x00; //extended ext ints
     1C3 BE2A      OUT	0x3A,R2
(0140)  EIMSK = 0x00;
     1C4 BE29      OUT	0x39,R2
(0141)  TIMSK = 0x20; //timer interrupt sources
     1C5 E280      LDI	R24,0x20
     1C6 BF87      OUT	0x37,R24
(0142)  ETIMSK = 0x00; //extended timer interrupt sources
     1C7 9220 007D STS	0x007D,R2
(0143)  SEI(); //re-enable interrupts
     1C9 9478      BSET	7
     1CA 9508      RET
(0144)  //all peripherals are now initialized
(0145) }
(0146) 
(0147) //UART1 initialize
(0148) // desired baud rate:19200
(0149) // actual baud rate:19200 (0.0%)
(0150) // char size: 8 bit
(0151) // parity: Disabled
(0152) void uart1_init(void)
(0153) {
(0154)  UCSR1B = 0x00; //disable while setting baud rate
_uart1_init:
     1CB 2422      CLR	R2
     1CC 9220 009A STS	0x009A,R2
(0155)  UCSR1A = 0x00;
     1CE 9220 009B STS	0x009B,R2
(0156)  UCSR1C = 0x06;
     1D0 E086      LDI	R24,6
     1D1 9380 009D STS	0x009D,R24
(0157)  UBRR1L = 0x23; //set baud rate lo
     1D3 E283      LDI	R24,0x23
     1D4 9380 0099 STS	0x0099,R24
(0158)  UBRR1H = 0x00; //set baud rate hi
     1D6 9220 0098 STS	0x0098,R2
(0159)  UCSR1B = 0x98;
     1D8 E988      LDI	R24,0x98
     1D9 9380 009A STS	0x009A,R24
     1DB 9508      RET
_uart1_rx_isr:
     1DC 920A      ST	R0,-Y
     1DD 921A      ST	R1,-Y
     1DE 922A      ST	R2,-Y
     1DF 923A      ST	R3,-Y
     1E0 924A      ST	R4,-Y
     1E1 925A      ST	R5,-Y
     1E2 930A      ST	R16,-Y
     1E3 931A      ST	R17,-Y
     1E4 932A      ST	R18,-Y
     1E5 933A      ST	R19,-Y
     1E6 938A      ST	R24,-Y
     1E7 939A      ST	R25,-Y
     1E8 93EA      ST	R30,-Y
     1E9 93FA      ST	R31,-Y
     1EA B60F      IN	R0,0x3F
     1EB 920A      ST	R0,-Y
(0160) }
(0161) 
(0162) #pragma interrupt_handler uart1_rx_isr:31
(0163) //cir+00100
(0164) void uart1_rx_isr(void)
(0165) {
(0166)  //uart has received a character in UDR
(0167)  if (all==CIR)
     1EC 9180 0116 LDS	R24,all
     1EE 3081      CPI	R24,1
     1EF F009      BEQ	0x01F1
     1F0 C0B9      RJMP	0x02AA
(0168)  	{
(0169) 	   a=b;
     1F1 9020 0118 LDS	R2,b
     1F3 9220 0117 STS	a,R2
(0170) 	   b=c;
     1F5 9020 0119 LDS	R2,c
     1F7 9220 0118 STS	b,R2
(0171) 	   c=d;
     1F9 9020 011A LDS	R2,d
     1FB 9220 0119 STS	c,R2
(0172) 	   d=e;
     1FD 9020 011B LDS	R2,e
     1FF 9220 011A STS	d,R2
(0173) 	   e=f;
     201 9020 011C LDS	R2,f
     203 9220 011B STS	e,R2
(0174) 	   f=UDR1;
     205 9020 009C LDS	R2,0x009C
     207 9220 011C STS	f,R2
(0175) 	   if ((f<'0')||(f>'9'))return;
     209 2D82      MOV	R24,R2
     20A 3380      CPI	R24,0x30
     20B F018      BCS	0x020F
     20C E389      LDI	R24,0x39
     20D 1582      CP	R24,R2
     20E F408      BCC	0x0210
     20F C1AA      RJMP	0x03BA
(0176) 	   if (a=='+')//0x2b
     210 9180 0117 LDS	R24,a
     212 328B      CPI	R24,0x2B
     213 F009      BEQ	0x0215
     214 C041      RJMP	0x0256
(0177) 	   	  {jiaodu=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
     215 9120 0119 LDS	R18,c
     217 2733      CLR	R19
     218 EE08      LDI	R16,0xE8
     219 E013      LDI	R17,3
     21A 940E 07DB CALL	empy16s
     21C 01C8      MOVW	R24,R16
     21D 5880      SUBI	R24,0x80
     21E 4B9B      SBCI	R25,0xBB
     21F 9120 0118 LDS	R18,b
     221 2733      CLR	R19
     222 E100      LDI	R16,0x10
     223 E217      LDI	R17,0x27
     224 940E 07DB CALL	empy16s
     226 01F8      MOVW	R30,R16
     227 50E0      SUBI	R30,0
     228 45F3      SBCI	R31,0x53
     229 0FE8      ADD	R30,R24
     22A 1FF9      ADC	R31,R25
     22B 9020 011A LDS	R2,d
     22D E684      LDI	R24,0x64
     22E 9D82      MUL	R24,R2
     22F 01C0      MOVW	R24,R0
     230 5C80      SUBI	R24,0xC0
     231 4192      SBCI	R25,0x12
     232 0FE8      ADD	R30,R24
     233 1FF9      ADC	R31,R25
     234 9020 011B LDS	R2,e
     236 E08A      LDI	R24,0xA
     237 9D82      MUL	R24,R2
     238 01C0      MOVW	R24,R0
     239 5E80      SUBI	R24,0xE0
     23A 4091      SBCI	R25,1
     23B 0FE8      ADD	R30,R24
     23C 1FF9      ADC	R31,R25
     23D 9180 011C LDS	R24,f
     23F 2799      CLR	R25
     240 97C0      SBIW	R24,0x30
     241 0FE8      ADD	R30,R24
     242 1FF9      ADC	R31,R25
     243 011F      MOVW	R2,R30
     244 2444      CLR	R4
     245 FC37      SBRC	R3,7
     246 9440      COM	R4
     247 2455      CLR	R5
     248 FC47      SBRC	R4,7
     249 9450      COM	R5
     24A 9230 011E STS	jiaodu+1,R3
     24C 9220 011D STS	jiaodu,R2
     24E 9250 0120 STS	jiaodu+3,R5
     250 9240 011F STS	jiaodu+2,R4
(0178) 		   all=0;return;}
     252 2422      CLR	R2
     253 9220 0116 STS	all,R2
     255 C164      RJMP	0x03BA
(0179) 	   else if (a=='-')//0x2d
     256 9180 0117 LDS	R24,a
     258 328D      CPI	R24,0x2D
     259 F009      BEQ	0x025B
     25A C046      RJMP	0x02A1
(0180) 	   	  {jiaodu=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
     25B 9120 0119 LDS	R18,c
     25D 2733      CLR	R19
     25E EE08      LDI	R16,0xE8
     25F E013      LDI	R17,3
     260 940E 07DB CALL	empy16s
     262 01C8      MOVW	R24,R16
     263 5880      SUBI	R24,0x80
     264 4B9B      SBCI	R25,0xBB
     265 9120 0118 LDS	R18,b
     267 2733      CLR	R19
     268 E100      LDI	R16,0x10
     269 E217      LDI	R17,0x27
     26A 940E 07DB CALL	empy16s
     26C 01F8      MOVW	R30,R16
     26D 50E0      SUBI	R30,0
     26E 45F3      SBCI	R31,0x53
     26F 0FE8      ADD	R30,R24
     270 1FF9      ADC	R31,R25
     271 9020 011A LDS	R2,d
     273 E684      LDI	R24,0x64
     274 9D82      MUL	R24,R2
     275 01C0      MOVW	R24,R0
     276 5C80      SUBI	R24,0xC0
     277 4192      SBCI	R25,0x12
     278 0FE8      ADD	R30,R24
     279 1FF9      ADC	R31,R25
     27A 9020 011B LDS	R2,e
     27C E08A      LDI	R24,0xA
     27D 9D82      MUL	R24,R2
     27E 01C0      MOVW	R24,R0
     27F 5E80      SUBI	R24,0xE0
     280 4091      SBCI	R25,1
     281 0FE8      ADD	R30,R24
     282 1FF9      ADC	R31,R25
     283 9180 011C LDS	R24,f
     285 2799      CLR	R25
     286 97C0      SBIW	R24,0x30
     287 0FE8      ADD	R30,R24
     288 1FF9      ADC	R31,R25
     289 01CF      MOVW	R24,R30
     28A 9580      COM	R24
     28B 9590      COM	R25
     28C 5F8F      SUBI	R24,0xFF
     28D 4F9F      SBCI	R25,0xFF
     28E 011C      MOVW	R2,R24
     28F 2444      CLR	R4
     290 FC37      SBRC	R3,7
     291 9440      COM	R4
     292 2455      CLR	R5
     293 FC47      SBRC	R4,7
     294 9450      COM	R5
     295 9230 011E STS	jiaodu+1,R3
     297 9220 011D STS	jiaodu,R2
     299 9250 0120 STS	jiaodu+3,R5
     29B 9240 011F STS	jiaodu+2,R4
(0181) 		   all=0;return;}
     29D 2422      CLR	R2
     29E 9220 0116 STS	all,R2
     2A0 C119      RJMP	0x03BA
(0182) 	   if (a!=0) {all=0;return;}
     2A1 9020 0117 LDS	R2,a
     2A3 2022      TST	R2
     2A4 F409      BNE	0x02A6
     2A5 C114      RJMP	0x03BA
     2A6 2422      CLR	R2
     2A7 9220 0116 STS	all,R2
     2A9 C110      RJMP	0x03BA
(0183) 	     //PORTF=jiaodu;//while(1);
(0184) 	}
(0185)  else if (all==LINE)
     2AA 9180 0116 LDS	R24,all
     2AC 3082      CPI	R24,2
     2AD F009      BEQ	0x02AF
     2AE C0B9      RJMP	0x0368
(0186)  	{
(0187) 	   a=b;
     2AF 9020 0118 LDS	R2,b
     2B1 9220 0117 STS	a,R2
(0188) 	   b=c;
     2B3 9020 0119 LDS	R2,c
     2B5 9220 0118 STS	b,R2
(0189) 	   c=d;
     2B7 9020 011A LDS	R2,d
     2B9 9220 0119 STS	c,R2
(0190) 	   d=e;
     2BB 9020 011B LDS	R2,e
     2BD 9220 011A STS	d,R2
(0191) 	   e=f;
     2BF 9020 011C LDS	R2,f
     2C1 9220 011B STS	e,R2
(0192) 	   f=UDR1;
     2C3 9020 009C LDS	R2,0x009C
     2C5 9220 011C STS	f,R2
(0193) 	   if ((f<'0')||(f>'9'))return;
     2C7 2D82      MOV	R24,R2
     2C8 3380      CPI	R24,0x30
     2C9 F018      BCS	0x02CD
     2CA E389      LDI	R24,0x39
     2CB 1582      CP	R24,R2
     2CC F408      BCC	0x02CE
     2CD C0EC      RJMP	0x03BA
(0194) 	   if (a=='+')
     2CE 9180 0117 LDS	R24,a
     2D0 328B      CPI	R24,0x2B
     2D1 F009      BEQ	0x02D3
     2D2 C041      RJMP	0x0314
(0195) 	   	  {juli=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
     2D3 9120 0119 LDS	R18,c
     2D5 2733      CLR	R19
     2D6 EE08      LDI	R16,0xE8
     2D7 E013      LDI	R17,3
     2D8 940E 07DB CALL	empy16s
     2DA 01C8      MOVW	R24,R16
     2DB 5880      SUBI	R24,0x80
     2DC 4B9B      SBCI	R25,0xBB
     2DD 9120 0118 LDS	R18,b
     2DF 2733      CLR	R19
     2E0 E100      LDI	R16,0x10
     2E1 E217      LDI	R17,0x27
     2E2 940E 07DB CALL	empy16s
     2E4 01F8      MOVW	R30,R16
     2E5 50E0      SUBI	R30,0
     2E6 45F3      SBCI	R31,0x53
     2E7 0FE8      ADD	R30,R24
     2E8 1FF9      ADC	R31,R25
     2E9 9020 011A LDS	R2,d
     2EB E684      LDI	R24,0x64
     2EC 9D82      MUL	R24,R2
     2ED 01C0      MOVW	R24,R0
     2EE 5C80      SUBI	R24,0xC0
     2EF 4192      SBCI	R25,0x12
     2F0 0FE8      ADD	R30,R24
     2F1 1FF9      ADC	R31,R25
     2F2 9020 011B LDS	R2,e
     2F4 E08A      LDI	R24,0xA
     2F5 9D82      MUL	R24,R2
     2F6 01C0      MOVW	R24,R0
     2F7 5E80      SUBI	R24,0xE0
     2F8 4091      SBCI	R25,1
     2F9 0FE8      ADD	R30,R24
     2FA 1FF9      ADC	R31,R25
     2FB 9180 011C LDS	R24,f
     2FD 2799      CLR	R25
     2FE 97C0      SBIW	R24,0x30
     2FF 0FE8      ADD	R30,R24
     300 1FF9      ADC	R31,R25
     301 011F      MOVW	R2,R30
     302 2444      CLR	R4
     303 FC37      SBRC	R3,7
     304 9440      COM	R4
     305 2455      CLR	R5
     306 FC47      SBRC	R4,7
     307 9450      COM	R5
     308 9230 0122 STS	juli+1,R3
     30A 9220 0121 STS	juli,R2
     30C 9250 0124 STS	juli+3,R5
     30E 9240 0123 STS	juli+2,R4
(0196) 		   all=0;return;}
     310 2422      CLR	R2
     311 9220 0116 STS	all,R2
     313 C0A6      RJMP	0x03BA
(0197) 	   else if (a=='-')
     314 9180 0117 LDS	R24,a
     316 328D      CPI	R24,0x2D
     317 F009      BEQ	0x0319
     318 C046      RJMP	0x035F
(0198) 	   	  {juli=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
     319 9120 0119 LDS	R18,c
     31B 2733      CLR	R19
     31C EE08      LDI	R16,0xE8
     31D E013      LDI	R17,3
     31E 940E 07DB CALL	empy16s
     320 01C8      MOVW	R24,R16
     321 5880      SUBI	R24,0x80
     322 4B9B      SBCI	R25,0xBB
     323 9120 0118 LDS	R18,b
     325 2733      CLR	R19
     326 E100      LDI	R16,0x10
     327 E217      LDI	R17,0x27
     328 940E 07DB CALL	empy16s
     32A 01F8      MOVW	R30,R16
     32B 50E0      SUBI	R30,0
     32C 45F3      SBCI	R31,0x53
     32D 0FE8      ADD	R30,R24
     32E 1FF9      ADC	R31,R25
     32F 9020 011A LDS	R2,d
     331 E684      LDI	R24,0x64
     332 9D82      MUL	R24,R2
     333 01C0      MOVW	R24,R0
     334 5C80      SUBI	R24,0xC0
     335 4192      SBCI	R25,0x12
     336 0FE8      ADD	R30,R24
     337 1FF9      ADC	R31,R25
     338 9020 011B LDS	R2,e
     33A E08A      LDI	R24,0xA
     33B 9D82      MUL	R24,R2
     33C 01C0      MOVW	R24,R0
     33D 5E80      SUBI	R24,0xE0
     33E 4091      SBCI	R25,1
     33F 0FE8      ADD	R30,R24
     340 1FF9      ADC	R31,R25
     341 9180 011C LDS	R24,f
     343 2799      CLR	R25
     344 97C0      SBIW	R24,0x30
     345 0FE8      ADD	R30,R24
     346 1FF9      ADC	R31,R25
     347 01CF      MOVW	R24,R30
     348 9580      COM	R24
     349 9590      COM	R25
     34A 5F8F      SUBI	R24,0xFF
     34B 4F9F      SBCI	R25,0xFF
     34C 011C      MOVW	R2,R24
     34D 2444      CLR	R4
     34E FC37      SBRC	R3,7
     34F 9440      COM	R4
     350 2455      CLR	R5
     351 FC47      SBRC	R4,7
     352 9450      COM	R5
     353 9230 0122 STS	juli+1,R3
     355 9220 0121 STS	juli,R2
     357 9250 0124 STS	juli+3,R5
     359 9240 0123 STS	juli+2,R4
(0199) 		   all=0;return;}
     35B 2422      CLR	R2
     35C 9220 0116 STS	all,R2
     35E C05B      RJMP	0x03BA
(0200) 	   if (a!=0) {all=0;return;}
     35F 9020 0117 LDS	R2,a
     361 2022      TST	R2
     362 F409      BNE	0x0364
     363 C056      RJMP	0x03BA
     364 2422      CLR	R2
     365 9220 0116 STS	all,R2
     367 C052      RJMP	0x03BA
(0201) 	   //PORTF=a;
(0202) 	}

⌨️ 快捷键说明

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