📄 lcd-char.lst
字号:
221: 0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x00,
222:
223: /*-- 文字: + --49*/
224: /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
225: 0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
226:
227: /*-- 文字: - --50*/
228: /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
229: 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x00
230: };
231:
232: const unsigned char hanzi[]=
233: {
234: /*-- 文字: 宁 --*/
235: /*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
236: 0x00,0x90,0x8C,0x84,0x84,0x84,0x85,0x86,0x84,0x84,0x84,0x84,0x94,0x8E,0x04,0x00,
237: 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
238:
239: /*-- 文字: 波 --*/
240: /*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
241: 0x10,0x60,0x01,0xE6,0x00,0xF8,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x18,0x08,0x00,
242: 0x04,0x04,0xFF,0x40,0x30,0x8F,0x80,0x41,0x26,0x18,0x18,0x26,0x61,0xC0,0x40,0x00,
243:
244: /*-- 文字: 单 --*/
245: /*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
246: 0x00,0x00,0xF8,0x28,0x29,0x2E,0x2A,0xF8,0x28,0x2C,0x2B,0x2A,0xF8,0x00,0x00,0x00,
247: 0x08,0x08,0x0B,0x09,0x09,0x09,0x09,0xFF,0x09,0x09,0x09,0x09,0x0B,0x08,0x08,0x00,
248:
249: /*-- 文字: 片 --*/
250: /*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
251: 0x00,0x00,0x00,0xFE,0x10,0x10,0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x18,0x10,0x00,
252: 0x80,0x40,0x30,0x0F,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0x00,0x00,0x00,0x00,
253:
254: /*-- 文字: 机 --*/
255: /*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
256: 0x08,0x08,0xC8,0xFF,0x48,0x88,0x08,0x00,0xFE,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,
257: 0x04,0x03,0x00,0xFF,0x00,0x41,0x30,0x0C,0x03,0x00,0x00,0x00,0x3F,0x40,0x78,0x00,
258:
259: /*-- 文字: 开 --*/
260: /*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
261: 0x40,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x00,
262: 0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,
263:
264: /*-- 文字: 发 --*/
265: /*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
266: 0x00,0x10,0x3E,0x10,0x10,0xF0,0x9F,0x90,0x90,0x92,0x94,0x1C,0x10,0x10,0x10,0x00,
267: 0x40,0x20,0x10,0x88,0x87,0x41,0x46,0x28,0x10,0x28,0x27,0x40,0xC0,0x40,0x00,0x00,
268:
269: /*-- 文字: 网 --*/
270: /*-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --*/
271: 0x00,0xFE,0x02,0x12,0x22,0xC2,0x22,0x1A,0x22,0x42,0x82,0x72,0x22,0xFE,0x00,0x00,
272: 0x00,0x7F,0x08,0x04,0x03,0x00,0x03,0x0C,0x04,0x02,0x01,0x26,0x60,0x3F,0x00,0x00,
273: };
274:
275: void delay_1ms(void)//1ms延时函数
276: {
277: unsigned int i;
278: for (i=0;i<500;i++)
279: asm("CLRWDT");
280: }
281: void init(void)
282: {
283: asm("CLRWDT");
284: ADCON1=0X06;
285: OPTION=0x81;
286: TRISA=0B00000000;
287: TRISB=0B00111000;
288: TRISC=0B00000000;
289: TRISD=0B00000000;
290: TRISE=0B00000000;
291: PORTA=0;
292: PORTB=0x04;
293: PORTC=0;
294: PORTD=0;
295: PORTE=0;
296: RBIE=0;
297: }
298: /*--------------------------------------------
299: LCD_write_byte: 使用SPI接口写数据到LCD
300: 输入参数:dt:写入的数据;
301: command :写数据/命令选择;
302: 编写日期:20080918
303: ----------------------------------------------*/
304: void LCD_write_byte(unsigned char dt, unsigned char command)
305: {
306: unsigned char i;
307: sce=0;
308: dc=command;
309: for(i=0;i<8;i++)
310: {
311: if(dt&0x80)
312: sdin=1;
313: else
314: sdin=0;
315: dt=dt<<1;
316: sclk=0;
317: sclk=1;
318: }
319: dc=1;
320: sce=1;
321: sdin=1;
322: }
323: /*---------------------------------------
324: LCD_init: 3310LCD初始化
325: 编写日期:20080918
326: ----------------------------------------- */
327: void LCD_init(void)
328: {
329: sce=1;
330: res=1;
331: delay_1ms();
332: res=0;
333: delay_1ms();
334: res=1;
335: LCD_write_byte(0x21,0);//初始化Lcd,功能设定使用扩充指令
336: LCD_write_byte(0xd9,0);//设定液晶偏置电压(高--低)
337: LCD_write_byte(0x20,0);//使用基本指令
338: LCD_write_byte(0x0C,0);//设定显示模式,正常显示
339: }
340: /*-------------------------------------------
341: LCD_set_XY: 设置LCD坐标函数
342: 输入参数:X:0-83 Y:0-5
343: 编写日期:20080918
344: ---------------------------------------------*/
345: void LCD_set_XY(unsigned char X, unsigned char Y)
346: {
347: LCD_write_byte(0x40 | Y, 0);// column
348: LCD_write_byte(0x80 | X, 0);// row
349: }
350: /*------------------------------------------
351: LCD_clear: LCD清屏函数
352: 编写日期:20080918
353: --------------------------------------------*/
354: void LCD_clear(void)
355: {
356: unsigned char t;
357: unsigned char k;
358: LCD_set_XY(0,0);
359: for(t=0;t<6;t++)
360: {
361: for(k=0;k<84;k++)
362: {
363: LCD_write_byte(0x00,1);
364: asm("CLRWDT");
365: }
366: }
367: }
368: /*---------------------------------------------
369: LCD_write_shu: 显示8(宽)*16(高)点阵列数字字母符号等半角类
370: 输入参数:c:显示的字符;
371: 编写日期:20080918
372: -----------------------------------------------*/
373: void LCD_write_shu(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符
374: {
375: unsigned char i;
376: asm("CLRWDT");
377: LCD_set_XY(row*8, page);// 列,页
378: for(i=0; i<8;i++)
379: {
380: LCD_write_byte(shuzi[c*16+i],1);
381: }
382: asm("CLRWDT");
383: LCD_set_XY(row*8, page+1);// 列,页
384: for(i=8; i<16;i++)
385: {
386: LCD_write_byte(shuzi[c*16+i],1);
387: }
388: }
389: /*---------------------------------------------
390: LCD_write_hanzi: 显示16(宽)*16(高)点阵列汉字等半角类
391: 输入参数:c:显示的字符;
392: 编写日期:20080918
393: -----------------------------------------------*/
394: void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符
395: {
396: unsigned char i;
397: asm("CLRWDT");
398: LCD_set_XY(row*8, page);// 列,页
399: for(i=0; i<16;i++)
400: {
401: LCD_write_byte(hanzi[c*32+i],1);
402: }
403: asm("CLRWDT");
404: LCD_set_XY(row*8, page+1);// 列,页
405: for(i=16; i<32;i++)
406: {
407: LCD_write_byte(hanzi[c*32+i],1);
408: }
409: }
410: main()
411: {
412: init();
413: LCD_init(); //初始化LCD模块
414: LCD_clear(); //清屏幕
415: LCD_write_hanzi(0,0,0); //宁
416: LCD_write_hanzi(2,0,1); //波
417: LCD_write_hanzi(4,0,2); //单
418: LCD_write_hanzi(6,0,3); //片
419: LCD_write_hanzi(8,0,4); //机
420:
421: LCD_write_hanzi(1,2,5); //开
422: LCD_write_hanzi(4,2,6); //发
423: LCD_write_hanzi(7,2,7); //网
424:
425: LCD_write_shu(1,4,23); //n
426: LCD_write_shu(2,4,11); //b
427: LCD_write_shu(3,4,13); //d
428: LCD_write_shu(4,4,25); //p
429: LCD_write_shu(5,4,19); //j
430: LCD_write_shu(6,4,45); //.
431: LCD_write_shu(7,4,12); //c
432: LCD_write_shu(8,4,24); //o
433: LCD_write_shu(9,4,22); //m
434:
435: while(1)
436: {
437: asm("CLRWDT");
438: }
439: }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -