📄 picture.c
字号:
#include <stdio.h> /* standard I/O .h-file */
#include <reg51f.h>
#include <absacc.h>
#include <x5045.h>
sbit lcd_rs = P1^5;
sbit lcd_e = P1^7;
sbit lcd_rw = P1^6;
unsigned char code hz0[];
unsigned char code hz1[];
unsigned char code nBitmapDot[];
unsigned char code zuobiao[];
#define LCD XBYTE[0x7000]
//**********
//延时子程序
//**********
void Delay(void)
{
unsigned char i;
i = 8;
while(--i);
}
//**********
//写指令子程序
//**********
void LcdCommand(unsigned char tt)
{
Delay();
lcd_rs = 0;
lcd_rw = 0;
lcd_e = 1;
Delay();
LCD = tt;
Delay();
lcd_e = 0;
Delay();
}
//**************
//写数据子程序
//**************
void LcdData( unsigned char temp )
{
Delay(); //以确保上一指令/数据模块已经接收处理完
lcd_rs = 1;
lcd_rw = 0;
lcd_e = 1;
Delay();
LCD = temp;
Delay();
lcd_e = 0;
Delay();
}
//**********************
// 清除图形显示
//***********************
void ClearGraph(void)
{
unsigned char row,column,i,j;
row = 0x80; //列
column = 0x80; //行
for(j=0;j<=64;j++)
{
for(i=0;i<=17;i++)
{
LcdCommand(0x34); //关闭绘图显示功能
LcdCommand(column+j); //起始行
LcdCommand(row+i); //起始列
LcdCommand(0x30); //基本指令集
LcdData(0); //输入显示数据(横向高8位数据)
LcdData(0); //输入显示数据(横向低8位数据)
}
}
LcdCommand(0x36); //打开绘图显示功能
LcdCommand(0x30);
}
//***********************************
//图形显示程序步骤:
//1、写Y坐标
//2、写X坐标
//3、写D15-D8
//4、写D7-D0
//左半屏
//************************************
/*void pic_showL(p)//y,x,
unsigned char *p;//y,x,
{
unsigned char i,j;
LcdCommand(0x36);
for(i=0x80;i<0xa0;i++) //写上半屏
{
for(j=0x80;j<0x84;j++)
{
LcdCommand(i);
LcdCommand(j);
LcdData(*p);
LcdData(*(p+1));
p = p + 2;
}
}
for(i=0x80;i<0xa0;i++) //写下半屏
{
for(j=0x88;j<0x8C;j++)
{
LcdCommand(i);
LcdCommand(j);
LcdData(*p);
LcdData(*(p+1));
p = p + 2;
}
}
LcdCommand(0x36);
LcdCommand(0x30);
}
//***********************************
//图形显示程序步骤:
//1、写Y坐标
//2、写X坐标
//3、写D15-D8
//4、写D7-D0
//右半屏
//************************************
void pic_showR(p)//y,x,
unsigned char *p;//y,x,
{
unsigned char i,j;
LcdCommand(0x36);
for(i=0x80;i<0xa0;i++) //写上半屏
{
for(j=0x84;j<0x88;j++)
{
LcdCommand(i);
LcdCommand(j);
LcdData(*p);
LcdData(*(p+1));
p = p + 2;
}
}
for(i=0x80;i<0xa0;i++) //写下半屏
{
for(j=0x8c;j<0x90;j++)
{
LcdCommand(i);
LcdCommand(j);
LcdData(*p);
LcdData(*(p+1));
p = p + 2;
}
}
LcdCommand(0x36);
LcdCommand(0x30);
}*/
//***********************************
//图形显示程序步骤:
//1、写Y坐标
//2、写X坐标
//3、写D15-D8
//4、写D7-D0
//全屏
//************************************
void pic_showF(p)//y,x,
unsigned char *p;//y,x,
{
unsigned char i,j;
LcdCommand(0x36);
for(i=0x80;i<0xa0;i++) //写上半屏
{
for(j=0x80;j<0x88;j++)
{
LcdCommand(i);
LcdCommand(j);
LcdData(*p);
LcdData(*(p+1));
p = p + 2;
}
}
for(i=0x80;i<0xa0;i++) //写下半屏 32行点 8列字
{
for(j=0x88;j<0x90;j++)
{
LcdCommand(i);
LcdCommand(j);
LcdData(*p);
LcdData(*(p+1));
p = p + 2;
}
}
LcdCommand(0x36);
LcdCommand(0x30);
}
void main(){
init5045();
X5045WriteStatus(0x30);
ClearGraph();
//pic_showL(hz0);
//pic_showR(hz1);
pic_showF(zuobiao);
for(;;);
}
/////////////////////////////////////////////////////////////////////////
// Bitmap点阵数据表 //
// 图片: C:\..ures\back.bmp,横向取模左高位,数据排列:从左到右从上到下 //
// 图片尺寸: 128 * 64 //
/////////////////////////////////////////////////////////////////////////
/*unsigned char code nBitmapDot[] = // 数据表
{
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,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,
0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,
0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,
0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,
0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,
0x00,0x00,0x00,0x01,0x01,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x10,
0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x05,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x25,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x75,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x25,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x05,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x01,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x01,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,
0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -