📄 il9325.c
字号:
#include<ABSACC.H>
#include<stdio.h>
#include<reg51.h>
#include<intrins.h>
#define X_add 240
#define Y_add 320
#define H_data P0
#define L_data P1
#define NOP _nop_()
#define DisplayCol 320
#define DisplayRow 240
#define COLOR 0xf800 //0x001f
typedef unsigned char uchar;
typedef unsigned int uint;
sbit CS1=P2^4;
sbit RS=P2^2;
sbit WRB=P2^1;
sbit RDB=P2^0;
sbit RST=P2^3;
sbit KEY=P1^4;
/*----------------TP DEFINE--------*/
sbit TP_CLK=P3^5;
sbit TP_CS=P3^4;
sbit TP_DIN=P3^3;
sbit TP_BUSY=P3^6;
sbit TP_DOUT=P3^2;
sbit PENIRQ=P3^7;
/*-------------------------------*/
uchar code bmp[];
void display_bmp(uint *griphic);
void delay(uint time);
void write_data(uint indata,bit dc);
void address_set(uint hsa,uint hea,uint vsa,uint vea,uint ramaddl,uint ramaddh);
void initial(void);
void init_data(uint index,uint cdata);
void waite_key(void);
void display_bmp2(void);
void display_griphic(uchar page);
void test_patten(uint patten,col,row);
void gray(uint color);
void put_pixel(uint y,uint x) ;
uint TP_read(uchar a);
uint X,Y,X1,Y1,inta=0;
/*------------------------------------------------------------------*/
void main(void)
{
unsigned char i,j;
initial();
//{
//init_data(0x0001, 0x0000);
//address_set(0,79,0,320,0,0);
//gray(0xf800);
//address_set(80,159,0,320,80,0);
//gray(0x07e0);
//address_set (160,239,0,320,160,0);
//gray(0x001f);
//waite_key();
// display_griphic(0);waite_key();
//display_griphic(4);
//waite_key();
//test_patten(0x0000,240,320);waite_key(); // black
//test_patten(0xf800,240,320);waite_key(); //red patten
//test_patten(0x07e0,240,320);waite_key(); //green patten
//test_patten(0x001f,240,320);waite_key();// blue patten
//test touch panel
test_patten(0x0000,240,320); // write clear panel
init_data(0x0001, 0x0000);
test_patten(0xffff,240,320); // write clear panel
init_data(0x0001, 0x0000);
//display_bmp(bmp);
display_bmp2();
init_data(0x0001, 0x0100);
//TCON=0x00;
//IE=0x83;
//IP=0x01;
X=50;
while(1)
{
// X=TP_read(2);
//Y=TP_read(1);
//X1=TP_read(2);
//Y1=TP_read(1);
//delay(5);
if(X<80)
{
address_set(66,194,100,228,30,5);
write_data(0x0022,0);
for(i=0;i<128;i++)
for(j=0;j<128;j++)
write_data(0x001f,1);
while(PENIRQ);
X=TP_read(2);
delay(5);
X1=TP_read(2);
if(X!=X1)
{
X=TP_read(2);
delay(5);
X1=TP_read(2);
}
}
if(81<X)
{
if(X<161)
{
address_set(66,194,100,228,30,5);
write_data(0x0022,0);
for(i=0;i<128;i++)
for(j=0;j<128;j++)
write_data(0x07e0,1);
while(PENIRQ);
X=TP_read(2);
delay(5);
X1=TP_read(2);
if(X!=X1)
{
X=TP_read(2);
delay(5);
X1=TP_read(2);
}
}
}
if(161<X)
{
address_set(66,194,100,228,30,5);
write_data(0x0022,0);
for(i=0;i<128;i++)
for(j=0;j<128;j++)
write_data(0xF800,1);
while(PENIRQ);
X=TP_read(2);
delay(5);
X1=TP_read(2);
if(X!=X1)
{
X=TP_read(2);
delay(5);
X1=TP_read(2);
}
}
}
}
void delay(uint time)
{
uint i;
while(time--)
for(i=0;i<16;i++){;}
}
/*----------------------------------------------------*/
void waite_key(void)
{
KEY=1;
while(KEY);
delay(60);
while(!KEY);
delay(100);
}
/*---------display bmp---------*/
void display_bmp(uint *griphic)
{
uint i,j;
address_set(60,179,5,20,64,5);
write_data(0x0022,0);
for(i=0;i<16;i++)
for(j=0;j<120;j++)
// for(k=0;k<2;k++)
write_data(*griphic++,1);
}
void display_bmp2()
{
uint i,j;
address_set(30,50,5,25,30,5);
write_data(0x0022,0);
for(i=0;i<20;i++)
for(j=0;j<20;j++)
write_data(0xf800,1);
address_set(110,130,5,25,110,5);
write_data(0x0022,0);
for(i=0;i<20;i++)
for(j=0;j<20;j++)
write_data(0x07e0,1);
address_set(180,200,5,25,180,5);
write_data(0x0022,0);
for(i=0;i<20;i++)
for(j=0;j<20;j++)
write_data(0x001f,1);
}
/*-------------------------display griphic----------------------------*/
void display_griphic(uchar page)
{
uint col, row,Ramadd=0;
uchar p=1;
P1=0xf8|page;
address_set(0,239,0,319,0,0);
write_data(0x0022,0);
for(col=0;col<DisplayCol;col++)//320
for(row=0;row<DisplayRow;row++)//240
{
write_data(XWORD[Ramadd],1);
if(Ramadd>=0x8000)
{
P1=(page+p)|0xf8;
p++;
Ramadd=0;
}
else Ramadd++;
}
}
/*-----------------------------------------------------*/
void write_data(uint indata,bit dc)
{
//uchar tmp;
//CS1=0;
RS=dc;
L_data=indata;
H_data=indata>>8;
WRB=0;
WRB=1;
//CS1=1;
}
/*-----------------------------------------------------*/
void init_data(uint index,uint cdata)
{
write_data(index,0);
write_data(cdata,1);
}
/*-----------------------------------------------------*/
void initial(void)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -