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

📄 ra8835.c

📁 本程序实现了用P89C669驱动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 + -