📄 cstn-uc1682.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 + -