⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 240160.c

📁 RA8835或SED1335黑白屏主控系列C源程序,测试OK(端口需要根据自己需要修改)
💻 C
字号:
#include <hnk51.h>
//#include <lcd_command.h>
#define uchar unsigned char
#define uint unsigned int

sbit lcd_CS  =P2^2;
sbit lcd_RD  =P2^1;
sbit lcd_WR  =P2^0;
sbit lcd_A0  =P2^3;
sbit lcd_RES =P2^4;

#define lcd_CMD    P1
#define lcd_DATA   P1

uchar code ZKWU[]=
{0x00,0x10,0x1F,0xF8,0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,0x00,0x10,0x3F,
0xF8,0x01,0x00,0x01,0x04,0xFF,0xFE,0x02,0x80,0x02,0x40,0x04,0x20,0x18,0x1C,0x60,0x08};
uchar code ZKLIN[]=
{0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0xFD,0xFE,0x10,0x20,0x10,0x60,0x38,0x70,
0x34,0xB0,0x54,0xA8,0x51,0x28,0x92,0x26,0x14,0x24,0x10,0x20,0x10,0x20,0x10,0x20};



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_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_A0 = 0;
    lcd_DATA = datax;
    lcd_CS = 0;
    lcd_WR = 0;
    lcd_WR = 1;
    lcd_CS = 1;
    lcd_A0 = 1;
}




void lcd_initial(void)
{
  uint i;
lcd_cmdwrite(0x40); /* ---------LCD SYSTEM SET?????,8???--------
*/
lcd_datawrite(0x30);
lcd_datawrite(0x87);
lcd_datawrite(0x07);
lcd_datawrite(39); /* ??????320dot */
lcd_datawrite(0x36); /* ???????? */
lcd_datawrite(239); /* ??????240dot */
lcd_datawrite(40); /* ???????????????(L) */
lcd_datawrite(0); /* ???????????????(H) */
delay1ms(0x9);
lcd_cmdwrite(0x44); /* ---------LCD SCROLL???????,??10???---
------ */
lcd_datawrite(0x00); /* ??1??????RAM???8??? */
lcd_datawrite(0x00); /* ??1??????RAM???8??? */
lcd_datawrite(240); /* ??1???240?dot? */
lcd_datawrite(0x80); /* ??2??????RAM???8??? */
lcd_datawrite(0x25); /* ??2??????RAM???8??? */
lcd_datawrite(240); /* ??3???240?dot? */
lcd_datawrite(0x00); /* ??3??????RAM???8??? */
lcd_datawrite(0x4b); /* ??3??????RAM???8??? */
delay1ms(0x9);
lcd_cmdwrite(0x5a); /* ????,???????? */
lcd_datawrite(0x00);
delay1ms(0x9);
lcd_cmdwrite(0x5b); /* ??????????,1??? */
lcd_datawrite(0x1c); /* ??:???????????,??? */
delay1ms(0x9);
lcd_cmdwrite(0x59); /* ????,1??? */
lcd_datawrite(0x04); /* ??????????? */
delay1ms(0x9);
lcd_cmdwrite(0x4c); /* ?????????*/
delay1ms(0x9);
lcd_cmdwrite(0x46); /* ???????? */
lcd_datawrite(0); /* ?0000???? */
lcd_datawrite(0);
delay1ms(0x9);
lcd_cmdwrite(0x42); /* ??MPU???????????????? */
for(i=0;i<32760;i++)
{

lcd_datawrite(0); /* ?32K??????,?LCD??????? */
}
}


/* -------------------------设定光标,允许显示------------------------- */
void SetCursor(uchar CursorHIGH,uchar CursorLOW)
{
delay1ms(0x9);
lcd_cmdwrite(0x46); 
lcd_datawrite(CursorLOW); 
lcd_datawrite(CursorHIGH);
delay1ms(0x9);
lcd_cmdwrite(0x42); 
}

//==============在指定位置显示一个汉字=========
void WriteOneWork(uchar CurHIGH,uchar CurLOW,uchar * ZiKu)
{
uchar i;
SetCursor(CurHIGH,CurLOW); 
i=0;
do
{
lcd_datawrite(ZiKu[i]);
i=i+2;
}
while(i<0x1e);
SetCursor(CurHIGH,CurLOW+1);
i=1;
while(i<0x1f)
{
lcd_datawrite(ZiKu[i]);
i=i+2;
}
}





void lcd_cursorxy(unsigned char x,unsigned char y)
{
    lcd_cmdwrite(0x46);
    lcd_datawrite(x);
    lcd_datawrite(y);	
}
/*
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);
}

void main(void)
{
//uchar i;
lcd_reset();
lcd_initial();

while(1)
{
lcd_clear();
delay1ms(0x30);
delay1ms(0x9);
lcd_cmdwrite(0x4f); 
WriteOneWork(0,0,ZKWU);
WriteOneWork(0x2,0x80,ZKLIN);

}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -