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

📄 lcd320.c

📁 这是嵌入式软件电话本的小软件
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <stdarg.h>
#include <stdio.h>


#include "..\..\inc\def.h"
#include "..\..\startup\44b.h"
#include "..\..\inc\drv\LCD320.h"
#include "Uhal.h"

#include "tchScr.h"
#include "Maro.h"

#define LCDCON1_ENVID		(1)
#define LCDCON1_INVVD		(1<<1)
#define LCDCON1_INVFRAME	(1<<2)
#define LCDCON1_INVLINE		(1<<3)
#define LCDCON1_INVCLK		(1<<4)
#define LCDCON1_MMODE		(1<<7)


#define L248 		(8)
#define CLKVAL		(20)	// 60Mhz, fr=100Hz (CLKVAL=38.6)


#define M5D(n) ((n) & 0x1fffff)


//////////////////LCD Information//////////////
#define LCDColumn	40
#define LCDRow		20

#define LCDTxtMode_TxtWidth		8
#define LCDTxtMode_TxtHeight	12


U32* pLCDBuffer16=(U32*)0xc000000;

U32 LCDBuffer[LCDHEIGHT][LCDWIDTH];

U32 LCDdspMode=DspTxtMode;
U8 LCDTxtData[128][12]={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c,0x10,0x10,0x10,0x10,0x10,
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,0x10,0x10,0x10,0x10,0x10,
	0x10,0x10,0x10,0x10,0x10,0x10,0x1c,0x0, 0x0, 0x0, 0x0, 0x0, 
	0x10,0x10,0x10,0x10,0x10,0x10,0xf0,0x0, 0x0, 0x0, 0x0, 0x0, 
	0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc,0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x30,0x78,0x78,0x78,0x30,0x0, 0x0, 0x0, 0x0, 
	0xfc,0xfc,0xfc,0xcc,0x84,0x84,0x84,0xcc,0xfc,0xfc,0xfc,0xfc,
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x1c,0xc, 0xc, 0x14,0x10,0x30,0x48,0x48,0x30,0x0, 0x0, 
	0x0, 0x38,0x44,0x44,0x38,0x10,0x7c,0x10,0x10,0x10,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0xc, 0x34,0x2c,0x34,0x24,0x24,0x2c,0x6c,0x60,0x0, 0x0, 
	0x0, 0x54,0x54,0x28,0x28,0x6c,0x28,0x28,0x54,0x54,0x0, 0x0, 
	0x10,0x10,0x10,0x10,0x10,0x10,0xfc,0x10,0x10,0x10,0x10,0x10,
	0x0, 0x4, 0xc, 0x1c,0x3c,0x7c,0x3c,0x1c,0xc, 0x4, 0x0, 0x0, 
	0x10,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x10,0x0, 0x0, 
	0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x0, 0x28,0x28,0x0, 0x0, 
	0x3c,0x54,0x54,0x54,0x34,0x14,0x14,0x14,0x14,0x14,0x0, 0x0, 
	0x10,0x10,0x10,0x10,0x10,0x10,0xfc,0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc,0x10,0x10,0x10,0x10,0x10,
	0x10,0x10,0x10,0x10,0x10,0x10,0xf0,0x10,0x10,0x10,0x10,0x10,
	0x10,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0, 0x0, 
	0x10,0x10,0x10,0x10,0x10,0x10,0x1c,0x10,0x10,0x10,0x10,0x10,
	0x0, 0x0, 0x0, 0x0, 0x8, 0x7c,0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x20,0x7c,0x20,0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x20,0x20,0x20,0x20,0x20,0x20,0x0, 0x20,0x0, 0x0, 
	0x0, 0x28,0x50,0x50,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x28,0x28,0xfc,0x28,0x50,0xfc,0x50,0x50,0x0, 0x0, 
	0x0, 0x20,0x78,0xa8,0xa0,0x60,0x30,0x28,0xa8,0xf0,0x20,0x0, 
	0x0, 0x0, 0x48,0xa8,0xb0,0x50,0x28,0x34,0x54,0x48,0x0, 0x0, 
	0x0, 0x0, 0x20,0x50,0x50,0x78,0xa8,0xa8,0x90,0x6c,0x0, 0x0, 
	0x0, 0x40,0x40,0x80,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x4, 0x8, 0x10,0x10,0x10,0x10,0x10,0x10,0x8, 0x4, 0x0, 
	0x0, 0x40,0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x40,0x0, 
	0x0, 0x0, 0x0, 0x20,0xa8,0x70,0x70,0xa8,0x20,0x0, 0x0, 0x0, 
	0x0, 0x0, 0x20,0x20,0x20,0xf8,0x20,0x20,0x20,0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40,0x40,0x80,
	0x0, 0x0, 0x0, 0x0, 0x0, 0xf8,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40,0x0, 0x0, 
	0x0, 0x8, 0x10,0x10,0x10,0x20,0x20,0x40,0x40,0x40,0x80,0x0, 
	0x0, 0x0, 0x70,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x0, 0x0, 
	0x0, 0x0, 0x20,0x60,0x20,0x20,0x20,0x20,0x20,0x70,0x0, 0x0, 
	0x0, 0x0, 0x70,0x88,0x88,0x10,0x20,0x40,0x80,0xf8,0x0, 0x0, 
	0x0, 0x0, 0x70,0x88,0x8, 0x30,0x8, 0x8, 0x88,0x70,0x0, 0x0, 
	0x0, 0x0, 0x10,0x30,0x50,0x50,0x90,0x78,0x10,0x18,0x0, 0x0, 
	0x0, 0x0, 0xf8,0x80,0x80,0xf0,0x8, 0x8, 0x88,0x70,0x0, 0x0, 
	0x0, 0x0, 0x70,0x90,0x80,0xf0,0x88,0x88,0x88,0x70,0x0, 0x0, 
	0x0, 0x0, 0xf8,0x90,0x10,0x20,0x20,0x20,0x20,0x20,0x0, 0x0, 
	0x0, 0x0, 0x70,0x88,0x88,0x70,0x88,0x88,0x88,0x70,0x0, 0x0, 
	0x0, 0x0, 0x70,0x88,0x88,0x88,0x78,0x8, 0x48,0x70,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x20,0x0, 0x0, 0x0, 0x0, 0x20,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x20,0x0, 0x0, 0x0, 0x20,0x20,0x0, 
	0x0, 0x4, 0x8, 0x10,0x20,0x40,0x20,0x10,0x8, 0x4, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0xf8,0x0, 0x0, 0xf8,0x0, 0x0, 0x0, 0x0, 
	0x0, 0x40,0x20,0x10,0x8, 0x4, 0x8, 0x10,0x20,0x40,0x0, 0x0, 
	0x0, 0x0, 0x70,0x88,0x88,0x10,0x20,0x20,0x0, 0x20,0x0, 0x0, 
	0x0, 0x0, 0x70,0x88,0x98,0xa8,0xa8,0xb8,0x80,0x78,0x0, 0x0, 
	0x0, 0x0, 0x20,0x20,0x30,0x50,0x50,0x78,0x48,0xcc,0x0, 0x0, 
	0x0, 0x0, 0xf0,0x48,0x48,0x70,0x48,0x48,0x48,0xf0,0x0, 0x0, 
	0x0, 0x0, 0x78,0x88,0x80,0x80,0x80,0x80,0x88,0x70,0x0, 0x0, 
	0x0, 0x0, 0xf0,0x48,0x48,0x48,0x48,0x48,0x48,0xf0,0x0, 0x0, 
	0x0, 0x0, 0xf8,0x48,0x50,0x70,0x50,0x40,0x48,0xf8,0x0, 0x0, 
	0x0, 0x0, 0xf8,0x48,0x50,0x70,0x50,0x40,0x40,0xe0,0x0, 0x0, 
	0x0, 0x0, 0x38,0x48,0x80,0x80,0x9c,0x88,0x48,0x30,0x0, 0x0, 
	0x0, 0x0, 0xcc,0x48,0x48,0x78,0x48,0x48,0x48,0xcc,0x0, 0x0, 
	0x0, 0x0, 0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0xf8,0x0, 0x0, 
	0x0, 0x0, 0x7c,0x10,0x10,0x10,0x10,0x10,0x10,0x90,0xe0,0x0, 
	0x0, 0x0, 0xec,0x48,0x50,0x60,0x50,0x50,0x48,0xec,0x0, 0x0, 
	0x0, 0x0, 0xe0,0x40,0x40,0x40,0x40,0x40,0x44,0xfc,0x0, 0x0, 
	0x0, 0x0, 0xd8,0xd8,0xd8,0xd8,0xa8,0xa8,0xa8,0xa8,0x0, 0x0, 
	0x0, 0x0, 0xdc,0x48,0x68,0x68,0x58,0x58,0x48,0xe8,0x0, 0x0, 
	0x0, 0x0, 0x70,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x0, 0x0, 
	0x0, 0x0, 0xf0,0x48,0x48,0x70,0x40,0x40,0x40,0xe0,0x0, 0x0, 
	0x0, 0x0, 0x70,0x88,0x88,0x88,0x88,0xe8,0x98,0x70,0x18,0x0, 
	0x0, 0x0, 0xf0,0x48,0x48,0x70,0x50,0x48,0x48,0xec,0x0, 0x0, 
	0x0, 0x0, 0x78,0x88,0x80,0x60,0x10,0x8, 0x88,0xf0,0x0, 0x0, 
	0x0, 0x0, 0xf8,0xa8,0x20,0x20,0x20,0x20,0x20,0x70,0x0, 0x0, 
	0x0, 0x0, 0xcc,0x48,0x48,0x48,0x48,0x48,0x48,0x30,0x0, 0x0, 
	0x0, 0x0, 0xcc,0x48,0x48,0x50,0x50,0x30,0x20,0x20,0x0, 0x0, 
	0x0, 0x0, 0xa8,0xa8,0xa8,0x70,0x50,0x50,0x50,0x50,0x0, 0x0, 
	0x0, 0x0, 0xd8,0x50,0x50,0x20,0x20,0x50,0x50,0xd8,0x0, 0x0, 
	0x0, 0x0, 0xd8,0x50,0x50,0x20,0x20,0x20,0x20,0x70,0x0, 0x0, 
	0x0, 0x0, 0xf8,0x90,0x10,0x20,0x20,0x40,0x48,0xf8,0x0, 0x0, 
	0x0, 0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x38,0x0, 
	0x0, 0x40,0x40,0x40,0x20,0x20,0x10,0x10,0x10,0x8, 0x0, 0x0, 
	0x0, 0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x70,0x0, 
	0x0, 0x20,0x50,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc,
	0x0, 0x20,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x30,0x48,0x38,0x48,0x3c,0x0, 0x0, 
	0x0, 0x0, 0xc0,0x40,0x40,0x70,0x48,0x48,0x48,0x70,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x38,0x48,0x40,0x40,0x38,0x0, 0x0, 
	0x0, 0x0, 0x18,0x8, 0x8, 0x38,0x48,0x48,0x48,0x3c,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x30,0x48,0x78,0x40,0x38,0x0, 0x0, 
	0x0, 0x0, 0x1c,0x20,0x20,0x78,0x20,0x20,0x20,0x78,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,0x48,0x30,0x40,0x78,0x44,0x38,
	0x0, 0x0, 0xc0,0x40,0x40,0x70,0x48,0x48,0x48,0xec,0x0, 0x0, 
	0x0, 0x0, 0x20,0x0, 0x0, 0x60,0x20,0x20,0x20,0x70,0x0, 0x0, 
	0x0, 0x0, 0x10,0x0, 0x0, 0x30,0x10,0x10,0x10,0x10,0x10,0xe0,
	0x0, 0x0, 0xc0,0x40,0x40,0x5c,0x50,0x70,0x48,0xec,0x0, 0x0, 
	0x0, 0x0, 0xe0,0x20,0x20,0x20,0x20,0x20,0x20,0xf8,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,0xa8,0xa8,0xa8,0xa8,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,0x48,0x48,0x48,0xec,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x30,0x48,0x48,0x48,0x30,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,0x48,0x48,0x48,0x70,0x40,0xe0,
	0x0, 0x0, 0x0, 0x0, 0x0, 0x38,0x48,0x48,0x48,0x38,0x8, 0x1c,
	0x0, 0x0, 0x0, 0x0, 0x0, 0xd8,0x60,0x40,0x40,0xe0,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0x78,0x40,0x30,0x8, 0x78,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x20,0x20,0x70,0x20,0x20,0x20,0x18,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0xd8,0x48,0x48,0x48,0x3c,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0xec,0x48,0x50,0x30,0x20,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0xa8,0xa8,0x70,0x50,0x50,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0xd8,0x50,0x20,0x50,0xd8,0x0, 0x0, 
	0x0, 0x0, 0x0, 0x0, 0x0, 0xec,0x48,0x50,0x30,0x20,0x20,0xc0,
	0x0, 0x0, 0x0, 0x0, 0x0, 0x78,0x10,0x20,0x20,0x78,0x0, 0x0, 
	0x0, 0x18,0x10,0x10,0x10,0x20,0x10,0x10,0x10,0x10,0x18,0x0, 
	0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
	0x0, 0x60,0x20,0x20,0x20,0x10,0x20,0x20,0x20,0x20,0x60,0x0, 
	0x40,0xa4,0x18,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
};

void LCD_Init(void)
{
	int i;
	U32 LCDBASEU,LCDBASEL,LCDBANK;

	LCDDisplayOpen(FALSE);

	for(i=0;i<40*240;i++)
		*(pLCDBuffer16+i)=0x0;

	/////////////初始化LCD端口/////////////
	/*  PORT D GROUP for LCD                                                        */
	/*      I  I  I  I  O  O  O  O                                                      */
	/*      00 00 00 00 01 01 01 01                                                     */
	
	rPDATD= 0xff;
	rPCOND= 0xaaaa;//configur the portD as VD0,VD1,VD2,VD3,VCLK,VLINK,VM,VFRAME...ect. LCD function
	rPUPD = 0x0;//enable pull up resistor
	/////////////////////////////////////

	rLCDCON1=(0);//|(1<<5)|(0x3<<8)|(0x3<<10)|(CLKVAL<<12);		//LCD control 1 register
	    // disable,4B_SNGL_SCAN,WDLY=16clk,WLH=16clk,CLKVAL=?
	rLCDCON2=(240-1)|(79<<10)|(10<<21);						//LCD control 1 register
	    //320x240LCD  LINEBLANK=10 (without any calculation) 
	LCDBANK=0xc000000>>22;//((U32)LCDBuffer16)>>22;
	LCDBASEU=0x0;//((U32)LCDBuffer16)&0x3fffff;
	LCDBASEL=LCDBASEU+(80)*240;
	rLCDSADDR1= (0x2<<27) |(LCDBANK<<21)|LCDBASEU;//| ((((U32)LCDBuffer16)>>1)&0x7ffffff);
	    // 16-gray, LCDBANK, LCDBASEU
	    //Frame buffer start address 1 register
	rLCDSADDR2= (0<<29)|(0<<21)|LCDBASEL;
	    //Frame buffer start address 2 register
	rLCDSADDR3= (320/4) | ( 0<<9 );
	    //Frame buffer start address 3 register
	    //No virtual screen. 

	//The following value has to be changed for better display.
	//Select 4 levels among 16 gray levels.

/*	rBLUELUT=0xfa40; */
/*	rDITHMODE=0x0;
	rDP1_2 =0xa5a5;      
	rDP4_7 =0xba5da65;
	rDP3_5 =0xa5a5f;
	rDP2_3 =0xd6b;
	rDP5_7 =0xeb7b5ed;
	rDP3_4 =0x7dbe;
	rDP4_5 =0x7ebdf;
	rDP6_7 =0x7fdfbfe;*/

	rLCDCON1=LCDCON1_ENVID|(1<<5)|(0x0<<8)|(0x3<<10)|(CLKVAL<<12);//|LCDCON1_MMODE;
	    // enable,4B_SNGL_SCAN,WDLY=16clk,WLH=16clk,CLKVAL=?

	Delay(5000);
	LCDBkLight(TRUE);

	LCDDisplayOpen(TRUE);

/*	for(i=0;i<20;i++){
		LCD_printf("asjdlfk;mdlg==%d\n",i);
		Delay(1000);
	}*/
}

void LCDBkLight(U8 isOpen)
{
	if(isOpen){
		rPDATC|=LCDBkLightPin;
	}
	else{
		rPDATC&=~LCDBkLightPin;
	}
}

void LCDDisplayOpen(U8 isOpen)
{
	if(isOpen){
		rPDATC|=LCDDisplayPin;
	}
	else{
		rPDATC&=~LCDDisplayPin;
	}
}

U8 LCDTxtBuffer[LCDRow][LCDColumn];
int LCDCurrentPrnTxt=0;	//打印文本所在的行
U8 LCDIsprnOverPage=FALSE;	//是否滚动屏幕

void LCD_TxtRefresh(int LCDCurrentDspTxt)
{
	int i,j,k,showrow;
	unsigned int data;
	U8 txtdata;
	for(j=0;j<LCDHEIGHT;j++){
		for(i=0;i<LCDColumn;i++){
			data=0;
			showrow=LCDCurrentDspTxt+j/LCDTxtMode_TxtHeight;
			if(showrow>LCDRow-1)
				showrow-=LCDRow;
			txtdata=LCDTxtBuffer[showrow][i];
			if(txtdata>128)
				txtdata=' ';
			txtdata=LCDTxtData[txtdata][j%LCDTxtMode_TxtHeight];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -