?? 128128.c
字號:
/*-----------------------
Model:128d01c
Drive IC:st7636
Test mode:8 bit paraller interface 8080 MCU
Program by:Fuwei
Date:2005-09-06
-------------------------*/
#include <reg51.h>
#include <intrins.h>
#include <ctype.h>
#define X_add 131
#define Y_add 131
#define Data_port P1
#define nop _nop_()
#define R 0
#define G 1
#define B 2
sbit CS=P3^2;
sbit RST=P3^1;
sbit RS=P3^4;
sbit WR_=P3^5;
sbit RD_=P3^0;
sbit KEY=P2^0;
typedef unsigned char byte;
typedef unsigned int word;
byte code djn[];
byte code gray_scal[][8][2]={
{{0xf8,0x00},{0xf9,0xaa},{0xfa,0xaa},{0xfb,0x6d},{0xfc,0x92},{0xfd,0xb6},{0xfe,0xdb},{0xff,0xff}},
{{0x07,0xe0},{0x27,0xe4},{0x4f,0xe9},{0x6f,0xed},{0x97,0xf2},{0xb7,0xf6},{0xdf,0xfb},{0xff,0xff}},
{{0x00,0x1f},{0x21,0x3f},{0x4a,0x5f},{0x6b,0x7f},{0x94,0x9f},{0xb5,0xbf},{0xe7,0x1f},{0xff,0xff}},
};
//byte code IC_initial[]={0x2d,0x2c,0x02,0x01,0x26,0x0f,0x40,0x02,0x10,0x02,0x28,0x01,0x22,0x01,0x20,0x05,0x24,0x22,0x2a,0xaa,0x2b,0x60,0x30,0x00,0x32,0x00,0x40,0x00,0x34,0x0f,0x45,0x00,0x2f,0x51};
/*STB on STB off OSC on DC-DC on MOD Tem Bias DC-DC */
void write_data(in_data);
void write_com(in_com);
byte read(void);
void delay(word time);
void initial();
//void clear();
void wait_key();
void display_griphic(byte griphic[]);
void test_patten(byte cl,byte ch);
void test_grayscal(byte color);
void display_char();
void address_set(byte addX1,addX2,addY1,addY2);
void main(void)
{
initial();
while(1)
{
//address_set(0,127,0,127);
display_griphic(djn); wait_key();
test_patten(0xf8,0x00);wait_key();
test_patten(0x07,0xe0);wait_key();
test_patten(0xff,0xff);wait_key();
test_patten(0x00,0x1f);wait_key();
//test_patten(0x00,0x00);wait_key();
test_grayscal(R);wait_key();
test_grayscal(G);wait_key();
test_grayscal(B);wait_key();
}
}
void delay(word time)
{
word i;
while(time--)
for(i=0;i<10;i++);
}
void wait_key()
{
KEY=1;
while(KEY);
delay(10);
while(!KEY);
delay(10);
//delay(8000);
}
/*void clear()
{
address_set(0,127,0,127);
while(1)
write_data(0x00);
} */
void address_set(byte addX1,addX2,addY1,addY2)
{
write_com(0x75);
write_data(addX1);
write_data(addX2);
write_com(0x15);
write_data(addY1);
write_data(addY2);
write_com(0x5c);
}
void write_data(in_data)
{
RS=1;
CS=0;
Data_port=in_data;
WR_=0;
//delay(30);
WR_=1;
CS=1;
}
void write_com(in_com)
{
RS=0;
CS=0;
Data_port=in_com;
WR_=0;
nop;
WR_=1;
CS=1;
}
void initial()
{
//word i;
RST=0;
delay(10);
RST=1;
WR_=1;RD_=1;
write_com(0x30);
write_com(0x04);
write_data(0x3e);
write_com(0x94);
write_com(0xd1);delay(2);
write_com(0xca);
write_data(0x00);
write_data(0x1f);delay(2);
write_data(0x00);
write_com(0xbb);//delay(5);
write_data(0x01);
write_com(0x31);//delay(5);
write_com(0x32);
write_data(0x00);
write_data(0x01);
write_data(0x01); //bias
write_com(0x30); //ext=0
write_com(0x81);
write_data(0x38);
write_data(0x03); //vop
write_com(0x20);
write_data(0x0b); delay(5);//VB VF VR=1,1,1
write_com(0xa7);
write_com(0xbc);
write_data(0x03);
write_data(0x01);//RGB set
write_data(0x01);
write_com(0xaf); delay(5); //display on
//write_com(0xaf);
/*write_com(0x00);
write_com(0x32);
write_com(0x00);
write_com(0x40);
write_com(0x00);
write_com(0x34);
write_com(0x0f);
write_com(0x2f);
write_com(0x51); */
}
void display_griphic(byte griphic[])
{
word i,j,k;
address_set(0,127,0,127);
for(i=0;i<128;i++)
for(j=0;j<128;j++)
for(k=0;k<2;k++)
{
write_data(*griphic);
griphic++;
}
}
void test_patten(byte cl,byte ch)
{
word i,j;
address_set(0,131,0,131);
for(i=0;i<X_add;i++)
for(j=0;j<Y_add;j++)
{
//for(k=0;k<2;k++)
write_data(cl);
write_data(ch);
}
}
void test_grayscal(byte color)
{
word i,j,k,l;
address_set(0,127,0,127);
for(i=0;i<X_add;i++)
for(l=0;l<8;l++)
for(j=0;j<16;j++)
for(k=0;k<2;k++)
write_data(gray_scal[color][l][k]);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -