📄 lcd.c
字号:
}
else
{
LCD_Write_Set(yPos + i,0); //Page_LCD[i] i=0 first page i=7 seventh page
// LCD_Write_Set((xPos>>4)&0x0F|0x10,0); //set col address msb
LCD_Write_Set(xPos,0); //set col address lsb
}
}
/*--------------------------------------------------------------
//清除一行子程序
------------------------------------------------------------*/
void Clear_H_LCD(unsigned char H)
{
unsigned char i,j;
Set_xyPos_LCD(0, H << 1 ); //set col address lsb
for( i = 0;i < 2;i++ )
{
for( j = 0;j < 61;j++ )
LCD_Write_Data( 0x55,0 );
Set_xyPos_LCD(0, (H << 1) + 1); //set col address lsb
}
Set_xyPos_LCD(61, H << 1 ); //set col address lsb
for( i = 0;i < 2;i++ )
{
for( j = 0;j < 61;j++ )
LCD_Write_Data( 0x55,1 );
Set_xyPos_LCD(61, (H << 1) + 1); //set col address lsb
}
}
/*---------------------------------------------------------------------------------
//延时1MS子程序
---------------------------------------------------------------------------------*/
void Delay_xMs(unsigned int xMs)
{
unsigned int i,j;
for(i=0;i<xMs;i++)
{
for(j=0;j<500;j++)
;
}
}
/*---------------------------------------------------------------------------------
//在X,Y处显示一个16*8的西文sData (0---d)
---------------------------------------------------------------------------------*/
void Show_XW_LCD(unsigned char xPos,unsigned char yPos,unsigned char sData)
{
bit F;
unsigned int nTmp;
unsigned char j,x,y;
x = xPos;
y = yPos;
nTmp = sData * 16;
for ( j = 0;j < 16;j+=2 )
{
Set_xyPos_LCD(x,y);
F = 0;
if ( x > 60 )
F = 1;
LCD_Write_Data(Large_DianZen[nTmp + j],F);
x++;
}
y++;
x = xPos;
for ( j = 1;j < 16;j+=2 )
{
Set_xyPos_LCD(x,y);
F = 0;
if ( x > 60 )
F = 1;
LCD_Write_Data(Large_DianZen[nTmp + j],F);
x++;
}
}
/*---------------------------------------------------------------------------------
//在X,Y处显示一个16*16的汉字
---------------------------------------------------------------------------------*/
void Show_HZ_LCD ( unsigned char xPos, unsigned char yPos,unsigned char sData )
{
bit F;
unsigned int nTmp;
unsigned char j,x,y;
x = xPos;
y = yPos;
nTmp = sData * 32;
for ( j = 0;j < 32;j+=2 )
{
Set_xyPos_LCD(x,y);
F = 0;
if ( x > 60 )
F = 1;
LCD_Write_Data(HanZi[nTmp + j],F);
x++;
}
y++;
x = xPos;
for ( j = 1;j < 32;j+=2 )
{
Set_xyPos_LCD(x,y);
F = 0;
if ( x > 60 )
F = 1;
LCD_Write_Data(HanZi[nTmp + j],F);
x++;
}
}
/*-------------------------------------------------------------------------------------
预先定义内容表为LCD_Show_Tab[]
汉字表为HanZi[]
大西文表为Large_DianZen[]
与90H的分界碰到90H则是汉字,否则是西文
--------------------------------------------------------------------------------------*/
void Print_LCD ( unsigned char xPos, unsigned char yPos,int nSentenceID )
{
unsigned char i,j=0;
unsigned char Temp; //存放要显示的数据
for(i=0;i<16;i++)
{
Temp=LCD_Show_Tab[nSentenceID*16+i]; //128 16个西文
if(Temp==0x90) //汉字
{
i++;
Temp=LCD_Show_Tab[nSentenceID*16+i];
Show_HZ_LCD(xPos+j,yPos,Temp); //write 1个汉字子程序
j+=16;
}
else //西文
{
Temp= LCD_Show_Tab[nSentenceID*16+i];
Show_XW_LCD(xPos+j,yPos,Temp); //write 1个西文子程序
j+=8;
}
}
}
/*-----------------------------------------------
LCD初始化子程序:
------------------------------------------------*/
void LCD_Init( void )
{
LCD_ENA1 = 0;
LCD_ENA2 = 0;
// LCD_Write_Set( 0x00,0 );
LCD_Write_Set( 0xE2,0 );
// LCD_Write_Set( 0xAE,0 );
LCD_Write_Set( 0xC0,0 );
LCD_Write_Set( 0xB8,0 );
LCD_Write_Set( 0xA0,0 );
LCD_Write_Set( 0xA4,0 );
LCD_Write_Set( 0xA9,0 );
LCD_Write_Set( 0xEE,0 );
LCD_Write_Set( 0xE2,1);
// LCD_Write_Set( 0xAE,1 );
LCD_Write_Set( 0xC0,1 );
LCD_Write_Set( 0xB8,1 );
LCD_Write_Set( 0xA0,1 );
LCD_Write_Set( 0xA4,1 );
LCD_Write_Set( 0xA9,1 );
LCD_Write_Set( 0xEE,1 );
LCD_Write_Set( 0xAF,0 );
LCD_Write_Set( 0xAF,1 );
Delay_xMs( 10 );
}
/*----------------------------------------------
主程序
功能:循环显示"欢迎使用单片机开发板祝你早日
成为单片机高手沈氏工作室贺"
------------------------------------------------*/
void main()
{
unsigned char i;
LCD_Init();
Clear_H_LCD( 0 ); //清除第一行
Clear_H_LCD( 1 ); //清除第二行
while(1)
{
for( i = 0;i < 5 ;i+=2 )
{
Print_LCD ( 0,0,i );//在第一行上显示汉字
Print_LCD ( 0,2,i+1 );//在第二行上显示汉字
Delay_xMs(1000); //延时一段时间
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -