📄 display.c
字号:
#include "function.h"
#include "lcd.h"
//unsigned char x ;
unsigned char y ;
unsigned char *hz ;
unsigned char xpos;
unsigned char ypos;
unsigned char lcddata ;
/*********初始化************/
void lcd_init( void )
{
Send_cmd( 0x3e,0 ); //关显示
Send_cmd( 0x3e,1 );
Send_cmd( 0xc0,0 ); //起始行
Send_cmd( 0xc0,1 );
Send_cmd( 0x3f,0 ); //开显示
Send_cmd( 0x3f,1 );
lcd_clr( ); //清屏
}
/*******************用于显示汉字或字符的函数*************************************************/
void write_data(unsigned char xpos,unsigned char ypos,unsigned char lcddata)
{ if(xpos<128)
{
if( ( xpos & 0x40 )== 0 )
{
Send_cmd( 0xb8 | ypos ,0);
Send_cmd( 0x40 | xpos, 0);
Send_data( lcddata,0 );
}
else
{
Send_cmd( 0xb8 | ypos ,1 );
Send_cmd( 0x40 | xpos ,1 );
Send_data( lcddata , 1 );
}
}
}
/*************显示一个字符************/
/*void lcd_putchar8x8( unsigned char x,unsigned char y,unsigned char ch )
{
unsigned char i;
for( i = 0; i < 8; i ++ )
{
write_data( x+i, y, zifu[(ch - 0x20)*8 + i] );
// write_data( x+i, y + 1,zifu[(ch - 0x20)*8 + 8 + i] );
}
}
*/
/************** 显示16*16汉字*****************/
// x 显示列 y 显示行
void hz_disp( unsigned char x, unsigned char y, unsigned char *hz ) //X是判断字从行的那个位置显示.
{ //
unsigned char i;
for( i = 0; i < 16; i++ )
{
write_data( x + i, y, hz[ i] );
write_data( x + i, y + 1, hz[ 16 + i] );
}
}
/************** 显示32*32汉字*****************/
void hz_disp32x32( unsigned char x, unsigned char y, unsigned char *hz )
{
unsigned char i;
for( i = 0; i < 30; i++ )
{
write_data( x + i, y, hz[ i] );
write_data( x + i, y + 1, hz[ 28 + i] );
write_data( x + i, y+2, hz[57+i] );
write_data( x + i, y +3, hz[86 + i] );
}
}
void hz_disp128x32( unsigned char x, unsigned char y, unsigned char *hz )
{
unsigned char i;
for( i = 0; i < 128; i++ )
{
write_data( x + i, y, hz[ i] );
write_data( x + i, y + 1, hz[ 128 + i] );
write_data( x + i, y + 2, hz[ 256 + i] );
write_data( x + i, y + 3, hz[ 384 + i] );
}
}
/*
/**************画点 x = 0 -- 128 y = 0 -- 64 *************************
void set_point( unsigned char x, unsigned char y )
{
unsigned char d = 0;
unsigned char temp =0;
unsigned char page1 = 0;
temp = y % 8;
if( x < 64 )
{
write_cmd_L( 0xB8 + (y/8) );
write_cmd_L( 0x40 + x );
d = Rddata();
write_cmd_L( 0xB8 + (y/8) );
write_cmd_L( 0x40 + x );
d = Rddata();
write_cmd_L( 0xB8 + (y/8) );
write_cmd_L( 0x40 + x );
page1 = d | (1<<temp);
write_dat_L( page1 );
}
else if( x <128 )
{
write_cmd_R( 0xB8 + (y/8) );
write_cmd_R( 0x40 + x -64 );
d = Rddata();
write_cmd_R( 0xB8 + (y/8) );
write_cmd_R( 0x40 + x -64 );
d = Rddata();
write_cmd_R( 0xB8 + (y/8) );
write_cmd_R( 0x40 + x - 64 );
page1 = d |(1<<temp);
write_dat_R( page1 );
}
else;
} */
/************清屏***********/
void lcd_clr( void )
{
unsigned char i,j,page;
for( i = 0; i < 8; i++ )
{
page = i;
page |= 0xb8;
Send_cmd( page,0 );
Send_cmd( 0x40,0 );
for( j = 0; j < 64; j++ )
Send_data( 0 ,0 );
Send_data( page,1 );
Send_data( 0x40,1 );
for( j = 0; j < 64; j++ )
Send_data( 0,1 );
for( i = 0; i < 8; i++ )
{
page = i;
page |= 0xb8;
Send_cmd( page,1 );
Send_cmd( 0x40,1 );
for( j = 0; j < 64; j++ )
Send_data( 0 ,1 );
Send_data( page,0 );
Send_data( 0x40,0 );
for( j = 0; j < 64; j++ )
Send_data( 0,0 );
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -