⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 picture.c

📁 一个LCD菜单绘图程序
💻 C
📖 第 1 页 / 共 2 页
字号:

#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 + -