- IC型号
企业档案
- 相关证件: 
- 会员类型:
- 会员年限:12年
- 阿库IM:
- 地址:杭州市余杭区仁和街道永泰路2号22幢
- E-mail:752574498@qq.com
7寸彩屏测试程序
发布时间: 2016/11/2 9:52:21 | 972 次阅读
#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 part2 //触控功能显示
//#define part3 //Serial Flash功能显示
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
//#define I80
#define SPI4
//#define SPI3
#ifdef I80 //Inter8080接口定义
#define data P0
sbit rs = P3^0;
sbit wr = P3^1;
sbit rd = P3^3;
sbit cs = P3^4;
sbit rest = P3^5;
sbit WAIT = P3^6;
sbit INT = P3^7;
#endif
#ifdef SPI4
sbit sclk = P3^0;
sbit sdi = P3^1;
sbit sdo = P3^3;
sbit cs = P3^4;
sbit rest = P3^5;
#endif
#ifdef SPI3
sbit sclk = P2^7;
sbit sdi = P3^0;
sbit sdo = P3^1;
sbit cs = P3^2;
sbit rest = P3^4;
#endif
#define WD 800 /* 显示区宽度 */
#define HD 480 /* 显示区高度 */
#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 I80
/******** 读“指令”程序 ********/
uchar read_com(void)
{ uchar temp;
temp=0xff;
cs=0;
rs=1;
wr=1;
rd=0;
temp=data;
rd=1;
cs=1;
return temp;
}
/********判忙程序 ********/
void busy()
{
uchar temp;
do{
temp=read_com();
}while(temp&0x80);
// while(WAIT==0);
}
/******** 写“指令”程序 ********/
void write_com(uchar com)
{ busy();
data=0xff;
cs=0;
rs=1;
rd=1;
data=com;
wr=0;
wr=1;
cs=1;
}
/******** 写“数据”程序 ********/
void write_data(uchar dat)
{ busy();
data=0xff;
cs=0;
rs=0;
rd=1;
data=dat;
wr=0;
wr=1;
cs=1;
}
/******** 写“指令数据”程序 *********/
void write_comdat(uchar com,uchar dat)
{ write_com(com);
write_data(dat);
}
/******* 读“数据”程序 ********/
uchar read_data(void)
{ uchar temp;
busy();
cs=0;
rs=0;
wr=1;
rd=0;
temp=data;
rd=1;
cs=1;
return temp;
} //*/
#endif
#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
#ifdef SPI3
/******** 写“8bit”程序 ********/
void write_8bit(uchar dat)
{ uchar i;
for(i=0;i<8;i++)
{
sdo=(bit)(dat & 0x80);
dat<<=1;
// sdi=CY;
sclk=0;
sclk=1;
}
}
/******** 读“8bit”程序 ********/
uchar read_com(void)
{ uchar i,temp;
cs=0;
write_8bit(0xc0);
for(i=0;i<8;i++)
{
temp<<=1;
sclk=0;
if(sdo)
temp++;
sclk=1;
}
cs=1;
return temp;
}
/******** 读“状态””程序 ********/
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_fill_square(uint x1,uint x2,uint y1,uint y2)
{
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(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(); //清屏
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(); //清屏
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()
{
delay(100);
rest=0;
delay(10);
rest=1;
delay(150);
write_comdat(0x01,0x00); //Display OFF
PLL(); //倍频设置
write_comdat(0x04,0x81); //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色、8bit接口
write_comdat(0x14,0x63); //LCD Horizontal Display Width:WD/8-1=63H
write_comdat(0x15,0x00); //Horizontal Non-Display Period Fine Tuning Option
write_comdat(0x16,0x03); //Horizontal Non-Display Period
write_comdat(0x17,0x03); //HSYNC Start Position
write_comdat(0x18,0x0b); //HSYNC Pulse Width
write_comdat(0x19,0xdf); //LCD Vertical Display Height:HD-1=01DFH
write_comdat(0x1A,0x01);
write_comdat(0x1B,0x20); //LCD Vertical Non-Display Period
write_comdat(0x1C,0x00);
write_comdat(0x1D,0x16); //VSYNC Start Position
write_comdat(0x1E,0x00);
write_comdat(0x1F,0x01); //VSYNC Pulse Width
write_comdat(0x20,0x00); //单图层
write_comdat(0x01,0x80); //82H:Display ON 、82H:睡眠模式
clr(); //清屏
}
/********* 主函数 *********/
void main()
{ uint i,j;
set();
while(1)
{
/********* 图形显示 *********/
write_comdat(0x20,0x00); //单图层
write_comdat(0x41,0x00); //00:写入图层一;01:写入图层二
write_comdat(0x40,0x00); //图形模式
write_comdat(0x22,0x00); //字体大小:1倍
back_fore_color(color_red,color_white); //背景色、前景色
write_comdat(0x8e,0x80);
write_comdat(0x8A,0x89); //PWM控制
write_comdat(0x8B,0xcf);
delay(time);
write_comdat(0x8B,0x8f);
delay(time);
write_comdat(0x8B,0x4f);
delay(time);
write_comdat(0x8B,0x8f);
//彩色条纹显示///
clr(); //清屏
back_fore_color(color_red,color_red); //背景色、前景色
draw_fill_square(0,479,0,103);
back_fore_color(color_red,color_green); //背景色、前景色
draw_fill_square(0,479,104,207);
back_fore_color(color_red,color_blue); //背景色、前景色
draw_fill_square(0,479,208,311);
back_fore_color(color_red,color_yellow); //背景色、前景色
draw_fill_square(0,479,312,415);
back_fore_color(color_red,color_purple); //背景色、前景色
draw_fill_square(0,479,416,519);
back_fore_color(color_red,color_black); //背景色、前景色
draw_fill_square(0,479,520,623);
back_fore_color(color_red,color_white); //背景色、前景色
draw_fill_square(0,479,624,727);
back_fore_color(color_red,color_cyan); //背景色、前景色
draw_fill_square(0,479,728,799);
delay(3*time);
clr(); //清屏
/********* 文本显示 *********/
write_comdat(0x20,0x00); //单图层
write_comdat(0x41,0x00); //00:写入图层一;01:写入图层二
write_comdat(0x40,0x80); //文本模式
active_window(0,HD-1,0,WD-1); //工作窗口
clr(); //清屏
write_comdat(0x22,0x05); //字体大小:2倍
chhzes_txt(0,0,"www.china-lcdmodules.com");
write_comdat(0x22,0x00); //字体大小:1倍
chhzes_txt(80,0,"EMAIL:sale@tsingtek.com");
chhzes_txt(100,0,"7 inch TFT module");
delay(time);
/********* CGRAM自定义字符显示 *********/
/* chhzes_txt(160,0,"CGRAM char as follow:");
CGRAM_set(CGRAM_TAB,20); //图形模式下造字
delay(10);
back_fore_color(color_red,color_green); //背景色、前景色
write_comdat(0x22,0x05); //字体大小:2倍
CGRAM_disp(192,0,10,0x00); //文本模式下显示字
write_comdat(0x22,0x45); //字体大小:2倍、文字通透
CGRAM_disp(192,160,10,0x0a); //文本模式下显示字
delay(time);
font_in_set(); //内部CGROM、字体16 //*/
/********* 字符显示 *********/
clr(); //清屏
for(i=0;i<1;i++)
{ back_fore_color(color_red,color_white); //背景色、前景色
write_comdat(0x05,0x08); //5 Bus 1 Byte空周期,字形模式
write_comdat(0x06,0x03); //Serial Flash/ROM CLK Setting:1/4系统频率
font_ex_set(); //外部CGROM、字体16
write_comdat(0x22,0x05); //字体大小:2倍
chhzes_txt(10,0,"清达光电技术有限公司");
write_comdat(0x22,0x00); //字体大小:1倍
chhzes_txt(56,32,"TFT彩色液晶模块,内置中英文字库和存储FLASH,可快速存取图片;"
"同时支持8-bit或16-bit的8080/6800系列总线,支持SPI串口接口;支持2D的BTE,可用于处理大量图形文字转换。");
chhzes_txt(152,32,"TEL: 0571-85121224");
chhzes_txt(184,32,"FAX: 0571-85121304");
chhzes_txt(216,32,"EMAIL: sales@tsingtek.com");
delay(2*time);
}
// delay(2*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,479,0,799,1); //画矩形(屏外框)
//draw_line_square(0,479,320,799,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(time);
clr(); //清屏
for(i=2;i<5;i++)
for(j=5;j<8;j++)
picture(50*i,0+66*j,50,66,3300,gImage_picture320240_256); //256色图片
delay(2*time); //*/
#endif
#ifdef part2
/********* 触控显示 *********/
clr(); //清屏
touch_auto(); //自动模式
delay(time);
/* clr(); //清屏
touch_maunal(); //手动模式
delay(time);*/
#endif
}
}
#include<string.h>
#include<stdio.h>
#include<intrins.h>
#include<absacc.h>
//#include "CGRAM_TAB.h"
//#include "picture.h"
#define part1 //一般功能显示
//#define part2 //触控功能显示
//#define part3 //Serial Flash功能显示
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
//#define I80
#define SPI4
//#define SPI3
#ifdef I80 //Inter8080接口定义
#define data P0
sbit rs = P3^0;
sbit wr = P3^1;
sbit rd = P3^3;
sbit cs = P3^4;
sbit rest = P3^5;
sbit WAIT = P3^6;
sbit INT = P3^7;
#endif
#ifdef SPI4
sbit sclk = P3^0;
sbit sdi = P3^1;
sbit sdo = P3^3;
sbit cs = P3^4;
sbit rest = P3^5;
#endif
#ifdef SPI3
sbit sclk = P2^7;
sbit sdi = P3^0;
sbit sdo = P3^1;
sbit cs = P3^2;
sbit rest = P3^4;
#endif
#define WD 800 /* 显示区宽度 */
#define HD 480 /* 显示区高度 */
#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 I80
/******** 读“指令”程序 ********/
uchar read_com(void)
{ uchar temp;
temp=0xff;
cs=0;
rs=1;
wr=1;
rd=0;
temp=data;
rd=1;
cs=1;
return temp;
}
/********判忙程序 ********/
void busy()
{
uchar temp;
do{
temp=read_com();
}while(temp&0x80);
// while(WAIT==0);
}
/******** 写“指令”程序 ********/
void write_com(uchar com)
{ busy();
data=0xff;
cs=0;
rs=1;
rd=1;
data=com;
wr=0;
wr=1;
cs=1;
}
/******** 写“数据”程序 ********/
void write_data(uchar dat)
{ busy();
data=0xff;
cs=0;
rs=0;
rd=1;
data=dat;
wr=0;
wr=1;
cs=1;
}
/******** 写“指令数据”程序 *********/
void write_comdat(uchar com,uchar dat)
{ write_com(com);
write_data(dat);
}
/******* 读“数据”程序 ********/
uchar read_data(void)
{ uchar temp;
busy();
cs=0;
rs=0;
wr=1;
rd=0;
temp=data;
rd=1;
cs=1;
return temp;
} //*/
#endif
#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
#ifdef SPI3
/******** 写“8bit”程序 ********/
void write_8bit(uchar dat)
{ uchar i;
for(i=0;i<8;i++)
{
sdo=(bit)(dat & 0x80);
dat<<=1;
// sdi=CY;
sclk=0;
sclk=1;
}
}
/******** 读“8bit”程序 ********/
uchar read_com(void)
{ uchar i,temp;
cs=0;
write_8bit(0xc0);
for(i=0;i<8;i++)
{
temp<<=1;
sclk=0;
if(sdo)
temp++;
sclk=1;
}
cs=1;
return temp;
}
/******** 读“状态””程序 ********/
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_fill_square(uint x1,uint x2,uint y1,uint y2)
{
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(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(); //清屏
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(); //清屏
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()
{
delay(100);
rest=0;
delay(10);
rest=1;
delay(150);
write_comdat(0x01,0x00); //Display OFF
PLL(); //倍频设置
write_comdat(0x04,0x81); //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色、8bit接口
write_comdat(0x14,0x63); //LCD Horizontal Display Width:WD/8-1=63H
write_comdat(0x15,0x00); //Horizontal Non-Display Period Fine Tuning Option
write_comdat(0x16,0x03); //Horizontal Non-Display Period
write_comdat(0x17,0x03); //HSYNC Start Position
write_comdat(0x18,0x0b); //HSYNC Pulse Width
write_comdat(0x19,0xdf); //LCD Vertical Display Height:HD-1=01DFH
write_comdat(0x1A,0x01);
write_comdat(0x1B,0x20); //LCD Vertical Non-Display Period
write_comdat(0x1C,0x00);
write_comdat(0x1D,0x16); //VSYNC Start Position
write_comdat(0x1E,0x00);
write_comdat(0x1F,0x01); //VSYNC Pulse Width
write_comdat(0x20,0x00); //单图层
write_comdat(0x01,0x80); //82H:Display ON 、82H:睡眠模式
clr(); //清屏
}
/********* 主函数 *********/
void main()
{ uint i,j;
set();
while(1)
{
/********* 图形显示 *********/
write_comdat(0x20,0x00); //单图层
write_comdat(0x41,0x00); //00:写入图层一;01:写入图层二
write_comdat(0x40,0x00); //图形模式
write_comdat(0x22,0x00); //字体大小:1倍
back_fore_color(color_red,color_white); //背景色、前景色
write_comdat(0x8e,0x80);
write_comdat(0x8A,0x89); //PWM控制
write_comdat(0x8B,0xcf);
delay(time);
write_comdat(0x8B,0x8f);
delay(time);
write_comdat(0x8B,0x4f);
delay(time);
write_comdat(0x8B,0x8f);
//彩色条纹显示///
clr(); //清屏
back_fore_color(color_red,color_red); //背景色、前景色
draw_fill_square(0,479,0,103);
back_fore_color(color_red,color_green); //背景色、前景色
draw_fill_square(0,479,104,207);
back_fore_color(color_red,color_blue); //背景色、前景色
draw_fill_square(0,479,208,311);
back_fore_color(color_red,color_yellow); //背景色、前景色
draw_fill_square(0,479,312,415);
back_fore_color(color_red,color_purple); //背景色、前景色
draw_fill_square(0,479,416,519);
back_fore_color(color_red,color_black); //背景色、前景色
draw_fill_square(0,479,520,623);
back_fore_color(color_red,color_white); //背景色、前景色
draw_fill_square(0,479,624,727);
back_fore_color(color_red,color_cyan); //背景色、前景色
draw_fill_square(0,479,728,799);
delay(3*time);
clr(); //清屏
/********* 文本显示 *********/
write_comdat(0x20,0x00); //单图层
write_comdat(0x41,0x00); //00:写入图层一;01:写入图层二
write_comdat(0x40,0x80); //文本模式
active_window(0,HD-1,0,WD-1); //工作窗口
clr(); //清屏
write_comdat(0x22,0x05); //字体大小:2倍
chhzes_txt(0,0,"www.china-lcdmodules.com");
write_comdat(0x22,0x00); //字体大小:1倍
chhzes_txt(80,0,"EMAIL:sale@tsingtek.com");
chhzes_txt(100,0,"7 inch TFT module");
delay(time);
/********* CGRAM自定义字符显示 *********/
/* chhzes_txt(160,0,"CGRAM char as follow:");
CGRAM_set(CGRAM_TAB,20); //图形模式下造字
delay(10);
back_fore_color(color_red,color_green); //背景色、前景色
write_comdat(0x22,0x05); //字体大小:2倍
CGRAM_disp(192,0,10,0x00); //文本模式下显示字
write_comdat(0x22,0x45); //字体大小:2倍、文字通透
CGRAM_disp(192,160,10,0x0a); //文本模式下显示字
delay(time);
font_in_set(); //内部CGROM、字体16 //*/
/********* 字符显示 *********/
clr(); //清屏
for(i=0;i<1;i++)
{ back_fore_color(color_red,color_white); //背景色、前景色
write_comdat(0x05,0x08); //5 Bus 1 Byte空周期,字形模式
write_comdat(0x06,0x03); //Serial Flash/ROM CLK Setting:1/4系统频率
font_ex_set(); //外部CGROM、字体16
write_comdat(0x22,0x05); //字体大小:2倍
chhzes_txt(10,0,"清达光电技术有限公司");
write_comdat(0x22,0x00); //字体大小:1倍
chhzes_txt(56,32,"TFT彩色液晶模块,内置中英文字库和存储FLASH,可快速存取图片;"
"同时支持8-bit或16-bit的8080/6800系列总线,支持SPI串口接口;支持2D的BTE,可用于处理大量图形文字转换。");
chhzes_txt(152,32,"TEL: 0571-85121224");
chhzes_txt(184,32,"FAX: 0571-85121304");
chhzes_txt(216,32,"EMAIL: sales@tsingtek.com");
delay(2*time);
}
// delay(2*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,479,0,799,1); //画矩形(屏外框)
//draw_line_square(0,479,320,799,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(time);
clr(); //清屏
for(i=2;i<5;i++)
for(j=5;j<8;j++)
picture(50*i,0+66*j,50,66,3300,gImage_picture320240_256); //256色图片
delay(2*time); //*/
#endif
#ifdef part2
/********* 触控显示 *********/
clr(); //清屏
touch_auto(); //自动模式
delay(time);
/* clr(); //清屏
touch_maunal(); //手动模式
delay(time);*/
#endif
}
}
下一篇:4.3寸SPI串口程序