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

📄 cstn-uc1682.c

📁 此文件是针对一款Color STN LCD的测试程序
💻 C
字号:
#include <AT89X52.H>
#include <intrins.h>
#include <absacc.h>


#define    PICNUM          5

typedef  unsigned char   BYTE;
typedef  unsigned int    WORD;
typedef  unsigned long   LONG;
//P0
#define  P0_0       P0_0
#define  P0_1       P0_1
#define  P0_2       P0_2
#define  P0_3 	    P0_3
#define  P0_4       P0_4
#define  P0_5       P0_5
#define  SCK 	    P0_7
#define  SDA        P0_6
//P1
#define  CS         P1_0 //Main Chip Select
#define  RESET      P1_1 //LCD System Reset
#define  RS         P1_2 //Register Select Input(High-Display Data, Low-Commond Data)
#define  WR 	    P1_3 //Write
#define  RD         P1_4 //READ
#define  LE1        P1_5
#define  LE2 	    P1_6
#define  LE3        P1_7

BYTE   bdata   HIGHBYTE;
BYTE   bdata   LOWBYTE;

sbit   H0=HIGHBYTE^0;
sbit   H1=HIGHBYTE^1;
sbit   H2=HIGHBYTE^2;
sbit   H3=HIGHBYTE^3;
sbit   H4=HIGHBYTE^4;
sbit   H5=HIGHBYTE^5;
sbit   H6=HIGHBYTE^6;
sbit   H7=HIGHBYTE^7;

sbit   L0=LOWBYTE^0;
sbit   L1=LOWBYTE^1;
sbit   L2=LOWBYTE^2;
sbit   L3=LOWBYTE^3;
sbit   L4=LOWBYTE^4;
sbit   L5=LOWBYTE^5;
sbit   L6=LOWBYTE^6;
sbit   L7=LOWBYTE^7;


#define 	White     0xFF,0xFF
#define 	Black     0x00,0x00
#define 	Red       0xF8,0x00
#define 	Green     0x07,0xe0
#define 	Blue      0x00,0x1f
#define 	Yellow    0xFF,0xe0      //Red_Green
#define 	Magenta   0xF8,0x1F      //Red_Blue
#define 	Cyan      0x07,0xff      //Green_Blue
#define 	Gray      0xbd,0xf7


void writecommand(BYTE c);
void writedata(void);
void PageSelect(void);
void DelayX1ms(WORD i);
void DelayX10ms(WORD i);
void disp_Data(BYTE x,y);

BYTE Item;
BYTE m=0,n=0,i=0,j=0,k=0;

main()
{

	RESET=0;
DelayX10ms(10);
	RESET=1;
DelayX10ms(20);  //waiting for releasing reset


   writecommand(0xe2); // 
   DelayX1ms(10);


   writecommand(0x24); //

   writecommand(0xAB); //

   writecommand(0xC6); //

   writecommand(0xA3); //

   writecommand(0xD6); //

   writecommand(0xE9); //

   writecommand(0x81); //
   writecommand(0x40);

   writecommand(0xAF); //

 while(1)
  {
    for(Item=0;Item<=PICNUM;Item++)
      {
	    PageSelect();
      }
  }
}


void PageSelect(void)  //main panel dispaly
{
    switch(Item)
    {
      case(1): {disp_Data(Red);      break;}
      case(2): {disp_Data(Green);    break;}
      case(3): {disp_Data(Blue);     break;}
      case(4): {disp_Data(Black);  break;}
      case(5): {disp_Data(White);  break;}

      default:break;
     }
DelayX1ms(100);

}



/*==============================================================================
==============================================================================*/
void DelayX1ms(WORD i)
{
    WORD a,b;
    for(a=0;a<i;a++)
    {
         for(b=0;b<1500;b++)
         {
          _nop_();
         }
    }
}
/*==============================================================================
==============================================================================*/
void DelayX10ms(WORD i)
{
 WORD a,b;
 for(b=0;b<i;b++)
 {
  for(a=0;a<10;a++)
  {
  DelayX1ms(1);
  }
 }
}

/*==============================================================================
==============================================================================*/
void writecommand(BYTE c1)//Command data /8bit
{
	BYTE i;
	LOWBYTE=c1;
	CS=0;
	RS=0;
//
	for(i=0;i<8;i++)
	{
		SDA=L7;
		SCK=0;
		SCK=1;
		LOWBYTE=LOWBYTE<<1;
	}
	CS=1;
	SDA=0;

	SCK=0;

}

/*------------------------------------------------*/
void writedataata(void)//Display Data /12bits
{
	BYTE i;
	CS=0;
	RS=1;
//
	for(i=0;i<8;i++)
	{
		SDA=H7;
		SCK=0;
		SCK=1;
		HIGHBYTE=HIGHBYTE<<1;
	}
//

	for(i=0;i<8;i++)
	{
		SDA=L7;
		SCK=0;
		SCK=1;
		LOWBYTE=LOWBYTE<<1;
	}

	CS=1;
	SDA=0;

	SCK=0;

}

/*==============================================================================
==============================================================================*/

void disp_Data(BYTE x,y)
{
 BYTE i,j;
 i=j=0;

 for(i=0;i<80;i++)
 {
   for(j=0;j<104;j++)
     {
       HIGHBYTE=x;
	   LOWBYTE=y;
	   writedata();
     }
 }
}

⌨️ 快捷键说明

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