📄 lcd1.lst
字号:
245 4 }
246 3 }
247 2 else
248 2 {
249 3 if((fontsize == FONTSIZE_8x16) ||
250 3 (fontsize == FONTSIZE_HYPER && r1 != 1 && *str <= 0x80))
251 3 {
252 4 if(lcd_putc_8x16(x, y, *str++))
253 4 {
254 5 x += 8;
255 5 n++;
256 5 }
257 4 continue;
258 4 }
259 3 r1 = api_s8GetFont16x16BMP(*str++, FALSE);
260 3 if(r1 == 0)
261 3 {
262 4 if(lcd_putc_16x16(x, y, 0))
263 4 {
264 5 x += 16;
265 5 n += 2;
266 5 }
267 4 }
268 3 }
269 2 }
270 1 }
271
272 void lcd_puts_unicode(UINT8 x, UINT8 y, UINT16 *str, UINT8 fontsize)
273 {
274 1 UINT8 data n;
275 1 n = 0;
276 1 while(*str != '\0')
277 1 {
278 2 if(n >= lcd_max_str)
279 2 return;
280 2
281 2 if(fontsize == FONTSIZE_8x8)
282 2 {
283 3 if(lcd_putc_8x8(x, y, *str++))
284 3 {
285 4 x += 8;
286 4 n++;
287 4 }
288 3 }
289 2 else {
290 3 if((fontsize == FONTSIZE_8x16) ||
291 3 (fontsize == FONTSIZE_HYPER && *str <= 0x80))
292 3 {
293 4 if(lcd_putc_8x16(x, y, *str++))
294 4 {
295 5 x += 8;
296 5 n++;
297 5 }
298 4 continue;
299 4 }
300 3 if(lcd_putc_16x16(x, y, *str++))
301 3 {
C51 COMPILER V7.50 LCD1 08/18/2008 14:21:06 PAGE 6
302 4 x += 16;
303 4 n += 2;
304 4 }
305 3 }
306 2 }
307 1 }
308
309 void lcd_clear(void)
310 {
311 1 UINT8 i;
312 1
313 1 lcd_set_rw_area(0, 0, XRES, YRES);
314 1
315 1 memset(pixel_buf, 0x0, sizeof(pixel_buf));
316 1
317 1 for(i = 0; i < YRES; i++)
318 1 lcd_put_data((UINT16)pixel_buf, XRES << 1);
319 1 }
320 void lcd_clear_word(void)
321 {
322 1 UINT8 i;
323 1
324 1 lcd_set_rw_area(50, 74, 54, 80);
325 1
326 1 memset(pixel_buf, 0xF77F, sizeof(pixel_buf));
327 1
328 1 for(i = 96; i < 102; i++)
329 1 lcd_put_data((UINT16)pixel_buf, XRES << 1);
330 1 }
331
332 #if 0
void lcd_set_brightness(UINT8 v)
{
#if 1
api_vLcdPinSelect();
writec(0x2a);
writec(0xce+v); //90 0xde c8
delay(20);
writec(0x2b);
writec(0x44+v); //90 0x54 c8
api_vLcdPinRecover();
#else
api_vLcdPinSelect();
writec(0x2a);
writec(v*8); //90 0xde c8
delay(20);
writec(0x2b);
writec(v*8); //90 0x54 c8
api_vLcdPinRecover();
#endif
}
#endif
356
357 void lcd_init(void)
358 {
359 1 // Print("LCD Init\n");
360 1 #if 0
api_vLcdInit(LCM_INTERFACE_6800);
api_vLcdPinSelect();
//
C51 COMPILER V7.50 LCD1 08/18/2008 14:21:06 PAGE 7
bLCD_PIN_RESET = 0;
delay(100);
bLCD_PIN_RESET = 1;
CDIR = 0;
delay(100);
//-------------------------------------------------
writec(0x2C);
delay(20);
//-------------------------------------------------
writec(0x02);
writec(0x01);
delay(20);
//-------------------------------------------------
writec(0x26);
writec(0x01);
delay(20);
writec(0x26);
writec(0x09);
delay(20);
writec(0x26);
writec(0x0b);
delay(20);
writec(0x26);
writec(0x0f);
delay(20);
//------------------------------------------------
writec(0x10);
writec(0x23); // 21,25
delay(5);
//-------------------------------------------------
writec(0x20);
writec(0x03); //20
delay(20);
//-------------------------------------------------
writec(0x22);
writec(0x11);
delay(5);
//------------------------------------------------
writec(0x24);
writec(0x11); //00
delay(20);
//-------------------------------------------------
writec(0x28);
writec(0x01);
delay(20);
//------------------------------------------------
writec(0x2a);
writec(0xc8); //90 0xde
delay(20);
//------------------------------------------------
writec(0x2b);
writec(0xc8); //90 0x54
delay(10);
//------------------------------------------------
writec(0x30);
writec(0x09); //0b
delay(20);
//------------------------------------------------
writec(0x32);
writec(0x0E);
C51 COMPILER V7.50 LCD1 08/18/2008 14:21:06 PAGE 8
delay(20);
//-----------------------------------------------
writec(0x34);
writec(0x08);//0d
delay(20);
//-------------------------------------------------
writec(0x36);
writec(0x00);
delay(20);
//---------显示模式----------
writec(0x40);
writec(0x00);//显示模式08和 00相反 竖屏
writec(0x10);
writec(0x22);
delay(20);
//------------------------------------------------
writec(0x43);
writec(0x00);
writec(0x7F);
delay(20);
//------------------------------------------------
writec(0x42);
writec(0x00);
writec(0x9F);
delay(20);
//------------------------------------------------
writec(0x53);
writec(0x00);
delay(20);
//-------------------------------------------------
writec(0xEB);
delay(20);
//-------------------------------------------------
writec(0x45);
writec(0x00);
//-------------------------------------------------
writec(0x55);
writec(0x00);
delay(20);
//------------------------------------------------
writec(0x5A);
writec(0x00);
delay(20);
//------------------------------------------------
writec(0x51);
delay(40);
api_vLcdPinRecover();
#endif
482 1 }
483
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1360 ----
C51 COMPILER V7.50 LCD1 08/18/2008 14:21:06 PAGE 9
CONSTANT SIZE = ---- ----
XDATA SIZE = 773 38
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
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 + -