📄 main.lst
字号:
220 1 for(i=0;i<64;i++) write_data(0x80);
221 1
222 1 for(i=0;i<8;i++)
223 1
224 1 {
225 2 Mcs=0;
226 2 Scs=1;
227 2 write_com(Page_Add+i);
228 2 write_com(Col_Add+63);
229 2 write_data(0xff);
230 2 Mcs=1;
231 2 Scs=0;
232 2 write_com(Page_Add+i);
233 2 write_com(Col_Add+0);
234 2 write_data(0xff);
235 2 }
236 1 }
237
238
239
240 /*------------------清除内存---------------*/
241 void Clr_Scr()
C51 COMPILER V7.50 MAIN 12/30/2006 13:52:05 PAGE 5
242 {
243 1 unsigned char j,k;
244 1 Mcs=1;Scs=1;
245 1 write_com(Page_Add+0);
246 1 write_com(Col_Add+0);
247 1
248 1 for(k=0;k<8;k++){
249 2 write_com(Page_Add+k);
250 2 for(j=0;j<64;j++)write_data(0x00);
251 2 }
252 1 }
253
254 /*------------------显示12864图片---------------------------*/
255 void Disp_Img(unsigned char code *img)
256 {
257 1 unsigned char j,k;
258 1 for(k=0;k<8;k++){
259 2 Mcs=1;Scs=0;delay(10);
260 2 write_com(Page_Add+k);
261 2 write_com(Col_Add+0);
262 2 for(j=0;j<64;j++) write_data(img[k*128+j]);
263 2 Mcs=0;Scs=1; delay(10);
264 2 write_com(Page_Add+k);
265 2 write_com(Col_Add+0);
266 2 for(j=64;j<128;j++) write_data(img[k*128+j]);
267 2 }
268 1 }
269
270 /*------------------显示横---------------------------*/
271 void Disp_H_Line()
272 {
273 1 unsigned char i,j;
274 1 Mcs=1;
275 1 Scs=1;
276 1 write_com(Disp_On);
277 1 write_com(Page_Add);
278 1 write_com(Start_Line);
279 1 write_com(Col_Add);
280 1
281 1 for(j=0;j<8;j++)
282 1 {
283 2 write_com(Page_Add+j);
284 2 write_com(Col_Add+0);
285 2 // write_com(Start_Line+0);
286 2 for(i=0;i<64;i++)write_data(0x55);
287 2 }
288 1 }
289
290
291 /*------------------显示列-----------------------------*/
292 void Disp_V_Line()
293 {
294 1 unsigned char i,j;
295 1 write_com(Disp_On);
296 1 write_com(Page_Add);
297 1 write_com(Start_Line);
298 1 write_com(Col_Add);
299 1
300 1 for(j=0;j<8;j++)
301 1 {
302 2 write_com(Page_Add+j);
303 2 write_com(Col_Add+0);
C51 COMPILER V7.50 MAIN 12/30/2006 13:52:05 PAGE 6
304 2 write_com(Start_Line+0);
305 2 for(i=0;i<32;i++)
306 2 {
307 3 write_data(0x00);
308 3 write_data(0xff);
309 3 }
310 2
311 2 }
312 1 }
313
314 /*------------------棋盘-----------------------------*/
315 void Disp_Cross_Line(unsigned char mode)
316 {
317 1 unsigned char i,j;
318 1 unsigned char data1,data2;
319 1 if(mode==0) {data1=0xaa;data2=0x55;}
320 1 else if(mode==1) {data1=0x55;data2=0xaa;}
321 1 else return;
322 1 Mcs=1;Scs=1;
323 1 write_com(Disp_On);
324 1 write_com(Page_Add);
325 1 write_com(Start_Line);
326 1 write_com(Col_Add);
327 1 for(j=0;j<8;j++)
328 1 {
329 2 write_com(Page_Add+j);
330 2 write_com(Col_Add+0);
331 2 write_com(Start_Line+0);
332 2 for(i=0;i<32;i++){
333 3 write_data(data1);
334 3 write_data(data2);
335 3 }
336 2 }
337 1 }
338
339
340 /*---------------------指定位置显示汉字16*16-----------------------*/
341
342 void hz_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
343 {
344 1 unsigned char j=0,i=0;
345 1 for(j=0;j<2;j++){
346 2 write_com(Page_Add+pag+j);
347 2 write_com(Col_Add+col);
348 2 for(i=0;i<16;i++) write_data(hzk[16*j+i]);
349 2 }
350 1 }
351
352
353 /*------------------初始化LCD屏--------------------------*/
354 void init_lcd()
355 {
356 1 Lcd_Rst=0;//P3.2 set 0
357 1 delay(100);//sleep
358 1 Lcd_Rst=1;//set 1
359 1 delay(100);//sleep
360 1
361 1 Mcs=1;
362 1 Scs=1;
363 1
364 1 delay(100);
365 1 write_com(Disp_Off);
C51 COMPILER V7.50 MAIN 12/30/2006 13:52:05 PAGE 7
366 1 write_com(Page_Add+0);
367 1 write_com(Start_Line+0);
368 1 write_com(Col_Add+0);
369 1 write_com(Disp_On);
370 1 }
371
372
373 /*------------------------------信息显示------------------------*/
374 void Msg(int flg)
375 {
376 1 Clr_Scr();
377 1 frame();
378 1 if(flg==0){ //显示“测试开始”
379 2 Mcs=1;Scs=0;
380 2 hz_disp16(3,32,ce);
381 2 delay(2000);
382 2 hz_disp16(3,48,shi);
383 2 delay(2000);
384 2 Mcs=0;Scs=1;
385 2 hz_disp16(3,0,kai);
386 2 delay(2000);
387 2 hz_disp16(3,16,shi3);
388 2 delay(2000);
389 2 }
390 1 else if(flg==1){ //显示“测试完毕”
391 2 Mcs=1;Scs=0;
392 2 hz_disp16(3,32,ce);
393 2 hz_disp16(3,48,shi);
394 2 Mcs=0;Scs=1;
395 2 hz_disp16(3,0,wan);
396 2 hz_disp16(3,16,bi);
397 2 }
398 1 }
399
400
401 /*--------------------------------键盘扫描-------------------------*/
402 void Key_Scan()
403 {
404 1 while(Test_Key);
405 1 while(~Test_Key);
406 1 }
407
408
409 /*--------------------主程序---------------------------------*/
410
411
412 main()
413 {
414 1 unsigned char i=0;
415 1 while(1){
416 2 // Key_Scan();
417 2 init_lcd();
418 2 Disp_Img(FirstPage);
419 2 delay(10000);
420 2 // Key_Scan();
421 2 Msg(0);
422 2 delay(10000);
423 2 Disp_H_Line();
424 2 delay(10000);
425 2 Disp_V_Line();
426 2 delay(10000);
427 2 Msg(1);
C51 COMPILER V7.50 MAIN 12/30/2006 13:52:05 PAGE 8
428 2 delay(10000);
429 2 }
430 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 783 ----
CONSTANT SIZE = 1216 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 17
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -