4x8c.lst
来自「单片机开发板源程序适合初学者 第三部分 LCD_中文」· LST 代码 · 共 426 行 · 第 1/2 页
LST
426 行
199 3 wr_lcd (dat,img[j*16+i*2+1]);
200 3 }
201 2 }
202 1 for(j=32;j<64;j++)
203 1 {
204 2 for(i=0;i<8;i++)
205 2 {
206 3 wr_lcd (comm,0x34);
207 3 wr_lcd (comm,y+j-32);
208 3 wr_lcd (comm,x2+i);
209 3 wr_lcd (comm,0x30);
210 3 wr_lcd (dat,img[j*16+i*2]);
211 3 wr_lcd (dat,img[j*16+i*2+1]);
212 3 }
213 2 }
214 1 wr_lcd (comm,0x36);
215 1 }
216 /*-------------下半屏显示图形--------------*/
217 void img_disp1 (uchar code *img)
218 {
219 1 uchar i,j;
220 1 for(j=0;j<32;j++)
221 1 {
222 2 for(i=0;i<8;i++)
223 2 {
224 3 wr_lcd (comm,0x34);
225 3 wr_lcd (comm,y+j);
226 3 wr_lcd (comm,x2+i);
227 3 wr_lcd (comm,0x30);
228 3 wr_lcd (dat,img[j*16+i*2]);
229 3 wr_lcd (dat,img[j*16+i*2+1]);
230 3 }
231 2 }
232 1 wr_lcd (comm,0x36);
233 1 }
234 /*--------------显示点阵----------------*/
235 void lat_disp (uchar data1,uchar data2)
236 {
237 1 uchar i,j,k,x;
238 1 x=x1;
239 1 for(k=0;k<2;k++)
240 1 {
241 2 for(j=0;j<16;j++)
C51 COMPILER V7.06 4X8C 12/29/2007 13:45:11 PAGE 5
242 2 {
243 3 for(i=0;i<8;i++)
244 3 {
245 4 wr_lcd (comm,0x34);
246 4 wr_lcd (comm,y+j*2);
247 4 wr_lcd (comm,x+i);
248 4 wr_lcd (comm,0x30);
249 4 wr_lcd (dat,data1);
250 4 wr_lcd (dat,data1);
251 4 }
252 3 for(i=0;i<8;i++)
253 3 {
254 4 wr_lcd (comm,0x34);
255 4 wr_lcd (comm,y+j*2+1);
256 4 wr_lcd (comm,x+i);
257 4 wr_lcd (comm,0x30);
258 4 wr_lcd (dat,data2);
259 4 wr_lcd (dat,data2);
260 4 }
261 3 }
262 2 x=x2;
263 2 }
264 1 wr_lcd (comm,0x36);
265 1 }
266 /*-----------------------------------------------*/
267 //当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl.
268 void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
269 {
270 1 uchar i,j;
271 1 for(j=0;j<yl;j++)
272 1 {
273 2 for(i=0;i<xl;i++)
274 2 {
275 3 wr_lcd (comm,0x34);
276 3 wr_lcd (comm,y0+j);
277 3 wr_lcd (comm,x0+i);
278 3 wr_lcd (comm,0x30);
279 3 wr_lcd (dat,data1);
280 3 wr_lcd (dat,data2);
281 3 }
282 2 }
283 1 wr_lcd (comm,0x36);
284 1 }
285 /*--------------清DDRAM------------------*/
286 void clrram (void)
287 {
288 1 wr_lcd (comm,0x30);
289 1 wr_lcd (comm,0x01);
290 1 delay (180);
291 1 }
292 /*---------------------------------------*/
293 void wr_lcd (uchar dat_comm,uchar content)
294 {
295 1 uchar a,i,j;
296 1 delay (50);
297 1 a=content;
298 1 cs=1;
299 1 SomeNOP();
300 1 sclk=0;
301 1 SomeNOP();
302 1 std=1;
303 1 SomeNOP();
C51 COMPILER V7.06 4X8C 12/29/2007 13:45:11 PAGE 6
304 1 for(i=0;i<5;i++)
305 1 {
306 2 sclk=1;
307 2 SomeNOP();
308 2 sclk=0;
309 2 }
310 1 std=0;
311 1 SomeNOP();
312 1 sclk=1;
313 1 SomeNOP();
314 1 sclk=0;
315 1 SomeNOP();
316 1 if(dat_comm)
317 1 std=1; //data
318 1 else
319 1 std=0; //command
320 1 SomeNOP();
321 1 sclk=1;
322 1 SomeNOP();
323 1 sclk=0;
324 1 SomeNOP();
325 1 std=0;
326 1 SomeNOP();
327 1 sclk=1;
328 1 SomeNOP();
329 1 sclk=0;
330 1 SomeNOP();
331 1 for(j=0;j<2;j++)
332 1 {
333 2 for(i=0;i<4;i++)
334 2 {
335 3 a=a<<1;
336 3 std=CY;
337 3 SomeNOP();
338 3 sclk=1;
339 3 SomeNOP();
340 3 sclk=0;
341 3 SomeNOP();
342 3 }
343 2 std=0;
344 2 SomeNOP();
345 2 for(i=0;i<4;i++)
346 2 {
347 3 sclk=1;
348 3 SomeNOP();
349 3 sclk=0;
350 3 SomeNOP();
351 3 }
352 2 }
353 1 }
354 /*-----------------------------------*/
355 void delay (uint us) //delay time
356 {
357 1 while(us--);
358 1 }
359 void delay1 (uint ms)
360 {
361 1 uint i,j;
362 1 for(i=0;i<ms;i++)
363 1 for(j=0;j<15;j++)
364 1 delay(1);
365 1 }
C51 COMPILER V7.06 4X8C 12/29/2007 13:45:11 PAGE 7
366 /*------------------主程序--------------------*/
367 void main ()
368 {
369 1 SP=0x5f;
370 1 init_lcd ();
371 1 while (1)
372 1 {
373 2 lat_disp (0x00,0x00);
374 2 chn_disp (tab1);
375 2 con_disp (0xff,0xff,0x8c,0x80,2,16);
376 2 delay1 (8000);
377 2 clrram();
378 2 lat_disp (0xcc,0xcc);
379 2 delay1 (8000);
380 2 lat_disp (0x00,0x00);
381 2 chn_disp1 (tab31);
382 2 img_disp1 (tab32);
383 2 delay1 (8000);
384 2 clrram();
385 2 lat_disp (0xff,0x00);
386 2 delay1 (8000);
387 2 img_disp (tab5);
388 2 delay1 (8000);
389 2 }
390 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1173 ----
CONSTANT SIZE = 1634 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 34
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?