//=============================================
#include <reg52.h>
#include <intrins.h>
sbit LCD_RS =P3^0; //L:存取缓存器,H:存取DDRAM
sbit LCD_WR =P3^1; //L有效
sbit LCD_RD =P3^3; //L有效
sbit LCD_CS1 =P3^4; //L有效
sbit LCD_CS2 =P3^5; //H有效
sbit LCD_BUSY =P3^6;
sbit LCD_RST =P3^7; //L有效
sbit DCLK =P2^7; //根据用户自己的定义
sbit CS =P2^6;
sbit DIN =P2^5;
sbit STA =P2^4;
sbit DOUT =P2^3;
sbit INT =P3^2; //GP-CHECK4
#define lcd_regname P1
#define lcd_regdata P1
#define lcd_regnada P1
#define lcd_data P1
#define lcd_control P3
#define uchar unsigned char
#define uint unsigned int
uchar taby[4];
uchar tabx[4];
uint x[6],y[6],xmin,ymin,xmax,ymax;
uint a="0",r,q=0;
//=============================================
uchar code chn[]={
"支持文字与绘图两种混和显示模式 "
"支持2 Page 显示模式(And, Or, Nor, Xor) "
"内建两个显示 RAM,可做成4 灰阶的显示效果"
"内建中文字库储存7602个标准GB码的简体中文"
"提供全角(16x16)与半角(8x16) 文字显示模式"
"内建8x8 键盘扫瞄界面(Key Scan) "
"光标、反白、闪烁功能,光标高度与宽度可调"
"支持屏幕水平卷动及垂直卷动功能 "
"内建512Byte SRAM 可自行造字 "
"提供中/英文文字对齐功能 "
"显示字型可放大到32x32、48x48 或64x64 "
"支持可将字型由ROM 直接读出使用 "
"内建粗体字形与行距设定 "
"内建10-Bit ADC 支持触控屏幕应用 "
"可使用3V/5V 供电而不需外接负电压 "
};
uchar code chn1[]={
" 触摸屏坐标测试 "
" X= "
" Y= "
};
uchar code chn2[]={
" 取值参考范围: "
" <X< "
" <Y< "
};
uchar code alb[]={
"0123456789"
};
uchar code pic[]={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x3F,0xF8,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
0x80,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x00,
0x0F,0xFF,0x00,0x01,0x80,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x80,0x00,0x0F,0xFF,0x00,0x01,0x80,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0C,0x43,0x01,0x80,0x00,0x7F,0xFF,0xF0,0x01,0x80,0xFF,0xFF,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x43,0x01,0x80,0x00,0x7F,0xFF,0xF0,0x01,
0x83,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0xFF,0x07,0x00,0x07,
0xFF,0xFF,0xFE,0x01,0x83,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,
0xFF,0x07,0x00,0x07,0xFF,0xFF,0xFE,0x01,0x87,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x3F,0xFC,0x1E,0x00,0x1F,0xFF,0xFF,0xFF,0x81,0x87,0xFF,0xFF,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x3F,0xFC,0x1E,0x00,0x1F,0xFF,0xFF,0xFF,0x81,
0x8F,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xBF,0xFF,0xFC,0x00,0x7F,
0xFC,0x00,0x7F,0xC1,0x8F,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xBF,
0xFF,0xFC,0x00,0x7F,0xFC,0x00,0x7F,0xC1,0x9F,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xF0,0x00,0xFF,0xC0,0x00,0x0F,0xE1,0x9F,0xFF,0xFF,0xE0,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xF0,0x00,0xFF,0xC0,0x00,0x0F,0xE1,
0x97,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xE0,0x03,0xFF,
0xFF,0xFC,0x01,0xF1,0x97,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,
0xFF,0xE0,0x03,0xFF,0xFF,0xFC,0x01,0xF1,0x9F,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xDF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0x80,0xF1,0x9F,0xFF,0xFF,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xDF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0x80,0xF1,
0x97,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x0F,0xFF,
0xFF,0xFF,0xE0,0x39,0x97,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,
0xFF,0x00,0x0F,0xFF,0xFF,0xFF,0xE0,0x39,0x9F,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,
0x00,0x00,0x07,0xFF,0xF8,0x00,0x1F,0xFF,0xF0,0x03,0xF8,0x39,0x9F,0x7F,0xFF,0xFC,
0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xF8,0x00,0x1F,0xFF,0xF0,0x03,0xF8,0x39,
0x8B,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xE0,0x00,0x3F,0xFF,
0xFF,0xC0,0x7C,0x19,0x8B,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,
0xE0,0x00,0x3F,0xFF,0xFF,0xC0,0x7C,0x19,0x87,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,
0x00,0x00,0x04,0x7F,0xF0,0x00,0x3F,0xFF,0xFF,0xF8,0x1E,0x09,0x87,0xFF,0xFF,0xFC,
0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xF0,0x00,0x3F,0xFF,0xFF,0xF8,0x1E,0x09,
0x8B,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xF8,0x00,0x7F,0xFF,
0xFF,0xFE,0x0F,0x09,0x8B,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,
0xF8,0x00,0x7F,0xFF,0xFF,0xFE,0x0F,0x09,0x81,0xF3,0xFF,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x0F,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0xFF,0x87,0x09,0x81,0xF3,0xFF,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0xFF,0x87,0x09,
0x81,0xF7,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFE,0x00,0xFF,0xFF,
0xFF,0xFF,0x83,0x89,0x81,0xF7,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,
0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0x83,0x89,0x81,0xF7,0xFF,0xFF,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xC3,0x89,0x81,0xF7,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xC3,0x89,
0x81,0xD3,0xFF,0xFF,0xF0,0x3F,0xF8,0x00,0x00,0x00,0x7F,0xFF,0xFE,0x01,0xFF,0xFF,
0xFF,0xFF,0xE1,0x89,0x81,0xD3,0xFF,0xFF,0xF0,0x3F,0xF8,0x00,0x00,0x00,0x7F,0xFF,
0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xE1,0x89,0x81,0xD3,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
0x00,0x00,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xE1,0x89,0x81,0xD3,0xFF,0xFF,
0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xE1,0x89,
0x80,0xE3,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,
0xFF,0xFF,0xF1,0x89,0x80,0xE3,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x01,0xFF,0xFF,
0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF1,0x89,0x80,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,
0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF3,0x09,0x80,0x03,0xFF,0xFF,
0xFF,0xFF,0xFF,0xC0,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF3,0x09,
0x80,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x01,0xFF,0xFF,0xFF,0x07,0xFF,0xFF,
0xFF,0xFF,0xF2,0x11,0x80,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x01,0xFF,0xFF,
0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xF2,0x11,0x80,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0x00,0x01,0xFF,0xFF,0xFF,0x8F,0xFF,0xFF,0xFF,0xFF,0xF0,0x21,0x80,0x03,0xFF,0xFF,
0xFF,0xFF,0xFF,0xF0,0x00,0x01,0xFF,0xFF,0xFF,0x8F,0xFF,0xFF,0xFF,0xFF,0xF0,0x21,
0x80,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xF0,0x01,0x80,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x01,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x01,0x80,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,
0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x70,0x01,0x80,0x03,0xFF,0xFF,
0xFF,0xFF,0xFF,0xF8,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x70,0x01,
0x80,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFE,0xFF,0x70,0x01,0x80,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x01,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x01,0x80,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x01,0x80,0x01,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFC,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x01,
0x80,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,
0xFF,0x7F,0x20,0x01,0x80,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0xFF,0xFF,
0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0x20,0x01,0x80,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0x7F,0x20,0x01,0x80,0x00,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFE,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0x7F,0x20,0x01,
0x80,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xDF,
0xFF,0x7E,0x20,0x01,0x80,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x7F,0xFF,
0xFF,0xFF,0xFF,0xDF,0xFF,0x7E,0x20,0x01,0x81,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x80,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x3E,0x40,0x01,0x81,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x3E,0x40,0x01,
0x81,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xCF,
0xFF,0x3C,0x40,0x01,0x81,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x1F,0xFF,
0xFF,0xFF,0xFF,0xCF,0xFF,0x3C,0x40,0x01,0x83,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xC0,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFE,0x38,0x40,0x01,0x83,0xFF,0xEF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFE,0x38,0x40,0x01,
0x83,0xE0,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x8F,
0xFE,0x38,0x40,0x01,0x83,0xE0,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x07,0xFF,
0xFF,0xFF,0xFF,0x8F,0xFE,0x38,0x40,0x01,0x83,0xC0,0x07,0xC0,0x00,0x3F,0xFF,0xF7,
0xE0,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x30,0x40,0x01,0x83,0xC0,0x07,0xC0,
0x00,0x3F,0xFF,0xF7,0xE0,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x30,0x40,0x01,
0x83,0x80,0x07,0xC0,0x00,0x3F,0xFF,0xE7,0xF0,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x1F,
0x7C,0x20,0x40,0x01,0x83,0x80,0x07,0xC0,0x00,0x3F,0xFF,0xE7,0xF0,0x00,0x00,0xFF,
0xFF,0xFF,0xFF,0x1F,0x7C,0x20,0x40,0x01,0x83,0x80,0x07,0xC0,0x00,0x1F,0xFF,0xE3,
0xF8,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x1E,0x78,0x00,0x40,0x01,0x83,0x80,0x07,0xC0,
0x00,0x1F,0xFF,0xE3,0xF8,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x1E,0x78,0x00,0x40,0x01,
0x83,0x80,0x0F,0x80,0x00,0x1F,0xFF,0xC3,0xF8,0x00,0x00,0x3F,0xFF,0xFF,0xFE,0x1E,
0xF0,0x00,0x00,0x01,0x83,0x80,0x0F,0x80,0x00,0x1F,0xFF,0xC3,0xF8,0x00,0x00,0x3F,
0xFF,0xFF,0xFE,0x1E,0xF0,0x00,0x00,0x01,0x83,0x00,0x0F,0x80,0x00,0x0F,0xE7,0xE1,
0xFC,0x00,0x00,0x1F,0xFF,0xFF,0xDA,0x3C,0xE0,0x00,0x00,0x01,0x83,0x00,0x0F,0x80,
0x00,0x0F,0xE7,0xE1,0xFC,0x00,0x00,0x1F,0xFF,0xFF,0xDA,0x3C,0xE0,0x00,0x00,0x01,
0x83,0x80,0x0F,0x00,0x00,0x0F,0xF7,0xE0,0xFE,0x00,0x00,0x07,0xFF,0xFF,0xF2,0x30,
0x80,0x00,0x00,0x01,0x83,0x80,0x0F,0x00,0x00,0x0F,0xF7,0xE0,0xFE,0x00,0x00,0x07,
0xFF,0xFF,0xF2,0x30,0x80,0x00,0x00,0x01,0x87,0x80,0x1F,0x00,0x00,0x07,0xF7,0xE0,
0x77,0x00,0x00,0x01,0xFF,0xFF,0xF1,0x20,0x00,0x00,0x00,0x01,0x87,0x80,0x1F,0x00,
0x00,0x07,0xF7,0xE0,0x77,0x00,0x00,0x01,0xFF,0xFF,0xF1,0x20,0x00,0x00,0x00,0x01,
0x87,0xC0,0x1F,0x00,0x00,0x03,0xF3,0xF0,0x73,0x80,0x00,0x00,0xFE,0x7F,0xF0,0x00,
0x00,0x00,0x00,0x01,0x87,0xC0,0x1F,0x00,0x00,0x03,0xF3,0xF0,0x73,0x80,0x00,0x00,
0xFE,0x7F,0xF0,0x00,0x00,0x00,0x00,0x01,0x87,0xE0,0x1E,0x00,0x00,0x01,0xF9,0xF0,
0x71,0xC0,0x00,0x00,0x7C,0x3F,0xF0,0x00,0x00,0x00,0x00,0x01,0x87,0xE0,0x1E,0x00,
0x00,0x01,0xF9,0xF0,0x71,0xC0,0x00,0x00,0x7C,0x3F,0xF0,0x00,0x00,0x00,0x00,0x01,
0x87,0xE0,0x1E,0x00,0x00,0x00,0xF8,0xF8,0x78,0xC0,0x00,0x00,0x78,0x1F,0xE0,0x00,
0x00,0x00,0x00,0x01,0x87,0xE0,0x1E,0x00,0x00,0x00,0xF8,0xF8,0x78,0xC0,0x00,0x00,
0x78,0x1F,0xE0,0x00,0x00,0x00,0x00,0x01,0x83,0xE0,0x1C,0x00,0x00,0x00,0x7C,0xF8,
0x7C,0x60,0x00,0x00,0x72,0x07,0xE0,0x00,0x00,0x00,0x00,0x01,0x83,0xE0,0x1C,0x00,
0x00,0x00,0x7C,0xF8,0x7C,0x60,0x00,0x00,0x72,0x07,0xE0,0x00,0x00,0x00,0x00,0x01,
0x81,0xE0,0x18,0x00,0x00,0x00,0x7C,0xFC,0x7E,0x30,0x00,0x00,0x70,0x00,0xE0,0x00,
0x00,0x00,0x00,0x01,0x81,0xE0,0x18,0x00,0x00,0x00,0x7C,0xFC,0x7E,0x30,0x00,0x00,
0x70,0x00,0xE0,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x38,0x00,0x00,0x00,0x3F,0xF8,
0x7F,0x10,0x00,0x00,0x60,0x00,0x78,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x38,0x00,
0x00,0x00,0x3F,0xF8,0x7F,0x10,0x00,0x00,0x60,0x00,0x78,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x38,0x00,0x00,0x00,0x3F,0xE0,0x3C,0x90,0x00,0x00,0x60,0x00,0x60,0x00,
0x00,0x00,0x00,0x01,0x80,0x00,0x38,0x00,0x00,0x00,0x3F,0xE0,0x3C,0x90,0x00,0x00,
0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x78,0x00,0x00,0x00,0x3F,0x80,
0x3C,0x10,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x78,0x00,
0x00,0x00,0x3F,0x80,0x3C,0x10,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x78,0x00,0x00,0x00,0x7E,0x00,0x3C,0x10,0x00,0x01,0x40,0x04,0xD8,0x00,
0x00,0x00,0x00,0x01,0x80,0x00,0x78,0x00,0x00,0x00,0x7E,0x00,0x3C,0x10,0x00,0x01,
0x40,0x04,0xD8,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0xF8,0x00,0x00,0x00,0xFC,0x00,
0x1E,0x0A,0x00,0x01,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0xF8,0x00,
0x00,0x00,0xFC,0x00,0x1E,0x0A,0x00,0x01,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x01,
0x80,0x01,0xF0,0x00,0x00,0x00,0xF8,0x00,0x07,0x04,0x00,0x02,0x0C,0x02,0x00,0x00,
0x00,0x00,0x00,0x01,0x80,0x01,0xF0,0x00,0x00,0x00,0xF8,0x00,0x07,0x04,0x00,0x02,
0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0xF0,0x00,0x00,0x00,0xF0,0x00,
0x00,0x80,0x00,0x02,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0xF0,0x00,
0x00,0x00,0xF0,0x00,0x00,0x80,0x00,0x02,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0x00,0x0C,0x48,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0x00,0x0C,
0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x01,0xF0,0x00,
0x00,0x00,0x00,0x38,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,
0x00,0x01,0xF0,0x00,0x00,0x00,0x00,0x38,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x03,0xE0,0x00,0x00,0x00,0x0F,0xE2,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x03,0xE0,0x00,0x00,0x00,0x0F,0xE2,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x07,0xC0,0x00,
0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,
0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0xC0,0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
//微秒级延时
void Delay_Nus(uint N)
{
while(N--);
}
//毫秒级延时
void Delay_Nms (uint N)
{
uint i;
for(i=0;i<N;i++)
Delay_Nus(123);
}
//送数据子函数
void SendData(uchar regnada) small
{
lcd_regnada = regnada;
LCD_CS1 =0; // chip enable.
LCD_RD = 1; //
LCD_RS = 0; // rs = 0;
LCD_WR = 0; // wr = 0;
;
LCD_WR = 1; // wr = 1;
LCD_RS = 1; // rs = 1;
LCD_CS1 =1; // chip disable.
}
//写资料到缓存器
void WriteDataToREG(uchar regname,uchar regdata) small
{
SendData(regname);
Delay_Nus(1);
SendData(regdata);
}
//写资料到DDRAM
void WiteDataToDDRAM(uchar wrdata) small
{
while(LCD_BUSY == 1);
lcd_data = wrdata;
LCD_CS1 =0; // chip enable.
LCD_RD = 1; //
LCD_RS = 1; // rs = 1;
LCD_WR = 0; // wr = 0;
;
LCD_WR = 1; // wr = 1;
LCD_RS = 1; // rs = 1;
LCD_CS1 =1; // chip disable.
}
//读缓存器
uchar ReadDataFromREG(uchar regname) small
{
uchar reg_rddata;
SendData(regname);
lcd_data = 0xff;
LCD_CS1 =0; // chip enable.
LCD_WR = 1; // wr = 1;
LCD_RS = 0; // rs = 0;
LCD_RD = 0; // rd = 0;
;
reg_rddata = lcd_data;
LCD_RD = 1; // rd = 1;
LCD_RS = 1; // rs = 1;
LCD_CS1 =1; // chip disable.
return(reg_rddata);
}
//上电复位
void LCD_Reset(void) small
{
Delay_Nms(120); // Delay_Nus 120ms 等待上电复位
lcd_control = 0xff; // LCD_RS/WR/RD/CS1/CS2 normal - skeep high.
}
//设定坐标
void SetXY(uchar x,uchar y) small
{
WriteDataToREG(0x60,x); // active window top register(awtr)
WriteDataToREG(0x70,y); // active window top register(awtr)
}
//初始化
void LCD_Initial(void) small
{
WriteDataToREG(0x00,0xc9); // lcd control register(lcr)
WriteDataToREG(0x01,0xf2); // misc.register(mir)
WriteDataToREG(0x02,0x10); // advance power setup register(apsr)
WriteDataToREG(0x03,0x80); // advance display setup regiser(adsr)
WriteDataToREG(0x10,0x6b); // cursor control register(ccr)
WriteDataToREG(0x11,0x00); // distance of word or lines register(dwlr)
WriteDataToREG(0x12,0x91); // memory access mode register(awrr)
WriteDataToREG(0x21,0x27); // display window right register(dwrr)
WriteDataToREG(0x31,0xef); // display window bottom register(dwbr)
WriteDataToREG(0x41,0x00); // display window left register(dwlr)
WriteDataToREG(0x51,0x00); // display window top register(dwtr)
WriteDataToREG(0x20,0x27); // active window right register(awrr)
WriteDataToREG(0x30,0xef); // active window bottom register(awbr)
WriteDataToREG(0x40,0x00); // active window left register(awlr)
WriteDataToREG(0x50,0x00); // active window top register(awtr)
WriteDataToREG(0x60,0x00); // cursor position x register(cpxr)
WriteDataToREG(0x61,0x00); // begin segment position register(bgsg)
WriteDataToREG(0x70,0x00); // cursor position y register(cpyr)
WriteDataToREG(0x71,0x00); // shift action range,begin commom register(bgcm)
WriteDataToREG(0x72,0xef); // shift action range,end commom register(edcm)
WriteDataToREG(0x80,0xaa); // blink time register(btr)
WriteDataToREG(0x81,0x00); // frame rate polarity change at common_fa register(fdca)
WriteDataToREG(0x91,0x00); // frame rate polarity change at common_fb register(fdcb)
WriteDataToREG(0x90,0x06); // shift clock control register(sccr)
WriteDataToREG(0xa0,0x11); // interrupt setup & status register(frcb)
WriteDataToREG(0xa1,0x00); // key scan control register(kscr)
WriteDataToREG(0xa2,0x00); // key scan data register(ksdr)
WriteDataToREG(0xa3,0x00); // key scan data expand register(kser)
WriteDataToREG(0xb0,0x27); // interrupt column setup register(intx)
WriteDataToREG(0xb1,0xef); // interrupt row setup register(inty)
WriteDataToREG(0xc0,0x00); // touch panel control register(tpcr)
WriteDataToREG(0xc1,0x0a); // adc status register(adcs)
WriteDataToREG(0xc8,0x80); // touch panel segment high byte data register(tpxr)
WriteDataToREG(0xc9,0x80); // touch panel common high byte data register(tpyr)
WriteDataToREG(0xca,0x00); // touch panel segment/common low byte data register(tpzr)
WriteDataToREG(0xd0,0x80); // lcd contrast control register (lccr)
WriteDataToREG(0xe0,0x00); // pattern data register(pdr)
WriteDataToREG(0xf0,0xa0); // font control register(fcr)
WriteDataToREG(0xf1,0x0f); // font size control register
}
//清屏
void LCD_Clear(void) small
{
uchar reg_rddata;
WriteDataToREG(0xe0,0x00);
reg_rddata = ReadDataFromREG(0xf0);
reg_rddata |= 0x08;
WriteDataToREG(0xf0,reg_rddata);
}
//显示图形
void Display_Picture(uchar code *pho) small
{
uchar i,j,k;
uchar code *pp;
SetXY(0,0);
for(k=0;k<4;k++)
{
pp=pho;
for(j=0;j<60;j++)
{
for(i=0;i<40;i++)
{
WiteDataToDDRAM(*pp);
++pp;
}
}
}
}
//显示点阵
void Display_Grid(uchar data1,uchar data2) small
{
uchar i,j;
SetXY(0,0);
for(j=0;j<60;j++)
{
for(i=0;i<80;i++)
{
WiteDataToDDRAM(data1);
}
for(i=0;i<80;i++)
{
WiteDataToDDRAM(data2);
}
}
}
//显示点阵
void Display_Grid1() small
{
uchar i,j,k;
for(k=0;k<3;k++)
{
for(i=0;i<3;i++)
{
for(j=0;j<16;j++)
{
SetXY(19*i,j+k*112);
WiteDataToDDRAM(0xff);
WiteDataToDDRAM(0xff);
}
}
}
}
//显示中文或字符
void Display_Chinese(uchar code *cha,int count) small
{
int i;
for(i=0;i<count;i++)
{
WiteDataToDDRAM(*cha);
++cha;
}
}
//显示中文或字符
void Display_Chinese1(int count) small
{
WiteDataToDDRAM(count);
}
//向ADS7843写数据
WriteDataTo7843(unsigned char num)
{
unsigned char count="0";
DCLK=0;
for(count=0;count<8;count++)
{
num<<=1;
DIN=CY;
DCLK=0; _nop_();_nop_();_nop_();
DCLK=1; _nop_();_nop_();_nop_();
}
}
//从ADS7843读数据
ReadDataFrom7843(void)
{
unsigned char count="0";
unsigned int Num="0";
for(count=0;count<12;count++)
{
Num<<=1;
DCLK=1; _nop_();_nop_();_nop_();
DCLK=0; _nop_();_nop_();_nop_();
if(DOUT) Num++;
}
return(Num);
}
//ADS7843初始化
void start(void)
{
DCLK=0;
CS=1;
DIN=1;
DCLK=1;
CS=0;
}
//中断程序
void go() interrupt 0
{
uchar i;
uint X="0",Y=0,X_temp[2],Y_temp[2];
start(); //启动SPI
Delay_Nus(2);
for(i=0;i<2;i++)
{
for(r=0;r<6;r++)
{
WriteDataTo7843(0x90); //送控制字 10010000 即用差分方式读X坐标 详细请见有关资料
DCLK=1; _nop_();_nop_();_nop_();_nop_();
DCLK=0; _nop_();_nop_();_nop_();_nop_();
x[r]=ReadDataFrom7843(); //读X轴坐标
WriteDataTo7843(0xD0); //送控制字 11010000 即用差分方式读Y坐标 详细请见有关资料
DCLK=1; _nop_();_nop_();_nop_();_nop_();
DCLK=0; _nop_();_nop_();_nop_();_nop_();
y[r]=ReadDataFrom7843(); //读Y轴坐标
}
xmin=x[0];xmax=x[0];ymin=y[0];ymax=y[0];
for(r=1;r<6;r++)
{
if(x[r]<xmin)
xmin=x[r];
if(x[r]>xmax)
xmax=x[r];
if(y[r]<ymin)
ymin=y[r];
if(y[r]>ymax)
ymax=y[r];
}
X_temp=(x[0]+x[1]+x[2]+x[3]+x[4]+x[5]-xmin-xmax)/4;
Y_temp=(y[0]+y[1]+y[2]+y[3]+y[4]+y[5]-ymin-ymax)/4;
}
CS=1;
INT=1;
X=(X_temp[0]+X_temp[1])/2;
Y=(Y_temp[0]+Y_temp[1])/2;
tabx[0]=X/1000;
tabx[1]=X%1000/100;
tabx[2]=X%100/10;
tabx[3]=X%10;
taby[0]=Y/1000;
taby[1]=Y%1000/100;
taby[2]=Y%100/10;
taby[3]=Y%10;
if(q==0)
{
LCD_Clear();q=1;
WriteDataToREG(0x00,0xc5);
Display_Grid1();
WriteDataToREG(0x10,0x2b);
WriteDataToREG(0x00,0xcd);
SetXY(0,48);
Display_Chinese(chn1,120);
SetXY(0,144);
Display_Chinese(chn2,120);
}
for(r=0;r<4;r++)
{
SetXY(19+r,64);
Display_Chinese1(alb[tabx[r]]);
}
for(r=0;r<4;r++)
{
SetXY(19+r,80);
Display_Chinese1(alb[taby[r]]);
}
Delay_Nms(300);
}
//!!!!!!!主程序!!!!!!!!!!!
void main (void)
{
SP=0x5f;
LCD_Reset();
LCD_Initial();
LCD_Clear();
IE=0x81;
IT0=0;
while(1)
{
IE=0x00;
q=0;
WriteDataToREG(0x10,0x29);
WriteDataToREG(0x00,0xcd);
SetXY(0x00,0x00);
Display_Chinese(chn,600);
IE=0x81;
Delay_Nms(3000);
IE=0x00;
q=0;
WriteDataToREG(0x00,0xc5);
Display_Grid(0xcc,0xcc);
IE=0x81;
Delay_Nms(3000);
IE=0x00;
q=0;
WriteDataToREG(0x00,0xc5);
Display_Grid(0x33,0x33);
IE=0x81;
Delay_Nms(3000);
IE=0x00;
q=0;
WriteDataToREG(0x10,0x2b);
WriteDataToREG(0x00,0xcd);
SetXY(0x00,0x00);
Display_Chinese(chn,600);
IE=0x81;
Delay_Nms(3000);
IE=0x00;
q=0;
WriteDataToREG(0x00,0xc5);
Display_Grid(0xcc,0x33);
IE=0x81;
Delay_Nms(3000);
IE=0x00;
q=0;
WriteDataToREG(0x00,0xc5);
Display_Picture(pic);
IE=0x81;
Delay_Nms(3000);
}
}
文章评论(0条评论)
登录后参与讨论