?? lcd320.c
字號:
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include "..\inc\def.h"
#include "..\inc\44b.h"
#include "..\inc\LCD320.h"
#include "..\inc\glib.h"
#include "..\inc\44blib.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;
//extern unsigned int (*frameBuffer1)[SCR_XSIZE/32];
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,
};
U8 LCDTxtBuffer[LCDRow][LCDColumn];
int LCDCurrentPrnTxt=0; //打印文本所在的行
U8 LCDIsprnOverPage=FALSE; //是否滾動屏幕
void LCD_txt(void)
{
char tmpbuf[500];
Glib_ClearScr(150);//LCD初始化
LCD_ChangeMode(DspTxtMode);
LCD_printf("Input 'quit' to exit test\n");
Uart_Printf("Input 'quit' to exit test\n");
while(1)
{
Uart_GetString(tmpbuf);
if (strcmp(tmpbuf,"quit")==0) break;
LCD_printf("%s\n",tmpbuf);
}
LCD_Cls();
LCD_printf("LCD Experiment.\n");
return ;
}
void LCD_TxtRefresh(int LCDCurrentDspTxt,U8 c)
{
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];
for(k=7;k>=0;k--)
{
data=(txtdata>>k)&0x1;
if (data==1)
PutPixel(i*8+8-k,j,c);
else PutPixel(i*8+8-k,j,150);
}
}
}
}
char tbuf[256];
void LCD_printf(const char *format,...)
{
int i,j=0;
int LCDCurrentDspTxt=0;
va_list v_list;
char *ptr;
va_start(v_list, format); // Initialize variable arguments.
vsprintf(tbuf, format, v_list );
va_end(v_list);
ptr= tbuf;
if(LCDdspMode!=DspTxtMode)
return;
/*格式化字符串*/
for(i=0;ptr[i]!=0;i++)
{
if(ptr[i]=='\n')
{ //換行
LCDCurrentPrnTxt++;
if(LCDCurrentPrnTxt>LCDRow-1)
{
LCDCurrentPrnTxt-=LCDRow;
LCDIsprnOverPage=TRUE;
}
if(LCDIsprnOverPage)
LCDCurrentDspTxt=LCDCurrentPrnTxt;
for(;j<LCDColumn;j++) //補齊空格
LCDTxtBuffer[LCDCurrentPrnTxt][j]=0;
j=0;
}
else{
if(j<LCDColumn)
LCDTxtBuffer[LCDCurrentPrnTxt][j++]=ptr[i];
}
}
LCD_TxtRefresh(LCDCurrentDspTxt,200);
}
void LCD_ChangeMode(U8 mode)
{
LCDdspMode=mode;
}
//文本模式下清除屏幕?
void LCD_Cls(void)
{
LCDCurrentPrnTxt=0, //打印文本所在的行
LCDIsprnOverPage=FALSE;
memset(LCDTxtBuffer,0,LCDRow*LCDColumn);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -