⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tft.c

📁 LCD DISPLAY DRIVER NT39105
💻 C
字号:
#include<reg51.h>
#include<intrins.h>
#include "don.h"
#define  Uint  unsigned int
#define  Uchar  unsigned char
sbit RS=P3^0;
sbit E=P3^1;
sbit RW=P3^4; 
sbit res=P3^2; 

void WCOM(unsigned char lobyte);
void WDAT(unsigned char lobyte);
void LcdDataWrite(unsigned char lobyte);
void Delay400Ms(void);
void Delay5Ms(void);
void Reset();
//void display0();
void display1();
//void display2();
void displayg1();

void main (void)
{


Delay5Ms(); 	 
Reset();Delay5Ms(); 
do	{ 

//display0(); 
//Delay400Ms();
display1();
Delay400Ms();
//display2();
//Delay400Ms();
displayg1();
Delay400Ms();Delay400Ms();Delay400Ms();Delay400Ms();


		  }while(1);	
}



void Reset()
{     
WCOM(0x00);WCOM(0x00);WDAT(0x00);WDAT(0x01);//osc.
Delay5Ms();
WCOM(0x00);WCOM(0x01);WDAT(0x01);WDAT(0x15);//driver output
Delay5Ms();
WCOM(0x00);WCOM(0x02);WDAT(0x04);WDAT(0x10);//driver waveform
Delay5Ms();
WCOM(0x00);WCOM(0x03);WDAT(0x00);WDAT(0x14);//power 1
Delay5Ms();
WCOM(0x00);WCOM(0x50);WDAT(0x00);WDAT(0x00);//power 2
Delay5Ms();
WCOM(0x00);WCOM(0x05);WDAT(0x10);WDAT(0x30);//Entry mode
Delay5Ms();
WCOM(0x00);WCOM(0x07);WDAT(0x00);WDAT(0x33);//display control
Delay5Ms();
WCOM(0x00);WCOM(0x0b);WDAT(0x00);WDAT(0x00);//frame control

Delay5Ms();
WCOM(0x00);WCOM(0x0c);WDAT(0x00);WDAT(0x06);//power 3
Delay5Ms();
WCOM(0x00);WCOM(0x0d);WDAT(0x05);WDAT(0x15);//power 4
Delay5Ms();
WCOM(0x00);WCOM(0x0e);WDAT(0x30);WDAT(0x1d);//power 5
Delay5Ms();
WCOM(0x00);WCOM(0x21);WDAT(0x00);WDAT(0x00);//ram address
Delay5Ms();
WCOM(0x00);WCOM(0x20);WDAT(0x00);WDAT(0x00);//mask
Delay5Ms();/*
WCOM(0x00);WCOM(0x30);WDAT(0x03);WDAT(0x02);//GAMMA
WCOM(0x00);WCOM(0x31);WDAT(0x03);WDAT(0x03);//GAMMA
WCOM(0x00);WCOM(0x32);WDAT(0x02);WDAT(0x03);//GAMMA
WCOM(0x00);WCOM(0x33);WDAT(0x03);WDAT(0x03);//GAMMA
WCOM(0x00);WCOM(0x34);WDAT(0x03);WDAT(0x02);//GAMMA

WCOM(0x00);WCOM(0x35);WDAT(0x03);WDAT(0x03);//GAMMA
WCOM(0x00);WCOM(0x36);WDAT(0x02);WDAT(0x03);//GAMMA
WCOM(0x00);WCOM(0x37);WDAT(0x03);WDAT(0x03);//GAMMA
WCOM(0x00);WCOM(0x3a);WDAT(0x00);WDAT(0x00);//GAMMA
WCOM(0x00);WCOM(0x3b);WDAT(0x00);WDAT(0x00);//GAMMA
Delay5Ms();*/
WCOM(0x00);WCOM(0x0f);WDAT(0x00);WDAT(0x00);//gate scan position
Delay5Ms();
WCOM(0x00);WCOM(0x14);WDAT(0xad);WDAT(0x00);//1 screen

Delay5Ms();
WCOM(0x00);WCOM(0x15);WDAT(0xaf);WDAT(0xae);//2 screen
Delay5Ms();
WCOM(0x00);WCOM(0x16);WDAT(131);WDAT(0x00);//horizontal
Delay5Ms();
WCOM(0x00);WCOM(0x17);WDAT(175);WDAT(0x00);//vertical
Delay5Ms();
}
void displayg1()     //图形
{Uint i;

WCOM(0x00);WCOM(0x16);WDAT(103);WDAT(19);//horizontal
WCOM(0x00);WCOM(0x17);WDAT(103);WDAT(19);//vertical
i=0;
WCOM(0x00);WCOM(0x21);WDAT(19);WDAT(19);
WCOM(0x00);WCOM(0x22);
do{
LcdDataWrite(mm[i]);i=i+1;
}while (i<7225);


}

void LcdDataWrite(unsigned char lobyte) 
{
Uchar A=0;
Uchar t1=0;
Uchar t2=0;
A = lobyte&0x80;
if(A!=0){t1=t1|0x90 ;}


A = lobyte&0x40;
if(A!=0){t1=t1|0x48 ;}


A = lobyte&0x20;
if(A!=0){t1=t1|0x20 ;}


A = lobyte&0x10;
if(A!=0){t1=t1|0x04 ;t2=t2|0x80;}

/////////////////////////////
A = lobyte&0x08;
if(A!=0){t1=t1|0x02 ;t2=t2|0x40;}

A = lobyte&0x04;
if(A!=0){t1=t1|0x01 ;t2=t2|0x20 ;}

A = lobyte&0x02;
if(A!=0){t2=t2|0x14 ;}


A = lobyte&0x01;
if(A!=0){t2=t2|0x0a ;}

WDAT(t1);
WDAT(t2);
}    
/*
void display0()//////////////////
{ Uint i;
WCOM(0x00);WCOM(0x21);WDAT(0x00);WDAT(0x00);
WCOM(0x00);WCOM(0x22);
 for (i=0;i<11616;i++) 
{ WDAT(0xff);WDAT(0xff);}//W
 for (i=0;i<11616;i++) 
{ WDAT(0x00);WDAT(0x00);}//black
}
*/
void display1()//////////////////
{ Uint i;

WCOM(0x00);WCOM(0x16);WDAT(131);WDAT(00);//horizontal
WCOM(0x00);WCOM(0x17);WDAT(175);WDAT(00);//vertical

WCOM(0x00);WCOM(0x21);WDAT(0x00);WDAT(0x00);
WCOM(0x00);WCOM(0x22);

 for (i=0;i<7656;i++) 
{   WDAT( 0xf8) ;  WDAT( 0x00) ; }    //R   
 for (i=0;i<7920;i++) 
{   WDAT( 0x07) ;  WDAT( 0xe0) ; }    //G 
  for (i=0;i<7656;i++) 
{      WDAT( 0x00) ;  WDAT( 0x1f) ;}  //B
}
/*
void display2()//////////////////
{ Uint i;
WCOM(0x00);WCOM(0x21);WDAT(0x00);WDAT(0x00);
WCOM(0x00);WCOM(0x22);
 for (i=0;i<7656;i++) 
{   WDAT( 0x01) ;  WDAT( 0xff) ; }    //-R  青   
 for (i=0;i<7656;i++) 
{   WDAT( 0xf8) ;  WDAT( 0x1f) ; }    //-G  紫
 for (i=0;i<7920;i++) 
{      WDAT( 0xff) ;  WDAT( 0xe0) ;}  //-B 黄
   
} 
 */

      
void WCOM(unsigned char lobyte)/////////////	
 { RS=0;
RW=0;

P1=lobyte;

   E=1;_nop_();_nop_();_nop_();  _nop_();  _nop_();  _nop_();  _nop_();
   E=0;

	RS=1; }


void WDAT(unsigned char lobyte)//////////////
{	
    RS=1;
RW=0; 
 P1=lobyte;
   E=1;_nop_();_nop_();_nop_();  _nop_();  _nop_();  _nop_();  _nop_(); E=0;
	 RS=0;}




void Delay5Ms(void)///////////////
{Uint i = 2000;while(i--);}  

void Delay400Ms(void)/////////////
{   Uint i = 50;
    Uint j;
 while(i--)   
    {j=999; while(j--);};
 } 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -