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

📄 st7920_serial_c.c

📁 12864点阵液晶
💻 C
📖 第 1 页 / 共 2 页
字号:
    }
	SID=0;
    for(i=0;i<0x4;i++)
	{
	  _nop_();
	  _nop_();
      CLK=1;
	  _nop_();
	  _nop_();
      CLK=0;
	  _nop_();
	  _nop_();
    }
    for(i=0;i<0x4;i++)
	{
	  SID=cmd&0x80;
	  cmd=cmd<<1;
	  _nop_();
	  _nop_();
      CLK=1;
	  _nop_();
	  _nop_();
      CLK=0;
	  _nop_();
	  _nop_();
    }
	SID=0;
    for(i=0;i<0x4;i++)
	{
	  _nop_();
	  _nop_();
      CLK=1;
	  _nop_();
	  _nop_();
      CLK=0;
	  _nop_();
	  _nop_();
    }
	Delay(5);
	return;
}

/***********************************
** 函数名称: SET_CGRAM_ADDRESS
** 功能描述:
** 输 入:  add
** 输 出 : 无
** 全局变量:无
** 调用模块: Write_Instruction
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-28
******************************************/
void Set_CGRAM_Address(unsigned char idata add)
{
	Write_Instruction(add|0x40);
	return;
}

/***********************************
** 函数名称: Set_DDRAM_Address
** 功能描述: 
** 输 入:  add
** 输 出 : 无
** 全局变量:无
** 调用模块: Write_Instruction
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-28
******************************************/
void Set_DDRAM_Address(unsigned char idata add)
{
    Write_Instruction((0x80|add));
	return;
}

/***********************************
** 函数名称: Set_GDRAM_Address
** 功能描述: 
** 输 入:  add
** 输 出 : 无
** 全局变量:无
** 调用模块: Write_Instruction
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-28
******************************************/
void Set_GDRAM_Address(unsigned char idata add_page,unsigned char idata add_seg)
{
    Write_Instruction((0x80|add_page));
    Write_Instruction((0x80|add_seg));
	return;
}

/***********************************
** 函数名称: Initial
** 功能描述: LCD初始化
** 输 入:  无
** 输 出 : 无
** 全局变量:无
** 调用模块:CLEAR_DISPLAY_MEMORY,SET_SHIFT_DIRECTION,SET_FUNCTION_BASIC,DISPLAY_ON
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-28
******************************************/
void Initial(void)
{
    Delay(2000);
	PS=0;
	CS=1;
    Delay(1000);
	CLEAR_DISPLAY_MEMORY();
    Delay(5000);
    SET_SHIFT_DIRECTION();
    Delay(100);
    SET_FUNCTION_BASIC();
    Delay(100);
	DISPLAY_ON();
    Delay(100);
}

/***********************************
** 函数名称: Display_Chinese
** 功能描述: 显示汉字
** 输 入:  fnt
** 输 出 : 无
** 全局变量:无
** 调用模块:Write_Data_1,Write_Data_2,Set_DDRAM_Address
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-10
******************************************/
void Display_Chinese(unsigned char fnt[])
{
    register unsigned char i,j;
    Set_DDRAM_Address(0x00);
    for(i=0;i<0x08;i+=2)
	{
		for(j=0;j<0x08;j++)
		{
		        Write_Data(fnt[i]);
		        Write_Data(fnt[i+1]);
		}
	}
    return;
}

/***********************************
** 函数名称: Display_Chinese
** 功能描述: 显示汉字
** 输 入:  fnt
** 输 出 : 无
** 全局变量:无
** 调用模块:Write_Data_1,Write_Data_2,Set_DDRAM_Address
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-10
******************************************/
void Display_Character(unsigned char dat)
{
    register unsigned char i;
    Set_DDRAM_Address(0x00);
    for(i=0;i<0x40;i++)
	{
        Write_Data(dat++);
	}
    return;
}

/***********************************
** 函数名称: Display_Chess
** 功能描述: 显示棋盘
** 输 入:  无
** 输 出 : 无
** 全局变量:无
** 调用模块:Set_DDRAM_Address,Write_Data
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-10
******************************************/
void Display_Chess(void)
{
    register unsigned char i;
    Set_DDRAM_Address(0x00);
    for(i=0;i<0x20;i++)
	{
        Write_Data(0x00);
        Write_Data(0x00);
	}
    return;
}

/***********************************
** 函数名称: Create_CGRAM
** 功能描述: 建棋盘图形16*16
** 输 入: dat
** 输 出 : 无
** 全局变量:无
** 调用模块:Write_Data,Set_CGRAM_Address
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-10
******************************************/
void Create_CGRAM(unsigned char idata dat)
{
    register unsigned char i,j;
    Set_CGRAM_Address(0x00);
    for(i=0;i<0x04;i+=2)
	{
        dat=~dat;
		for(j=0;j<0x08;j++)
		{
		    Write_Data(dat);
		    Write_Data(~dat);
		}
    }
    return;
}

/***********************************
** 函数名称: Create_CGRAM
** 功能描述: 建棋盘图形16*16
** 输 入: dat
** 输 出 : 无
** 全局变量:无
** 调用模块:Write_Data,Set_CGRAM_Address
** 
** 作 者: 耀宇科技
** 日 期: 2006-2-10
******************************************/
void Create_CGRAM1(unsigned char idata dat1,unsigned char idata dat2)
{
    register unsigned char i;
    Set_CGRAM_Address(0x00);
    for(i=0;i<0x10;i++)
	{
	    Write_Data(dat1);
	    Write_Data(dat1);
	    Write_Data(dat2);
	    Write_Data(dat2);
    }
    return;
}

void main(void)
{
    Initial();
	Delay(10000);
	while(1)
	{
	    Create_CGRAM1(0x55,0x55);
	    Delay(10000);
		Display_Chess();
	    Delay(65000);
	    Delay(15000);
	    Create_CGRAM1(0xaa,0xaa);
	    Delay(10000);
		Display_Chess();
	    Delay(65000);
	    Delay(15000);
	    Create_CGRAM1(0xff,0x00);
	    Delay(10000);
		Display_Chess();
	    Delay(65000);
	    Delay(15000);
	    Create_CGRAM1(0x00,0xff);
	    Delay(10000);
		Display_Chess();
	    Delay(65000);
	    Delay(15000);
	    Create_CGRAM1(0x55,0xaa);
	    Delay(10000);
		Display_Chess();
	    Delay(65000);
	    Delay(15000);
	    Create_CGRAM1(0xaa,0x55);
	    Delay(10000);
		Display_Chess();
	    Delay(65000);
	    Delay(15000);
     	Display_Character(0x41);
	    Delay(65000);
	    Delay(25000);
        Display_Chinese(font);
	    Delay(65000);
	    Delay(25000);
        Display_Chinese(ft);
	    Delay(65000);
	    Delay(25000);
        Create_CGRAM(0xff);
	    Delay(10000);
		Display_Chess();
	    Delay(65000);
	    Delay(15000);
        Create_CGRAM(0x00);
	    Delay(10000);
		Display_Chess();
	    Delay(65000);
	    Delay(15000);
	}
}

⌨️ 快捷键说明

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