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

📄 m128_alky_touch_con1.lst

📁 m8做的电压检测
💻 LST
📖 第 1 页 / 共 5 页
字号:
    6385 9009      LD	R0,Y+
    6386 9518      RETI
(0669) }
(0670) 
(0671) //******************************************
(0672) //******************************************
(0673) //TIMER3 initialize - prescale:1024
(0674) // WGM: 14) PWM fast, TOP=ICRn
(0675) // desired value: 10Sec
(0676) // actual value: 10.000Sec (0.0%)
(0677) void timer3_init(void)
(0678) {
(0679)  TCCR3B = 0x00; //stop
_timer3_init:
    6387 2422      CLR	R2
    6388 9220 008A STS	0x008A,R2
(0680)  TCNT3H = 0x67; //setup
    638A E687      LDI	R24,0x67
    638B 9380 0089 STS	0x0089,R24
(0681)  TCNT3L = 0x6B;
    638D E68B      LDI	R24,0x6B
    638E 9380 0088 STS	0x0088,R24
(0682)  OCR3AH = 0x98;
    6390 E988      LDI	R24,0x98
    6391 9380 0087 STS	0x0087,R24
(0683)  OCR3AL = 0x95;
    6393 E985      LDI	R24,0x95
    6394 9380 0086 STS	0x0086,R24
(0684)  OCR3BH = 0x98;
    6396 E988      LDI	R24,0x98
    6397 9380 0085 STS	0x0085,R24
(0685)  OCR3BL = 0x95;
    6399 E985      LDI	R24,0x95
    639A 9380 0084 STS	0x0084,R24
(0686)  OCR3CH = 0x98;
    639C E988      LDI	R24,0x98
    639D 9380 0083 STS	0x0083,R24
(0687)  OCR3CL = 0x95;
    639F E985      LDI	R24,0x95
    63A0 9380 0082 STS	0x0082,R24
(0688)  ICR3H  = 0x98;
    63A2 E988      LDI	R24,0x98
    63A3 9380 0081 STS	0x0081,R24
(0689)  ICR3L  = 0x95;
    63A5 E985      LDI	R24,0x95
    63A6 9380 0080 STS	0x0080,R24
    63A8 9508      RET
_timer3_ovf_isr:
  TEMP                 --> R10
  rOut                 --> R20
    63A9 920A      ST	R0,-Y
    63AA 921A      ST	R1,-Y
    63AB 922A      ST	R2,-Y
    63AC 923A      ST	R3,-Y
    63AD 924A      ST	R4,-Y
    63AE 925A      ST	R5,-Y
    63AF 926A      ST	R6,-Y
    63B0 927A      ST	R7,-Y
    63B1 928A      ST	R8,-Y
    63B2 929A      ST	R9,-Y
    63B3 92AA      ST	R10,-Y
    63B4 92BA      ST	R11,-Y
    63B5 930A      ST	R16,-Y
    63B6 931A      ST	R17,-Y
    63B7 932A      ST	R18,-Y
    63B8 933A      ST	R19,-Y
    63B9 934A      ST	R20,-Y
    63BA 935A      ST	R21,-Y
    63BB 938A      ST	R24,-Y
    63BC 939A      ST	R25,-Y
    63BD 93AA      ST	R26,-Y
    63BE 93BA      ST	R27,-Y
    63BF 93EA      ST	R30,-Y
    63C0 93FA      ST	R31,-Y
    63C1 B60F      IN	R0,0x3F
    63C2 920A      ST	R0,-Y
    63C3 940E 9C05 CALL	push_xgset300C
(0690)  //TCCR3A = 0x32;
(0691)  //TCCR3A = 0x02;
(0692)  //TCCR3B = 0x1D; //start Timer
(0693) }
(0694) 
(0695) //******************************************
(0696) //#pragma interrupt_handler timer3_ovf_isr:iv_TIM3_OVF
(0697) //void timer3_ovf_isr(void)
(0698) //{
(0699) //}
(0700) //******************************************
(0701) #pragma interrupt_handler timer3_ovf_isr:iv_TIM3_OVF
(0702) void timer3_ovf_isr(void)
(0703) {
(0704)  //TIMER3 has overflowed
(0705)  //TCNT3H = 0x67; //reload counter high value
(0706)  //TCNT3L = 0x6B; //reload counter low value
(0707)  
(0708)  int rOut;
(0709)  uint TEMP;
(0710)  
(0711)  TEMP=(unsigned int)ZhuQi_WenDu_Value;
    63C5 9120 0133 LDS	R18,ZhuQi_WenDu_Value+2
    63C7 9130 0134 LDS	R19,ZhuQi_WenDu_Value+3
    63C9 9100 0131 LDS	R16,ZhuQi_WenDu_Value
    63CB 9110 0132 LDS	R17,ZhuQi_WenDu_Value+1
    63CD 940E 9D02 CALL	fpint
    63CF 0158      MOVW	R10,R16
(0712)  rOut=PIDCalc_WD(&WD_PID,TEMP);
    63D0 0195      MOVW	R18,R10
    63D1 E801      LDI	R16,0x81
    63D2 E011      LDI	R17,1
    63D3 DEAA      RCALL	_PIDCalc_WD
    63D4 01A8      MOVW	R20,R16
(0713)  if(rOut<0)  rOut=0;
    63D5 3000      CPI	R16,0
    63D6 E0E0      LDI	R30,0
    63D7 071E      CPC	R17,R30
    63D8 F414      BGE	0x63DB
    63D9 2744      CLR	R20
    63DA 2755      CLR	R21
(0714)  if(rOut>ICR3_TEMP)   rOut=ICR3_TEMP;
    63DB 9020 010B LDS	R2,ICR3_TEMP
    63DD 9030 010C LDS	R3,ICR3_TEMP+1
    63DF 1624      CP	R2,R20
    63E0 0635      CPC	R3,R21
    63E1 F408      BCC	0x63E3
    63E2 01A1      MOVW	R20,R2
(0715)  TEMP=ICR3_TEMP-rOut;
    63E3 90A0 010B LDS	R10,ICR3_TEMP
    63E5 90B0 010C LDS	R11,ICR3_TEMP+1
    63E7 1AA4      SUB	R10,R20
    63E8 0AB5      SBC	R11,R21
(0716)  CLI();
    63E9 94F8      BCLR	7
(0717)  OCR3B = TEMP;
    63EA 92B0 0085 STS	0x0085,R11
    63EC 92A0 0084 STS	0x0084,R10
(0718)    ICR3  = ICR3_TEMP;
    63EE 9020 010B LDS	R2,ICR3_TEMP
    63F0 9030 010C LDS	R3,ICR3_TEMP+1
    63F2 9230 0081 STS	0x0081,R3
    63F4 9220 0080 STS	0x0080,R2
(0719) // OCR3BH = TEMP/256;
(0720) // OCR3BL = TEMP%256;
(0721)  SEI();
    63F6 9478      BSET	7
    63F7 940E 9C0A CALL	pop_xgset300C
    63F9 9009      LD	R0,Y+
    63FA BE0F      OUT	0x3F,R0
    63FB 91F9      LD	R31,Y+
    63FC 91E9      LD	R30,Y+
    63FD 91B9      LD	R27,Y+
    63FE 91A9      LD	R26,Y+
    63FF 9199      LD	R25,Y+
    6400 9189      LD	R24,Y+
    6401 9159      LD	R21,Y+
    6402 9149      LD	R20,Y+
    6403 9139      LD	R19,Y+
    6404 9129      LD	R18,Y+
    6405 9119      LD	R17,Y+
    6406 9109      LD	R16,Y+
    6407 90B9      LD	R11,Y+
    6408 90A9      LD	R10,Y+
    6409 9099      LD	R9,Y+
    640A 9089      LD	R8,Y+
    640B 9079      LD	R7,Y+
    640C 9069      LD	R6,Y+
    640D 9059      LD	R5,Y+
    640E 9049      LD	R4,Y+
    640F 9039      LD	R3,Y+
    6410 9029      LD	R2,Y+
    6411 9019      LD	R1,Y+
    6412 9009      LD	R0,Y+
    6413 9518      RETI
(0722) }
(0723) 
(0724) //******************************************
(0725) //TIMER2 initialize - prescale:1024
(0726) // WGM: Normal
(0727) // desired value: 50mSec
(0728) // actual value: 49.920mSec (0.2%)
(0729) void timer2_init(void)
(0730) {
(0731)  TCCR2 = 0x00; //stop
_timer2_init:
    6414 2422      CLR	R2
    6415 BC25      OUT	0x25,R2
(0732)  TCNT2 = 0x3D; //setup
    6416 E38D      LDI	R24,0x3D
    6417 BD84      OUT	0x24,R24
(0733)  OCR2  = 0xC3;
    6418 EC83      LDI	R24,0xC3
    6419 BD83      OUT	0x23,R24
    641A 9508      RET
_timer2_ovf_isr:
  TEMP_CH              --> Y,+1
  addr_t               --> Y,+1
  addr                 --> Y,+1
  Temp1                --> Y,+1
  Temp                 --> Y,+1
  j                    --> Y,+1
  i                    --> Y,+1
  k                    --> R20
    641B 920A      ST	R0,-Y
    641C 921A      ST	R1,-Y
    641D 922A      ST	R2,-Y
    641E 923A      ST	R3,-Y
    641F 924A      ST	R4,-Y
    6420 925A      ST	R5,-Y
    6421 926A      ST	R6,-Y
    6422 927A      ST	R7,-Y
    6423 928A      ST	R8,-Y
    6424 929A      ST	R9,-Y
    6425 92AA      ST	R10,-Y
    6426 92BA      ST	R11,-Y
    6427 930A      ST	R16,-Y
    6428 931A      ST	R17,-Y
    6429 932A      ST	R18,-Y
    642A 933A      ST	R19,-Y
    642B 934A      ST	R20,-Y
    642C 936A      ST	R22,-Y
    642D 937A      ST	R23,-Y
    642E 938A      ST	R24,-Y
    642F 939A      ST	R25,-Y
    6430 93AA      ST	R26,-Y
    6431 93BA      ST	R27,-Y
    6432 93EA      ST	R30,-Y
    6433 93FA      ST	R31,-Y
    6434 B60F      IN	R0,0x3F
    6435 920A      ST	R0,-Y
    6436 940E 9C19 CALL	push_xgsetF00C
(0734)  //TCCR2 = 0x05; //start
(0735) }
(0736) 
(0737) //******************************************
(0738) #pragma interrupt_handler timer2_ovf_isr:iv_TIM2_OVF
(0739) void timer2_ovf_isr(void)
(0740) {
(0741)   unsigned char i;
(0742)   unsigned char j,k,Temp,Temp1;
(0743)   unsigned int addr;
(0744)   unsigned char addr_t;
(0745)   unsigned char TEMP_CH;
(0746)   
(0747)  TCNT2 = 0x3D; //reload counter value
    6438 E38D      LDI	R24,0x3D
    6439 BD84      OUT	0x24,R24
(0748)  TIMSK = 0x05;
    643A E085      LDI	R24,5
    643B BF87      OUT	0x37,R24
(0749)  SEI();
    643C 9478      BSET	7
(0750) /*
(0751) 	ReadTime();
(0752) 	if(!(Last_Second==Second))
(0753) 	{
(0754) 	  Display_Time(0); 
(0755) 	  Last_Second=Second;
(0756) 	}  
(0757) */
(0758) 	if(ZhuQi_WenDu_Value>50)
    643D E381      LDI	R24,0x31
    643E E091      LDI	R25,1
    643F EB0E      LDI	R16,0xBE
    6440 EC13      LDI	R17,0xC3
    6441 940E 9C75 CALL	lpm32
    6443 939A      ST	R25,-Y
    6444 938A      ST	R24,-Y
    6445 940E 9E48 CALL	fpcmp1
    6447 F43C      BGE	0x644F
(0759) 	{
(0760)      TCCR3A = 0x02;
    6448 E082      LDI	R24,2
    6449 9380 008B STS	0x008B,R24
(0761)      TCCR3B = 0x1D; //start Timer3
    644B E18D      LDI	R24,0x1D
    644C 9380 008A STS	0x008A,R24
(0762)      PORTE&=~(1<<4);
    644E 981C      CBI	0x03,4
(0763) 	}
(0764) 	
(0765) 	if((Set_WenDu_Value+1) < ((unsigned char)ZhuQi_WenDu_Value));
    644F 9120 0133 LDS	R18,ZhuQi_WenDu_Value+2
    6451 9130 0134 LDS	R19,ZhuQi_WenDu_Value+3
    6453 9100 0131 LDS	R16,ZhuQi_WenDu_Value
    6455 9110 0132 LDS	R17,ZhuQi_WenDu_Value+1
    6457 940E 9D02 CALL	fpint
    6459 9180 013C LDS	R24,Set_WenDu_Value
    645B 5F8F      SUBI	R24,0xFF
    645C 1780      CP	R24,R16
    645D F400      BCC	0x645E
(0766) 	  WD_PID.SumError =0;
    645E 2422      CLR	R2
    645F 2433      CLR	R3
    6460 9230 018B STS	0x018B,R3
    6462 9220 018A STS	0x018A,R2
(0767) 	
(0768) 	//ADC_data_T=ADC_data_T+ads1100_read(ads1100_readaddr);
(0769) 	ADC_data_T=ADC_data_T + SYS_ADC(DQ_LD_ADC);
    6464 E006      LDI	R16,6
    6465 940E 7066 CALL	_SYS_ADC
    6467 0118      MOVW	R2,R16
    6468 2444      CLR	R4
    6469 2455      CLR	R5
    646A 9080 0113 LDS	R8,ADC_data_T+2
    646C 9090 0114 LDS	R9,ADC_data_T+3
    646E 9060 0111 LDS	R6,ADC_data_T
    6470 9070 0112 LDS	R7,ADC_data_T+1
    6472 0C62      ADD	R6,R2
    6473 1C73      ADC	R7,R3
    6474 1C84      ADC	R8,R4
    6475 1C95      ADC	R9,R5
    6476 9270 0112 STS	ADC_data_T+1,R7
    6478 9260 0111 STS	ADC_data_T,R6
    647A 9290 0114 STS	ADC_data_T+3,R9
    647C 9280 0113 STS	ADC_data_T+2,R8
(0770) 	
(0771)     DQ_WenDu_TOT = DQ_WenDu_TOT + SYS_ADC(DQ_WenDu_ADC);
    647E 2700      CLR	R16
    647F 940E 7066 CALL	_SYS_ADC
    6481 9020 0119 LDS	R2,DQ_WenDu_TOT
    6483 9030 011A LDS	R3,DQ_WenDu_TOT+1
    6485 0E20      ADD	R2,R16
    6486 1E31      ADC	R3,R17
    6487 9230 011A STS	DQ_WenDu_TOT+1,R3
    6489 9220 0119 STS	DQ_WenDu_TOT,R2
(0772)     ZhuQi_WenDu_TOT = ZhuQi_WenDu_TOT + SYS_ADC(ZhuQi_WenDu_ADC);
    648B E004      LDI	R16,4
    648C 940E 7066 CALL	_SYS_ADC
    648E 9020 0117 LDS	R2,ZhuQi_WenDu_TOT
    6490 9030 0118 LDS	R3,ZhuQi_WenDu_TOT+1
    6492 0E20      ADD	R2,R16
    6493 1E31      ADC	R3,R17
    6494 9230 0118 STS	ZhuQi_WenDu_TOT+1,R3
    6496 9220 0117 STS	ZhuQi_WenDu_TOT,R2
(0773)     DQ_ShiDu_TOT = DQ_ShiDu_TOT + SYS_ADC(DQ_ShiDu_ADC);
    6498 E001      LDI	R16,1
    6499 940E 7066 CALL	_SYS_ADC
    649B 9020 0115 LDS	R2,DQ_ShiDu_TOT
    649D 9030 0116 LDS	R3,DQ_ShiDu_TOT+1
    649F 0E20      ADD	R2,R16
    64A0 1E31      ADC	R3,R17
    64A1 9230 0116 STS	DQ_ShiDu_TOT+1,R3
    64A3 9220 0115 STS	DQ_ShiDu_TOT,R2
(0774) 	
(0775)  //   k=keboard();
(0776)     k=keyboard();
    64A5 940E 8FE4 CALL	_keyboard
    64A7 2EA0      MOV	R10,R16
    64A8 2D4A      MOV	R20,R10
(0777) 	if(!(Last_Key==k))
    64A9 9020 0169 LDS	R2,Last_Key
    64AB 1620      CP	R2,R16
    64AC F411      BNE	0x64AF
    64AD 940C 7026 JMP	0x7026
(0778) 	{
(0779) 	  Last_Key=k;
    64AF 9340 0169 STS	Last_Key,R20
(0780) 	  
(0781) 	  
(0782) 	  if(YN_TOUCH_KEY_DISP_F)

⌨️ 快捷键说明

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