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

📄 pro.lst

📁 数控电压源程序数控电压源程序数控电压源程序数控电压源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
    038D 9D82      MUL	R24,R2
    038E 01F0      MOVW	R30,R0
    038F EE85      LDI	R24,0xE5
    0390 E090      LDI	R25,0
    0391 0FE8      ADD	R30,R24
    0392 1FF9      ADC	R31,R25
    0393 8351      STD	Z+1,R21
    0394 8340      STD	Z+0,R20
    0395 C061      RJMP	0x03F7
(0202) 
(0203)        case 4:temp=4;SET_VALUE[cn]=temp;break;
    0396 E044      LDI	R20,4
    0397 E050      LDI	R21,0
    0398 90200087  LDS	R2,cn
    039A E082      LDI	R24,2
    039B 9D82      MUL	R24,R2
    039C 01F0      MOVW	R30,R0
    039D EE85      LDI	R24,0xE5
    039E E090      LDI	R25,0
    039F 0FE8      ADD	R30,R24
    03A0 1FF9      ADC	R31,R25
    03A1 8351      STD	Z+1,R21
    03A2 8340      STD	Z+0,R20
    03A3 C053      RJMP	0x03F7
(0204) 
(0205)        case 5:temp=5;SET_VALUE[cn]=temp;break;
    03A4 E045      LDI	R20,5
    03A5 E050      LDI	R21,0
    03A6 90200087  LDS	R2,cn
    03A8 E082      LDI	R24,2
    03A9 9D82      MUL	R24,R2
    03AA 01F0      MOVW	R30,R0
    03AB EE85      LDI	R24,0xE5
    03AC E090      LDI	R25,0
    03AD 0FE8      ADD	R30,R24
    03AE 1FF9      ADC	R31,R25
    03AF 8351      STD	Z+1,R21
    03B0 8340      STD	Z+0,R20
    03B1 C045      RJMP	0x03F7
(0206) 
(0207)        case 6:temp=6;SET_VALUE[cn]=temp;break;
    03B2 E046      LDI	R20,6
    03B3 E050      LDI	R21,0
    03B4 90200087  LDS	R2,cn
    03B6 E082      LDI	R24,2
    03B7 9D82      MUL	R24,R2
    03B8 01F0      MOVW	R30,R0
    03B9 EE85      LDI	R24,0xE5
    03BA E090      LDI	R25,0
    03BB 0FE8      ADD	R30,R24
    03BC 1FF9      ADC	R31,R25
    03BD 8351      STD	Z+1,R21
    03BE 8340      STD	Z+0,R20
    03BF C037      RJMP	0x03F7
(0208) 
(0209)        case 7:temp=7;SET_VALUE[cn]=temp;break;
    03C0 E047      LDI	R20,7
    03C1 E050      LDI	R21,0
    03C2 90200087  LDS	R2,cn
    03C4 E082      LDI	R24,2
    03C5 9D82      MUL	R24,R2
    03C6 01F0      MOVW	R30,R0
    03C7 EE85      LDI	R24,0xE5
    03C8 E090      LDI	R25,0
    03C9 0FE8      ADD	R30,R24
    03CA 1FF9      ADC	R31,R25
    03CB 8351      STD	Z+1,R21
    03CC 8340      STD	Z+0,R20
    03CD C029      RJMP	0x03F7
(0210) 
(0211)        case 8:temp=8;SET_VALUE[cn]=temp;break;
    03CE E048      LDI	R20,0x8
    03CF E050      LDI	R21,0
    03D0 90200087  LDS	R2,cn
    03D2 E082      LDI	R24,2
    03D3 9D82      MUL	R24,R2
    03D4 01F0      MOVW	R30,R0
    03D5 EE85      LDI	R24,0xE5
    03D6 E090      LDI	R25,0
    03D7 0FE8      ADD	R30,R24
    03D8 1FF9      ADC	R31,R25
    03D9 8351      STD	Z+1,R21
    03DA 8340      STD	Z+0,R20
    03DB C01B      RJMP	0x03F7
(0212) 
(0213)        case 9:temp=9;SET_VALUE[cn]=temp;break;
    03DC E049      LDI	R20,0x9
    03DD E050      LDI	R21,0
    03DE 90200087  LDS	R2,cn
    03E0 E082      LDI	R24,2
    03E1 9D82      MUL	R24,R2
    03E2 01F0      MOVW	R30,R0
    03E3 EE85      LDI	R24,0xE5
    03E4 E090      LDI	R25,0
    03E5 0FE8      ADD	R30,R24
    03E6 1FF9      ADC	R31,R25
    03E7 8351      STD	Z+1,R21
    03E8 8340      STD	Z+0,R20
    03E9 C00D      RJMP	0x03F7
(0214) 	 
(0215)        case 13:temp=0x2e;SET_VALUE[cn]=temp;break;
    03EA E24E      LDI	R20,0x2E
    03EB E050      LDI	R21,0
    03EC 90200087  LDS	R2,cn
    03EE E082      LDI	R24,2
    03EF 9D82      MUL	R24,R2
    03F0 01F0      MOVW	R30,R0
    03F1 EE85      LDI	R24,0xE5
    03F2 E090      LDI	R25,0
    03F3 0FE8      ADD	R30,R24
    03F4 1FF9      ADC	R31,R25
    03F5 8351      STD	Z+1,R21
    03F6 8340      STD	Z+0,R20
(0216) 	    
(0217) 
(0218)      }
(0219) 	
(0220) 	  if((cn==2)&&(SET_VALUE[2]!=0x2e))
    03F7 91800087  LDS	R24,cn
    03F9 3082      CPI	R24,2
    03FA F491      BNE	0x040D
    03FB 918000E9  LDS	R24,0xE9
    03FD 919000EA  LDS	R25,0xEA
    03FF 328E      CPI	R24,0x2E
    0400 E0E0      LDI	R30,0
    0401 079E      CPC	R25,R30
    0402 F051      BEQ	0x040D
(0221) 	  {
(0222) 	  Write_Position(1,5); 
    0403 E025      LDI	R18,5
    0404 E030      LDI	R19,0
    0405 E001      LDI	R16,1
    0406 E010      LDI	R17,0
    0407 940E074E  CALL	_Write_Position
(0223) 	  Write_String(error);
    0409 EB02      LDI	R16,0xB2
    040A E010      LDI	R17,0
    040B 940E0768  CALL	_Write_String
(0224) 	  } 
(0225) 	 Set_Value=10*SET_VALUE[1]+SET_VALUE[3];
    040D 912000E7  LDS	R18,SET_VALUE+2
    040F 913000E8  LDS	R19,SET_VALUE+3
    0411 E00A      LDI	R16,0xA
    0412 E010      LDI	R17,0
    0413 940E086D  CALL	empy16s
    0415 0118      MOVW	R2,R16
    0416 904000EB  LDS	R4,0xEB
    0418 905000EC  LDS	R5,0xEC
    041A 0C24      ADD	R2,R4
    041B 1C35      ADC	R3,R5
    041C 92300077  STS	Set_Value+1,R3
    041E 92200076  STS	Set_Value,R2
(0226) 	 Display_VOL();
    0420 DD4B      RCALL	_Display_VOL
(0227)    }
(0228)   
(0229)    if(cn == 3)//输入预定电压值完毕
    0421 91800087  LDS	R24,cn
    0423 3083      CPI	R24,3
    0424 F459      BNE	0x0430
(0230)    {
(0231)      
(0232)      if(KeyScan()==14)//等待ENTER键按下
    0425 DE0A      RCALL	_KeyScan
    0426 300E      CPI	R16,0xE
    0427 E0E0      LDI	R30,0
    0428 071E      CPC	R17,R30
    0429 F431      BNE	0x0430
(0233) 	 {
(0234) 	  cn=0;
    042A 2422      CLR	R2
    042B 92200087  STS	cn,R2
(0235) 	  ENTER=1;
    042D E081      LDI	R24,1
    042E 93800085  STS	ENTER,R24
(0236) 	 }
(0237)    }
(0238)      
(0239)    if(KeyScan()==11)
    0430 DDFF      RCALL	_KeyScan
    0431 300B      CPI	R16,0xB
    0432 E0E0      LDI	R30,0
    0433 071E      CPC	R17,R30
    0434 F419      BNE	0x0438
(0240) 	{
(0241) 	  ahead_flag=1;
    0435 E081      LDI	R24,1
    0436 93800083  STS	ahead_flag,R24
(0242) 	}
(0243) 	if(KeyScan()==10) 
    0438 DDF7      RCALL	_KeyScan
    0439 300A      CPI	R16,0xA
    043A E0E0      LDI	R30,0
    043B 071E      CPC	R17,R30
    043C F419      BNE	0x0440
(0244) 	{ 
(0245) 	 back_flag=1;
    043D E081      LDI	R24,1
    043E 93800084  STS	back_flag,R24
(0246) 	}
(0247)      if(KeyScan()== 12)
    0440 DDEF      RCALL	_KeyScan
    0441 300C      CPI	R16,0xC
    0442 E0E0      LDI	R30,0
    0443 071E      CPC	R17,R30
    0444 F419      BNE	0x0448
(0248) 	 {    
(0249) 	  clear_flag=1;
    0445 E081      LDI	R24,1
    0446 93800082  STS	clear_flag,R24
(0250) 	 }   
    0448 940E08AD  CALL	pop_gset2
    044A 9508      RET
_signal_function:
  i                    --> R20
    044B 940E08BE  CALL	push_gset1
(0251)  
(0252)  
(0253)     
(0254) } 
(0255) 
(0256) static uchar auto_flag=0;
(0257) void signal_function(void)
(0258) {
(0259)   switch(auto_flag)
    044D 914000B8  LDS	R20,auto_flag
    044F 2755      CLR	R21
    0450 3040      CPI	R20,0
    0451 0745      CPC	R20,R21
    0452 F0A1      BEQ	0x0467
    0453 3041      CPI	R20,1
    0454 E0E0      LDI	R30,0
    0455 075E      CPC	R21,R30
    0456 F121      BEQ	0x047B
    0457 3042      CPI	R20,2
    0458 E0E0      LDI	R30,0
    0459 075E      CPC	R21,R30
    045A F409      BNE	0x045C
    045B C046      RJMP	0x04A2
    045C 3043      CPI	R20,3
    045D E0E0      LDI	R30,0
    045E 075E      CPC	R21,R30
    045F F409      BNE	0x0461
    0460 C06C      RJMP	0x04CD
    0461 3044      CPI	R20,4
    0462 E0E0      LDI	R30,0
    0463 075E      CPC	R21,R30
    0464 F409      BNE	0x0466
    0465 C08B      RJMP	0x04F1
    0466 C0AE      RJMP	0x0515
(0260)   {
(0261)   case 0:Write_Position(1,12);
    0467 E02C      LDI	R18,0xC
    0468 E030      LDI	R19,0
    0469 E001      LDI	R16,1
    046A E010      LDI	R17,0
    046B 940E074E  CALL	_Write_Position
(0262)          Write_String("off");
    046D EC0D      LDI	R16,0xCD
    046E E010      LDI	R17,0
    046F 940E0768  CALL	_Write_String
(0263) 		 if(KeyScan()==15)  
    0471 DDBE      RCALL	_KeyScan
    0472 300F      CPI	R16,0xF
    0473 E0E0      LDI	R30,0
    0474 071E      CPC	R17,R30
    0475 F009      BEQ	0x0477
    0476 C09E      RJMP	0x0515
(0264)           auto_flag=1; 
    0477 E081      LDI	R24,1
    0478 938000B8  STS	auto_flag,R24
(0265)          break;
    047A C09A      RJMP	0x0515
(0266)   case 1:
(0267)          Write_Position(1,12);
    047B E02C      LDI	R18,0xC
    047C E030      LDI	R19,0
    047D E001      LDI	R16,1
    047E E010      LDI	R17,0
    047F 940E074E  CALL	_Write_Position
(0268)          Write_String("+  ");
    0481 EC09      LDI	R16,0xC9
    0482 E010      LDI	R17,0
    0483 940E0768  CALL	_Write_String
(0269)          if(Set_Value<99)
    0485 91800076  LDS	R24,Set_Value
    0487 91900077  LDS	R25,Set_Value+1
    0489 3683      CPI	R24,0x63
    048A E0E0      LDI	R30,0
    048B 079E      CPC	R25,R30
    048C F440      BCC	0x0495
(0270)          {
(0271)           Set_Value++;
    048D 9601      ADIW	R24,1
    048E 93900077  STS	Set_Value+1,R25
    0490 93800076  STS	Set_Value,R24
(0272)           DAC_DATA=Set_Value;
    0492 BB88      OUT	0x18,R24
(0273) 		  control();
    0493 D10E      RCALL	_control
(0274)          }
    0494 C003      RJMP	0x0498
(0275) 		 else
(0276) 		   auto_flag=2;
    0495 E082      LDI	R24,2
    0496 938000B8  STS	auto_flag,R24
(0277) 		 if(KeyScan()==15)
    0498 DD97      RCALL	_KeyScan
    0499 300F      CPI	R16,0xF
    049A E0E0      LDI	R30,0
    049B 071E      CPC	R17,R30
    049C F009      BEQ	0x049E
    049D C077      RJMP	0x0515
(0278)           auto_flag=2;
    049E E082      LDI	R24,2
    049F 938000B8  STS	auto_flag,R24
(0279)           break;
    04A1 C073      RJMP	0x0515
(0280)   case 2:
(0281)        Write_Position(1,12);
    04A2 E02C      LDI	R18,0xC
    04A3 E030      LDI	R19,0
    04A4 E001      LDI	R16,1
    04A5 E010      LDI	R17,0
    04A6 940E074E  CALL	_Write_Position
(0282)        Write_String("-  ");
    04A8 EC05      LDI	R16,0xC5
    04A9 E010      LDI	R17,0
    04AA 940E0768  CALL	_Write_String
(0283)         if(Set_Value>0)
    04AC 90200076  LDS	R2,Set_Value
    04AE 90300077  LDS	R3,Set_Value+1
    04B0 2022      TST	R2
    04B1 F411      BNE	0x04B4
    04B2 2033      TST	R3
    04B3 F061      BEQ	0x04C0
(0284)         {
(0285)          Set_Value--;
    04B4 91800076  LDS	R24,Set_Value
    04B6 91900077  LDS	R25,Set_Value+1
    04B8 9701      SBIW	R24,1
    04B9 93900077  STS	Set_Value+1,R25
    04BB 93800076  STS	Set_Value,R24
(0286)          DAC_DATA=Set_Value;
    04BD BB88      OUT	0x18,R24
(0287) 		 control();
    04BE D0E3      RCALL	_control
(0288)         }
    04BF C003      RJMP	0x04C3
(0289) 		 else
(0290) 		  auto_flag=1;
    04C0 E081      LDI	R24,1
    04C1 938000B8  STS	auto_flag,R24
(0291) 		 if(KeyScan()==15) 
    04C3 DD6C      RCALL	_KeyScan
    04C4 300F      CPI	R16,0xF
    04C5 E0E0      LDI	R30,0
    04C6 071E      CPC	R17,R30
    04C7 F009      BEQ	0x04C9
    04C8 C04C      RJMP	0x0515
(0292)           auto_flag=3;
    04C9 E083      LDI	R24,3
    04CA 938000B8  STS	auto_flag,R24
(0293)           break;
    04CC C048      RJMP	0x0515
(0294)   case 3:Write_Position(1,12);
    04CD E02C      LDI	R18,0xC
    04CE E030      LDI	R19,0
    04CF E001      LDI	R16,1
    04D0 E010      LDI	R17,0
    04D1 940E074E  CALL	_Write_Position
(0295)          Write_String("squ");
    04D3 EC01      LDI	R16,0xC1
    04D4 E010      LDI	R17,0
    04D5 940E0768  CALL	_Write_String
    04D7 C014      RJMP	0x04EC
(0296) 		 while(auto_flag ==3)
(0297)          {
(0298)           DAC_DATA=0x00;
    04D8 2422      CLR	R2
    04D9 BA28      OUT	0x18,R2
(0299)           delay_nms(50);
    04DA E302      LDI	R16,0x32
    04DB E010      LDI	R17,0
    04DC 940E010B  CALL	_delay_nms
(0300)           DAC_DATA=0xff;
    04DE EF8F      LDI	R24,0xFF
    04DF BB88      OUT	0x18,R24
(0301)           delay_nms(10);
    04E0 E00A      LDI	R16,0xA
    04E1 E010      LDI	R17,0
    04E2 940E010B  CALL	_delay_nms
(0302)           if(KeyScan()==15)
    04E4 DD4B      RCALL	_KeyScan
    04E5 300F      CPI	R16,0xF
    04E6 E0E0      LDI	R30,0
    04E7 071E      CPC	R17,R30
    04E8 F419      BNE	0x04EC
(0303) 	       auto_flag=4;
    04E9 E084      LDI	R24,4
    04EA 938000B8  STS	auto_flag,R24
    04EC 918000B8  LDS	R24,auto_flag
    04EE 3083      CPI	R24,3
    04EF F341      BEQ	0x04D8
(0304)          }
(0305)          break;
    04F0 C024      RJMP	0x0515
(0306)   case 4:
(0307)          Write_Position(1,12);
    04F1 E02C      LDI	R18,0xC
    04F2 E030      LDI	R19,0
    04F3 E001      LDI	R16,1
    04F4 E010      LDI	R17,0
    04F5 940E074E  CALL	_Write_Position
(0308)          Write_String("saw");
    04F7 EB0D      LDI	R16,0xBD
    04F8 E010      LDI	R17,0
    04F9 940E0768  CALL	_Write_String
    04FB C015      RJMP	0x0511
(0309) 		 while(auto_flag == 4)
(0310)          {
(0311)           uint  i=255;
    04FC EF4F      LDI	R20,0xFF
    04FD E050      LDI	R21,0
(0312) 		  
(0313)           for(;i>0;i--)
    04FE C007      RJMP	0x0506
(0314) 		  {
(0315) 		    DAC_DATA=i;
    04FF BB48      OUT	0x18,R20
(0316) 			delay_nus(10);
    0500 E00A      LDI	R16,0xA

⌨️ 快捷键说明

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