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

📄 m128_alky_touch_con1.s

📁 m8做的电压检测
💻 S
📖 第 1 页 / 共 5 页
字号:
	lds R2,_KEY_TEMP+4
	sts _KEY_TEMP+5,R2
	.dbline 787
;         KEY_TEMP[4]=KEY_TEMP[3];
	lds R2,_KEY_TEMP+3
	sts _KEY_TEMP+4,R2
	.dbline 788
;         KEY_TEMP[3]=KEY_TEMP[2];
	lds R2,_KEY_TEMP+2
	sts _KEY_TEMP+3,R2
	.dbline 789
;         KEY_TEMP[2]=KEY_TEMP[1];
	lds R2,_KEY_TEMP+1
	sts _KEY_TEMP+2,R2
	.dbline 790
;         KEY_TEMP[1]=KEY_TEMP[0];
	lds R2,_KEY_TEMP
	sts _KEY_TEMP+1,R2
	.dbline 791
;         KEY_TEMP[0]=k;
	sts _KEY_TEMP,R20
	.dbline 792
;        }
	xjmp L40
L41:
	.dbline 794
;        else
;         if(k==10)  //确定
	cpi R20,10
	breq X68
	xjmp L52
X68:
X14:
	.dbline 795
;         {
	.dbline 796
;          delay_nms(20);
	ldi R16,20
	ldi R17,0
	xcall _delay_nms
	.dbline 797
;          if(keyboard()==10)
	xcall _keyboard
	mov R22,R16
	cpi R16,10
	breq X69
	xjmp L54
X69:
X15:
	.dbline 798
;          switch(MENU_NUM)
	lds R22,_MENU_NUM
	clr R23
	cpi R22,0
	ldi R30,0
	cpc R23,R30
	brge X70
	xjmp L40
X70:
X16:
	ldi R24,15
	ldi R25,0
	cp R24,R22
	cpc R25,R23
	brge X71
	xjmp L40
X71:
X17:
	ldi R24,<L176
	ldi R25,>L176
	movw R30,R22
	lsl R30
	rol R31
	add R30,R24
	adc R31,R25
	lpm R2,Z+
	lpm R3,Z
	movw R30,R2
	 ijmp
X18:
	.dbfile D:\Program\M128_ALKY_Touch_CON1\M128_ALKY_Touch_CON1.c
	.dbline 799
;          {
L59:
	.dbline 801
;           case 0:            //浓度修改
;            CLI();
	cli
	.dbline 802
;            Set_LD_Value= KEY_TEMP[2] * 100 +KEY_TEMP[1] * 10 + KEY_TEMP[0];
	lds R2,_KEY_TEMP+1
	ldi R24,10
	mul R24,R2
	movw R2,R0
	lds R4,_KEY_TEMP+2
	ldi R24,100
	mul R24,R4
	movw R4,R0
	add R4,R2
	adc R5,R3
	lds R2,_KEY_TEMP
	clr R3
	add R4,R2
	adc R5,R3
	sts _Set_LD_Value+1,R5
	sts _Set_LD_Value,R4
	.dbline 803
;            LD_PID.SetPoint = Set_LD_Value;
	movw R2,R4
	sts _LD_PID+1,R3
	sts _LD_PID,R2
	.dbline 804
;            EEPROM_write(EE_Set_LD_AddrL, Set_LD_Value%256);
	mov R18,R4
	andi R19,0
	ldi R16,48
	ldi R17,0
	xcall _EEPROM_write
	.dbline 805
;            EEPROM_write(EE_Set_LD_AddrH, Set_LD_Value/256);
	lds R18,_Set_LD_Value
	lds R19,_Set_LD_Value+1
	mov R18,R19
	clr R19
	ldi R16,49
	ldi R17,0
	xcall _EEPROM_write
	.dbline 806
;            Display_TOUCH_MENU();
	xcall _Display_TOUCH_MENU
	.dbline 807
; 	       Display_TOUCH_Message(15);
	ldi R16,15
	xcall _Display_TOUCH_Message
	.dbline 808
;            Clr_TOUCH_KEY_DISP_F();
	lds R24,_FLAG
	andi R24,127
	sts _FLAG,R24
	.dbline 809
;            SEI();
	sei
	.dbline 810
;           break;
	xjmp L40
L62:
	.dbline 812
;           case 1:            //浓度周期修改
;            CLI();
	cli
	.dbline 813
;            F_LDZQ_Value= KEY_TEMP[3] * 1000 + KEY_TEMP[2] * 100 +KEY_TEMP[1] * 10 + KEY_TEMP[0];
	lds R2,_KEY_TEMP+2
	ldi R24,100
	mul R24,R2
	movw R2,R0
	lds R18,_KEY_TEMP+3
	clr R19
	ldi R16,1000
	ldi R17,3
	xcall empy16s
	movw R4,R16
	add R4,R2
	adc R5,R3
	lds R2,_KEY_TEMP+1
	ldi R24,10
	mul R24,R2
	add R4,R0
	adc R5,R1
	lds R2,_KEY_TEMP
	clr R3
	add R4,R2
	adc R5,R3
	sts _F_LDZQ_Value+1,R5
	sts _F_LDZQ_Value,R4
	.dbline 814
;            if(F_LDZQ_Value>4000)   F_LDZQ_Value=4000;
	ldi R24,4000
	ldi R25,15
	cp R24,R4
	cpc R25,R5
	brsh L66
X19:
	.dbline 814
	sts _F_LDZQ_Value+1,R25
	sts _F_LDZQ_Value,R24
L66:
	.dbline 815
;            EEPROM_write(EE_F_LDZQ_AddrL, F_LDZQ_Value%256);
	lds R18,_F_LDZQ_Value
	andi R19,0
	ldi R16,56
	ldi R17,0
	xcall _EEPROM_write
	.dbline 816
;            EEPROM_write(EE_F_LDZQ_AddrH, F_LDZQ_Value/256);
	lds R18,_F_LDZQ_Value
	lds R19,_F_LDZQ_Value+1
	mov R18,R19
	clr R19
	ldi R16,57
	ldi R17,0
	xcall _EEPROM_write
	.dbline 817
;            ICR1_TEMP = (unsigned int)(F_LDZQ_Value*16);
	lds R18,_F_LDZQ_Value
	lds R19,_F_LDZQ_Value+1
	ldi R16,16
	ldi R17,0
	xcall empy16s
	sts _ICR1_TEMP+1,R17
	sts _ICR1_TEMP,R16
	.dbline 818
; 	       TCNT1  = 0x0000;
	clr R2
	clr R3
	out 0x2d,R3
	out 0x2c,R2
	.dbline 819
;            OCR1A  = 0xFFFF;
	ldi R24,65535
	ldi R25,255
	out 0x2b,R25
	out 0x2a,R24
	.dbline 820
;            ICR1 = ICR1_TEMP;
	out 0x27,R17
	out 0x26,R16
	.dbline 821
;            Clr_BENG_CON();
	cbi 0x18,5
	.dbline 822
;            TCCR1A = 0xC2;
	ldi R24,194
	out 0x2f,R24
	.dbline 823
;            TCCR1B = 0x1C; 
	ldi R24,28
	out 0x2e,R24
	.dbline 824
;            Display_TOUCH_MENU();
	xcall _Display_TOUCH_MENU
	.dbline 825
; 	       Display_TOUCH_Message(15);
	ldi R16,15
	xcall _Display_TOUCH_Message
	.dbline 826
;            Clr_TOUCH_KEY_DISP_F();
	lds R24,_FLAG
	andi R24,127
	sts _FLAG,R24
	.dbline 827
;            SEI();
	sei
	.dbline 828
;           break;
	xjmp L40
L68:
	.dbline 830
;           case 2:            //温度周期修改
;            CLI();
	cli
	.dbline 831
;            F_WDZQ_Value= KEY_TEMP[1] * 10 + KEY_TEMP[0];
	lds R2,_KEY_TEMP+1
	ldi R24,10
	mul R24,R2
	lds R2,_KEY_TEMP
	mov R3,R0
	add R3,R2
	sts _F_WDZQ_Value,R3
	.dbline 832
;            if(F_WDZQ_Value>16)   F_LDZQ_Value=16;
	ldi R24,16
	cp R24,R3
	brsh L70
X20:
	.dbline 832
	clr R25
	sts _F_LDZQ_Value+1,R25
	sts _F_LDZQ_Value,R24
L70:
	.dbline 833
;            EEPROM_write(EE_F_WDZQ_Addr, F_WDZQ_Value);
	lds R18,_F_WDZQ_Value
	ldi R16,55
	ldi R17,0
	xcall _EEPROM_write
	.dbline 834
;            ICR3_TEMP = (unsigned int)(F_WDZQ_Value*3906);
	lds R18,_F_WDZQ_Value
	clr R19
	ldi R16,3906
	ldi R17,15
	xcall empy16s
	sts _ICR3_TEMP+1,R17
	sts _ICR3_TEMP,R16
	.dbline 836
;                   
;            TCNT3  = 0x0000;
	clr R2
	clr R3
	sts 136+1,R3
	sts 136,R2
	.dbline 837
;            OCR3B  = 0xFFFF;
	ldi R24,65535
	ldi R25,255
	sts 132+1,R25
	sts 132,R24
	.dbline 838
;            ICR3 = ICR3_TEMP;
	movw R2,R16
	sts 128+1,R3
	sts 128,R2
	.dbline 839
;            TCCR3A = 0x32;
	ldi R24,50
	sts 139,R24
	.dbline 840
;            TCCR3B = 0x1D; 
	ldi R24,29
	sts 138,R24
	.dbline 841
;            ZhuQi_WenDu_Value = 30;
	ldi R16,<L72
	ldi R17,>L72
	xcall lpm32
	sts _ZhuQi_WenDu_Value+1,R17
	sts _ZhuQi_WenDu_Value,R16
	sts _ZhuQi_WenDu_Value+2+1,R19
	sts _ZhuQi_WenDu_Value+2,R18
	.dbline 842
;            ZhuQi_WenDu_TOT = 0;
	clr R2
	clr R3
	sts _ZhuQi_WenDu_TOT+1,R3
	sts _ZhuQi_WenDu_TOT,R2
	.dbline 844
;                   
;            Display_TOUCH_MENU();
	xcall _Display_TOUCH_MENU
	.dbline 845
; 	       Display_TOUCH_Message(15);
	ldi R16,15
	xcall _Display_TOUCH_Message
	.dbline 846
;            Clr_TOUCH_KEY_DISP_F();
	lds R24,_FLAG
	andi R24,127
	sts _FLAG,R24
	.dbline 847
;            SEI();
	sei
	.dbline 848
;           break;
	xjmp L40
L73:
	.dbline 850
;           case 3:            //时间修改
;            DS1302_Write(DS1302_CONTROL_Reg,0x00);//关闭写保护
	clr R18
	ldi R16,142
	xcall _DS1302_Write
	.dbline 851
;            Hour = (KEY_TEMP[3]<<4) | KEY_TEMP[2];
	lds R2,_KEY_TEMP+2
	lds R24,_KEY_TEMP+3
	andi R24,#0x0F
	swap R24
	or R24,R2
	sts _DataTime+3,R24
	.dbline 852
;            if(Hour>0x23)   Hour=0x23;
	ldi R24,35
	lds R2,_DataTime+3
	cp R24,R2
	brsh L77
X21:
	.dbline 852
	sts _DataTime+3,R24
L77:
	.dbline 853
;            DS1302_Write(DS1302_HR_Reg,Hour); //时     
	lds R18,_DataTime+3
	ldi R16,132
	xcall _DS1302_Write
	.dbline 855
;              
;            Minute = (KEY_TEMP[1]<<4) | KEY_TEMP[0];
	lds R2,_KEY_TEMP
	lds R24,_KEY_TEMP+1
	andi R24,#0x0F
	swap R24
	or R24,R2
	sts _DataTime+4,R24
	.dbline 856
;            if(Minute>0x59)   Minute=0x59;
	ldi R24,89
	lds R2,_DataTime+4
	cp R24,R2
	brsh L84
X22:
	.dbline 856
	sts _DataTime+4,R24
L84:
	.dbline 857
;            DS1302_Write(DS1302_MIN_Reg,Minute); //分
	lds R18,_DataTime+4
	ldi R16,130
	xcall _DS1302_Write
	.dbline 858
;            DS1302_Write(DS1302_CONTROL_Reg,0x80);//打开写保护
	ldi R18,128
	ldi R16,142
	xcall _DS1302_Write
	.dbline 859
;            Display_TOUCH_MENU();
	xcall _Display_TOUCH_MENU
	.dbline 860
; 	       Display_TOUCH_Message(15);
	ldi R16,15
	xcall _Display_TOUCH_Message
	.dbline 861
;            Clr_TOUCH_KEY_DISP_F();
	lds R24,_FLAG
	andi R24,127
	sts _FLAG,R24
	.dbline 862
;           break;
	xjmp L40
L89:
	.dbline 864
;           case 4:            //浓度PID修改
;            CLI();
	cli
	.dbline 865
;            LD_PID.Proportion = KEY_TEMP[5] * 10 + KEY_TEMP[4];
	lds R2,_KEY_TEMP+5
	ldi R24,10
	mul R24,R2
	lds R2,_KEY_TEMP+4
	mov R3,R0
	add R3,R2
	sts _LD_PID+2,R3
	.dbline 866
;            if(LD_PID.Proportion>25)   LD_PID.Proportion=25;
	ldi R24,25
	cp R24,R3
	brsh L93
X23:
	.dbline 866
	sts _LD_PID+2,R24
L93:
	.dbline 867
;            LD_PID.Integral = KEY_TEMP[3] * 10 + KEY_TEMP[2];
	lds R2,_KEY_TEMP+3
	ldi R24,10
	mul R24,R2
	lds R2,_KEY_TEMP+2
	mov R3,R0
	add R3,R2
	sts _LD_PID+3,R3
	.dbline 868
;            if(LD_PID.Integral>12)   LD_PID.Integral=12;
	ldi R24,12
	cp R24,R3
	brsh L100
X24:
	.dbline 868
	sts _LD_PID+3,R24
L100:
	.dbline 869
;            LD_PID.Derivative = KEY_TEMP[1] * 10 + KEY_TEMP[0];
	lds R2,_KEY_TEMP+1
	ldi R24,10
	mul R24,R2
	lds R2,_KEY_TEMP
	mov R3,R0
	add R3,R2
	sts _LD_PID+4,R3
	.dbline 870
;            if(LD_PID.Derivative>25)   LD_PID.Derivative=25;
	ldi R24,25
	cp R24,R3
	brsh L106
X25:
	.dbline 870
	sts _LD_PID+4,R24
L106:
	.dbline 872
;            
;            EEPROM_write(EE_LDPID_P_Addr, LD_PID.Proportion);
	lds R18,_LD_PID+2
	ldi R16,72
	ldi R17,0
	xcall _EEPROM_write
	.dbline 873
;            EEPROM_write(EE_LDPID_I_Addr, LD_PID.Integral);
	lds R18,_LD_PID+3
	ldi R16,73
	ldi R17,0
	xcall _EEPROM_write
	.dbline 874
;            EEPROM_write(EE_LDPID_D_Addr, LD_PID.Derivative);
	lds R18,_LD_PID+4
	ldi R16,74
	ldi R17,0
	xcall _EEPROM_write
	.dbline 875
;            Display_TOUCH_MENU();
	xcall _Display_TOUCH_MENU
	.dbline 876
; 	       Display_TOUCH_Message(15);
	ldi R16,15
	xcall _Display_TOUCH_Message
	.dbline 877
;            Clr_TOUCH_KEY_DISP_F();
	lds R24,_FLAG
	andi R24,127
	sts _FLAG,R24
	.dbline 878
;            SEI();
	sei
	.dbline 879
;           break;
	xjmp L40
L113:
	.dbline 881
;           case 5:            //温度PID修改
;            CLI();
	cli
	.dbline 882
;            WD_PID.Proportion = KEY_TEMP[5] * 10 + KEY_TEMP[4];
	lds R2,_KEY_TEMP+5
	ldi R24,10
	mul R24,R2
	lds R2,_KEY_TEMP+4
	mov R3,R0
	add R3,R2
	sts _WD_PID+2,R3
	.dbline 883
;            if(WD_PID.Proportion>99)   WD_PID.Proportion=99;
	ldi R24,99
	cp R24,R3
	brsh L117
X26:
	.dbline 883
	sts _WD_PID+2,R24
L117:
	.dbline 884
;            WD_PID.Integral = KEY_TEMP[3] * 10 + KEY_TEMP[2];
	lds R2,_KEY_TEMP+3
	ldi R24,10
	mul R24,R2
	lds R2,_KEY_TEMP+2
	mov R3,R0
	add R3,R2
	sts _WD_PID+3,R3
	.dbline 885
;            if(LD_PID.Integral>20)   WD_PID.Integral=20;
	ldi R24,20
	lds R2,_LD_PID+3
	cp R24,R2
	brsh L124
X27:
	.dbline 885
	sts _WD_PID+3,R24
L124:
	.dbline 886
;            WD_PID.Derivative = KEY_TEMP[1] * 10 + KEY_TEMP[0];
	lds R2,_KEY_TEMP+1
	ldi R24,10
	mul R24,R2
	lds R2,_KEY_TEMP
	mov R3,R0
	add R3,R2
	sts _WD_PID+4,R3
	.dbline 887
;            if(WD_PID.Derivative>99)   WD_PID.Derivative=99;
	ldi R24,99
	cp R24,R3

⌨️ 快捷键说明

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