📄 20tft.c
字号:
/*DK-1.8TFT REV:1 */
/*Ledup P3.2 */
/*Leddown P3.3 */
/*IC:HD66773 */
/*Programed by samqian*/
/*Date:2004/07/08 */
/*Ver:1 */
#include "io51.h"
#define A0 P1.0
#define A1 P1.1
#define CS P3.0
#define Dataio (*(char *)0x010000)
#define PAUSE P3.5
#define LCDdata ((char *)0x010000)
#define ROM1 P4.2
#define ROM2 P4.3
#define PWM P1.7
unsigned char time;
unsigned char per1;
unsigned char high,period;
/**/
void delay(unsigned int tt);/* */
void write_PC(unsigned char dat);
void write_r(unsigned char sta);
void write_PA(unsigned char dat);
void write_PB(unsigned char dat);
void pause();
void ROM(unsigned char w,unsigned char u);
void time_init();
void int_init();
void init66789();/* LCD */
void writec(unsigned char c);
void writei(unsigned char i);
void pic1(unsigned char cc1,unsigned char cc2);
void pic();
void showbmp();
void color_bar(unsigned char cc1,unsigned char cc2);
void showpic();
void vh();
void delayi();
/* */
main()
{
write_r(0x80); /*ini 8255*/ /*10000000*/
write_PB(0x1a); /*NC/NC/NC/RES/RD/WR/RS/CS*//*0 /0 /0 /1 /1 /0 /1 /0*/
write_PB(0x0a); /*NC/NC/NC/RES/RD/WR/RS/CS*//*0 /0 /0 /0 /1 /0 /1 /0 */
write_PB(0x1a); /*NC/NC/NC/RES/RD/WR/RS/CS*//*0 /0 /0 /1 /1 /0 /1 /0 */
/*time_init();
int_init(); */
init66789();
for(;;)
{
/*write_PB(0xaa);
color_bar(0xF0,0x0F,0x00);
delay(50000);
delay(50000);
color_bar(0xf8,0x00);
delay(50000);
delay(50000);
color_bar(0x07,0xe0);
delay(50000);
delay(50000);
color_bar(0x00,0x1f);
delay(50000);
delay(50000);*/
ROM(1,1);
ROM(2,1);
/*delay(50000);
delay(50000);
*/
}
}
void write_r(unsigned char sta) /*8255*/
{
CS=0;
A1=1;
A0=1;
Dataio=sta;
CS=1;
}
void write_PC(unsigned char dat)
{
CS=0;
A1=1;
A0=0;
Dataio=dat;
CS=1;
}
void write_PA(unsigned char dat)
{
CS=0;
A1=0;
A0=0;
Dataio=dat;
CS=1;
}
void write_PB(unsigned char dat)
{
CS=0;
A1=0;
A0=1;
Dataio=dat;
CS=1;
}
void delay(unsigned int tt) /* */
{
while(tt>0)
{
tt--;
}
}
void pause()
{
while (PAUSE);
}
void init66789() /* LCD*/
{
delayi();
writei(0x00); writei(0x07);
writec(0x01); writec(0x04);/*Power Control*/
writei(0x00); writei(0x12);
writec(0x00); writec(0x00);/*Power Control*/
writei(0x00); writei(0x13);
writec(0x00); writec(0x00);/*Power Control*/
delayi();
writei(0x00); writei(0x10);
writec(0x00); writec(0x04);/*Power Control*/
writei(0x00); writei(0x11);
writec(0x00); writec(0x00);/*Power Control*/
writei(0x00); writei(0x00);
writec(0x00); writec(0x01);/*Power Control*/
writei(0x00); writei(0x01);
writec(0x09); writec(0x1b);/*Power Control*/
writei(0x00); writei(0x02);
writec(0x07); writec(0x00);/*Power Control*/
writei(0x00); writei(0x03);
writec(0x71); writec(0x30);/*Power Control*/
writei(0x00); writei(0x08);
writec(0x02); writec(0x02);/*Power Control*/
writei(0x00); writei(0x09);
writec(0x00); writec(0x01);/*Power Control*/
writei(0x00); writei(0x0B);
writec(0x50); writec(0x01);/*Driver Output Control*/
writei(0x00); writei(0x0C);
writec(0x00); writec(0x01);/*LCD Driving Waveform Control*/
delayi();
writei(0x00); writei(0x10);
writec(0x46); writec(0x60);/*Entry Mode*/
writei(0x00); writei(0x11);
writec(0x02); writec(0x05);/*Entry Mode*/
delayi();
writei(0x00); writei(0x12);
writec(0x00); writec(0x14);/*Entry Mode*/
delayi();
writei(0x00); writei(0x13);
writec(0x30); writec(0x16);/*Display Control 2*/
delayi();
writei(0x00); writei(0x21);
writec(0x00); writec(0x00);/*Power Control*/
writei(0x00); writei(0x30);
writec(0x03); writec(0x03);
writei(0x00); writei(0x31);
writec(0x03); writec(0x03);
writei(0x00); writei(0x32);
writec(0x03); writec(0x03);
writei(0x00); writei(0x33);
writec(0x03); writec(0x03);
writei(0x00); writei(0x34);
writec(0x04); writec(0x04);
writei(0x00); writei(0x35);
writec(0x04); writec(0x04);
writei(0x00); writei(0x36);
writec(0x04); writec(0x04);
writei(0x00); writei(0x37);
writec(0x03); writec(0x03);
writei(0x00); writei(0x38);
writec(0x1f); writec(0x00);
writei(0x00); writei(0x39);
writec(0x00); writec(0x00);
writei(0x00); writei(0x40);
writec(0x00); writec(0x00);/*Gamma Control*/
writei(0x00); writei(0x41);
writec(0x00); writec(0x00);/*Gamma Control*/
writei(0x00); writei(0x42);
writec(0xdb); writec(0x00);/*Gamma Control*/
writei(0x00); writei(0x43);
writec(0xef); writec(0xdb);/*Gamma Control*/
writei(0x00); writei(0x44);
writec(0xaf); writec(0x00);/*Gamma Control*/
writei(0x00); writei(0x45);
writec(0xdb); writec(0x00);/*Gamma Control*/
delayi();
writei(0x00); writei(0x07);
writec(0x00); writec(0x01);
delayi();
writei(0x00); writei(0x07);
writec(0x00); writec(0x21);/*Power Control*/
writei(0x00); writei(0x07);
writec(0x00); writec(0x27);/*Power Control*/
delayi();
writei(0x00); writei(0x07);
writec(0x00); writec(0x37);/*Power Control*/
}
void ROM(unsigned char w,unsigned char u)
{
unsigned char i,a,t,x,x1,y1,y,z,z1,k1,k2;
unsigned int j;
j=0x0000;
t=u;
if (w==1) {ROM1=0;ROM2=1;} /*Select ROM*/
if (w==2) {ROM1=1;ROM2=0;} /*Select ROM*/
if (u==1) {P4.0=0;P4.1=0;}
for (a=0;a<3;a++)
{
for(z=0;z<220;z++)
{
writei(0x00); writei(0x21);
writec(z); writec(0x00);
writei(0x00); writei(0x22);
for(i=0;i<176;i++)
{
/*x1=LCDdata[j];
x=x1&0xf8;
y1=LCDdata[j+1];
y=y1&0xe0;
y=y>>5;
k1=x|y;
x1=LCDdata[j+2];
x=x1&0xf8;
x=x>>3;
y=y1&0x1c;
k2=x|y;
writec(k1);
writec(k2);
j=j+3;*/
x=LCDdata[j];
writec(x);
y=LCDdata[j+1];
writec(y);
j=j+2;
if (j==0x0000)
{
t=t+1;
if (t==1) {P4.0=0;P4.1=0;} /*Select BANK*/
if (t==2) {P4.0=1;P4.1=0;}
if (t==3) {P4.0=0;P4.1=1;}
if (t==4) {P4.0=1;P4.1=1;}
}
}
}
pause();
delay(50000);
delay(50000);
}
}
/**********************led driver******************************/
void time_init()
{
/*time 0 set*/
TMOD=0x01;
TH0=0xff;/*frm=2.2kHz*/
TL0=0x60;
EA=1;
ET0=1;
TR0=1;
/*膀セ盽计砞﹚*/
PWM=0;
time=0;
high=1;/*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -