📄 7210.c
字号:
/*--------------------------------------------------------------------------
Nokia 7210 IC PCF8833
I2c device address:
Resolution: 130x130 8bpp 4096/65536 colors 9-bit data
Pinout:
pin1 Vlogic (1,8 V)
pin2 _Reset
pin3 Sdta
pin4 Sclk
pin5 _Cs
pin6 Vlcd (2,8 V)
pin7 Nc
pin8 Gnd
pin9 Vled-
pin10 Vled+ (6 V)
---------------------------------------------------------------------------*/
#include<reg52.h>
#include<delay.c>
extern unsigned char code GIRL[];
extern unsigned char code CharLib_CHN[];
#define BKCLR 0XFFF
#define RED 0X00F
#define YELLOW 0X0FF
#define BLUE 0XF00
#define GREEN 0X0F0
#define BLACK 0X000
#define WHITE 0XFFF
sbit RST =P3^7;
sbit SDATA =P1^7;
sbit SCLK =P1^6;
sbit CS =P3^1;
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% set Instructions %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
void LcdWriCmd(unsigned char cmd)
{
unsigned char i;
SCLK=0;
CS=1;
CS=0;
SDATA=0;
SCLK=1;
SCLK=0;
for(i=0;i<8;i++)
{
SDATA=0x80&cmd;
SCLK=1;
SCLK=0;
cmd<<=1;
}
CS=1;
}
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% set Data %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
void LcdWriData(unsigned char Data)
{
unsigned char i;
SCLK=0;
CS=1;
CS=0;
SDATA=1;
SCLK=1;
SCLK=0;
for(i=0;i<8;i++)
{
SDATA=0x80&Data;
SCLK=1;
SCLK=0;
Data<<=1;
}
CS=1;
}
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% set Intial %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
void LcdInit()
{
unsigned int i=0;
CS=0;
RST=0;
delay(500);
RST=1;
LcdWriCmd(0x11); //Sleep_Out
LcdWriCmd(0x29); //DisplayOn
LcdWriCmd(0x03); //Booster On
LcdWriCmd(0x36); //Set Memory access control
LcdWriData(0x90); //Rotate the screen 180 degree
LcdWriCmd(0x3a);
LcdWriData(0x05);
LcdWriCmd(0x2c);
for(i=0;i<33800;i++) //Clear the screen
{
LcdWriData(0xff);
LcdWriData(0xff);
}
}
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% set Window %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
void LcdSetWindow(unsigned char left,unsigned top,unsigned char right,unsigned char bottom)
{
LcdWriCmd(0x2a);
LcdWriData(left+1);
LcdWriData(right+1);
LcdWriCmd(0x2b);
LcdWriData(top+1);
LcdWriData(bottom+1);
}
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% set Display Bmp %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
void LcdDrawBmp(unsigned char x,unsigned char y,unsigned char *BmpMitrix)
{
unsigned int Width,Height;
unsigned int i;
Width=*BmpMitrix;
Height=*(BmpMitrix+1);
LcdSetWindow(x,y,x+Width-1,y+Height-1);
LcdWriCmd(0x2c);
for(i=1;i<=(Width*Height);i++)
{
LcdWriData(*(BmpMitrix+i*2));
LcdWriData(*(BmpMitrix+i*2+1));
}
}
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% set Display main %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
void main()
{
LcdInit();
LcdDrawBmp(24,20,GIRL);
LcdDrawBmp(34,0,CharLib_CHN);
while(1)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -