20分!给个51单片机图像液晶程序

20分!给个51单片机图像液晶程序,第1张

#include <reg52h>

#define uint unsigned int

#define uchar unsigned char

#define x1 0x80

#define x2 0x88

#define y 0x80

#define comm 0

#define dat 1

sbit cs = P0^0;

sbit std = P0^1;

sbit sclk = P0^2;

sbit psb = P0^3; //H=并口; L=串口;

sbit rst = P0^4; //Reset Signal 低电平有效

void wr_lcd (uchar dat_comm,uchar content);

void delay (uint us);

uchar code tab1[]={

"本系列中文模块内"

"任意位置反白显示"

"置二级字库,可在"

"使用更方便更灵活"

};

uchar code tab31[]={

"金鹏科技有限公司"

"Golden Palm TECH"

};

uchar code tab32[]={

/-- 调入了一幅图像:F:\梁\画图\HOCO12832bmp --/

/-- 宽度x高度=128x32 --/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x18,0x0C,0x00,0x00,0x01,0x00,0x00,0x00,0x00,

0x01,0xFF,0x80,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x13,0x10,0x03,0xFE,0x00,

0x03,0xFF,0xC0,0x00,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x3F,0x30,0x1F,0xFF,0xC0,

0x03,0xFF,0xE0,0x00,0x00,0x00,0x00,0x8C,0x03,0xF0,0x00,0x7F,0xE0,0x7C,0x01,0xE0,

0x03,0xFF,0xF0,0x00,0x00,0x00,0x01,0x36,0x06,0xC0,0x00,0x5F,0xC0,0xFF,0xFC,0x60,

0x01,0xFF,0xF0,0x00,0x00,0x00,0x02,0x1B,0x0F,0x80,0x00,0xFF,0x01,0xFE,0x0F,0x30,

0x00,0xEF,0xF0,0x00,0x00,0x00,0x02,0x6D,0x9F,0x00,0x00,0x3E,0x03,0xFF,0xF1,0x90,

0x00,0xFF,0xF8,0x00,0x00,0x00,0x04,0x36,0xFE,0x00,0x01,0xFF,0x07,0xFF,0xFC,0x90,

0x00,0xEF,0xFF,0xFF,0x80,0x00,0x04,0xDB,0x7E,0x00,0x03,0xFF,0x87,0xFF,0xFC,0xD0,

0x00,0x0F,0xFF,0xFF,0xC0,0x00,0x04,0x6D,0xFC,0x00,0x07,0xFF,0x8F,0xFF,0xFE,0x50,

0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x36,0xFC,0x10,0x07,0xFF,0x8F,0xFF,0xFE,0x90,

0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x04,0x1B,0xF8,0x10,0x07,0xFF,0xCF,0xFF,0xFE,0x80,

0x00,0x0F,0xFF,0xFF,0xF0,0x00,0x04,0x0F,0xF8,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00,

0x00,0x07,0xFF,0xFF,0xF0,0x00,0x04,0x07,0xF0,0x10,0x07,0xFF,0xFF,0xFF,0xFA,0x00,

0x00,0xFF,0xFF,0xFF,0xF8,0x00,0x02,0x03,0xF0,0x20,0x07,0xFF,0xFF,0xFF,0xBA,0x00,

0x00,0xFD,0xFF,0xFF,0xFC,0x00,0x02,0x03,0xF0,0x20,0x03,0xFF,0xFF,0xDF,0xB8,0x00,

0x00,0xC1,0xC0,0x3F,0xFC,0x00,0x01,0x01,0xE0,0x40,0x00,0xFF,0xFF,0xDF,0xB0,0x00,

0x00,0x81,0xC0,0x3F,0xCE,0x00,0x00,0x81,0xE0,0x80,0x00,0x7F,0xFF,0xDF,0xA0,0x00,

0x00,0x81,0x80,0x1D,0xCF,0x00,0x00,0x41,0xE1,0x00,0x00,0x3F,0xFF,0x9B,0x00,0x00,

0x01,0x83,0x80,0x1F,0xC7,0x80,0x00,0x21,0xE2,0x00,0x00,0x1F,0xFD,0xB6,0x00,0x00,

0x01,0xC3,0x00,0x0E,0xE6,0x80,0x00,0x19,0xEC,0x00,0x00,0x07,0xFE,0x20,0x00,0x00,

0x00,0xC3,0x00,0x07,0x67,0x40,0x00,0x07,0xF0,0x00,0x00,0x03,0x3E,0x00,0x00,0x00,

0x00,0x02,0x00,0x03,0xE7,0xA0,0x00,0x00,0x00,0x00,0x00,0x02,0x8E,0x00,0x00,0x00,

0x00,0x06,0x00,0x03,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,

0x00,0x06,0x00,0x07,0x03,0x00,0x77,0x46,0x74,0x24,0x80,0x06,0x04,0x00,0x00,0x00,

0x00,0x1C,0x00,0x06,0x00,0x00,0x55,0x45,0x54,0x57,0x80,0x00,0x00,0x00,0x00,0x00,

0x00,0x1C,0x00,0x0E,0x00,0x00,0x45,0x45,0x74,0x57,0x80,0x08,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x1C,0x00,0x00,0x55,0x45,0x44,0x74,0x80,0xF0,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x38,0x00,0x00,0x77,0x76,0x47,0x54,0x80,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

uchar code tab5[]={

/-- 调入了一幅图像:F:\梁\画图\COCKbmp --/

/-- 宽度x高度=128x64 --/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x00,0x0F,0xFF,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x0C,0x43,0x01,0x80,0x00,0x7F,0xFF,0xF0,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x19,0xFF,0x07,0x00,0x07,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0x3F,0xFC,0x1E,0x00,0x1F,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0xBF,0xFF,0xFC,0x00,0x7F,0xFC,0x00,0x7F,0xC0,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0xFF,0xFF,0xF0,0x00,0xFF,0xC0,0x00,0x0F,0xE0,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xFC,0x01,0xF0,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0xDF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0x80,0xF0,0x00,0x00,0x00,

0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x0F,0xFF,0xFF,0xFF,0xE0,0x38,0x00,0x00,0x00,

0x00,0x00,0x00,0x07,0xFF,0xF8,0x00,0x1F,0xFF,0xF0,0x03,0xF8,0x38,0x00,0x00,0x00,

0x00,0x00,0x00,0x07,0xFF,0xE0,0x00,0x3F,0xFF,0xFF,0xC0,0x7C,0x18,0x00,0x00,0x00,

0x00,0x00,0x00,0x04,0x7F,0xF0,0x00,0x3F,0xFF,0xFF,0xF8,0x1E,0x08,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0xFF,0xF8,0x00,0x7F,0xFF,0xFF,0xFE,0x0F,0x08,0x00,0x00,0x00,

0x00,0x00,0x00,0x0F,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0xFF,0x87,0x08,0x00,0x00,0x00,

0x00,0x00,0x00,0x1F,0xFF,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0x83,0x88,0x00,0x00,0x00,

0x00,0x00,0x00,0x3F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xC3,0x88,0x00,0x00,0x00,

0x00,0x00,0x00,0x7F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,

0x00,0x00,0x00,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF1,0x88,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF3,0x08,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xF2,0x10,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFF,0x8F,0xFF,0xFF,0xFF,0xFF,0xF0,0x20,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x70,0x00,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x7E,0x20,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x3E,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0x3C,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x30,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x1F,0x7C,0x20,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x1E,0x78,0x00,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFE,0x1E,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xDA,0x3C,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xF2,0x30,0x80,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xF1,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x7C,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x78,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x72,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x01,0x40,0x04,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x02,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x02,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x0C,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x38,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x0F,0xE2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

/------------------初始化-----------------/

void init_lcd (void)

{

rst=1;

psb=0;

wr_lcd (comm,0x30); /30---基本指令动作/

wr_lcd (comm,0x01); /清屏,地址指针指向00H/

delay (100);

wr_lcd (comm,0x06); /光标的移动方向/

wr_lcd (comm,0x0c); /开显示,关游标/

}

/---------------显示汉字或字符----------------/

void chn_disp (uchar code chn)

{

uchar i,j;

wr_lcd (comm,0x30);

wr_lcd (comm,0x80);

for (j=0;j<4;j++)

{

for (i=0;i<16;i++)

wr_lcd (dat,chn[j16+i]);

}

}

/-----------上半屏显示汉字或字符------------/

void chn_disp1 (uchar code chn)

{

uchar i,j;

wr_lcd (comm,0x30);

wr_lcd (comm,0x80);

j=0;

for (i=0;i<16;i++)

wr_lcd (dat,chn[j16+i]);

wr_lcd (comm,0x90);

j=1;

for (i=0;i<16;i++)

wr_lcd (dat,chn[j16+i]);

}

/----------------显示图形-----------------/

void img_disp (uchar code img)

{

uchar i,j;

for(j=0;j<32;j++)

{

for(i=0;i<8;i++)

{

wr_lcd (comm,0x34);

wr_lcd (comm,y+j);

wr_lcd (comm,x1+i);

wr_lcd (comm,0x30);

wr_lcd (dat,img[j16+i2]);

wr_lcd (dat,img[j16+i2+1]);

}

}

for(j=32;j<64;j++)

{

for(i=0;i<8;i++)

{

wr_lcd (comm,0x34);

wr_lcd (comm,y+j-32);

wr_lcd (comm,x2+i);

wr_lcd (comm,0x30);

wr_lcd (dat,img[j16+i2]);

wr_lcd (dat,img[j16+i2+1]);

}

}

wr_lcd (comm,0x36);

}

/-------------下半屏显示图形--------------/

void img_disp1 (uchar code img)

{

uchar i,j;

for(j=0;j<32;j++)

{

for(i=0;i<8;i++)

{

wr_lcd (comm,0x34);

wr_lcd (comm,y+j);

wr_lcd (comm,x2+i);

wr_lcd (comm,0x30);

wr_lcd (dat,img[j16+i2]);

wr_lcd (dat,img[j16+i2+1]);

}

}

wr_lcd (comm,0x36);

}

/--------------显示点阵----------------/

void lat_disp (uchar data1,uchar data2)

{

uchar i,j,k,x;

x=x1;

for(k=0;k<2;k++)

{

for(j=0;j<16;j++)

{

for(i=0;i<8;i++)

{

wr_lcd (comm,0x34);

wr_lcd (comm,y+j2);

wr_lcd (comm,x+i);

wr_lcd (comm,0x30);

wr_lcd (dat,data1);

wr_lcd (dat,data1);

}

for(i=0;i<8;i++)

{

wr_lcd (comm,0x34);

wr_lcd (comm,y+j2+1);

wr_lcd (comm,x+i);

wr_lcd (comm,0x30);

wr_lcd (dat,data2);

wr_lcd (dat,data2);

}

}

x=x2;

}

wr_lcd (comm,0x36);

}

/-----------------------------------------------/

//当data1=0xff,data2=0xff时,在x0,y0处反白显示16xlyl

void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)

{

uchar i,j;

for(j=0;j<yl;j++)

{

for(i=0;i<xl;i++)

{

wr_lcd (comm,0x34);

wr_lcd (comm,y0+j);

wr_lcd (comm,x0+i);

wr_lcd (comm,0x30);

wr_lcd (dat,data1);

wr_lcd (dat,data2);

}

}

wr_lcd (comm,0x36);

}

/--------------清DDRAM------------------/

void clrram (void)

{

wr_lcd (comm,0x30);

wr_lcd (comm,0x01);

delay (180);

}

/---------------------------------------/

void wr_lcd (uchar dat_comm,uchar content)

{

uchar a,i,j;

delay (50);

a=content;

cs=1;

sclk=0;

std=1;

for(i=0;i<5;i++)

{

sclk=1;

sclk=0;

}

std=0;

sclk=1;

sclk=0;

if(dat_comm)

std=1; //data

else

std=0; //command

sclk=1;

sclk=0;

std=0;

sclk=1;

sclk=0;

for(j=0;j<2;j++)

{

for(i=0;i<4;i++)

{

a=a<<1;

std=CY;

sclk=1;

sclk=0;

}

std=0;

for(i=0;i<4;i++)

{

sclk=1;

sclk=0;

}

}

}

/-----------------------------------/

void delay (uint us) //delay time

{

while(us--);

}

void delay1 (uint ms)

{

uint i,j;

for(i=0;i<ms;i++)

for(j=0;j<15;j++)

delay(1);

}

/------------------主程序--------------------/

void main ()

{

SP=0x5f;

init_lcd ();

while (1)

{

lat_disp (0x00,0x00);

chn_disp (tab1);

con_disp (0xff,0xff,0x8c,0x80,2,16);

delay1 (8000);

clrram();

lat_disp (0xcc,0xcc);

delay1 (8000);

lat_disp (0x00,0x00);

chn_disp1 (tab31);

img_disp1 (tab32);

delay1 (8000);

clrram();

lat_disp (0xff,0x00);

delay1 (8000);

img_disp (tab5);

delay1 (8000);

}

}

; 1、LCD第一行显示: >

#include <reg52h>

#define uchar unsigned char

#define uint unsigned int

uchar rebuf[11];

uchar tembuf[2]={28,20};

sbit sce = P0^0; //片选

sbit res = P0^1; //复位,0复位

sbit dc = P0^2; //1写数据,0写指令

sbit sdin = P0^3; //数据

sbit sclk = P0^4; //时钟

sbit en = P3^2;

sbit key1 = P1^0;

sbit key2 = P1^1;

sbit key3 = P1^2;

sbit key4 = P1^3;

sbit key5 = P1^4;

sbit key6 = P1^5;

sbit alarm = P2^7;

uchar dp=0,re_data,keynum = 0;

bit full=0,f_alarm=0,m_alarm = 0;

unsigned char code shuzi[]={

/-- 文字: 0 --/

/-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --/

0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,

/-- 文字: 1 --/

/-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --/

0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,

/-- 文字: 2 --/

/-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --/

0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,

/-- 文字: 3 --/

/-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --/

0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,

/-- 文字: 4 --/

/-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --/

0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,

/-- 文字: 5 --/

/-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --/

0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,

/-- 文字: 6 --/

/-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --/

0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,

/-- 文字: 7 --/

/-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --/

0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,

/-- 文字: 8 --/

/-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --/

0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,

/-- 文字: 9 --/

/-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --/

0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,

/-- 文字: --10/

/-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,

/-- 文字: : --11/

/-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=8x16 --/

0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,

/-- 调入了一幅图像:这是您新建的图像 --12/

/-- 宽度x高度=8x16 --/

0x0C,0x12,0x0C,0x80,0x40,0x20,0x20,0x20,0x00,0x00,0x00,0x0F,0x10,0x20,0x20,0x20,

};

unsigned char code hanzi[]=

{

/-- 文字: 光 0--/

/-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --/

0x00,0x40,0x42,0x44,0x5C,0xC8,0x40,0x7F,0x40,0xC0,0x50,0x4E,0x44,0x60,0x40,0x00,

0x00,0x80,0x40,0x20,0x18,0x07,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x78,0x00,

/-- 空白 1--/

/-- 宽度x高度=16x16 --/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/-- 一级光 2--/

/-- 宽度x高度=16x16 --/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/-- 二级光 3--/

/-- 宽度x高度=16x16 --/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0xF0,0xF0,0xF0,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/-- 三级光 4--/

/-- 宽度x高度=16x16 --/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,

0xF0,0xF0,0xF0,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,

/-- 四级光 5--/

/-- 宽度x高度=16x16 --/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0x00,0xFF,0xFF,0xFF,0x00,

0xF0,0xF0,0xF0,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,

/-- 文字: 报 6--/

/-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --/

0x08,0x08,0x88,0xFF,0x48,0x28,0x00,0xFF,0xC1,0x41,0x41,0x49,0x51,0xCF,0x00,0x00,

0x01,0x41,0x80,0x7F,0x00,0x00,0x00,0xFF,0x40,0x23,0x14,0x1C,0x33,0x60,0x20,0x00,

/-- 文字: 警 7--/

/-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --/

0x20,0x1A,0xFA,0xAF,0xAA,0xEF,0x0A,0xFA,0x10,0x8F,0x54,0x24,0x5C,0x84,0x04,0x00,

0x02,0x02,0x02,0xEA,0xAA,0xAA,0xAB,0xAA,0xAB,0xAA,0xAA,0xEA,0x02,0x02,0x03,0x00,

/-- 文字: 温 8--/

/-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --/

0x10,0x21,0x86,0x70,0x00,0x7E,0x4A,0x4A,0x4A,0x4A,0x4A,0x7E,0x00,0x00,0x00,0x00,

0x02,0xFE,0x01,0x40,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x40,0x00,

/-- 文字: 度 9--/

/-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --/

0x00,0x00,0xFC,0x04,0x24,0x24,0xFC,0xA5,0xA6,0xA4,0xFC,0x24,0x24,0x24,0x04,0x00,

0x80,0x60,0x1F,0x80,0x80,0x42,0x46,0x2A,0x12,0x12,0x2A,0x26,0x42,0xC0,0x40,0x00,

/-- 文字: 高 10--/

/-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --/

0x04,0x04,0x04,0x04,0x74,0x54,0x55,0x56,0x54,0x54,0x74,0x04,0x04,0x04,0x04,0x00,

0x00,0xFF,0x01,0x01,0x3D,0x25,0x25,0x25,0x25,0x25,0x3D,0x41,0x81,0x7F,0x00,0x00,

/-- 文字: 低 11--/

/-- Trebuchet MS12; 此字体下对应的点阵为:宽x高=16x16 --/

0x40,0x20,0xF0,0x0C,0x07,0x02,0xFC,0x44,0x44,0x42,0xFE,0x43,0x43,0x42,0x40,0x00,

0x00,0x00,0x7F,0x00,0x00,0x00,0x7F,0x20,0x10,0x28,0x43,0x0C,0x10,0x20,0x78,0x00,

};

/

延迟函数

函数原型:void delay(uint z)

函数功能:延迟z毫秒

/

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

/--------------------------------------------

LCD_write_byte: 使用SPI接口写数据到LCD

输入参数:dt:写入的数据;

command :写数据/命令选择;

编写日期:20080918

----------------------------------------------/

void LCD_write_byte(unsigned char dt, unsigned char command)

{

unsigned char i;

sce=0;

dc=command;

for(i=0;i<8;i++)

{

if(dt&0x80)

sdin=1;

else

sdin=0;

dt=dt<<1;

sclk=0;

sclk=1;

}

dc=1;

sce=1;

sdin=1;

}

/---------------------------------------

LCD_init: 3310LCD初始化

编写日期:20080918

----------------------------------------- /

void LCD_init(void)

{

res=0;

delay(1);

res=1;

LCD_write_byte(0x21,0);//初始化Lcd,功能设定使用扩充指令

LCD_write_byte(0xd0,0);//设定液晶偏置电压

LCD_write_byte(0x20,0);//使用基本指令

LCD_write_byte(0x0C,0);//设定显示模式,正常显示

}

/-------------------------------------------

LCD_set_XY: 设置LCD坐标函数

输入参数:X:0-83 Y:0-5

编写日期:20080918

---------------------------------------------/

void LCD_set_XY(unsigned char X, unsigned char Y)

{

LCD_write_byte(0x40 | Y, 0);// column

LCD_write_byte(0x80 | X, 0);// row

}

/------------------------------------------

LCD_clear: LCD清屏函数

编写日期:20080918

--------------------------------------------/

void LCD_clear(void)

{

unsigned char t;

unsigned char k;

LCD_set_XY(0,0);

for(t=0;t<6;t++)

{

for(k=0;k<84;k++)

{

LCD_write_byte(0x00,1);

}

}

}

/---------------------------------------------

LCD_write_shu: 显示8(宽)16(高)点阵列数字字母符号等半角类

输入参数:c:显示的字符;

编写日期:20080918

-----------------------------------------------/

void LCD_write_shu(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符

{

unsigned char i;

LCD_set_XY(row8, page);// 列,页

for(i=0; i<8;i++)

{

LCD_write_byte(shuzi[c16+i],1);

}

LCD_set_XY(row8, page+1);// 列,页

for(i=8; i<16;i++)

{

LCD_write_byte(shuzi[c16+i],1);

}

}

/---------------------------------------------

LCD_write_hanzi: 显示16(宽)16(高)点阵列汉字等半角类

输入参数:c:显示的字符;

编写日期:20080918

-----------------------------------------------/

void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符

{

unsigned char i;

LCD_set_XY(row8, page);// 列,页

for(i=0; i<16;i++)

{

LCD_write_byte(hanzi[c32+i],1);

}

LCD_set_XY(row8, page+1);// 列,页

for(i=16; i<32;i++)

{

LCD_write_byte(hanzi[c32+i],1);

}

}

/---------------------------------------------

void display(): 显示函数

输入参数:无;

编写日期:2009,10

-----------------------------------------------/

void display()

{

if(rebuf[10]==0xaa)

{

LCD_write_shu(1,0,rebuf[1]); //ID1

LCD_write_shu(2,0,rebuf[2]); //ID2

LCD_write_shu(3,0,rebuf[3]); //ID3

LCD_write_shu(0,2,rebuf[4]); //tem1

LCD_write_shu(1,2,rebuf[5]); //tem2

LCD_write_shu(2,2,10); //

LCD_write_shu(3,2,rebuf[6]); //tem3

LCD_write_shu(4,2,12); //℃

LCD_write_hanzi(0,4,0); //光

LCD_write_shu(2,4,11); //:

LCD_write_hanzi(3,4,(rebuf[8]+1)); //

if((rebuf[4]>=(tembuf[0]/10))&&(rebuf[5]>=(tembuf[0]%10)))

f_alarm = 1;

else

f_alarm = 0;

if((rebuf[4]<=(tembuf[1]/10))&&(rebuf[5]<=(tembuf[1]%10)))

f_alarm = 1;

else

f_alarm = 0;

}

if(rebuf[10]==0xbb)

{

LCD_write_shu(6,0,rebuf[1]); //ID1

LCD_write_shu(7,0,rebuf[2]); //ID2

LCD_write_shu(8,0,rebuf[3]); //ID3

LCD_write_shu(5,2,rebuf[4]); //tem1

LCD_write_shu(6,2,rebuf[5]); //tem2

LCD_write_shu(7,2,10); //

LCD_write_shu(8,2,rebuf[6]); //tem3

LCD_write_shu(9,2,12); //℃

LCD_write_hanzi(5,4,0); //光

LCD_write_shu(7,4,11); //:

LCD_write_hanzi(8,4,(rebuf[8]+1)); //

if((rebuf[4]>=(tembuf[0]/10))&&(rebuf[5]>=(tembuf[0]%10)))

m_alarm = 1;

else

m_alarm = 0;

if((rebuf[4]<=(tembuf[1]/10))&&(rebuf[5]<=(tembuf[1]%10)))

m_alarm = 1;

else

m_alarm = 0;

}

}

你这个程序仅仅是调用几个名称里包含LCD字样的函数而已,在LCD屏幕上显示一个ASCII字符串,不是屏幕本身的什么字符集,屏幕是液晶的矩阵,字符在电脑的输入输出系统的有关输入输出的函数里面调用,是 *** 作系统和你的C语言接口函数在运转。

*** 作系统是底层的软件,学习C编程不需要在这里面兜圈子。

将1602型LCD显示设为16×1显示5×7点阵8位数据接口且要求液晶开显示光标闪烁请写入控制指令。

假设写命令函数为:WRDcomm(unsigned char com),则写4行命令字如下

WRDcomm(0x30);//写入命令,设置显示模式:8位数字接口,16X1行显示,5X7点阵

WRDcomm(0x0F);//写入命令,开显示,光标显示,光标闪烁

WRDcomm(0X06);//写入命令,移动光标

WRDcomm(0X01);//写入命令,清屏并光标复位

LCD1602指令集如下

以上就是关于20分!给个51单片机图像液晶程序全部的内容,包括:20分!给个51单片机图像液晶程序、求一个1602液晶显示最简单的汇编程序(在屏上显示一个数字就行了,过程完整)、怎样在5110LCD屏上显示五位数(从0开始递增)51单片机C程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9672848.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存