为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

AMPIRE12864液晶屏显示汉字

2018-01-04 10页 doc 132KB 22阅读

用户头像

is_482581

暂无简介

举报
AMPIRE12864液晶屏显示汉字AMPIRE12864液晶屏显示汉字 #include #include #define uchar unsigned char #define uint unsigned int sbit LCD_RS=P3^5;//数据和命令端 sbit LCD_EN=P3^4;//使能端 sbit LCD_RW=P3^3; sbit CS1=P2^1; sbit CS2=P2^2; uchar code a[]={ /*-- 文字: 中 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16...
AMPIRE12864液晶屏显示汉字
AMPIRE12864液晶屏显示汉字 #include #include #define uchar unsigned char #define uint unsigned int sbit LCD_RS=P3^5;//数据和命令端 sbit LCD_EN=P3^4;//使能端 sbit LCD_RW=P3^3; sbit CS1=P2^1; sbit CS2=P2^2; uchar code a[]={ /*-- 文字: 中 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00, 0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00, /*-- 文字: 国 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0xFE,0x02,0x0A,0x8A,0x8A,0x8A,0xFA,0x8A,0x8A,0x8A,0x0A,0x02,0xFE,0x00,0x00, 0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x49,0x4E,0x48,0x40,0xFF,0x00,0x00, /*-- 文字: 湖 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x10,0x21,0x86,0x60,0x90,0x90,0xFF,0x90,0x90,0x00,0xFE,0x92,0x92,0xFE,0x00,0x00, 0x04,0xFC,0x03,0x00,0x1F,0x10,0x10,0x90,0x5F,0x30,0x0F,0x40,0x80,0x7F,0x00,0x00, /*-- 文字: 北 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x20,0x20,0x20,0x20,0xFF,0x00,0x00,0x00,0xFF,0x40,0x20,0x30,0x18,0x10,0x00, 0x10,0x30,0x18,0x08,0x04,0x7F,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x78,0x00, /*-- 文字: 省 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x10,0x90,0x88,0x86,0xC0,0xC0,0xBF,0xA0,0x90,0x90,0x8A,0x84,0x18,0x00,0x00, 0x01,0x01,0x00,0x00,0xFF,0x4A,0x4A,0x4A,0x4A,0x4A,0x4A,0x4A,0xFF,0x00,0x00,0x00, /*-- 文字: 襄 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x02,0xA2,0xAE,0xAA,0xFA,0xAE,0xA3,0xA2,0xFE,0xAA,0xAA,0xAE,0x22,0x02,0x00, 0x22,0x22,0x12,0x12,0x0A,0xFF,0x42,0x22,0x06,0x0B,0x12,0x2A,0x66,0xC2,0x42,0x00, /*-- 文字: 阳 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0xFE,0x02,0x22,0x5A,0x86,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00, 0x00,0xFF,0x04,0x08,0x04,0x03,0x00,0x3F,0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x00, /*-- 文字: 市 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x04,0x04,0x04,0xE4,0x24,0x24,0x25,0xFE,0x24,0x24,0x24,0x24,0xE4,0x04,0x04,0x00, 0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0xFF,0x00,0x00,0x10,0x20,0x1F,0x00,0x00,0x00, /*-- 文字: 襄 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x02,0xA2,0xAE,0xAA,0xFA,0xAE,0xA3,0xA2,0xFE,0xAA,0xAA,0xAE,0x22,0x02,0x00, 0x22,0x22,0x12,0x12,0x0A,0xFF,0x42,0x22,0x06,0x0B,0x12,0x2A,0x66,0xC2,0x42,0x00, /*-- 文字: 樊 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x80,0x48,0x28,0xFF,0x28,0x02,0xAC,0x44,0xAA,0x00,0x48,0x28,0xFF,0x28,0x48,0x00, 0x02,0x42,0x42,0x23,0x22,0x12,0x0A,0x07,0x0A,0x12,0x22,0x62,0xC3,0x42,0x02,0x00, /*-- 文字: 学 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00, 0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00, /*-- 文字: 院 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0xFE,0x02,0x32,0x4A,0x86,0x0C,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x0C,0x04,0x00, 0xFF,0x00,0x02,0x04,0x83,0x41,0x31,0x0F,0x01,0x01,0x7F,0x81,0x81,0x81,0xF1,0x00, }; void xunhuan (uint x) { int y,z; for(y=x;y>0;y--) for (z=120;z>0;z--); } void write_c(uchar c) //写指令端 { LCD_RW=0; LCD_RS=0; LCD_EN=1; P1=c; LCD_EN=0; xunhuan(1); LCD_EN=1; //xunhuan(5); } void write_d(uchar d)//写数据 { LCD_RW=0; LCD_RS=1; LCD_EN=1; P1=d; LCD_EN=0; xunhuan(1); LCD_EN=1; //xunhuan(5); } void pianxuan(screen) //片选 { switch(screen) { case 0: CS1=0; CS2=0; break; case 1: CS1=1; CS2=0; break; case 2: CS1=0; CS2=1; break; case 3: CS1=1; CS2=1; break; } } void qinping(screen)//清屏,从第一行第一列开始 { uint x,y; //页的设置位 pianxuan(screen);//选择哪个清屏 for(x=0xb8;x<0xc0;x++) { write_c(x);//页初始值为0XB8到0xc0共八页 write_c(0x40);//列的初始地址为0x40,共64列 for(y=0;y<64;y++) { write_d(0x00);//选择全部清屏 } } } /* LCD显示汉字字库函数 */ void lcd_display_hanzi(uchar screen,uchar page,uchar lie,uint mun) { //screen:选择屏幕参数,page:选择页参数0-3,lie列参数0-3,mun:显示第几个汉字 的参数 int i; //page页其实就是行,是行计数器页指针 共九位计数器,高三位 为X,低六位为Y mun=mun*32; pianxuan(screen) ; //片选看哪个段 write_c(0x40+(lie*16)); //一个汉字占用两个字节 write_c(0xb8+(page*2)); //一个字节显示 for ( i=0;i<16;i++) { write_d(a[mun++]); } write_c(0x40+(lie*16)); write_c(0xb8+(page*2)+1); for (i=0;i<16;i++) { write_d(a[mun++]); } } void LCD_init() { write_c(0x3f);// 显示开启 write_c(0xc0); //显示起始行,从第一位开始 ,从0到63 write_c(0xb8);// 设置页得地址从0到7 write_c(0x40); //设置列的地址,从第一位开始 ,从0到63 } void main() { LCD_init(); qinping(0); lcd_display_hanzi(0,0,0,0); //LCD显示汉字 lcd_display_hanzi(0,0,1,1); //LCD显示汉字 lcd_display_hanzi(0,0,2,2); //LCD显示汉字 lcd_display_hanzi(0,0,3,3); //LCD显示汉字 lcd_display_hanzi(1,0,0,4); //LCD显示汉字 lcd_display_hanzi(1,0,1,5); //LCD显示汉字 lcd_display_hanzi(1,0,2,6); //LCD显示汉字 lcd_display_hanzi(1,0,3,7); //LCD显示汉字 lcd_display_hanzi(2,1,0,8); //LCD显示汉字 lcd_display_hanzi(2,1,1,9); //LCD显示汉字 lcd_display_hanzi(2,1,2,10); //LCD显示汉字 lcd_display_hanzi(2,1,3,11); //LCD显示汉字 while(1); } 在protues中的仿真原理图, 真实情况下的仿真效果
/
本文档为【AMPIRE12864液晶屏显示汉字】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索