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

📄 lcd.h

📁 seed1335单片机显示
💻 H
字号:
#include <p18f87j10.h>


#define uchar unsigned char 
#define uint  unsigned int
#define ulong unsigned long 




# define SYS_SET_COM 0x40
# define SCROLL_COM 0x44
# define HDOT_SCR_COM 0x5a
# define OVLAY_COM 0x5b
# define DIS_COM 0x59
# define CSRDIR_COM_ADD 0x4c
# define CSRDIR_COM_SUB 0x4d
# define CSRDIR_COM_UP 0x4e
# define CSRDIR_COM_DOWN 0x4f
# define CSRW_COM 0x46
# define CSRFORM_COM 0x5d
# define MWRITE_COM 0x42
# define CGRAM_ADD_COM 0x5c


#define Led1    PORTAbits.RA0 
#define Led2    PORTAbits.RA1 
#define Led3    PORTAbits.RA2 
#define Led4    PORTAbits.RA3 

#define RD      PORTEbits.RE0  	  //RD
#define WR      PORTEbits.RE1      //WR     
#define CS      PORTBbits.RB3      //CS
#define A       PORTEbits.RE3      //C/D 
#define BackLight  PORTEbits.RE4


#define BackLight_On()      {BackLight=1;}
#define BackLight_Off()     {BackLight=0;}
#define Led1_On()			{Led1=0;}
#define Led1_Off()			{Led1=1;}
#define Led2_On()			{Led2=0;}
#define Led2_Off()			{Led2=1;}
#define Led3_On()			{Led3=0;}
#define Led3_Off()			{Led3=1;}
#define Led4_On()			{Led4=0;}
#define Led4_Off()			{Led4=1;}


uchar  systab[8]={0x30,0x87,0x07,0x27,0x32,0xef,0x28,0x00};
uchar scrolltab1[10]={0x00,0x00,0xf0,0x00,0x10,0xf0,0x00,0x80,0x00,0x00};
uchar  scrolltab2[10]={0x00,0x00,0xf0,0x80,0x25,0xf0,0x00,0x00,0x00,0x00};

union u {uint word;
		struct{uchar hi;uchar lo;}bytes;};



/*===============================================================================
接口情况表述: 
    1...A0 ..... RE3                  寄存器选择信号,命令数据方式选择 
    2.../WR..... WR--RE1              写有效 
    3.../RD..... RD--RE0              读有效 
    4...PD.......RD					  数据总线 
    5../CS    .  CS--RB3              片选通信号,低电平有效.实际使用应编入地址 
 ==============================================================================*/
void delay(uint rx)
{
   unsigned int i=0;
   while(i<rx){i++;}	
}
//A0 RD WR Function
//0  0  1  Status flag read
//1  0  1  Display data and cursor address read
//0  1  0  Display data and parameter write
//1  1  0  Command write
void WriteCmd(unsigned char cmd)                
{
        TRISD=0x00;  
		PORTD=0x00;           
		CS=0;
		A=1;
		Nop();
		RD=1;
    	PORTD=cmd;
		delay(10);
		WR=0;
		Nop();
		WR=1;  
		CS=1;
}

void WriteData(unsigned char data)
{
		TRISD=0x00;  
		PORTD=0x00;
		CS=0;
		A=0;
		RD=1;
        PORTD=data;   
		delay(10);
		WR=0;
		Nop();
		WR=1;
      	CS=1;
}


uchar  ReadData(void)
{
	uchar rdata;
	TRISD=0xff; 
	CS=0;
	A=1;
	WR=1;
	PORTD=0xff;
	RD=0;
	delay(100);
	rdata=PORTD;
	RD=1;
	CS=1;
	return(rdata);
}
void clear_lcd(void)
{
	uint i;
	WriteCmd(CSRDIR_COM_ADD);   //光标右移
	WriteCmd(CSRW_COM);         //光标定位
	WriteData(0);				 //光标低8位
	WriteData(0);				 //光标高8位
	WriteCmd(MWRITE_COM);		 //数据写入指令
	for(i=0x8000;i>0;i--)        //32k内存空间全部清零
  {
        WriteData(0x00);
 	}
}

void ini_lcd(void)
{
	uchar i;
	WriteCmd(SYS_SET_COM);         //系统设置命令
	for(i=0;i!=8;i++)			
	{
		WriteData(systab[i]);
	}
	WriteCmd(SCROLL_COM);		   //显示域设置
	for(i=0;i!=10;i++)
	{
		WriteData(scrolltab2[i]);
	}
	WriteCmd(HDOT_SCR_COM);			   //写入点位移指令代码
	WriteData(0);						
	WriteCmd(OVLAY_COM);               //显示合成方式				
	WriteData(0x01);
//	WriteData(0x0c);
	
    WriteCmd(CSRFORM_COM);
	WriteData(0x07);
	
	WriteCmd(CSRW_COM);         
	WriteData(0x01);			
	WriteData(0x00);				 
	
	clear_lcd();				
	WriteCmd(DIS_COM);					//显示开
	WriteData(0x06);		
		
//	WriteCmd(CSRFORM_COM);
//	WriteData(0x00);
//	WriteData(0x00);		
}


































⌨️ 快捷键说明

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