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