📄 lcd.lst
字号:
231 2 addr=0x1805;
232 2 }
233 1 else
234 1 {
235 2 addr=0x980b;
236 2 tp=addr;
237 2 addr=0x1809;
238 2 }
239 1 readdata=*tp;
240 1 return readdata;
241 1 }
C51 COMPILER V7.02b LCD 10/31/2005 16:30:55 PAGE 5
242
243 /***********************************************************************************
244 * 函数名称:dis_start;
245 *
246 * 函数功能描述:显示开机画面;
247 *
248 * 输入参数:none;
249 *
250 * 返回数据:none;
251 *
252 * 注意: none;
253 ************************************************************************************/
254
255 void dis_start(void)
256 {
257 1 unsigned char x,y;
258 1 for(y=0;y<8;y++)
259 1 {
260 2 for(x=0;x<128;x++)
261 2 {
262 3 _nop_();_nop_();
263 3 lcd_wrda(x,y,0xAA); _nop_();_nop_();
264 3 lcd_wrda(x+1,y,0x55);_nop_();_nop_();
265 3 x+=1;
266 3 }
267 2 }
268 1 }
269
270 /***********************************************************************************
271 * 函数名称:dis_clr;
272 *
273 * 函数功能描述: 清屏;
274 *
275 * 输入参数:none;
276 *
277 * 返回数据:none;
278 *
279 * 注意: none;
280 ************************************************************************************/
281
282 void dis_clr(void)
283 {
284 1 unsigned char x,y;
285 1 for(y=0;y<8;y++)
286 1 {
287 2 for(x=0;x<128;x++)
288 2 lcd_wrda(x,y,0x00);
289 2 }
290 1 }
291
292 /***********************************************************************************
293 * 函数名称:dis_full;
294 *
295 * 函数功能描述: 写满屏;
296 *
297 * 输入参数:none;
298 *
299 * 返回数据:none;
300 *
301 * 注意: none;
302 ************************************************************************************/
303
C51 COMPILER V7.02b LCD 10/31/2005 16:30:55 PAGE 6
304 void dis_full(void)
305 {
306 1 unsigned char x,y;
307 1 for(y=0;y<8;y++)
308 1 {
309 2 for(x=0;x<128;x++)
310 2 lcd_wrda(x,y,0xff);
311 2 }
312 1 }
313
314 /***********************************************************************************
315 * 函数名称:LCD_Draw_dot;
316 *
317 * 函数功能描述:画点(x,y);
318 *
319 * 输入参数:BYTE类型坐标x,y; bool类型标识flag;
320 *
321 * 返回数据:none;
322 *
323 * 注意: none;
324 ************************************************************************************/
325
326 void LCD_Draw_dot(BYTE x,BYTE y,bool flag)
327 {
328 1 R_BYTE temp,bit_x;
329 1
330 1 bit_x=7-y%8;
331 1
332 1 y=7-y/8;
333 1
334 1
335 1 temp=lcd_rdda(x,y);
336 1 if (flag)
337 1 temp|=(1<<bit_x);
338 1 else
339 1 temp&=~(1<<bit_x);
340 1
341 1 lcd_wrda(x,y,temp);
342 1 }
343
344 /***********************************************************************************
345 * 函数名称:LCD_Draw_byte;
346 *
347 * 函数功能描述:向LCD写一个字节数据;
348 *
349 * 输入参数:BYTE类型坐标x,y;BYTE类型字节数据value;
350 *
351 * 返回数据:none;
352 *
353 * 注意: none;
354 ************************************************************************************/
355
356 void LCD_Draw_byte(BYTE x,y, BYTE value)
357 {
358 1 R_BYTE temp,bit_x;
359 1
360 1 bit_x=y%8;
361 1 y=y/8;
362 1
363 1 if (bit_x==0)
364 1 lcd_wrda(x,y,value);
365 1 else
C51 COMPILER V7.02b LCD 10/31/2005 16:30:55 PAGE 7
366 1 {
367 2 temp=lcd_rdda(x,y);
368 2
369 2 temp&=(0xff>>(8-bit_x));
370 2 temp|=(value<<bit_x);
371 2 lcd_wrda(x,y,temp);
372 2
373 2 temp=lcd_rdda(x,y+1);
374 2 temp&=(0xff<<bit_x);
375 2 temp|=(value>>(8-bit_x));
376 2 lcd_wrda(x,y+1,temp);
377 2 }
378 1 }
379
380 /***********************************************************************************
381 * 函数名称:LCD_Disp_Word;
382 *
383 * 函数功能描述:向LCD写一组数据,显示黑字符;
384 *
385 * 输入参数:BYTE类型写入起始坐标x,y; BYTE类型写入数据code区指针p;
386 * BYTE类型占用空间line*8行,length列
387 *
388 * 返回数据:none;
389 *
390 * 注意: none;
391 ************************************************************************************/
392
393 void LCD_Disp_Word(BYTE x,y,BYTE code *p,BYTE line,length)
394 {
395 1 R_BYTE i,j;
396 1
397 1 y+=(4<<line);
398 1 if (y>64)
399 1 y=64;
400 1 y=64-y;
401 1
402 1 for (i=0; i<line; i++)
403 1 for (j=0; j<length; j++)
404 1 LCD_Draw_byte(x+j,y+i*8, *p++);
405 1 }
406
407 /***********************************************************************************
408 * 函数名称: LCD_Disp_Word_F;
409 *
410 * 函数功能描述:向LCD写一组数据,显示白字符;
411 *
412 * 输入参数:BYTE类型写入起始坐标x,y; BYTE类型写入数据code区指针p;
413 * BYTE类型占用空间line*8行,length列
414 *
415 * 返回数据:none;
416 *
417 * 注意: none;
418 ************************************************************************************/
419
420 void LCD_Disp_Word_F(BYTE x,y,BYTE code *p,BYTE line,length)
421 {
422 1 R_BYTE i,j;
423 1
424 1 y+=(4<<line);
425 1 if (y>64)
426 1 y=64;
427 1 y=64-y;
C51 COMPILER V7.02b LCD 10/31/2005 16:30:55 PAGE 8
428 1
429 1 for (i=0; i<line; i++)
430 1 for (j=0; j<length; j++)
431 1 LCD_Draw_byte(x+j,y+i*8, ~(*p++));
432 1
433 1 }
434
435 /***********************************************************************************
436 * 函数名称: LCD_Disp_Time;
437 *
438 * 函数功能描述:向LCD写一组数据,显示时间;
439 *
440 * 输入参数:BYTE类型写入起始坐标x,y; BYTE类型写入数据code区指针p;
441 * BYTE类型占用空间line*8行,length列
442 *
443 * 返回数据:none;
444 *
445 * 注意: none;
446 ************************************************************************************/
447
448 void LCD_Disp_Time(BYTE x,y,BYTE code *p,BYTE line,length)
449 {
450 1 R_BYTE i,j;
451 1
452 1 y+=(4<<line);
453 1 if (y>64)
454 1 y=64;
455 1 y=64-y;
456 1
457 1 for (i=0; i<line; i++)
458 1 for (j=0; j<length; j++)
459 1 LCD_Draw_byte(x+j,y+i*8, *p++);
460 1 }
461
462 /***********************************************************************************
463 * 函数名称: LCD_Disp_Flash_Word;
464 *
465 * 函数功能描述:向LCD写一组数据,显示黑字符;
466 *
467 * 输入参数:BYTE类型写入起始坐标x,y; BYTE类型写入数据xdata区指针p
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -