📄 zdbwnl.lst
字号:
C51 COMPILER V7.50 ZDBWNL 12/22/2005 13:04:37 PAGE 5
203 0x70,0xF0,0x11,0x1F,0x1C,0x00,0x00,0x07,0x1C,0x18,0x08,0x18,0xF0,0x80,0x01,0x07,
204 0xFC,0x00,0x00,0xFF,0xFF,0x00,0x00,0xE1,0x31,0x21,0x33,0xCF,0x3C,0x27,0x63,0x26,
205 0x06,0x00,0x60,0x64,0x24,0x64,0xFC,0x1F,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0x00,
206 0x00,0x00,0x3F,0xFF,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0xFF,0x00,0x00,
207 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x03,
208 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
209 0x00,0x00,0x30,0x30,0x18,0x18,0x08,0x0C,0x04,0x06,0x03,0x01,0x01,0x00,0x00,0x00,
210 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
211 0x00,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x00,0x00,0x00,
212 0x01,0x03,0x03,0x01,0x01,0x03,0x03,0x01,0x00,0x00,0x00,0x03,0x03,0x02,0x02,0x02,
213 0x02,0x02,0x02,0x02,0x02,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
214 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
215 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
216 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
217 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
218 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
219 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
220 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
221 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
222 };
223
224 /******************************************************************************/
225 void Delay(int num)//延时函数
226 {
227 1 while(num--) ;
228 1 }
229
230 /*12864driver.c*/
231 /******************************************************************************/
232 void Delay12864(unsigned int t)//
233 {
234 1 unsigned int i,j;
235 1 for(i=0;i<t;i++)
236 1 {
237 2 for(j=0;j<10;j++);
238 2 }
239 1 }
240
241 /******************************************************************************/
242 void write_com(unsigned char cmdcode)//写命令到LCD
243 {
244 1 Di = 0;
245 1 RW = 0;
246 1
247 1 Lcd_Bus = cmdcode;
248 1 Delay12864(0);
249 1 Enable = 1;
250 1 Delay12864(0);
251 1 Enable = 0;
252 1 }
253
254 /******************************************************************************/
255 void write_data(unsigned char Dispdata)//写数据到LCD
256 {
257 1 Di = 1;
258 1 RW = 0;
259 1
260 1 Lcd_Bus = Dispdata;
261 1 Delay12864(0);
262 1 Enable = 1;
263 1 Delay12864(0);
264 1 Enable = 0;
C51 COMPILER V7.50 ZDBWNL 12/22/2005 13:04:37 PAGE 6
265 1 }
266
267 /*******************************************************************************/
268 void frame(void)//显示边框
269 {
270 1 unsigned char i;
271 1 Mcs = 1;
272 1 Scs = 1;
273 1 write_com(Page_Add+0);
274 1 write_com(Col_Add+0);
275 1 for(i=0;i<64;i++)
276 1 {
277 2 write_data(0x01);
278 2 }
279 1 write_com(Page_Add+7);
280 1 write_com(Col_Add+0);
281 1 for(i=0;i<64;i++)
282 1 {
283 2 write_data(0x80);
284 2 }
285 1 for(i=0;i<8;i++)
286 1 {
287 2 Mcs=0;
288 2 Scs=1;
289 2 write_com(Page_Add+i);
290 2 write_com(Col_Add+63);
291 2 write_data(0xff);
292 2 Mcs=1;
293 2 Scs=0;
294 2 write_com(Page_Add+i);
295 2 write_com(Col_Add+0);
296 2 write_data(0xff);
297 2 }
298 1 }
299
300 /******************************************************************************/
301 void Clr_Scr(void)//清除内存
302 {
303 1 unsigned char j,k;
304 1 Mcs=1;Scs=1;
305 1 write_com(Page_Add+0);
306 1 write_com(Col_Add+0);
307 1
308 1 for(k=0;k<8;k++)
309 1 {
310 2 write_com(Page_Add+k);
311 2 for(j=0;j<64;j++)
312 2 {
313 3 write_data(0x00);
314 3 }
315 2 }
316 1 }
317
318 /*******************************************************************************/
319 void Disp_Img(unsigned char code *img)//显示12864图片
320 {
321 1 unsigned char j,k;
322 1 for(k=0;k<8;k++)
323 1 {
324 2 Mcs=1;
325 2 Scs=0;
326 2 Delay(10);
C51 COMPILER V7.50 ZDBWNL 12/22/2005 13:04:37 PAGE 7
327 2 write_com(Page_Add+k);
328 2 write_com(Col_Add+0);
329 2 for(j=0;j<64;j++)
330 2 {
331 3 write_data(img[k*128+j]);
332 3 }
333 2 Mcs=0;
334 2 Scs=1;
335 2 Delay(10);
336 2 write_com(Page_Add+k);
337 2 write_com(Col_Add+0);
338 2 for(j=64;j<128;j++)
339 2 {
340 3 write_data(img[k*128+j]);
341 3 }
342 2 }
343 1 }
344
345 /*******************************************************************************/
346 void Disp_Chinese(unsigned char pag,unsigned char col, char code *hzk)
347 { //指定位置显示汉字16*16
348 1 unsigned char j=0,i=0;
349 1
350 1 for(j=0;j<2;j++)
351 1 {
352 2 write_com(Page_Add+pag+j);
353 2 write_com(Col_Add+col);
354 2 for(i=0;i<16;i++)
355 2 {
356 3 write_data(hzk[16*j+i]);
357 3 }
358 2 }
359 1 }
360
361 /*******************************************************************************/
362 void Disp_Digit(unsigned char pag,unsigned char col, unsigned char code *hzk)
363 { //指定位置显示字母或数字8*16
364 1 unsigned char j=0, i=0;
365 1
366 1 for(j=0;j<2;j++)
367 1 {
368 2 write_com(Page_Add+pag+j);
369 2 write_com(Col_Add+col);
370 2 for(i=0;i<8;i++)
371 2 {
372 3 write_data(hzk[8*j+i]);
373 3 }
374 2 }
375 1 }
376
377 /********************************************************************************/
378 void Init_lcd(void)//初始化LCD屏
379 {
380 1 Lcd_Rst=0;
381 1 Delay12864(100);
382 1 Lcd_Rst=1;
383 1 Delay12864(100);
384 1
385 1 Mcs=1; Scs=1;
386 1
387 1 Delay12864(100);
388 1 write_com(Disp_Off);
C51 COMPILER V7.50 ZDBWNL 12/22/2005 13:04:37 PAGE 8
389 1 write_com(Page_Add+0);
390 1 write_com(Start_Line+0);
391 1 write_com(Col_Add+0);
392 1 write_com(Disp_On);
393 1 }
394
395 /*******************************************************************************/
396 void Init_DS18B20(void)//初始化ds1820
397 {
398 1 unsigned char x=0;
399 1 DQ = 1; //DQ复位
400 1 Delay(8); //稍做延时
401 1 DQ = 0; //单片机将DQ拉低
402 1 Delay(80); //精确延时 大于 480us
403 1 DQ = 1; //拉高总线
404 1 Delay(14);
405 1 x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
406 1 Delay(20);
407 1 }
408
409 /******************************************************************************/
410 unsigned char ReadOneChar(void)//读一个字节
411 {
412 1 unsigned char i=0;
413 1 unsigned char dat = 0;
414 1 for (i=8;i>0;i--)
415 1 {
416 2 DQ = 0; // 给脉冲信号
417 2 dat>>=1;
418 2 DQ = 1; // 给脉冲信号
419 2 if(DQ)
420 2 dat|=0x80;
421 2 Delay(4);
422 2 }
423 1 return(dat);
424 1 }
425
426 /******************************************************************************/
427 void WriteOneChar(unsigned char dat)//写一个字节
428 {
429 1 unsigned char i=0;
430 1 for (i=8; i>0; i--)
431 1 {
432 2 DQ = 0;
433 2 DQ = dat&0x01;
434 2 Delay(5);
435 2 DQ = 1;
436 2 dat>>=1;
437 2 }
438 1 }
439
440 /******************************************************************************/
441 unsigned int ReadTemperature(void)//读取温度
442 {
443 1 unsigned char a=0;
444 1 unsigned char b=0;
445 1 unsigned int t=0;
446 1 float tt=0;
447 1 Init_DS18B20();
448 1 WriteOneChar(0xCC); // 跳过读序号列号的操作
449 1 WriteOneChar(0x44); // 启动温度转换
450 1 Init_DS18B20();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -