16x16和32x32字符显示例程.docx
- 文档编号:23128665
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:17
- 大小:17.08KB
16x16和32x32字符显示例程.docx
《16x16和32x32字符显示例程.docx》由会员分享,可在线阅读,更多相关《16x16和32x32字符显示例程.docx(17页珍藏版)》请在冰豆网上搜索。
16x16和32x32字符显示例程
#include"reg52.h"
#defineWINDOW_XADDR_START0x0050//HorizontalStartAddressSet
#defineWINDOW_XADDR_END0x0051//HorizontalEndAddressSet
#defineWINDOW_YADDR_START0x0052//VerticalStartAddressSet
#defineWINDOW_YADDR_END0x0053//VerticalEndAddressSet
#defineGRAM_XADDR0x0020//GRAMHorizontalAddressSet
#defineGRAM_YADDR0x0021//GRAMVerticalAddressSet
#defineGRAMWR0x0022//memorywrite
/*LCDcolor*/
#defineWhite0xFFFF
#defineBlack0x0000
#defineBlue0x001F
#defineBlue20x051F
#defineRed0xF800
#defineMagenta0xF81F
#defineGreen0x07E0
#defineCyan0x7FFF
#defineYellow0xFFE0
sbitCS=P2^4;//片选
sbitRES=P2^3;//复位
sbitRS=P2^0;//数据/命令选择
sbitRW=P2^1;
//数据口使用P1
/*sbitCS=P2^2;//片选
sbitRES=P2^0;//复位
sbitRS=P2^5;//数据/命令选择
sbitRW=P2^4;*/
//====================================================//
voidmain(void);
voidR61505_Initial(void);
voidshow_colour_bar(void);
voidWrite_Cmd_Data(unsignedcharx,unsignedinty);
voidWrite_Cmd(unsignedcharDH,unsignedcharDL);
voidWrite_Data(unsignedcharDH,unsignedcharDL);
voiddelayms(unsignedinttt);
voidshow_photo(void);
voidShow_RGB(unsignedintx0,unsignedintx1,unsignedinty0,unsignedinty1,unsignedintColor);
unsignedcharcodepic[];
voidWrite_Data_U16(unsignedinty);
staticvoidLCD_SetPos(unsignedintx0,unsignedintx1,unsignedinty0,unsignedinty1);
voidClearScreen(unsignedintbColor);
voidLCD_PutChar8x16(unsignedshortx,unsignedshorty,charc,unsignedintfColor,unsignedintbColor);
voidLCD_PutChar(unsignedshortx,unsignedshorty,charc,unsignedintfColor,unsignedintbColor);
voidLCD_PutString(unsignedshortx,unsignedshorty,char*s,unsignedintfColor,unsignedintbColor);
voidLCD_PutChar8x8(unsignedshortx,unsignedshorty,charc,unsignedintfColor,unsignedintbColor);
voidPutGB1616(unsignedshortx,unsignedshorty,unsignedcharc[2],unsignedintfColor,unsignedintbColor);
voidPutGB3232(unsignedshortx,unsignedshorty,unsignedcharc[2],unsignedintfColor,unsignedintbColor);
//================================================//
voidmain(void)
{
CS=1;
delayms(5);
RES=0;
delayms(5);
RES=1;
delayms(5);
R61505_Initial();
while
(1)
{
ClearScreen(Blue);//清屏
//show_colour_bar();
LCD_PutString(55,40,"",White,Blue);///前景颜色和背景颜色,可以直接预定义,也可以直接填入16进制数字
LCD_PutString(55,60,"ILOVESCIENCE",Black,Blue);
LCD_PutString(24,80,"北方蓝芯科技开发有限公司",Magenta,Blue);
LCD_PutString(40,120,"蓝芯科技",Blue2,Blue);
LCD_PutString(120,140,"与您同行",Red,Blue);
LCD_PutString(0,160,"1234567890",Green,Blue);
LCD_PutString(0,180,"abcdefghijklmnopqrstuvwxyz",Cyan,Blue);
LCD_PutString(0,200,"`,./<>';:
[]{}\|?
)(-=+*&^%$",Yellow,Blue);
PutGB3232(64,240,"单",White,Yellow);//写入32x32汉字
PutGB3232(104,240,"片",White,Green);
PutGB3232(144,240,"机",White,Red);
//show_photo();
while
(1);
}
}
voidClearScreen(unsignedintbColor)
{
unsignedinti,j;
LCD_SetPos(0,240,0,320);//320x240
for(i=0;i<322;i++)
{
for(j=0;j<240;j++)
Write_Data_U16(bColor);
}
}
/////////////////////////////////////////////////////////////
#include"8X16.h"
voidLCD_PutChar8x16(unsignedshortx,unsignedshorty,charc,unsignedintfColor,unsignedintbColor)
{
unsignedinti,j;
LCD_SetPos(x,x+8-1,y,y+16-1);
for(i=0;i<16;i++){
unsignedcharm=Font8x16[c*16+i];
for(j=0;j<8;j++){
if((m&0x80)==0x80){
Write_Data_U16(fColor);
}
else{
Write_Data_U16(bColor);
}
m<<=1;
}
}
}
voidLCD_PutChar(unsignedshortx,unsignedshorty,charc,unsignedintfColor,unsignedintbColor){
LCD_PutChar8x16(x,y,c,fColor,bColor);
}
#include"GB1616.h"//16*16汉字字模
voidPutGB1616(unsignedshortx,unsignedshorty,unsignedcharc[2],unsignedintfColor,unsignedintbColor){
unsignedinti,j,k;
LCD_SetPos(x,x+16-1,y,y+16-1);
for(k=0;k<64;k++){//64标示自建汉字库中的个数,循环查询内码
if((codeGB_16[k].Index[0]==c[0])&&(codeGB_16[k].Index[1]==c[1])){
for(i=0;i<32;i++){
unsignedshortm=codeGB_16[k].Msk[i];
for(j=0;j<8;j++){
if((m&0x80)==0x80){
Write_Data_U16(fColor);
}
else{
Write_Data_U16(bColor);
}
m<<=1;
}
}
}
}
}
#include"GB3232.h"//32*32汉字字模
voidPutGB3232(unsignedshortx,unsignedshorty,unsignedcharc[2],unsignedintfColor,unsignedintbColor){
unsignedinti,j,k;
LCD_SetPos(x,x+32-1,y,y+32-1);
for(k=0;k<5;k++){//5标示自建汉字库中的个数,循环查询内码
if((codeGB_32[k].Index[0]==c[0])&&(codeGB_32[k].Index[1]==c[1])){
for(i=0;i<128;i++){
unsignedshortm=codeGB_32[k].Msk[i];
for(j=0;j<8;j++){
if((m&0x80)==0x80){
Write_Data_U16(fColor);
}
else{
Write_Data_U16(bColor);
}
m<<=1;
}
}
}
}
}
voidLCD_PutString(unsignedshortx,unsignedshorty,unsignedchar*s,unsignedintfColor,unsignedintbColor){
unsignedcharl=0;
while(*s){
if(*s<0x80)
{
LCD_PutChar(x+l*8,y,*s,fColor,bColor);
s++;l++;
}
else
{
PutGB1616(x+l*8,y,(unsignedchar*)s,fColor,bColor);
s+=2;l+=2;
}
}
}
//====================显示RGB顔色====================//
voidShow_RGB(unsignedintx0,unsignedintx1,unsignedinty0,unsignedinty1,unsignedintColor)
{
unsignedinti,j;
//address_set();
LCD_SetPos(x0,x1,y0,y1);
for(i=y0;i<=y1;i++)
{
for(j=x0;j<=x1;j++)
Write_Data_U16(Color);
}
}
//======================显示彩条======================//
voidshow_colour_bar(void)
{
intV,H;
LCD_SetPos(0,240,0,320);//320x240
for(H=0;H<240;H++)
{
for(V=0;V<40;V++)
Write_Data(0xf8,0x00);
}
for(H=0;H<240;H++)
{
for(V=40;V<80;V++)
Write_Data(0x07,0xe0);
}
for(H=0;H<240;H++)
{
for(V=80;V<120;V++)
Write_Data(0x00,0x1f);
}
for(H=0;H<240;H++)
{
for(V=120;V<160;V++)
Write_Data(0xff,0xe0);
}
for(H=0;H<240;H++)
{
for(V=160;V<200;V++)
Write_Data(0xf8,0x1f);
}
for(H=0;H<240;H++)
{
for(V=200;V<240;V++)
Write_Data(0x07,0xff);
}
for(H=0;H<240;H++)
{
for(V=240;V<280;V++)
Write_Data(0xff,0xff);
}
for(H=0;H<240;H++)
{
for(V=280;V<320;V++)
Write_Data(0x00,0x00);
}
}
voidshow_photo(void)
{
unsignedcharj;
unsignedinti;
unsignedlongs=0;
LCD_SetPos(0,240,0,320);//320x240
for(i=0;i<75;i++)
{
for(j=0;j<240;j++)
Write_Data(0xff,0xff);
}
for(i=0;i<170;i++)
{
for(j=0;j<55;j++)
Write_Data(0xff,0xff);
for(j=0;j<130;j++)
Write_Data(pic[s++],pic[s++]);
for(j=0;j<55;j++)
Write_Data(0xff,0xff);
}
for(i=0;i<75;i++)
{
for(j=0;j<240;j++)
Write_Data(0xff,0xff);
}
}
//=======================================================//
voidWrite_Cmd_Data(unsignedcharx,unsignedinty)
{
unsignedcharm,n;
m=y>>8;
n=y;
Write_Cmd(0x00,x);
Write_Data(m,n);
}
voidWrite_Data_U16(unsignedinty)
{
unsignedcharm,n;
m=y>>8;
n=y;
Write_Data(m,n);
}
//======================写命令==========================//
voidWrite_Cmd(unsignedcharDH,unsignedcharDL)
{
CS=0;
RS=0;
P1=DH;
RW=0;
RW=1;
P1=DL;
RW=0;
RW=1;
CS=1;
}
//=====================写数据===========================//
voidWrite_Data(unsignedcharDH,unsignedcharDL)
{
CS=0;
RS=1;
P1=DH;
RW=0;
RW=1;
P1=DL;
RW=0;
RW=1;
CS=1;
}
//=======================================================
voiddelayms(unsignedintcount)
{
inti,j;
for(i=0;i { for(j=0;j<260;j++); } } //=====================初始化代码=======================// voidR61505_Initial(void) { Write_Cmd_Data(0x0000,0x0000); Write_Cmd_Data(0x0000,0x0000); Write_Cmd_Data(0x0000,0x0000); Write_Cmd_Data(0x0000,0x0000); Write_Cmd_Data(0x0010,0x0600);//SLP=0, delayms(30); Write_Cmd_Data(0x0007,0x0000); Write_Cmd_Data(0x0012,0x011A); Write_Cmd_Data(0x00A4,0x0001); Write_Cmd_Data(0x0008,0x020E);//FP,BP Write_Cmd_Data(0x000A,0x0008); Write_Cmd_Data(0x000D,0x0008); Write_Cmd_Data(0x0030,0x0707); Write_Cmd_Data(0x0031,0x0007); Write_Cmd_Data(0x0032,0x0603); Write_Cmd_Data(0x0033,0x0700); Write_Cmd_Data(0x0034,0x0202); Write_Cmd_Data(0x0035,0x0002); Write_Cmd_Data(0x0036,0x1E00); Write_Cmd_Data(0x0037,0x0707); Write_Cmd_Data(0x0038,0x0000); Write_Cmd_Data(0x0039,0x0000); Write_Cmd_Data(0x003A,0x0707); Write_Cmd_Data(0x003B,0x0000); Write_Cmd_Data(0x003C,0x0007); Write_Cmd_Data(0x003D,0x0000); delayms(30); Write_Cmd_Data(0x0011,0x0007); Write_Cmd_Data(0x0060,0x2700); Write_Cmd_Data(0x0090,0x0016);//DIVI,RTNI Write_Cmd_Data(0x0017,0x0001); Write_Cmd_Data(0x0019,0x0000);//TBT[1: 0] delayms(30); Write_Cmd_Data(0x0010,0x16B0); Write_Cmd_Data(0x0012,0x011A); delayms(30); Write_Cmd_Data(0x0013,0x1800);//VDV[4: 0] Write_Cmd_Data(0x002A,0x000E);//VCMSEL,VCM2[4: 0] Write_Cmd_Data(0x0029,0x000E);//VCM1[4: 0] delayms(30); Write_Cmd_Data(0x0012,0x013A);//VCOMR[0],VREG1R,PSON,PON,VRH[3: 0] delayms(100); Write_Cmd_Data(0x0050,0x0000); Write_Cmd_Data(0x0051,0x00EF); Write_Cmd_Data(0x0052,0x0000); Write_Cmd_Data(0x0053,0x013F); Write_Cmd_Data(0x0020,0x0000); Write_Cmd_Data(0x0021,0x0000); Write_Cmd_Data(0x0061,0x0001); Write_Cmd_Data(0x006A,0x0000); Write_Cmd_Data(0x0080,0x0000); Write_Cmd_Data(0x0081,0x0000); Write_Cmd_Data(0x0082,0x0000); Write_Cmd_Data(0x0083,0x0000); Write_Cmd_Data(0x0084,0x0000); Write_Cmd_Data(0x0085,0x0000); Write_Cmd_Data(0x0092,0x0300); Write_Cmd_Data(0x0093,0x0005); Write_Cmd_Data(0x0095,0x0000); Write_Cmd_Data(0x0097,0x0000); Write_Cmd_Data(0x0098,0x0000); Write_Cmd_Data(0x0001,0x0100); Write_Cmd_Data(0x0002,0x0700); Write_Cmd_Data(0x0003,0x1030); Write_Cmd_Data(0x0004,0x0000); Write_Cmd_Data(0x000C,0x0000); Write_Cmd_Dat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 16 x16 32 x32 字符 显示 例程