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

📄 rt12864m.h

📁 NS12864R测试程序 实现NS12864的相关操作
💻 H
字号:
#include<reg52.h>
#include<string.h>
#define Lcd_Bus P0    //MCU P0<--信号-->LCM
sbit  RS  =P2^0;      //并行的指令/数据选择信号;串行的片选信号
sbit  RW  =P2^1;      //并行的读/写选择信号;串行的数据口
sbit  E   =P2^2;      //并行的使能信号;串行同步时钟
unsigned char COUNT3,COUNT2,COUNT1,COUNT,LCD_X,LCD_Y,LCD_DATA1,LCD_DATA2,LCD_DATA,F3,R1,Flag; 

//========================================================
void dis_1_line(unsigned char *disdata,unsigned char x1);
void WR_ZB(void) ;
//===============================================
unsigned char LCDData;

//延时子程序
void delay(unsigned int t)
{
    unsigned int i,j;
    for(i=0;i<t;i++)
      for(j=0;j<10;j++); 
}
//写指令代码
void WriteCommand(unsigned char Command)
{   
    unsigned char temp;
	RS=0;
	RW=1;
	do{
	Lcd_Bus=0xff;
	E=1;
	delay(20);
	temp=Lcd_Bus;
	E=0;
	}while(temp&0x80);
	RW=0;
	Lcd_Bus=Command;
	E=1;
	E=0;
	}

//写显示数据
void WriteData(unsigned char LCDdata)
{
	unsigned char temp;
	RS=0;
	RW=1;
	do{
	Lcd_Bus=0xff;
	E=1;
	delay(20);
	temp=Lcd_Bus;
	E=0;}
	while(temp&0x80);
	RS=1;
	RW=0;
	Lcd_Bus=LCDdata;
	E=1;
	E=0;
	}
	

//初始化程序
void LCDInit()
{
	delay(20);
	WriteCommand(0x30);//选择8bit数据流
	delay(10);
	             
	WriteCommand(0x30);//开显示(无游标、不反白)
	delay(5);
	                  
	WriteCommand(0x0c); //清显示并设地址指针为00H
	delay(10);
	              
	WriteCommand(0x01);//设定游标方向及显示移位
	delay(10);
	               
	WriteCommand(0x06);
	delay(10);

	}

//显示字符串
void HZdisp(unsigned char code *s)
{
    while(*s>0)
    { 
		LCDData=*s;
		WriteData(LCDData);
        s++;
        delay(50);
    }
}

void dis_1_line(unsigned char *disdata1,unsigned char x1)
{
	WriteCommand(0x06);
    delay(5);
    WriteCommand(x1);
    HZdisp(disdata1);
}
//=================================================
void PHO_DISP(const unsigned char *s) 
{ 
   COUNT3=0X02; 
   LCD_X=0x80; 
   for (;COUNT3!=0;COUNT3--) 
   { 
       LCD_Y=0X80; 
       COUNT2=0X20;              //32 
       for (;COUNT2!=0;COUNT2--) 
       { 
            COUNT1=0X10;            //16 
		 	WriteCommand(0x36);
   			WriteCommand(LCD_Y);
  		 	WriteCommand(LCD_X);
   			WriteCommand(0x30);
         for (;COUNT1!=0;COUNT1--) 
          { 
            WriteData(*s++); 
          } 
         LCD_Y+=1; 
       } 
       LCD_X=0X88; 
   } 
   WriteCommand(0x36); 
   WriteCommand(0x30);
} 

⌨️ 快捷键说明

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