📄 12232.c
字号:
putchar_l(ubyte);
RS = 0;
RW=0;
send_mi(0xee);
send_si(0xee);
}
//----------------------------------------------------------
//--------设置读写改--------
//----------------------------------------------------------
void read_write_r(u_char ubyte)
{
send_mi(0xe0);
send_si(0xe0);
ubyte=ubyte|read_data();
putchar_r(ubyte);
RS = 0;
RW=0;
send_mi(0xee);
send_si(0xee);
}
/****************************************************************************/
/* 函数名:draw_bmp */
/* 功 能:画一个图,横坐标是col,layer表示上下层,width是图形的宽,高固定16 */
/* 作 者:spot */
/* 输 入: */
/* col 图型的起始位置0~121 */
/* layer 图形的位置(Y坐标)0-下半部分 非0-上半部分 */
/* width */
/* bmp 图形数据指针 */
/* */
/* 输 出:无 */
/* */
/* 历史记录: */
/* spot 2005-06-28 Creat Inital version. (Version 1.0) */
/****************************************************************************/
void draw_bmp(u_char col,u_char y,u_char width,u_char *bmp)
{
//y:0~7
u_char x;
u_char address; /* address表示显存的物理地址 */
u_char p=0;
u_char y0=0;
u_char buf=0;
u_char buf0=0;
u_char buf1=0;
u_char buf3=0;
u_char buf2=0;
//u_char page; /* page表示上下两页,window表示左右窗口(0左,1右) */
u_char window;
// if (layer)
// {
// page=2; /* 左-主窗口,右-从窗口 */
// }
//
for (x=col; x<col+width; x++)
{
if (x>121)
return; /* 防止显示乱码 */
if (x>60) /* 左右窗口定位 */
{
window=1; /* 右-从窗口 */
address=x%61;
}
else
{
window=0;
address=x; /* 主窗口输出 */
}
if(y==0)
{
buf2=bmp[p];
buf3=bmp[p+width];
set_page(2);
set_address(address);
if (window)
putchar_r(buf2);
// read_write_r(buf2);
else
putchar_l(buf2);
// read_write_l(buf2);
set_page(3);
set_address(address);
if (window)
// putchar_r(buf3);
read_write_r(buf3);
else
// putchar_l(buf3);
read_write_l(buf3);
}
if(y>0&&y<8)
{
buf=bmp[p];
buf1=buf<<(8-y);
buf=bmp[p];
buf2=buf>>y;
buf=bmp[p+width];
buf2=(buf<<(8-y))|buf2;
buf=bmp[p+width];
buf3=buf>>y;
set_page(1);
set_address(address);
if (window)
// putchar_r(buf1);
read_write_r(buf1);
else
// putchar_l(buf1);
read_write_l(buf1);
set_page(2);
set_address(address);
if (window)
// putchar_r(buf2);
read_write_r(buf2);
else
// putchar_l(buf2);
read_write_l(buf2);
set_page(3);
set_address(address);
if (window)
// putchar_r(buf3);
read_write_r(buf3);
else
// putchar_l(buf3);
read_write_l(buf3);
}
if(y==8)
{
buf1=bmp[p];
buf2=bmp[p+width];
set_page(1);
set_address(address);
if (window)
// putchar_r(buf1);
read_write_r(buf1);
else
// putchar_l(buf1);
read_write_l(buf1);
set_page(2);
set_address(address);
if (window)
// putchar_r(buf2);
read_write_r(buf2);
else
// putchar_l(buf2);
read_write_l(buf2);
}
if(y>8&&y<16)
{
y0=y;
y=y%8;
buf=bmp[p];
buf0=buf<<(8-y);
buf=bmp[p];
buf1=buf>>y;
buf=bmp[p+width];
buf1=(buf<<(8-y))|buf1;
buf=bmp[p+width];
buf2=buf>>y;
y=y0;
set_page(0);
set_address(address);
if (window)
// putchar_r(buf0);
read_write_r(buf0);
else
// putchar_l(buf0);
read_write_l(buf0);
set_page(1);
set_address(address);
if (window)
// putchar_r(buf1);
read_write_r(buf1);
else
// putchar_l(buf1);
read_write_l(buf1);
set_page(2);
set_address(address);
if (window)
// putchar_r(buf2);
read_write_r(buf2);
else
// putchar_l(buf2);
read_write_l(buf2);
}
if(y==16)
{
buf0=bmp[p];
buf1=bmp[p+width];
set_page(0);
set_address(address);
if (window)
// putchar_r(buf0);
read_write_r(buf0);
else
// putchar_l(buf0);
read_write_l(buf0);
set_page(1);
set_address(address);
if (window)
// putchar_r(buf1);
read_write_r(buf1);
else
// putchar_l(buf1);
read_write_l(buf1);
}
p++;
}
}
delay(u_char i)
{
u_char j;
for(i=i<<1;i>0;i--)
for(j=0xf3;j>0;j--)
{}
}
//unsigned char code jing[]=//笑脸
//{0x00,0xE0,0xF0,0x2C,0x06,0x47,0x83,0x41,0x01,0x01,0x43,0x87,0x46,0x1C,0xF8,0xE0,
//0x00,0x07,0x07,0x18,0x10,0x60,0x44,0x88,0x94,0x94,0x88,0x84,0x60,0x30,0x0F,0x07,
// };
unsigned char code jing[]=
{0xFC,0xFC,0x0C,0xFC,0x00,0xFE,0x66,0x9E,0x00,0xF6,0x36,0xF6,0x06,0xFE,0x06,0x00,
0x1F,0x1F,0x06,0x0F,0x00,0x7F,0x08,0x0F,0x00,0x0F,0x06,0x6F,0x60,0x3F,0x00,0x00
};
main(void)
{
int i;
int p=0;
int q=0;
P0=0xff;
P1=0xff;
P2=0xff;
P3=0xff;
delay(255);
lcd_init();
lcd_init();
lcd_init();
lcd_clr();
while(1)
{
if(q<17)
{
if(p<106)
{
delay(0xff);
draw_bmp(p,q,16,jing);
for(i=0;i<50;i++)
{
delay(0xff);
}
//lcd_clr();
p+=16;
q+=0;
}
else p=0;
}
else q=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -