📄 lcd.c
字号:
OULED=OLED;
AA=0; /* 光标回原位 */
DAT1=15;/* 光标指针水平位置 */
DAT2=15; /* 光标指针垂直位置 */
COM=21H;
CALL OUT1;
END;
ELSE DO;/* 温度设置 */
OLED=OLED AND 0C0H;/* 开温度设置灯 */
OLED=OLED OR 01H;
OULED=OLED;
SWEND=1; /* 建立温度标记 */
STIME=0; /* 取消时间设置标记 */
SFREQ=0; /* 取消频率设置标记 */
SMODE=0; /* 取消模式设置标记 */
AA=0;
DAT1=GUNWEI;/* 27光标指针水平位置 */
DAT2=5; /* 光标指针垂直位置 */
COM=21H;/* 光标移设置温度位置 */
CALL OUT1;
END;
END;
IF CC=2 THEN DO;/* 设定时间 */
IF STIME=1 THEN DO;
GUNWEI=27; /* 光标回原位 */
STIME=0; /* 取消时间设置标记 */
OLED=OLED AND 0FDH;
OULED=OLED;/* 关时间设置灯 */
AA=0;
DAT1=15; /* 光标指针水平位置 */
DAT2=15; /* 光标指针垂直位置 */
COM=21H; /* 光标回原位 */
CALL OUT1;
END;
ELSE DO;/* 时间设置 */
OLED=OLED AND 0C0H;
OLED=OLED OR 02H;/* 开时间设置灯 */
OULED=OLED;
SWEND=0; /* 取消温度标记 */
STIME=1; /* 建立时间标记 */
SFREQ=0; /* 取消频率标记 */
SMODE=0; /* 取消模式标记 */
AA=0;
IF GUNWEI<25 THEN GUNWEI=27;
DAT1=GUNWEI;/* 27光标指针水平位置 */
DAT2=7; /* 光标指针垂直位置 */
COM=21H;/* 光标移设置时间位置 */
CALL OUT1;
END;
END;
IF CC=3 THEN DO; /* 频率设置 */
IF SFREQ=1 THEN DO;
GUNWEI=27;/* 光标回原位 */
SFREQ=0;/* 关频率设置标记 */
OLED=OLED AND 0FBH; /* 关频率设置标记灯 */
OULED=OLED;
AA=0;
DAT1=15; /* 光标指针水平位置 */
DAT2=15; /* 光标指针垂直位置 */
COM=21H; /* 光标回原位 */
CALL OUT1;
END;
ELSE DO;/* 频率设置 */
OLED=OLED AND 0C0H;
OLED=OLED OR 04H;/* 开频率设置灯 */
OULED=OLED;
SWEND=0; /* 取消温度标记 */
STIME=0; /* 取消时间标记 */
SFREQ=1; /* 建立频率标记 */
SMODE=0; /* 取消模式标记 */
AA=0;
DAT1=GUNWEI;/* 27光标指针水平位置 */
DAT2=9; /* 光标指针垂直位置 */
COM=21H;/* 光标移频率设置 */
CALL OUT1;
END;
END;
IF CC=4 THEN DO;
IF SMODE=1 THEN DO;/* 关模式设置 */
GUNWEI=27; /* 光标回原位 */
SMODE=0;
OLED=OLED AND 0F7H; /* 关模式设置灯 */
OULED=OLED;
AA=0;
DAT1=15; /* 光标指针水平位置 */
DAT2=15; /* 光标指针垂直位置 */
COM=21H; /* 光标回原位 */
CALL OUT1;
END;
ELSE DO; /* 频率设置 */
OLED=OLED AND 0C0H;
OLED=OLED OR 08H;/* 开频率设置灯 */
OULED=OLED;
SWEND=0; /* 取消温度标记 */
STIME=0; /* 取消时间标记 */
SFREQ=0; /* 取消频率标记 */
SMODE=1; /* 建立模式标记 */
AA=0;
DAT1=25;/* 光标指针水平位置 */
DAT2=11; /* 光标指针垂直位置 */
COM=21H; /* 光标移模式设置 */
CALL OUT1;
END;
END;
IF CC=5 THEN DO; /* + */
IF SWEND=1 THEN DO;/* 温度加1 */
IF GUNWEI=27 THEN ZBUF(1)=ZBUF(1)+1;
IF GUNWEI=25 THEN ZBUF(1)=ZBUF(1)+10;
IF GUNWEI=24 THEN ZBUF(1)=ZBUF(1)+100;
IF ZBUF(1)>450 THEN ZBUF(1)=450;
END;
IF STIME=1 THEN DO;/* 时间加1 */
IF GUNWEI=27 THEN ZBUF(3)=ZBUF(3)+1;
IF GUNWEI=26 THEN ZBUF(3)=ZBUF(3)+10;
IF GUNWEI=25 THEN ZBUF(3)=ZBUF(3)+100;
IF ZBUF(3)>300 THEN ZBUF(3)=300;
END;
IF SFREQ=1 THEN DO;/* 频率加1 */
IF GUNWEI=27 THEN ZBUF(5)=ZBUF(5)+1;
IF GUNWEI=26 THEN ZBUF(5)=ZBUF(5)+10;
IF GUNWEI=25 THEN ZBUF(5)=ZBUF(5)+100;
IF GUNWEI=24 THEN ZBUF(5)=ZBUF(5)+1000;
IF ZBUF(3)>2750 THEN ZBUF(3)=2750;
END;
IF SMODE=1 THEN DO;/* 模式加1 */
ZBUF(7)=ZBUF(7)+1;
IF ZBUF(7)>9 THEN ZBUF(7)=9;
END;
END;
IF CC=6 THEN DO;/* - */
IF SWEND=1 THEN DO;/* 温度减1 */
IF GUNWEI=27 THEN ZBUF(1)=ZBUF(1)-1;
IF GUNWEI=25 THEN DO;
IF ZBUF(1)>10 THEN ZBUF(1)=ZBUF(1)-10;
END;
IF GUNWEI=24 THEN DO;
IF ZBUF(1)>100 THEN ZBUF(1)=ZBUF(1)-100;
END;
IF ZBUF(1)<300 THEN ZBUF(1)=300;
END;
IF STIME=1 THEN DO;/* 时间减1 */
IF GUNWEI=27 THEN ZBUF(3)=ZBUF(3)-1;
IF GUNWEI=26 THEN DO;
IF ZBUF(3)>10 THEN ZBUF(3)=ZBUF(3)-10;
END;
IF GUNWEI=25 THEN DO;
IF ZBUF(3)>100 THEN ZBUF(3)=ZBUF(3)-100;
END;
IF ZBUF(3)<1 THEN ZBUF(3)=1;
END;
IF SFREQ=1 THEN DO;/* 频率减1 */
IF GUNWEI=27 THEN ZBUF(5)=ZBUF(5)-1;
IF GUNWEI=26 THEN DO;
IF ZBUF(5)>10 THEN ZBUF(5)=ZBUF(5)-10;
END;
IF GUNWEI=25 THEN DO;
IF ZBUF(5)>100 THEN ZBUF(5)=ZBUF(5)-100;
END;
IF GUNWEI=24 THEN DO;
IF ZBUF(5)>1000 THEN ZBUF(5)=ZBUF(5)-1000;
END;
IF ZBUF(5)<2250 THEN ZBUF(5)=2250;
END;
IF SMODE=1 THEN DO;/* 模式减1 */
ZBUF(7)=ZBUF(7)-1;
IF ZBUF(7)<1 THEN ZBUF(7)=1;
END;
END;
IF CC=7 THEN DO;/* 复位键 */
IF (SWEND=1 OR STIME=1 OR SFREQ=1)=1 THEN DO;/* 移光标 */
GUNWEI=GUNWEI-1;
IF SWEND=1 THEN DO;
IF GUNWEI=26 THEN GUNWEI=GUNWEI-1;
IF GUNWEI<24 THEN GUNWEI=27;
DAT2=5;
END;
IF STIME=1 THEN DO;
IF GUNWEI<25 THEN GUNWEI=27;
DAT2=7;
END;
IF SFREQ=1 THEN DO;
IF GUNWEI<24 THEN GUNWEI=27;
DAT2=9;
END;
AA=0; /* 光标移位 */
DAT1=GUNWEI;/* 光标指针水平位置 */
/*DAT2=5; /* 光标指针垂直位置 */
COM=21H;
CALL OUT1;
END;
ELSE DO;/* 非设置状态 */
GOTO ST;
OLED=OLED AND 0C0H;
OULED=OLED;
RUN=0;
RUNM=0;
WORK=0;
BUF(113)=28;
BUF(114)=29;
ZBUF(2)=0;/*ZBUF(3);/*P1_2=1;*/
P1_3=1;
END;
END;
IF CC=8 THEN DO; /* WORK IN 运行/暂停键 */
IF WORK=0 THEN DO;
WORK=1;
RE=(SWEND=1 OR STIME=1 OR SFREQ=1 OR SMODE=1 OR P1_7=1);
IF RE=0 THEN DO;/* 运行条件.P1_7为水位开关 */
RUN=1;
BUF(113)=23;
BUF(114)=24;
CI=65535-(10000/ZBUF(5))*100;
RCAP2H=CIH;
RCAP2L=CIL;
IF RUNM=0 THEN ZBUF(2)=ZBUF(3);/*无暂停标记,设置时间送实际时间*/
DD=0;
ZBUF(4)=ZBUF(5); /*设置频率送实际频率*/
ZBUF(6)=ZBUF(7);
RUNM=0;
END;
ELSE DO; /* 不满足运行条件,暂停 */
RUN=0;
END;
END;
ELSE DO; /* WORK=1 */
WORK=0;
RUN=0;
IF ZBUF(2)>0 THEN RUNM=1;/* 暂停标记 */
ELSE RUNM=0;
BUF(113)=27;
BUF(114)=28;
END;
END;
LP3:BP=55H;
GOTO LP1;
LP4:BP=0FFH;
IF ER=0 THEN GOTO LP2;
ER=0;
GOTO LP1;
GOTO ST;
GOTO ST;
GOTO ST;
GOTO ST;
AA=33;
END TAN;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -