📄 main.lst
字号:
151 4 ltemp++;
152 4 }
153 3 if(DOWN==0&&(ltemp!=99)&&(ltemp!=0))
154 3 {
155 4 while(DOWN==0);
156 4 beer();
157 4 ltemp--;
158 4 }
159 3 if(flag==0)
160 3 {
161 4 lcd_strwdat( 0," L temp setting" );
162 4 display1(ltemp);
163 4 }
164 3 else
165 3 lcd_strwdat( 0x40," " );
166 3 if(MENU==0)
167 3 {
168 4 while(MENU==0);
169 4 I2CSendByte(2,ltemp);
170 4 beer();
171 4 lcd_init();
172 4 break;
173 4 }
174 3 }
175 2 }
176 1 }
177
178 //******************************************************************************
179
C51 COMPILER V8.08 MAIN 01/12/2009 19:00:37 PAGE 4
180 //****************************************************************************
181 //按键处理
182 key()
183 {
184 1 uchar tem=0;
185 1 if(ENTER==0) //ENTER按下时进入选择高低报警温度设置
186 1 {
187 2 while(ENTER==0);
188 2 beer();
189 2 while(1)
190 2 {
191 3 switch(tem)
192 3 {
193 4 case 0: HTemperature();break; //高温设置
194 4 case 1: LTemperature();break; //低温设置
195 4 }
196 3 if(UP==0) //UP/DOWN都是改变选择画面
197 3 {
198 4 while(UP==0);
199 4 beer();
200 4 if(tem==0)
201 4 tem=1;
202 4 else
203 4 tem=0;
204 4 }
205 3 if(DOWN==0)
206 3 {
207 4 while(DOWN==0);
208 4 beer();
209 4 if(tem==0)
210 4 tem=1;
211 4 else
212 4 tem=0;
213 4 }
214 3 if(MENU==0) //MENU按下则退出到读取当前温度状态
215 3 {
216 4 while(MENU==0);
217 4 beer();
218 4 lcd_init();
219 4 break;
220 4 }
221 3 }
222 2
223 2
224 2 }
225 1 }
226 //**************************************************************************
227
228 //***************************************************************************
229 //到设定温度时报警函数
230 warn()
231 {
232 1 if(temper[1]>=I2CReadByte(1)) //当前温度大于或等于高温设定时报警
233 1 {
234 2 flag2=1;
235 2 if(flag==0)
236 2 lcd_strwdat(0," " ); // 用于第一行闪动
237 2 beer(); //蜂鸣器长叫
238 2 }
239 1 else
240 1 if(temper[1]<=I2CReadByte(2))
241 1 { //当前温度小于或等于低温设定时报警
C51 COMPILER V8.08 MAIN 01/12/2009 19:00:37 PAGE 5
242 2 flag2=2;
243 2 if(flag==0)
244 2 lcd_strwdat(0," " ); // 用于第一行闪动
245 2 beer();
246 2 }
247 1 else
248 1 flag2=0;
249 1
250 1
251 1 }
252
253 main()
254 { uchar i,CON;
255 1
256 1 TMOD=0X01; //用定时器一
257 1 TH0=(65536-50000)/256; //定时为0.05s
258 1 TL0=(65536-50000)%256;
259 1 ET0=1;
260 1 EA=1; //开总中断
261 1 TR0=1; //开定时器
262 1 lcd_init(); //初始化lcd
263 1 for(i=0;i<4;i++) //显示缓冲区置0
264 1 dispbuf[i] = 0;
265 1 while(1)
266 1 {
267 2 display(); //显示
268 2 key();
269 2 warn();
270 2 CON++;
271 2 if(CON==500) //写时刷屏
272 2 lcd_init();
273 2
274 2
275 2 }
276 1 }
277
278 //****************************************************
279 void time0() interrupt 1
280 { uchar contuer;
281 1 TH0=(65536-50000)/256; //定时为0.05s
282 1 TL0=(65536-50000)%256;
283 1 contuer++;
284 1 if(contuer==7) //当到0.35s改变 flag
285 1 {
286 2 contuer=0;
287 2 flag=~flag;
288 2 }
289 1
290 1 }
291
292 //*****************************************************
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 786 ----
CONSTANT SIZE = 107 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 19 10
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V8.08 MAIN 01/12/2009 19:00:37 PAGE 6
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -