📄 text1.lst
字号:
190 1
191 1 p_E=1;
192 1 p_E=0;
193 1 }
194
195 /**********************************************
196 设置行值和列值
197 ***********************************************/
198 void lcd_setxy(unsigned char x,unsigned char y)
199 {
200 1 if(y<64)
201 1 {
202 2 //写行地址left
203 2 lcd_busy();
204 2 p_RS=0;
205 2 p_RW=0;
206 2
207 2 p_CSA=1;
208 2 p_CSB=0;
209 2
210 2 DATA=0xb8|x;
211 2
212 2 p_E=1;
213 2 p_E=0;
214 2
215 2 //写列地址left
216 2 lcd_busy();
217 2 p_RS=0;
218 2 p_RW=0;
219 2
220 2 p_CSA=1;
221 2 p_CSB=0;
222 2
223 2 DATA=0x40|y;
224 2
225 2 p_E=1;
226 2 p_E=0;
227 2 }
228 1 else
229 1 {
230 2 //y=y-64;
231 2 //写行地址right
232 2 lcd_busy();
233 2 p_RS=0;
234 2 p_RW=0;
235 2
236 2 p_CSA=0;
237 2 p_CSB=1;
238 2
239 2 DATA=0xb8|x;
240 2
C51 COMPILER V8.08 TEXT1 10/31/2008 13:44:40 PAGE 5
241 2 p_E=1;
242 2 p_E=0;
243 2
244 2 //写列地址right
245 2 lcd_busy();
246 2 p_RS=0;
247 2 p_RW=0;
248 2
249 2 p_CSA=0;
250 2 p_CSB=1;
251 2
252 2 DATA=0x40|y;
253 2
254 2 p_E=1;
255 2 p_E=0;
256 2
257 2 }
258 1 }
259
260 /**********************************************
261 画点i(0-63),j(0-127)
262 ***********************************************/
263 void lcd_writepoint(unsigned char i,unsigned char j)
264 {
265 1 unsigned char x,y,data_t=0x00;
266 1 y=j;
267 1
268 1 if(i>=0&&i<=7)
269 1 {
270 2 x=0;
271 2 data_t=(0x01<<i);
272 2 }
273 1 else if(i>=8&&i<=15)
274 1 {
275 2 x=1;
276 2 data_t=(0x01<<(i-8));
277 2 }
278 1 else if(i>=16&&i<=23)
279 1 {
280 2 x=2;
281 2 data_t=(0x01<<(i-16));
282 2 }
283 1 else if(i>=24&&i<=31)
284 1 {
285 2 x=3;
286 2 data_t=(0x01<<(i-24));
287 2 }
288 1 else if(i>=32&&i<=39)
289 1 {
290 2 x=4;
291 2 data_t=(0x01<<(i-32));
292 2 }
293 1 else if(i>=40&&i<=47)
294 1 {
295 2 x=5;
296 2 data_t=(0x01<<(i-40));
297 2 }
298 1 else if(i>=48&&i<=55)
299 1 {
300 2 x=6;
301 2 data_t=(0x01<<(i-48));
302 2 }
C51 COMPILER V8.08 TEXT1 10/31/2008 13:44:40 PAGE 6
303 1 else if(i>=56&&i<=63)
304 1 {
305 2 x=7;
306 2 data_t=(0x01<<(i-56));
307 2 }
308 1 lcd_busy();
309 1 lcd_setxy(x,y);
310 1
311 1 p_RS=1;
312 1 p_RW=0;
313 1
314 1 if(y<64)
315 1 {
316 2 p_CSA=1;
317 2 p_CSB=0;
318 2 }
319 1 else
320 1 {
321 2 p_CSA=0;
322 2 p_CSB=1;
323 2 }
324 1 DATA=data_t;
325 1
326 1 p_E=1;
327 1 p_E=0;
328 1 }
329
330 /**********************************************
331 写数据,给所有单元都写入0
332 ***********************************************/
333 void lcd_writedata(unsigned char x,unsigned char y)
334 {
335 1 lcd_busy();
336 1 lcd_setxy(x,y); //set x,y address
337 1
338 1 p_RS=1; //write data
339 1 p_RW=0; //write
340 1
341 1 if(y<64)
342 1 {
343 2 p_CSA=1;
344 2 p_CSB=0;
345 2 }
346 1 else
347 1 {
348 2 p_CSA=0;
349 2 p_CSB=1;
350 2 }
351 1 DATA=0x00;
352 1
353 1 p_E=1;
354 1 p_E=0;
355 1 }
356
357
358
359 /**********************************************
360 清屏
361 ***********************************************/
362 void lcd_clear(void)
363 {
364 1 unsigned char i,j;
C51 COMPILER V8.08 TEXT1 10/31/2008 13:44:40 PAGE 7
365 1 for(i=0;i<8;i++)
366 1 for(j=0;j<128;j++)
367 1 lcd_writedata(i,j);
368 1 }
369
370
371
372
373
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 689 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -