|
void lcd_write_hanzi(uchar hanzi_xpos,uchar hanzi_ypos,uchar *hanzi_source_addr);
void lcd_clear(void);
void lcd_fill(void);
void delay(uchar time_nop);
void main(void)
{
lcd_initial();//初始化液晶
lcd_clear(); //液晶清屏
lcd_write_char(0,0,G); //显示"A"
lcd_write_char(1,0,U); //显示"B"
lcd_write_char(2,0,O); //显示"C"
lcd_write_hanzi(2,2,guo); //显示"国"
lcd_write_hanzi(4,2,fang); //显示"防"
lcd_write_hanzi(6,2,ke); //显示"科"
lcd_write_hanzi(8,2,ji); //显示"技"
lcd_write_hanzi(10,2,da); //显示"大"
lcd_write_hanzi(12,2,xue); //显示"学"
while(1){}
}
/*******************************************************************
延时函数
函数原型: void delay(uchar time_nop);
功能: 延时time_nop个nop
********************************************************************/
void delay(uchar time_nop)
{
uchar i;
for(i=0;i
{
_nop_();
}
}
/******************************************************************************
LCD初始化
原型: void lcd_initial(void);
功能: 将LCD进行初始化,设置初始行并开显示
******************************************************************************/
void lcd_initial(void)
{
delay(5);
LCD_L_Command = 0xC0; //设置显示初始行
delay(5);
LCD_R_Command = 0xC0;
delay(5);
LCD_L_Command = 0x3F; //开显示
delay(5);
LCD_R_Command = 0x3F;
delay(5);
}
/******************************************************************************
向LCD中写入一个字节数据函数
原型: void lcd_write_byte(uchar xpos,uchar ypos,uchar byte);
功能: 将一个字节数据byte写入液晶的(xpos,ypos)的位置处
此处将液晶的显示区按照二维坐标进行定义,xpos为横坐标从左到右顺序为0-127,
ypos为纵坐标从上到下顺序为0-7。
******************************************************************************/
void lcd_write_byte(uchar xpos,uchar ypos,uchar *byte)
{
if(xpos <= 63) //坐标位置处在液晶的左半部分
{
delay(5);
LCD_L_Command = xpos + 0x40; //设定写入数据的列地址
delay(5);
LCD_L_Command = ypos + 0xB8; //设定写入数据的行地址
delay(5);
LCD_L_DATA = *byte; //向(xpos,ypos)处写数据
delay(5);
}
else //坐标位置处在液晶的右半部分
{
delay(5);
LCD_R_Command = (xpos - 64) + 0x40; //设定写入数据的列地址
delay(5);
LCD_R_Command = ypos + 0xB8; //设定写入数据的行地址
delay(5);
LCD_R_DATA = *byte; //向(xpos,ypos)处写数据
delay(5);
}
}
/******************************************
|
|