📄 m128_alky_touch_con1.s
字号:
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 + -