📄 lcd1602.lst
字号:
139 1
140 1 lck = 0;
141 1 P1 = 0xff;//LCD_EN = 1
142 1 lck = 1;
143 1
144 1 _nop_();
145 1 _nop_();
146 1 _nop_();
147 1 _nop_();
148 1
149 1 lck = 0;
150 1 P1 = 0xef;//LCD_EN = 0
151 1 lck = 1;
152 1 P2 = 0x00;
153 1 }
154
155 /*******************************************************************/
156 /* */
-
157 /* 设定显示位置 */
-
158 /* */
C51 COMPILER V7.06 LCD1602 03/08/2008 10:51:07 PAGE 4
-
159 /*******************************************************************/
160
161 void lcd_pos(uchar pos)
162 {
163 1 lcd_wcmd(pos|0x80); //数据指针=80+地址变量
164 1 }
165
166 /*******************************************************************/
167 /* */
-
168 /* LCD初始化设定 */
-
169 /* */
-
170 /*******************************************************************/
171
172 void lcd_init()
173 {
174 1 delay(15); //等待LCD电源稳定
175 1 lcd_wcmd(0x38); //16*2显示,5*7点阵,8位数据
176 1 delay(5);
177 1 lcd_wcmd(0x38);
178 1 delay(5);
179 1 lcd_wcmd(0x38);
180 1 delay(5);
181 1
182 1 lcd_wcmd(0x0c); //显示开,关光标
183 1 delay(5);
184 1 lcd_wcmd(0x06); //移动光标
185 1 delay(5);
186 1 lcd_wcmd(0x01); //清除LCD的显示内容
187 1 delay(5);
188 1 }
189
190 /*******************************************************************/
191 /* */
-
192 /* 清屏子程序 */
-
193 /* */
-
194 /*******************************************************************/
195
196 void lcd_clr()
197 {
198 1 lcd_wcmd(0x01); //清除LCD的显示内容
199 1 delay(5);
200 1 }
201
202 /*******************************************************************/
203 /* */
-
204 /* 闪动子程序 */
-
205 /* */
-
206 /*******************************************************************/
207
208 void flash()
209 {
210 1 delay(600); //控制停留时间
C51 COMPILER V7.06 LCD1602 03/08/2008 10:51:07 PAGE 5
211 1 lcd_wcmd(0x08); //关闭显示
212 1 delay(100); //延时
213 1 lcd_wcmd(0x0c); //开显示
214 1 delay(100);
215 1 lcd_wcmd(0x08); //关闭显示
216 1 delay(100); //延时
217 1 lcd_wcmd(0x0c); //开显示
218 1 delay(100);
219 1 lcd_wcmd(0x08); //关闭显示
220 1 delay(100); //延时
221 1 lcd_wcmd(0x0c); //开显示
222 1 delay(100);
223 1 }
224
225 /*******************************************************************/
226 /* */
-
227 /* 主程序 */
-
228 /* */
-
229 /*******************************************************************/
230
231 main()
232 {
233 1 uchar i,j;
234 1 delay(10);
235 1 P1 = 0x20;//"液晶"指示灯亮
236 1 lcd_init(); //初始化LCD
237 1 while(1)
238 1 {
239 2 lcd_clr();
240 2
241 2 lcd_pos(0x10); //设置显示位置为第一行第17列
242 2 i = 0;
243 2
244 2 while(dis1[i] != '\0')
245 2 { //显示字符" Happy "
246 3 lcd_wdat(dis1[i]);
247 3 i++;
248 3 }
249 2
250 2 lcd_pos(0x50); //设置显示位置为第二行第17列
251 2 i = 0;
252 2
253 2 while(dis2[i] != '\0')
254 2 {
255 3 lcd_wdat(dis2[i]); //显示字符" 51kaifa.com "
256 3 i++;
257 3 }
258 2
259 2 for(j=0;j<16;j++) //向左移动16格
260 2 {
261 3 lcd_wcmd(0x18); //字符同时左移一格
262 3 delay(100); //控制移动时间
263 3 }
264 2
265 2 flash(); //闪动三次
266 2
267 2 }
268 1 }
269
C51 COMPILER V7.06 LCD1602 03/08/2008 10:51:07 PAGE 6
270
271 /**********************************结束*****************************/
272
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 374 ----
CONSTANT SIZE = 26 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -