lcd12864.txt
来自「实现lcd12864字符串和数字显示 包含lcd的初始化和清屏等功能」· 文本 代码 · 共 578 行 · 第 1/2 页
TXT
578 行
CS1 = CS2 = 0 ;
CS1 = 1 ;
LCD_C_D( 1 , 0x3F ) ;
CS1 = 0 ;
CS2 = 1 ;
LCD_C_D( 1 , 0x3F ) ;
CS2 = 0 ;
/*0行开始显示*/
CS1 = 1 ;
LCD_busy() ;
LCD_C_D( 1 , 0xC0 ) ;
CS1 = 0 ;
CS2 = 1 ;
LCD_busy() ;
LCD_C_D( 1 , 0xC0 ) ;
CS2 = 0 ;
CLRLCD( 0 ) ;
}
//显示字母
void dischar( uchar x , uchar y , uchar key , uchar fb )
{
uchar lcd_data , i ;
linex = x ;
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( key - 0x37 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( key - 0x37 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
}
//显示数字
void disnum ( uchar x , uchar y , int numb , uchar fb )
{
uchar lcd_data , i ;
linex = x ;
if ( numb / 10000 != 0 )
{
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( numb / 10000 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( numb / 10000 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( ( numb % 10000 ) / 1000 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( ( numb % 10000 ) / 1000 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( ( ( numb % 10000 ) % 1000 ) / 100 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( ( ( numb % 10000 ) % 1000 ) / 100 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( ( ( ( numb % 10000 ) % 1000 ) % 100 ) / 10 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( ( ( ( numb % 10000 ) % 1000 ) % 100 ) / 10 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( ( ( ( numb % 10000 ) % 1000 ) % 100 ) % 10 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( ( ( ( numb % 10000 ) % 1000 ) % 100 ) % 10 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
}
else if ( numb / 1000 != 0 )
{
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( numb / 1000 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( numb / 1000 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( ( numb % 1000 ) / 100 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( ( numb % 1000 ) / 100 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( ( ( numb % 1000 ) % 100 ) / 10 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( ( ( numb % 1000 ) % 100 ) / 10 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( ( ( numb % 1000 ) % 100 ) % 10 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( ( ( numb % 1000 ) % 100 ) % 10 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
}
else if ( ( numb / 100 ) != 0 )
{
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( numb / 100 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( numb / 100 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( ( numb % 100 ) / 10 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( ( numb % 100 ) / 10 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( ( numb % 100 ) % 10 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( ( ( ( numb % 10000 ) % 1000 ) % 100 ) % 10 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
}
else if (( numb / 10 ) != 0 )
{
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( numb/ 10 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( numb / 10 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + ( numb % 10 ) * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + ( numb % 10 ) * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
}
else
{
for ( i = 0 ; i < 8; i ++ )
{
lcd_data = num [ i + numb * 16 ] ;
if (fb)
lcd_data = 255 - lcd_data ;
write_lcd( linex * 8 + i , y , lcd_data ) ;
lcd_data = num [ i + numb * 16 + 8 ] ;
if ( fb )
lcd_data = 255 - lcd_data ;
write_lcd ( linex * 8 + i , y + 1 , lcd_data ) ;
}
linex ++ ;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?