📄 ra8835.c
字号:
#include <hnk51.h>
#include <lcd_command.h>
#include <testchip.h>
void delay1ms(unsigned int count)
{
int i,j;
for(i=0;i<=count;i++)
for(j=0;j<=583;j++);
}
void lcd_reset(void)
{
lcd_RES = 1;
delay1ms(2);
lcd_SEL1 = 0;
lcd_A0 = 0;
lcd_WR = 1;
lcd_RD = 1;
lcd_CS = 1;
lcd_RES = 0;
delay1ms(100);
lcd_RES = 1;
delay1ms(500);
}
void lcd_initial(void)
{
lcd_cmdwrite(0x40); //SYSTEM SET
lcd_datawrite(0x30); //p1
lcd_datawrite(0x87); //p2
lcd_datawrite(0x07); //p3
lcd_datawrite(0x27); //p4
lcd_datawrite(0x37); //p5
lcd_datawrite(0xef); //p6
lcd_datawrite(0x28); //p7
lcd_datawrite(0x00); //p8
lcd_cmdwrite(0x44); //SCROLL
lcd_datawrite(0x00); //sa1-L
lcd_datawrite(0x00); //sa1-H
lcd_datawrite(0xf0); //sL1
lcd_datawrite(0x80); //sa2-L
lcd_datawrite(0x25); //sa2-H
lcd_datawrite(0xf0); //sL2
lcd_datawrite(0x00); //sa3-L
lcd_datawrite(0x3a); //sa3-H
lcd_datawrite(0x00); //sa4-L
lcd_datawrite(0x3a); //sa4-H
lcd_cmdwrite(0x5a); //HDOT SCR
lcd_datawrite(0x00);
lcd_cmdwrite(0x58); //DISP OFF
lcd_datawrite(0x54);
lcd_cmdwrite(0x5d); //CSR FORM
lcd_datawrite(0x00); //CRX
lcd_datawrite(0x00); //CRY
lcd_cmdwrite(0x59); //DISP ON
lcd_datawrite(0x54);
lcd_cmdwrite(0x5b);
lcd_datawrite(0x00);
}
void lcd_cmdwrite(unsigned char cmdx)
{
lcd_SEL1 = 0;
lcd_CMD = cmdx;
lcd_A0 = 1;
lcd_CS = 0;
lcd_WR = 0;
lcd_WR = 1;
lcd_CS = 1;
// lcd_A0 = 0;
}
void lcd_datawrite(unsigned char datax)
{
lcd_chkbusy();
lcd_SEL1 = 0;
lcd_A0 = 0;
lcd_DATA = datax;
lcd_CS = 0;
lcd_WR = 0;
lcd_WR = 1;
lcd_CS = 1;
lcd_A0 = 1;
}
unsigned char lcd_cmdread(void)
{
unsigned char address_cmd;
lcd_DATA=0xff;
lcd_SEL1 = 0;
lcd_A0 = 0;
lcd_CS = 0;
lcd_RD = 0;
address_cmd = lcd_DATA;
lcd_RD = 1;
lcd_CS = 1;
lcd_A0 = 0;
return(address_cmd);
}
unsigned char lcd_dataread(void)
{
char address_data;
lcd_DATA=0xff;
lcd_SEL1 = 0;
lcd_A0 = 1;
lcd_CS = 0;
lcd_RD = 0;
address_data = lcd_DATA;
lcd_RD = 1;
lcd_CS = 1;
lcd_A0 = 1;
return(address_data);
}
void lcd_cursorxy(unsigned char x,unsigned char y)
{
//lcd_chkbusy();
lcd_cmdwrite(0x46);
lcd_datawrite(x);
lcd_datawrite(y);
}
void lcd_chkbusy(void)
{
unsigned char busy;
do
{
busy =(lcd_cmdread() & 0x40);
}while(busy);
}
void lcd_showbig(unsigned char *text,unsigned int x)
{
while(*text != '\0')
{
lcd_datawrite(*text);
++text;
delay1ms(x);
}
}
void lcd_clear(void)
{
unsigned int i;
lcd_cursorxy(0x00,0x00);
lcd_cmdwrite(0x42);
for(i=0;i<0x7fff;i++)
lcd_datawrite(0x00);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -