#include<reg51.h>
#include<string.h>
#include<stdio.h>
#include<intrins.h>
#include<absacc.h>
//#include "CGRAM_TAB.h"
//#include "picture.h"
#define part1 //一般功能显示
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define SPI4
#ifdef SPI4
sbit sclk = P3^0;
sbit sdi = P3^1;
sbit sdo = P3^3;
sbit cs = P3^4;
//sbit rest = P3^5;
#endif
#define WD 480 /* 显示区宽度 */
#define HD 272 /* 显示区高度 */
#define clear 0x00 /* Clear Display */
#define time 500 /* 1000延时 1.03895500 s */
#define color_brown 0x40c0
#define color_black 0x0000
#define color_white 0xffff
#define color_red 0xf800
#define color_green 0x07e0
#define color_blue 0x001f
#define color_yellow color_red|color_green
#define color_cyan color_green|color_blue
#define color_purple color_red|color_blue
unsigned char code gImage_picture320240_256[3300] = { /* 0X18,0X08,0X00,0X42,0X00,0X32, */
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,0XFF,0XFF,0XDF,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,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,0XB6,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,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,0XBA,0XBA,
0XFF,0XFF,0XFF,0XFF,0XFF,0XBA,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,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0X95,0XFF,0XB6,0XB9,0XFF,0X95,0X71,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,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XDA,0XB5,0XB5,0X88,0XB5,0XDF,0X70,0X6C,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,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XB0,0XB5,0XB0,0XB4,0XB5,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,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XB5,0XB1,0XAC,0XAC,0XB0,0XB0,0XB4,0XB5,0XB5,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,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XF2,0XC9,0XC4,0XE4,0XED,0XE4,0XE8,0XA8,0XA8,0XA4,0XA8,0XB6,
0XB5,0XDA,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,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XED,0XED,0XE4,0XC4,0XE9,0XF7,0XFB,0XE4,0XC4,0XC4,0XE4,0XC4,
0XC8,0XC8,0XED,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,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XF6,0XE4,0XC0,0XC0,0XFB,0XE8,0XF2,0XC8,0XF2,0XC0,0XC0,
0XE9,0XC4,0XC0,0XE4,0XC9,0XC8,0XFA,0XF2,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,0XDB,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XCD,0XC0,0XC0,0XC8,0XC4,0XE0,0XE4,0XFF,0XFB,0XF6,
0XED,0XED,0XE4,0XFB,0XE9,0XC9,0XE9,0XC8,0XC0,0XF6,0XD1,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,0XBA,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC9,0XC0,0XC0,0XC0,0XC9,0XC0,0XC4,0XC0,
0XED,0XC4,0XFF,0XC0,0XC4,0XC4,0XFB,0XF7,0XE8,0XED,0XC4,0XC9,0XED,0XED,0XFB,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,0XFB,0XFF,0XFF,0XD7,0XA4,0XC0,0XC0,0XC0,0XC0,0XC4,
0XF2,0XC0,0XED,0XFF,0XE4,0XFB,0XF7,0XC4,0XF6,0XE4,0XC0,0XF7,0XE8,0XE0,0XED,0XC4,
0XCD,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,0X71,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XBA,0X91,0XFF,0XFF,0XDE,0XDF,0XFF,0XFF,0XD6,0XA4,0XC0,0XC0,0XC0,
0XC0,0XC4,0XC4,0XE4,0XC0,0XC0,0XFB,0XF2,0XC0,0XFF,0XC4,0XC4,0XC4,0XC0,0XC4,0XEE,
0XC9,0XC4,0XC4,0XFB,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,0X96,
0XDF,0XFF,0XFF,0XFF,0XFF,0XDF,0XBA,0XDA,0XDA,0X90,0XFF,0XFF,0XFF,0XA9,0XA0,0XA0,
0XC4,0XC4,0XC4,0XC0,0XC9,0XC0,0XC0,0XC0,0XC0,0XC0,0XC0,0XC0,0XC0,0XF6,0XC0,0XC4,
0XC4,0XE9,0XC4,0XC8,0XED,0XC9,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,0XDA,0XDE,0XFF,0XFF,0XB6,0XBA,0X88,0X91,0XFF,0XFF,0XFF,0XD2,0XD6,
0XA4,0XA0,0XC4,0XC0,0XC0,0XC0,0XA0,0XC4,0XC8,0XC0,0XC0,0XC0,0XF2,0XA0,0XC0,0XC0,
0XC0,0XC4,0XC0,0XC4,0XFB,0XCD,0XC8,0XC9,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,0XDA,0XDA,0XDA,0X91,0XFF,0XFF,0XBA,0XDE,0XDF,0X6C,0XFF,0XF6,0XC9,
0XCD,0XCD,0XC9,0XC4,0XA4,0XA0,0XA0,0XA0,0XC0,0XC4,0XC4,0XC0,0XA0,0XC0,0XC0,0XC0,
0XC4,0XC0,0XC4,0XC8,0XC4,0XC8,0XC4,0XC4,0XC9,0XC8,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,0X71,0XFB,0XDE,0XB5,0X90,0XB5,0XDA,0XB6,0XDF,0XDA,0XA8,0XC4,
0XC4,0XC4,0XCD,0XEE,0XC4,0XC0,0XC4,0XC4,0XA0,0XC8,0XA0,0XC0,0XA0,0XA0,0XC0,0XA0,
0XA0,0XC0,0XA0,0XC0,0XC0,0XC4,0XA0,0XC0,0XC4,0XC4,0XC4,0XC4,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,0XBA,0XDE,0XDE,0X90,0XDA,0XDA,0XDA,0XDE,0X60,0XA0,
0XA4,0XD1,0XC9,0XC4,0XC9,0XC9,0XC9,0XC4,0XC4,0XE8,0XC4,0XA0,0XA0,0XA0,0XA0,0XA0,
0XA0,0XA4,0XC9,0XA4,0XA0,0XA4,0XA0,0XA0,0XA8,0XC0,0XC4,0XC9,0XC4,0XC9,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,0XB6,0XAC,0XB0,0X90,0XD6,0X70,0X88,
0X60,0X84,0XC9,0XC0,0XE9,0XF6,0XCD,0XC0,0XC4,0XC0,0XC0,0XC0,0XC0,0XC0,0XA0,0X80,
0XC0,0XA0,0X84,0XA0,0XA0,0XA0,0XCD,0XA0,0XA0,0XA4,0XC5,0XC9,0XA0,0XCD,0XC4,0XA4,
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,0XFB,0XD2,0XA4,0X80,0X80,0X80,0X80,
0X80,0XA0,0XA4,0XA0,0XC0,0XC0,0XF7,0XE9,0XC5,0XC4,0XF1,0XC5,0XC0,0XC0,0XC0,0XC0,
0XA0,0XA0,0XA0,0XA0,0XC9,0XA0,0X80,0XA0,0XA0,0XA0,0XA0,0XA0,0XA0,0XA0,0XA4,0XA4,
0XC8,0XC9,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XCD,0XC4,0XC9,0XAD,0XA8,0XA4,
0X80,0X80,0X80,0XA0,0XC0,0XC0,0XC8,0XE9,0XC0,0XF2,0XFF,0XF6,0XA0,0XC9,0XC4,0XC0,
0XC4,0XC0,0XC0,0XA0,0XA4,0XA0,0XA0,0X80,0XA0,0XA0,0XA0,0XC9,0XA0,0XA4,0XA0,0XA4,
0XA8,0XA4,0XA4,0XF6,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC4,0XC9,0XCD,0XA4,0X80,
0XC8,0XC4,0XA4,0XA4,0XA4,0XC4,0XC4,0XC0,0XC0,0XE9,0XC4,0XF2,0XE4,0XED,0XCD,0XC4,
0XC4,0XC9,0XA0,0XC0,0XC4,0XA4,0XA0,0XA4,0XA4,0XA4,0XA0,0X80,0XA0,0XA4,0XA4,0XA4,
0XA8,0XA9,0XD2,0XA8,0XCD,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC9,0XC4,0XC9,0XC8,
0XD1,0XA0,0XC0,0XC4,0XC4,0XC4,0XC0,0XC5,0XC0,0XC0,0XC0,0XC0,0XC0,0XFB,0XFF,0XC0,
0XF7,0XA4,0XE9,0XC5,0XC0,0XC0,0XC4,0XC4,0XA0,0XA0,0XA0,0XA0,0XA4,0XC8,0XA0,0XA4,
0XA0,0XA9,0XA8,0X84,0XA0,0XA8,0XD6,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XD2,0XA8,
0XC8,0XC0,0XC0,0XC0,0XC4,0XC0,0XC4,0XED,0XC0,0XC0,0XC0,0XC0,0XF6,0XA0,0XF6,0XC4,
0XC0,0XC0,0XC0,0XC0,0XC0,0XC4,0XC0,0XC0,0XCD,0XC9,0XA0,0XC0,0XA0,0XA4,0XA0,0XA4,
0X80,0XA9,0XA4,0XA0,0XA4,0XA8,0XA9,0XD2,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFB,
0XF7,0XC9,0XA0,0XC0,0XC0,0XC8,0XC4,0XEE,0XC4,0XC0,0XFB,0XC4,0XC0,0XC9,0XC4,0XC4,
0XC0,0XC0,0XC0,0XA0,0XC0,0XA0,0XC0,0XC4,0XC0,0XC0,0XC9,0XC8,0X80,0XA0,0X80,0XA0,
0XA0,0XA0,0XA0,0XA4,0XA0,0XA4,0XA0,0XCD,0XA4,0XFB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XC9,0XA9,0XC9,0XD1,0XC0,0XC4,0XC4,0XCD,0XC5,0XC9,0XC0,0XC0,0XC5,0XE9,0XA0,
0XA0,0XA0,0XC0,0XC0,0XC0,0XC0,0XC0,0XC4,0XC8,0XA0,0XA0,0XA4,0XA9,0XC4,0XA4,0XA0,
0XA0,0XA0,0X80,0XA0,0XA0,0XC4,0XA0,0XA0,0XC9,0XCD,0XCD,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XA4,0XCD,0XC9,0XA0,0XA8,0XA0,0XC0,0XA0,0XA0,0XCD,0XC0,0XA0,0XC4,
0XC0,0XF6,0XC4,0XA0,0XC0,0XA0,0XA0,0XC8,0XC0,0XC4,0XC4,0XA0,0XA0,0XD2,0XD2,0XC9,
0XA4,0XA4,0XA0,0XA0,0XC9,0XA0,0X80,0XA0,0XC4,0XCD,0XA4,0XD2,0XDB,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XC8,0XA4,0XA8,0XA4,0XA9,0XA4,0XA0,0XA0,0XA0,0XC4,0XC4,
0XC8,0XC0,0XA0,0XC4,0XA0,0XC0,0XC0,0XC0,0XC0,0XC0,0XC0,0XA0,0XA0,0XC4,0XA4,0XA0,
0XA8,0XCD,0XA0,0XA0,0XA4,0XC0,0XA0,0XA0,0XA4,0XA4,0XA9,0XA0,0XD1,0XB2,0XD6,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XD6,0XD6,0XA4,0XA4,0XA8,0XA9,0XA0,0XCD,0XD2,
0XA0,0XA9,0XC9,0XA4,0XA0,0XA0,0XA0,0XA0,0XA0,0XA4,0XA0,0XA0,0XA0,0XC8,0XC8,0XAD,
0XA8,0XA4,0XA4,0XC4,0XC0,0XC0,0XC0,0XC4,0XC9,0XC4,0XC9,0XA4,0XCD,0XD2,0XD2,0XB2,
0XDB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFB,0XA9,0XA0,0XA4,0XA0,0XA0,0XA0,
0XA0,0XA0,0XA0,0XCD,0XA4,0XA0,0XA0,0XC9,0XC4,0X80,0XA0,0X84,0XA0,0X80,0X84,0XA9,
0XCD,0X80,0XA0,0XD2,0XD6,0XD2,0XA0,0XA0,0XA0,0XA0,0XA0,0XA4,0XA0,0XCD,0XA8,0XAD,
0XB1,0XB6,0XDB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFA,0XD2,0XCD,0XA4,0XC9,
0XA4,0XA4,0XA0,0XA0,0XA0,0XA0,0XA0,0XA0,0X80,0XA0,0XA4,0XA0,0XA0,0XA0,0XA0,0XA4,
0XA0,0X80,0XA0,0XA0,0XA4,0XA4,0XA9,0XD2,0XA0,0XA0,0XA4,0XA4,0XC9,0XC8,0XCD,0XA4,
0XAD,0X8D,0XB2,0XDB,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,0XD2,0XA4,
0XA0,0XCD,0XA4,0XA0,0XA0,0XA4,0XA0,0XA4,0XA4,0XA0,0XC4,0XA0,0X80,0XA0,0XA0,0XA4,
0XA4,0XAD,0XA4,0XA4,0XA4,0XA9,0XA4,0XC9,0XA4,0XA0,0XA4,0XA8,0XC4,0XA8,0XA4,0XCD,
0XCD,0X8D,0XAD,0XB2,0XDB,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,
0XD2,0XA4,0XA4,0XA8,0X80,0XA9,0XA4,0XA4,0XA4,0XA0,0X80,0XA0,0XA0,0XA4,0XA0,0XA0,
0XA4,0X80,0XA0,0X80,0X84,0XAD,0XA9,0XA0,0XA4,0XCD,0XD7,0XA8,0XAD,0XA8,0XC9,0XC8,
0XCD,0XCD,0X8D,0XAD,0XB6,0XFB,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,0XD2,0XAD,0XA4,0XA4,0XA4,0X80,0XA4,0X80,0XA4,0XA0,0XA0,0X84,0XA4,
0X80,0XA4,0XA8,0XA0,0XA4,0X84,0X84,0X80,0XA0,0XA9,0XCE,0XCD,0XD2,0XA9,0XA9,0XA9,
0XA4,0X84,0X8D,0X8D,0XB2,0XDB,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,0XD6,0XA4,0XAD,0XAD,0XA4,0XA0,0XA4,0X80,0XA4,0XA4,0XA4,
0XA4,0XA4,0XA4,0XA4,0X80,0XA4,0XA9,0X84,0XAE,0XA9,0XCD,0XA0,0XCD,0XD6,0XCD,0X64,
0X84,0X89,0X89,0X8D,0X8D,0XB6,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,0XFB,0XD2,0XA9,0XA9,0XA8,0XA9,0XAD,0XA4,0XA4,
0XA0,0X80,0XA9,0X80,0XA4,0XA4,0XA0,0XA0,0XA0,0XA4,0X80,0XA0,0XAD,0XA0,0XA4,0XF2,
0XB2,0X8D,0XAD,0XB2,0XB2,0XD6,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,0XFB,0XCD,0XCD,0XA8,0XA9,0XA8,
0XA8,0XA0,0XA8,0XA4,0XA4,0XA4,0XA4,0X84,0XAD,0X84,0XAD,0XCD,0XA8,0XAD,0XAD,0XCD,
0XC4,0XC8,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,0XFF,0XFF,0XDB,0XD2,0XC8,0XA4,
0XCD,0XA8,0XA0,0XA4,0XA4,0XAD,0X84,0XA9,0XA9,0XA4,0XAD,0XA4,0XAD,0XA0,0XA8,0XA0,
0XA4,0XC9,0XCD,0XFA,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,0XFF,0XDB,0XDB,0XD6,
0XCD,0XAD,0XA4,0XA9,0XA4,0XAD,0XA4,0XA4,0XA0,0XA4,0XA0,0XA4,0XA4,0X80,0XAD,0XC9,
0XAD,0XA9,0XA4,0XA4,0XC4,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,0XFF,0XFF,0XDB,
0XD6,0XD6,0XB6,0XB2,0XC8,0XA8,0XA9,0XA9,0XA9,0XA4,0XA9,0XA4,0XA9,0XA8,0XAD,0XA4,
0XCE,0XA0,0XCD,0XA0,0XC9,0XD6,0XF6,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,0XFF,
0XFB,0XDB,0XD6,0XB6,0XB2,0XB2,0XB2,0XB1,0XA4,0XA4,0XA4,0XA9,0XA9,0XA4,0XA4,0XA4,
0XA4,0XA8,0XA0,0XA9,0XD2,0XA0,0XA8,0XC8,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,
0XFF,0XFF,0XFB,0XDB,0XD6,0XB6,0XB2,0XB2,0XB2,0XB2,0XB2,0X88,0XA8,0XA8,0XA4,0XA9,
0XA9,0X84,0XA8,0XAD,0XA4,0XA4,0XA0,0XCD,0XD2,0XD6,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,0XFF,0XFF,0XFB,0XDB,0XD6,0XB6,0XB2,0XB2,0XB2,0XB2,0XB2,0XB1,0XB1,0XA8,
0XA4,0XA4,0XA8,0XA4,0XA9,0XA0,0XA9,0XAD,0XAD,0XAD,0XCD,0XDB,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,0XFF,0XFF,0XFF,0XDB,0XD6,0XB6,0XB2,0XB2,0XB2,0XB2,0XB2,0XB2,
0XB2,0XB1,0X91,0XA9,0XA4,0XA4,0XA4,0XA9,0XA9,0XA4,0XA9,0XAD,0XB1,0XDB,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,0XFF,0XFF,0XFF,0XFB,0XDB,0XD6,0XB6,0XB2,0XB2,0XB2,
0XB2,0XB2,0XB2,0XB2,0XB2,0XB1,0XB1,0XAD,0X88,0X84,0X64,0X88,0X8D,0XB1,0XDB,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,0XFF,0XFF,0XFF,0XFF,0XFF,0XDB,0XDB,0XD6,0XB6,
0XB6,0XB2,0XB2,0XB2,0XB2,0XB2,0XB2,0XB2,0XB2,0XB2,0XB2,0XB2,0XB2,0XB6,0XD6,0XDB,
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,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XDB,0XDB,0XD6,0XD6,0XB6,0XB6,0XB6,0XB6,0XB6,0XB6,0XB6,0XB6,0XD6,0XDB,0XDB,0XFB,
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,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XDB,0XDB,0XDB,0XDB,0XDB,0XDB,0XDB,0XDB,0XDB,0XDB,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,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,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,};
/********* 时间延时程序 *********/
void delay(uint t) /* 1.02500 ms */
{ uint i,j;
for(i=t;i>0;i--)
for(j=125;j>0;j--);
}
void delay2(uint t) /* 1.02500 ms */
{ uint i;
for(i=t;i>0;i--)
_nop_();
}
#ifdef SPI4
/******** 写“8bit”程序 ********/
void write_8bit(uchar dat)
{ uchar i;
for(i=0;i<8;i++)
{
sdi=(bit)(dat & 0x80);
dat<<=1;
// sdi=CY;
sclk=0;
sclk=1;
}
}
/******** 读“状态””程序 ********/
void busy(void)
{ uchar i,temp;
do{
sclk=1;sdi=1;sdo=1;
cs=0;
write_8bit(0xc0);
for(i=0;i<8;i++)
{
temp<<=1;
sclk=0;
if(sdo)
temp++;
sclk=1;
}
cs=1;
}while(temp&0x80);
}
/******** 写“指令”程序 ********/
void write_com(uchar com)
{
busy();
sclk=1;sdi=1;sdo=1;
cs=0;
write_8bit(0x80);
write_8bit(com);
cs=1;
// delay2(1); //或者18个NOP,即18us
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
/******** 写“数据”程序 ********/
void write_data(uchar dat)
{
busy();
sclk=1;sdi=1;sdo=1;
cs=0;
write_8bit(0x00);
write_8bit(dat);
cs=1;
// delay2(1); //或者18个NOP,即18us
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
/******** 写“指令数据”程序 *********/
void write_comdat(uchar com,uchar dat)
{ write_com(com);
write_data(dat);
}
/******** 读“数据”程序 ********/
uchar read_data(void)
{ uchar i,temp;
cs=0;
write_8bit(0x40);
for(i=0;i<8;i++)
{
temp<<=1;
sclk=0;
if(sdo)
temp++;
sclk=1;
}
cs=1;
return temp;
}
#endif
/******** 工作窗口设置程序 ********/
void active_window(uint row0,uint row1,uint col0,uint col1)
{
write_comdat(0x30,col0); //Horizontal Start Point
write_comdat(0x31,col0>>8);
write_comdat(0x32,row0); //Vertical Start Point
write_comdat(0x33,row0>>8);
write_comdat(0x34,col1); //Horizontal End Point
write_comdat(0x35,col1>>8);
write_comdat(0x36,row1); //Vertical End Point
write_comdat(0x37,row1>>8);
}
/******** 卷动窗口设置程序 ********/
void scroll_window(uint row0,uint row1,uint col0,uint col1)
{
write_comdat(0x38,col0); //Horizontal Start Point
write_comdat(0x39,col0>>8);
write_comdat(0x3a,row0); //Vertical Start Point
write_comdat(0x3b,row0>>8);
write_comdat(0x3c,col1); //Horizontal End Point
write_comdat(0x3d,col1>>8);
write_comdat(0x3e,row1); //Vertical End Point
write_comdat(0x3f,row1>>8);
}
/******** 卷动偏移量设置程序 ********/
void scroll_offset(uint row,uint col)
{
write_comdat(0x24,col); //Horizontal offset
write_comdat(0x25,col>>8);
write_comdat(0x26,row); //Vertical offset
write_comdat(0x27,row>>8);
}
/******** 浮动窗口设置程序 ********/
void floating_window(uint row0,uint col0,uint height,uint width,uint row1,uint col1)
{
write_comdat(0xD0,col0); //Start Address XA:Destination
write_comdat(0xD1,col0>>8);
write_comdat(0xD2,row0); //Start Address YA:Destination
write_comdat(0xD3,row0>>8);
write_comdat(0xD4,width); //Width
write_comdat(0xD5,width>>8);
write_comdat(0xD6,height); //Height
write_comdat(0xD7,height>>8);
write_comdat(0xD8,col1); //Display X Address:Source
write_comdat(0xD9,col1>>8);
write_comdat(0xDA,row1); //Display Y Address:Source
write_comdat(0xDB,row1>>8);
}
/******** 字体(内部)设置程序 ********/
void font_in_set(void)
{ //CGROM=0:内部CGROM; CGROM=1:外部CGROM
//size=0x00:字体16、size=0x40:字体24、size=0x80:字体32
write_comdat(0x40,0x80); //文本模式、光标不闪烁
write_comdat(0x44,0x00); //Blink Time闪烁时间
// write_comdat(0x4E,0x0f); //Font Write Cursor Horizontal Size
// write_comdat(0x4F,0x01); //Font Write Cursor Vertical Size
write_comdat(0x21,0x00); //CGROM
write_comdat(0x22,0x00); //字体不对齐、背景色、不旋转、正常大小
write_comdat(0x29,0x00); //字体行间距00
write_comdat(0x2E,0x00); // 字体大小size、字体列间距00
write_comdat(0x2F,0x00); //字库GT、ASCII、Normal
}
/******** 字体(外部)设置程序 ********/
void font_ex_set(void)
{ //CGROM=0:内部CGROM; CGROM=1:外部CGROM
//size=0x00:字体16、size=0x40:字体24、size=0x80:字体32
write_comdat(0x44,0x00); //Blink Time闪烁时间
// write_comdat(0x4E,0x0f); //Font Write Cursor Horizontal Size
// write_comdat(0x4F,0x01); //Font Write Cursor Vertical Size
write_comdat(0x20,0x00);
write_comdat(0x21,0x20); //CGROM
write_comdat(0x22,0x00); //字体不对齐、背景色、不旋转、正常大小
write_comdat(0x22,0x00); //字体不对齐、背景色、不旋转、正常大小
write_comdat(0x29,0x00); //字体行间距00
write_comdat(0x2E,0x00); // 字体大小size、字体列间距00
write_comdat(0x2F,0x81); //字库GT、ASCII、Normal
}
/******** 字体地址程序 ********/
void font_position(uint row,uint col)
{
write_comdat(0x2A,(uchar)(col)); //Horizontal Position
write_comdat(0x2B,(uchar)(col>>8));
write_comdat(0x2C,(uchar)(row)); //Vertical Position
write_comdat(0x2D,(uchar)(row>>8));
}
/******** 内存写入地址程序 ********/
void memory_write_position(uint row,uint col)
{
write_comdat(0x46,(uchar)(col)); //Horizontal Position
write_comdat(0x47,(uchar)(col>>8));
write_comdat(0x48,(uchar)(row)); //Vertical Position
write_comdat(0x49,(uchar)(row>>8));
}
/******** 内存读取地址程序 ********/
void memory_read_position(uint row,uint col)
{
write_comdat(0x4A,col); //Horizontal Position
write_comdat(0x4B,col>>8);
write_comdat(0x4C,row); //Vertical Position
write_comdat(0x4D,row>>8);
}
/******** BTE背景色前景色设置程序 ********/
void back_fore_color(uint color_b,uint color_f)
{
write_comdat(0x60,(uchar)(color_b>>11)); //背景色
write_comdat(0x61,(uchar)(color_b>>5));
write_comdat(0x62,(uchar)(color_b));
write_comdat(0x63,(uchar)(color_f>>11)); //前景色
write_comdat(0x64,(uchar)(color_f>>5));
write_comdat(0x65,(uchar)(color_f));
}
/********倍频设置程序********/
void PLL(void)
{ write_comdat(0x88,0x0a);
write_comdat(0x89,0x02);
}
/******** 清屏程序********/
void clr(void)
{
// write_comdat(0x8E,0xC0); //清除显示窗口
active_window(0,HD-1,0,WD-1); //工作窗口
write_comdat(0x8E,0x80); //清除工作窗口
}
/******** 全屏(文本)显示程序********/
void fill_txt(uchar dat)
{ uint i;
font_position(0,0); //字体地址
write_com(0x02); //写数据
for(i=0;i<WD/8*HD/16;i++)
write_data(dat);
}
/******** 全屏(图形)显示程序********/
void fill_graph(uint x,uint y,uint k,uchar dat)
{ ulong i;
memory_write_position(x,y); //内存地址
write_com(0x02); //写数据
for(i=0;i<WD*k;i++)
write_data(dat);
}
/******** 256色显示程序********/
void color256(void)
{ uint i,j;
for(i=0;i<HD;i++)
{ memory_write_position(i,0); //内存地址
write_com(0x02); //写数据
for(j=0;j<WD;j++)
write_data(0x00+i);
}
}
/******** 字符(文本)显示程序 ********/
void chhzes_txt(uint x,uint y,uchar *s)
{
font_position(x,y); //字体地址
write_com(0x02); //写数据
while(*s!='\0')
write_data(*s++);
}
/******** 图片显示程序 ********/
void picture(uint x,uint y,uint m,uint n,uint sum,uchar *s) //写入点阵n*m字符
{ uint i;
active_window(x,x+m-1,y,y+n-1); //工作窗口
memory_write_position(x,y); //内存写入地址
write_com(0x02); //写数据
for(i=0;i<sum;i++)
write_data(*s++);
}
/******** 建立CGRAM自定义字符程序********/
void CGRAM_set(uchar *s,uchar k)
{ uchar i,j;
write_comdat(0x40,0x00); //图形模式
write_comdat(0x21,0x00);
write_comdat(0x41,0x04);
for(j=0;j<k;j++)
{ write_comdat(0x23,0x00+j); //CGRAM No
write_com(0x02); //写数据
for(i=0;i<16;i++)
write_data(*s++);
}
}
/******** 显示CGRAM自定义字符程序********/
void CGRAM_disp(uint x,uint y,uchar k,uchar cod)
{ uchar i;
write_comdat(0x40,0x80); //文本模式
write_comdat(0x21,0xa0);
write_comdat(0x41,0x00);
font_position(x,y); //字体地址
write_com(0x02); //写数据
for(i=0;i<k;i++)
write_data(cod+i);
}
/******** 画直线或矩形程序 ********/
/***** l_s=0:直线; l_s=1:矩形 *****/
void draw_line_square(uint x1,uint x2,uint y1,uint y2,uchar l_s)
{
write_comdat(0x91,(uchar)(y1)); //Horizontal Start Address
write_comdat(0x92,(uchar)(y1>>8));
write_comdat(0x93,(uchar)(x1)); //Vertical Start Address
write_comdat(0x94,(uchar)(x1>>8));
write_comdat(0x95,(uchar)(y2)); //Horizontal End Address
write_comdat(0x96,(uchar)(y2>>8));
write_comdat(0x97,(uchar)(x2)); //Vertical End Address
write_comdat(0x98,(uchar)(x2>>8));
if(l_s==0) //画直线
{ write_comdat(0x90,0x80); //Start
write_comdat(0x90,0x00); //End
}
else //画矩形
{ write_comdat(0x90,0x90); //Start,unfill
write_comdat(0x90,0x10); //End
// delay(time/2);
// write_comdat(0x90,0xb0); //Start,fill
// write_comdat(0x90,0x30); //End
}
}
/******** 画圆程序 ********/
void draw_circle(uint x,uint y,uint r)
{
write_comdat(0x99,(uchar)(y)); //Horizontal Address
write_comdat(0x9a,(uchar)(y>>8));
write_comdat(0x9b,(uchar)(x)); //Vertical Address
write_comdat(0x9c,(uchar)(x>>8));
write_comdat(0x9d,(uchar)(r)); //Center Address
write_comdat(0x90,0x40); //开始画圆,不填充
write_comdat(0x90,0x00); //结束画圆
delay(time/2);
write_comdat(0x90,0x60); //Start,fill
write_comdat(0x90,0x20); //End
}
/******** 画椭圆或圆角矩形程序 ********/
/**** e_cs=0:椭圆; e_cs=1:圆角方形 ****/
void draw_ellipse_csquare(uint x,uint y,uint l,uint s)
{
write_comdat(0xa1,(uchar)(l)); //Long axis
write_comdat(0xa2,(uchar)(l>>8));
write_comdat(0xa3,(uchar)(s)); //Short axis
write_comdat(0xa4,(uchar)(s>>8));
write_comdat(0xa5,(uchar)(y)); //Center Horizontal Address
write_comdat(0xa6,(uchar)(y>>8));
write_comdat(0xa7,(uchar)(x)); //Center Vertical Address
write_comdat(0xa8,(uchar)(x>>8));
write_comdat(0xa0,0x80); //Start,Unfill
write_comdat(0xa0,0x80); //End
delay(time/2);
write_comdat(0xa0,0xc0); //Start,fill
write_comdat(0xa0,0x40); //End
}
/******** 画圆角方形程序 ********/
void draw_circle_square(uint x1,uint x2,uint y1,uint y2,uint l,uint s)
{
write_comdat(0x91,(uchar)(y1)); //Horizontal Start Address
write_comdat(0x92,(uchar)(y1>>8));
write_comdat(0x93,(uchar)(x1)); //Vertical Start Address
write_comdat(0x94,(uchar)(x1>>8));
write_comdat(0x95,(uchar)(y2)); //Horizontal End Address
write_comdat(0x96,(uchar)(y2>>8));
write_comdat(0x97,(uchar)(x2)); //Vertical End Address
write_comdat(0x98,(uchar)(x2>>8));
write_comdat(0xa1,(uchar)(l)); //Long axis
write_comdat(0xa2,(uchar)(l>>8));
write_comdat(0xa3,(uchar)(s)); //Short axis
write_comdat(0xa4,(uchar)(s>>8));
write_comdat(0xa0,0xa0); //Start,Unfill
write_comdat(0xa0,0x20); //End
delay(time/2);
write_comdat(0xa0,0xe0); //Start,fill
write_comdat(0xa0,0x60); //End
}
/******** 画三角形程序 ********/
void draw_triangle(uint x1,uint y1,uint x2,uint y2,uint x3,uint y3)
{
write_comdat(0x91,(uchar)(y1)); //Point0 Horizontal Address
write_comdat(0x92,(uchar)(y1>>8));
write_comdat(0x93,(uchar)(x1)); //Point0 Vertical Address
write_comdat(0x94,(uchar)(x1>>8));
write_comdat(0x95,(uchar)(y2)); //Point1 Horizontal Address
write_comdat(0x96,(uchar)(y2>>8));
write_comdat(0x97,(uchar)(x2)); //Point1 Vertical Address
write_comdat(0x98,(uchar)(x2>>8));
write_comdat(0xa9,(uchar)(y3)); //Point2 Horizontal Address
write_comdat(0xaa,(uchar)(y3>>8));
write_comdat(0xab,(uchar)(x3)); //Point2 Vertical Address
write_comdat(0xac,(uchar)(x3>>8));
write_comdat(0x90,0x81); //Start,Unfill
write_comdat(0x90,0x01); //End
delay(time/2);
write_comdat(0x90,0xa1); //Start,fill
write_comdat(0x90,0x21); //End
}
#ifdef part2
/********* 触控中断状态 *********/
bit INT2(void)
{ uchar temp;
write_com(0xf1); //中断控制
temp=read_data();
if((temp&0x04)==0x04) //*/
/* write_com(0x74); //中断控制
temp=read_data();
if(temp&0x80==0x80) //*/
/* temp=read_com();
if(temp&0x20==0x20) //*/
return 1;
else
return 0;
}
/********* 触控(自动)程序 *********/
void touch_auto(void)
{ uint x,y,temp1,temp2,timer=0,i;
write_comdat(0x20,0x00); //单图层
write_comdat(0x41,0x00); //00:写入图层一;01:写入图层二
write_comdat(0x40,0x80); //文本模式
active_window(0,HD-1,0,WD-1); //工作窗口
back_fore_color(color_blue,color_white); //背景色、前景色
clr(); //清屏
write_comdat(0x8e,0x80);
write_comdat(0x8A,0x81); //PWM控制
write_comdat(0x8B,0x8f);
font_in_set(); //内部CGROM、字体16
chhzes_txt(24,24,"Touch to display the coordinate...");
chhzes_txt(40,124,"Auto Mode");
delay(time);
write_comdat(0x70,0x80); //开启触控功能
write_comdat(0x71,0x04); //自动模式
write_comdat(0xF0,0x04); //开启触控中断
for(i=0;i<5;i++)
{
if(INT2())
{ write_com(0x72); //读取X坐标
temp1=read_data();
write_com(0x74);
temp2=read_data();
x=(temp1<<2)|(temp2&0x03);
write_com(0x73); //读取Y坐标
temp1=read_data();
write_com(0x74);
temp2=read_data();
y=(temp1<<2)|(temp2>>2&0x03);
chhzes_txt(100,80,"X = "); //显示X坐标
write_data((x/1000)|0x30);
write_data((x%1000/100)|0x30);
write_data((x%100/10)|0x30);
write_data((x%10)|0x30);
chhzes_txt(124,80,"Y = "); //显示Y坐标
write_data((y/1000)|0x30);
write_data((y%1000/100)|0x30);
write_data((y%100/10)|0x30);
write_data((y%10)|0x30);
i=0;
delay(time);
}
else //没有触控发生,不显示坐标
{ chhzes_txt(100,80,"X = ");
chhzes_txt(124,80,"Y = ");
delay(time);
}
write_comdat(0xF1,0x04); //清除中断
delay(1);
}
}
/********* 触控(手动)程序 *********/
void touch_maunal(void)
{ uint x,y,temp1,temp2,timer=0,i;
write_comdat(0x20,0x00); //单图层
write_comdat(0x41,0x00); //00:写入图层一;01:写入图层二
write_comdat(0x40,0x80); //文本模式
active_window(0,HD-1,0,WD-1); //工作窗口
back_fore_color(color_blue,color_red); //背景色、前景色
clr(); //清屏
write_comdat(0x8e,0x80);
write_comdat(0x8A,0x81); //PWM控制
write_comdat(0x8B,0x8f);
font_in_set(); //内部CGROM、字体16
chhzes_txt(24,24,"Touch to display the coordinate...");
chhzes_txt(40,116,"Maunal Mode");
delay(time);
write_comdat(0x70,0x80); //开启触控功能
write_comdat(0x71,0x40); //手动模式
write_comdat(0xF0,0x04); //开启触控中断
write_comdat(0x71,0x41); //侦测触摸事件发生
for(i=0;i<5;i++)
{
if(INT2())
{ write_comdat(0x71,0x42); //Latch X data
delay(100);
write_comdat(0x71,0x43); //Latch Y data
delay(100);
write_comdat(0x71,0x40); //触控面板闲置
write_com(0x72); //读取X坐标
temp1=read_data();
write_com(0x74);
temp2=read_data();
x=(temp1<<2)|(temp2&0x03);
write_com(0x73); //读取Y坐标
temp1=read_data();
write_com(0x74);
temp2=read_data();
y=(temp1<<2)|(temp2>>2&0x03);
chhzes_txt(100,80,"X = ");
write_data((x/1000)|0x30);
write_data((x%1000/100)|0x30);
write_data((x%100/10)|0x30);
write_data((x%10)|0x30);
chhzes_txt(124,80,"Y = ");
write_data((y/1000)|0x30);
write_data((y%1000/100)|0x30);
write_data((y%100/10)|0x30);
write_data((y%10)|0x30);
i=0;
delay(time);
}
else //没有触控发生,不显示坐标
{ chhzes_txt(100,80,"X = ");
chhzes_txt(124,80,"Y = ");
delay(time);
}
write_comdat(0xF1,0x04); //清除中断
delay(1);
}
}
#endif
#ifdef part3
/******** Serial Flash窗口设置程序 ********/
void Flash_window(uint x,uint y,uint height,uint width)
{
write_comdat(0x30,y); //Horizontal Start Point
write_comdat(0x31,y>>8);
write_comdat(0x32,x); //Vertical Start Point
write_comdat(0x33,x>>8);
write_comdat(0x34,(y+width-1)); //Horizontal End Point
write_comdat(0x35,(y+width-1)>>8);
write_comdat(0x36,(x+height-1)); //Vertical End Point
write_comdat(0x37,(x+height-1)>>8);
}
/********* DMA数据来源地址程序 *********/
void DMA_source(ulong address)
{
write_comdat(0xB0,(uchar)(address)); //DMA Source Address
write_comdat(0xB1,(uchar)(address>>8));
write_comdat(0xB2,(uchar)(address>>16));
write_comdat(0xB3,(uchar)(address>>24));
}
/********* DMA连续性传输量程序 *********/
void DMA_transfer_number(ulong number)
{
write_comdat(0xB4,(uchar)(number)); //DMA传输量
write_comdat(0xB6,(uchar)(number>>8));
write_comdat(0xB8,(uchar)(number>>16));
}
/********* DMA区块宽度和高度程序 *********/
void DMA_width_height(uint height,uint width,uint p)
{
write_comdat(0xB4,(uchar)(width)); //DMA Width
write_comdat(0xB5,(uchar)(width>>8));
write_comdat(0xB6,(uchar)(height)); //DMA Height
write_comdat(0xB7,(uchar)(height>>8));
write_comdat(0xB8,(uchar)(p)); //DMA Source Picture Width
write_comdat(0xB9,(uchar)(p>>8));
}
/********* DMA模式启动程序 *********/
void DMA_ON(uchar p)
{
write_comdat(0xBF,p); //01:连续性模式; 03:区块模式
write_com(0xBF);
while(read_data()&0x01);
}
#endif
/******** 初始化程序 ********/
void set()
{ //cs=0;
delay(100);
rest=0;
delay(10);
rest=1;
delay(150); //*/
write_comdat(0x01,0x00); //Display OFF
PLL(); //倍频设置
write_comdat(0x04,0x03); //Pixel Clock:上升沿、1倍系统频率周期
write_comdat(0x05,0x00); //Serial Flash/ROM Configuration
// write_comdat(0x06,0x03); //Serial Flash/ROM CLK Setting:1/4系统频率
write_comdat(0x10,0x00); //System Configuration:64K色、16bit接口
write_comdat(0x14,0x3B); //LCD Horizontal Display Width:WD/8-1=27H
write_comdat(0x15,0x00); //Horizontal Non-Display Period Fine Tuning Option
write_comdat(0x16,0x01); //Horizontal Non-Display Period
write_comdat(0x17,0x00); //HSYNC Start Position
write_comdat(0x18,0x05); //HSYNC Pulse Width
write_comdat(0x19,0x0f); //LCD Vertical Display Height:HD-1=EFH
write_comdat(0x1A,0x01);
write_comdat(0x1B,0x02); //LCD Vertical Non-Display Period
write_comdat(0x1C,0x00);
write_comdat(0x1D,0x07); //VSYNC Start Position
write_comdat(0x1E,0x00);
write_comdat(0x1F,0x09); //VSYNC Pulse Width
write_comdat(0x20,0x00); //单图层
write_comdat(0x01,0x80); //82H:Display ON 、82H:睡眠模式
clr(); //清屏
}
/********* 主函数 *********/
void main()
{ uint i,j;
uint s[6]={0xf800,0x07e0,0xf81f,0x07ff,0xffe0,0x0000};
//red、green、urple、cyan、yellow、black;
set();
clr(); //清屏
/********* 文本显示 *********/
write_comdat(0x20,0x00); //单图层
write_comdat(0x41,0x00); //00:写入图层一;01:写入图层二
write_comdat(0x40,0x80); //文本模式
active_window(0,HD-1,0,WD-1); //工作窗口
back_fore_color(color_red,color_white); //背景色、前景色
write_comdat(0x8e,0x80);
write_comdat(0x8A,0x81); //PWM控制
write_comdat(0x8B,0x00);
delay(time);
write_comdat(0x8B,0x40);
delay(time);
write_comdat(0x8B,0x8f);
delay(time);
write_comdat(0x8B,0xff);
delay(time);
write_comdat(0x8B,0x00);
delay(time);
font_in_set(); //内部CGROM、字体16
fill_txt('H'); //全显:H
delay(time);
clr(); //清屏
write_comdat(0x22,0x05); //字体大小:2倍
chhzes_txt(0,0,"www.tsingtek.com");
chhzes_txt(32,0,"welcome to you !");
write_comdat(0x22,0x00); //字体大小:1倍
chhzes_txt(80,0,"EMAIL:sale@tsingtek.com");
chhzes_txt(100,0,"HGF043");
delay(time);
#ifdef part1
/********* 图形显示 *********/
write_comdat(0x20,0x00); //单图层
write_comdat(0x41,0x00); //00:写入图层一;01:写入图层二
write_comdat(0x40,0x00); //图形模式
active_window(0,HD-1,0,WD-1); //工作窗口
clr(); //清屏
back_fore_color(color_red,color_white); //背景色、前景色
draw_line_square(16,16,0,119,0); //画直线
draw_line_square(64,99,0,119,0); //画直线
draw_line_square(16,99,160,279,1); //画矩形
back_fore_color(color_red,color_green); //背景色、前景色
draw_line_square(0,239,0,319,1); //画矩形(屏外框)
back_fore_color(color_red,color_blue); //背景色、前景色
draw_circle(180,66,50); //画圆
back_fore_color(color_red,color_green); //背景色、前景色
draw_ellipse_csquare(180,240,60,40); //画椭圆
delay(2*time);
clr(); //清屏
back_fore_color(color_red,color_white); //背景色、前景色
draw_ellipse_csquare(60,80,60,40); //画椭圆
back_fore_color(color_red,color_yellow); //背景色、前景色
draw_circle_square(16,99,160,279,20,20); //画圆角方形
back_fore_color(color_red,color_cyan); //背景色、前景色
draw_triangle(200,20,120,80,200,140); //画三角形
delay(time); //*/
/* clr(); //清屏
for(i=0;i<5;i++)
for(j=0;j<5;j++)
picture(50*i,0+66*j,50,66,3300,gImage_picture320240_256); //256色图片
delay(time); //*/
#endif
}