📄 st7920_serial_c.c
字号:
}
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 + -