📄 ydlcd.lst
字号:
C51 COMPILER V7.10 YDLCD 03/29/2009 20:15:57 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE YDLCD
OBJECT MODULE PLACED IN ydLCD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ydLCD.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 /********************************************************************************
3
4 * 描述: LCD1602 移动显示 *
5 * 显示方式: *
6 * 1、LCD第一行显示: BIG BIG WORLD *
7 * LCD第二行显示:I LOVE PUZHONG *
8 * 2、先将两行字符写入DDRAM中,然后从右至左逐字移出显示。 *
9 * 3、在指定位置停留1.6秒后,闪烁2次,清屏。 *
10 * 4、反复循环上述显示方式。 *
-
11 ********************************************************************************/
12
13 #include <reg51.h>
14 #include <intrins.h>
15
16 #define uchar unsigned char
17 #define uint unsigned int
18
19 sbit LCD_RS = P2^6;
20 sbit LCD_RW = P2^5;
21 sbit LCD_EN = P2^7;
22
23 uchar code dis1[] = {"BIG BIG WORLD"};
24 uchar code dis2[] = {"I LOVE PUZHONG"};
25
26
27 /*******************************************************************/
28 /*
29 /* 延时子程序
30 /*
31 /*******************************************************************/
32
33 void delay(int ms)
34 {
35 1 int i;
36 1 while(ms--)
37 1 {
38 2 for(i = 0; i< 250; i++)
39 2 {
40 3 _nop_();
41 3 _nop_();
42 3 _nop_();
43 3 _nop_();
44 3 }
45 2 }
46 1 }
47
48 /*******************************************************************/
49 /*
50 /*检查LCD忙状态
51 /*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。
52 /*
53 /*******************************************************************/
54
C51 COMPILER V7.10 YDLCD 03/29/2009 20:15:57 PAGE 2
55 bit lcd_busy()
56 {
57 1 bit result;
58 1 LCD_RS = 0;
59 1 LCD_RW = 1;
60 1 LCD_EN = 1;
61 1 _nop_();
62 1 _nop_();
63 1 _nop_();
64 1 _nop_();
65 1 result = (bit)(P0&0x80);
66 1 LCD_EN = 0;
67 1 return result;
68 1 }
69
70 /*******************************************************************/
71 /*
72 /*写指令数据到LCD
73 /*RS=L,RW=L,E=高脉冲,D0-D7=指令码。
74 /*
75 /*******************************************************************/
76
77 void lcd_wcmd(uchar cmd)
78 {
79 1 while(lcd_busy());
80 1 LCD_RS = 0;
81 1 LCD_RW = 0;
82 1 LCD_EN = 0;
83 1 _nop_();
84 1 _nop_();
85 1 P0 = cmd;
86 1 _nop_();
87 1 _nop_();
88 1 _nop_();
89 1 _nop_();
90 1 LCD_EN = 1;
91 1 _nop_();
92 1 _nop_();
93 1 _nop_();
94 1 _nop_();
95 1 LCD_EN = 0;
96 1 }
97
98 /*******************************************************************/
99 /*
100 /*写显示数据到LCD
101 /*RS=H,RW=L,E=高脉冲,D0-D7=数据。
102 /*
103 /*******************************************************************/
104
105 void lcd_wdat(uchar dat)
106 {
107 1 while(lcd_busy());
108 1 LCD_RS = 1;
109 1 LCD_RW = 0;
110 1 LCD_EN = 0;
111 1 P0 = dat;
112 1 _nop_();
113 1 _nop_();
114 1 _nop_();
115 1 _nop_();
116 1 LCD_EN = 1;
C51 COMPILER V7.10 YDLCD 03/29/2009 20:15:57 PAGE 3
117 1 _nop_();
118 1 _nop_();
119 1 _nop_();
120 1 _nop_();
121 1 LCD_EN = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -