📄 ra8820.c
字号:
/*jcg160160a02-01.c*/
#include <stdio.h>
#include <INTRINS.H>
#include <REG52.H>
#include"jcg160160a.txt"
#include"jcg160160b.txt"
#include"jcg160160c.txt"
#include"jcg160160d.txt"
sbit RST=P1^4;
sbit CS1= P1^3;
sbit E= P1^0;
sbit RW=P1^1;
sbit RS=P1^2;
#define LCD_Command P0
#define LCD_Data P0
void DelayXms(unsigned int i)
{
unsigned char a;
unsigned int b;
for(b=0;b<i;b++)
for(a=0;a<255;a++);
}
void DelayXs(unsigned char i)
{
unsigned char a;
for(a=0;a<i;a++)
DelayXms(1000);
}
void LCD_Reset(void)
{
//CS1=0;
//CS2=1;
RST = 1;
DelayXms(20);//10
RST = 0;
DelayXms(30);//50
RST = 1;
DelayXms(50);//150
}
void LCD_CmdWrite(unsigned char Cmd_Data)
{
/*LCD_ChkBusy(); */ //Call LCD_ChkBusy to Check Busy Bit
LCD_Command = Cmd_Data;
//CS1=0;
RST=1;
RS=1;
RW=0;
E=1;
_nop_();
_nop_();
E=0;
_nop_();
_nop_();
RW=1;
RS=1;
}
void LCD_DataWrite(unsigned char Data_Data)
{
/*LCD_ChkBusy();*/ //Call LCD_ChkBusy to Check Busy Bit
LCD_Data = Data_Data;
//CS1=0;
RST=1;
RS=0;
RW=0;
//E=0;
E=1;
_nop_();
_nop_();
E=0;
_nop_();
_nop_();
RW=1;
RS=1;
}
unsigned char LCD_CmdRead(unsigned char REG_Addr)
{
unsigned char REG_READ;
LCD_CmdWrite(REG_Addr);
RST = 1;
RW=1;
RS=1;
//CS1=0;
E=1;
_nop_();
REG_READ = LCD_Command;
_nop_();
E=0;
RS=1;
return REG_READ;
}
void LCD_CursorX(unsigned char Cursor)
{
LCD_CmdWrite(0x60);
LCD_CmdWrite(Cursor);
}
void LCD_CursorY(unsigned char Cursor)
{
LCD_CmdWrite(0x70);
LCD_CmdWrite(Cursor);
}
void LCD_Clear(void)
{
unsigned char REG_TMP;
LCD_CmdWrite(0xE0);LCD_CmdWrite(0x00);
REG_TMP = LCD_CmdRead(0xF0);
REG_TMP &= (0xF7);
REG_TMP |= (0x08);
LCD_CmdWrite(0xF0);
LCD_CmdWrite(REG_TMP);
DelayXms(1);
}
void writebmp(unsigned char *bmp)
{
unsigned char i,j;
DelayXms(20);
LCD_Clear();
LCD_CmdWrite(0x0);
LCD_CmdWrite(0xC5);
for(i=0;i<160;i++)
{ LCD_CursorX(0x00);
LCD_CursorY(i);
for(j=0;j<20;j++)
{
LCD_DataWrite(*bmp++);
}
}
DelayXs(10);
}
init()
{
CS1=0;
LCD_Reset();
DelayXms(50);
LCD_CmdWrite(0x00);LCD_CmdWrite(0xC1); /*LCD Controller register*/
LCD_CmdWrite(0x08);LCD_CmdWrite(0x4F); /*4f.Misc register*/
LCD_CmdWrite(0x10);LCD_CmdWrite(0x23); /*Cursor Controller*/
LCD_CmdWrite(0x18);LCD_CmdWrite(0x10); /*cursor size register*/
LCD_CmdWrite(0x20);LCD_CmdWrite(0x13); /*Active windows set default*/
LCD_CmdWrite(0x30);LCD_CmdWrite(0x9F); /*Active windows set default*/
LCD_CmdWrite(0x40);LCD_CmdWrite(0x00); /*Active windows set default*/
LCD_CmdWrite(0x50);LCD_CmdWrite(0x00); /*Active windows set default*/
LCD_CmdWrite(0x28);LCD_CmdWrite(0x13); /*display windows set*/
LCD_CmdWrite(0x38);LCD_CmdWrite(0x9F); /*display windows set*/
LCD_CmdWrite(0x48);LCD_CmdWrite(0x00); /*display windows set*/
LCD_CmdWrite(0x58);LCD_CmdWrite(0x00); /*display windows set*/
LCD_CmdWrite(0x60);LCD_CmdWrite(0x00); /*cursor position X register*/
LCD_CmdWrite(0x70);LCD_CmdWrite(0x00); /*cursor position Y register*/
LCD_CmdWrite(0x80);LCD_CmdWrite(0x23); /*Cursor Controller time*/
LCD_CmdWrite(0x90);LCD_CmdWrite(0x1D); /*21 shift clock control register*/
LCD_CmdWrite(0xB0);LCD_CmdWrite(0x13); /*intx default*///13
LCD_CmdWrite(0xA0);LCD_CmdWrite(0x00); /*intr*/
LCD_CmdWrite(0xB8);LCD_CmdWrite(0x9F); /*inty default*/
LCD_CmdWrite(0xC0);LCD_CmdWrite(0xF0); /*touch panel control register*/
LCD_CmdWrite(0xD0);LCD_CmdWrite(0x23); /*LCD contrast adjust register*/
LCD_CmdWrite(0xE0);LCD_CmdWrite(0x00); /*pattern dta register*/
LCD_CmdWrite(0xF0);LCD_CmdWrite(0xA8); /*font control register*/
LCD_Clear();
LCD_CmdWrite(0x10);LCD_CmdWrite(0x3b);
LCD_CmdWrite(0x10);LCD_CmdWrite(0x2b);
}
void main(void)
{
init();
while(1)
{
writebmp(jcg160160a);
writebmp(jcg160160b);
writebmp(jcg160160c);
writebmp(jcg160160d);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -