📄 lcd.lst
字号:
221 write_data_left(*p);
222 p++;
223 }
224 break;
225 case 1: //中间屏显示
226 set_page(y/8); //显示位图的上半部
227 set_col(x%64);
228 for(i=0;i<width;i++)
229 {
230 wait_ready_middle();
231 write_data_middle(*p);
232 p++;
233 }
234 set_page(y/8+1);//显示位图的下半部
235 set_col(x%64);
236 for(i=0;i<width;i++)
237 {
238 wait_ready_middle();
239 write_data_middle(*p);
240 p++;
241 }
C51 COMPILER V7.20 LCD 01/08/2007 00:55:49 PAGE 5
242 break;
243 default: //右侧屏显示
244 set_page(y/8); //显示位图的上半部
245 set_col(x%64);
246 for(i=0;i<width;i++)
247 {
248 wait_ready_right();
249 write_data_right(*p);
250 p++;
251 }
252 set_page(y/8+1);//显示位图的下半部
253 set_col(x%64);
254 for(i=0;i<width;i++)
255 {
256 wait_ready_right();
257 write_data_right(*p);
258 p++;
259 }
260 }
261 return;
262 }*/
263 void disp_bmp(unsigned char x,unsigned char y,unsigned char width,unsigned char *bmp)
264 {
265 1 unsigned char i,k,*p;
266 1 k=x;
267 1 p=bmp;
268 1 set_line(0);
269 1 for(i=0;i<width;i++) //显示位图的上半部
270 1 {
271 2 switch(k/64)
272 2 {
273 3 case 0: //左侧屏显示
274 3 set_page(y/8);
275 3 set_col(k%64);
276 3 wait_ready_left();
277 3 write_data_left(*p);
278 3 k++;
279 3 p++;
280 3 break;
281 3 case 1: //中间屏显示
282 3 set_page(y/8);
283 3 set_col(k%64);
284 3 wait_ready_middle();
285 3 write_data_middle(*p);
286 3 k++;
287 3 p++;
288 3 break;
289 3 default: //右侧屏显示
290 3 set_page(y/8);
291 3 set_col(k%64);
292 3 wait_ready_right();
293 3 write_data_right(*p);
294 3 k++;
295 3 p++;
296 3 }
297 2 }
298 1 k=x;
299 1 for(i=0;i<width;i++) //显示位图的下半部
300 1 {
301 2 switch(k/64)
302 2 {
303 3 case 0: //左侧屏显示
C51 COMPILER V7.20 LCD 01/08/2007 00:55:49 PAGE 6
304 3 set_page(y/8+1);
305 3 set_col(k%64);
306 3 wait_ready_left();
307 3 write_data_left(*p);
308 3 k++;
309 3 p++;
310 3 break;
311 3 case 1: //中间屏显示
312 3 set_page(y/8+1);
313 3 set_col(k%64);
314 3 wait_ready_middle();
315 3 write_data_middle(*p);
316 3 k++;
317 3 p++;
318 3 break;
319 3 default: //右侧屏显示
320 3 set_page(y/8+1);
321 3 set_col(k%64);
322 3 wait_ready_right();
323 3 write_data_right(*p);
324 3 k++;
325 3 p++;
326 3 }
327 2 }
328 1 }
329
330 /*****************************************************************
331 *函数:disp_one_chinese()
332 *功能:在指定位置显示一个汉字字符
333 *形式参数:x-字符横坐标;y-字符纵坐标;chinese-汉字代码指针;
334 *返回值:无
335 ******************************************************************/
336 void disp_one_chinese(unsigned char x,unsigned char y,unsigned char *chinese)
337 {
338 1 disp_bmp(x,y,16,chinese);
339 1 return;
340 1 }
341
342 /*****************************************************************
343 *函数:disp_one_number()
344 *功能:在指定位置显示一个数字字符
345 *形式参数:x-字符横坐标;y-字符纵坐标;number-数字代码指针;
346 *返回值:无
347 ******************************************************************/
348 void disp_one_number(unsigned char x,unsigned char y,unsigned char *number)
349 {
350 1 disp_bmp(x,y,8,number);
351 1 return;
352 1 }
353
354 /*****************************************************************
355 *函数:disp_multi_chinese()
356 *功能:显示多个汉字
357 *形式参数:x-字符串启始横坐标;y-字符串启始纵坐标;str-汉字信息指针;
358 *返回值:无
359 ******************************************************************/
360 void disp_multi_chinese(unsigned char x,unsigned char y,unsigned char *str)
361 {
362 1 unsigned char i,*p;
363 1 i=x;
364 1 p=str;
365 1 while(1)
C51 COMPILER V7.20 LCD 01/08/2007 00:55:49 PAGE 7
366 1 {
367 2 if(*p==-1)break;
368 2 disp_one_chinese(i,y,chinese_table+(*p)*32);
369 2 p++;
370 2 i+=16;
371 2 }
372 1 return;
373 1 }
374
375 /*****************************************************************
376 *函数:disp_multi_number()
377 *功能:显示多位数字信息
378 *形式参数:x-数字串启始横坐标;y-数字串启始纵坐标;n-数字串位数;number-数字值;
379 *返回值:无
380 ******************************************************************/
381 void disp_multi_number(unsigned char x,unsigned char y,unsigned char n,unsigned int number)
382 {
383 1 unsigned char a[3],i,k;
384 1 unsigned int j;
385 1 i=x;
386 1 j=number;
387 1 a[2]=j/100;j=j%100;
388 1 a[1]=j/10;
389 1 a[0]=j%10;
390 1 for(k=n;k>0;k--)
391 1 {
392 2 disp_one_number(i,y,number_table+a[k-1]*16);
393 2 i+=8;
394 2 }
395 1 return;
396 1 }
397
398 /*****************************************************************
399 *函数:disp_one_scr_chinese()
400 *功能:显示一屏汉字信息
401 *形式参数:scr-界面代码;
402 *返回值:无
403 ******************************************************************/
404 void disp_one_scr_chinese(unsigned char scr)
405 {
406 1 ;
407 1 }
*** WARNING C280 IN LINE 404 OF LCD\LCD.C: 'scr': unreferenced local variable
408
409
410 //////////////////////////////////////
411 extern void aaa(void)
412 {
413 1 disp_multi_number(63,16,3,73);
414 1 disp_multi_number(123,16,3,124);
415 1 disp_multi_number(1,0,3,568);
416 1 disp_multi_number(123,0,2,9);
417 1
418 1
419 1 //disp_one_chinese(33,16,chinese_table+32*1);
420 1 //disp_one_chinese(17,32,chinese_table+32*2);
421 1 //disp_one_chinese(3,48,chinese_table+32*3);
422 1
423 1 //disp_one_chinese(121,0,chinese_table);
424 1 //disp_one_chinese(133,16,chinese_table+32*1);
425 1 //disp_one_chinese(171,32,chinese_table+32*2);
426 1 //disp_one_chinese(123,48,chinese_table+32*3);
C51 COMPILER V7.20 LCD 01/08/2007 00:55:49 PAGE 8
427 1
428 1 }
429
430
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 933 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 3844 28
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -