📄 ra8803.c
字号:
#include <reg52.h>
#include <intrins.h>
#include <absacc.h>
typedef unsigned char uchar;
typedef unsigned int uint;
sbit RST=P1^3;
sbit CS=P1^4;
sbit GO=P3^3;
sbit busy=P3^4;
/************************************************************************************/
unsigned char code TAB[];
void Delayms(uint s)
{
uint a,b;
for(a=0;a<s;a++)
for(b=225;b!=0;b--);
}
void Wait()
{
while(1)
{
if(GO==0)
{
Delayms(150);
while(~GO);
return;
}
}
}
//-------------------------------------------------------------------------------
void WriteCommand(uchar add,uchar cmd)
{
CS=0;
XBYTE[0xf000]=add;
CS=1;
Delayms(3);
CS=0;
XBYTE[0xf000]=cmd;
CS=1;
Delayms(3);
}
//-------------------------------------------------------------------------------
void WriteData(uchar d)
{
CS=0;
while(busy);
XBYTE[0xf200]=d;
CS=1;
}
void LCMInitial()
{
CS=0;
RST=1;
Delayms(10);
RST=0;
Delayms(100);
RST=1;
CS=1;
Delayms(80);
WriteCommand(0x01,0xF1);//system clock
WriteCommand(0x02,0x02);//advance power setup register
WriteCommand(0x03,0x80);//advance display setup register
WriteCommand(0x10,0x28);//cursor control register
WriteCommand(0x11,0xf0);//distance of word or lines register
WriteCommand(0x12,0x91);//memory access mode register
WriteCommand(0x21,0X27);//display window right register
WriteCommand(0x31,0Xef);//display window bottom register
WriteCommand(0x41,0x00);//display window left register
WriteCommand(0x51,0x00);//display window top register
WriteCommand(0x20,0X27);//active window right register
WriteCommand(0x30,0XEF);//active window bottom register
WriteCommand(0x40,0x00);//active window left register
WriteCommand(0x50,0x00);//active window top register
WriteCommand(0x61,0x00);//shift action rang begin segment register
WriteCommand(0x71,0x00);//shift action rang begin comon register
WriteCommand(0x72,0x3f);//shift action rang end comon register
WriteCommand(0x80,0x00);//blink time register
WriteCommand(0x90,0x06);//shift clock control register
WriteCommand(0x81,0x0c);//frame rate polarity change at common_a register
WriteCommand(0xc0,0x00);//touch panel conrol register
WriteCommand(0xa0,0x0B);
WriteCommand(0xa1,0x00);//key scan control register
WriteCommand(0xf0,0xa0);//font control register
WriteCommand(0xd0,0x07);
WriteCommand(0x00,0xc5);//display modle
WriteCommand(0x60,0x00);//cursor position x register
WriteCommand(0x70,0x00);//cursor position y register
}
Display_v(uchar d)
{
uchar v,h;
WriteCommand(0x00,0xc5);//display modle
WriteCommand(0x60,0x00);//cursor position x register
WriteCommand(0x70,0x00);//cursor position y register
for(h=0;h<240;h++)
for(v=0;v<40;v++)
WriteData(d);
Wait();
}
Display_h(uchar d1,uchar d2)
{
uchar v,h;
WriteCommand(0x00,0xc5);//display modle
WriteCommand(0x60,0x00);//cursor position x register
WriteCommand(0x70,0x00);//cursor position y register
for(h=0;h<240;h++)
for(v=0;v<40;v++)
h%2==0?WriteData(d1):WriteData(d2);
Wait();
}
Display_bmp(uchar *ptr)
{
uchar v,h;
WriteCommand(0x00,0xc5);//display modle
WriteCommand(0x60,0x00);//cursor position x register
WriteCommand(0x70,0x00);//cursor position y register
for(h=0;h<40;h++)
for(v=0;v<240;v++)
WriteData(*ptr++);
Wait();
}
void main()
{
LCMInitial();
while(1)
{
Display_v(0xff);
Display_v(0x00);
Display_v(0x55);
Display_v(0xaa);
Display_h(0x00,0xff);
Display_h(0xff,0x00);
Display_h(0xaa,0x55);
Display_h(0x55,0xaa);
Display_bmp(TAB);
}
}
unsigned char code TAB[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -