📄 main.c
字号:
#include <AT89X52.H>
#include"lcd_header.h"
#define Disp_On 0x3f
#define Disp_Off 0x3e
#define Col_Add 0x40///////Y地址
#define Page_Add 0xb8////////x地址
#define Start_Line 0xc0//启始行
sbit CSZ=P0^4; //Master chip enable ---左半部分CS2
sbit CSY=P0^3; //Slave chip enable ---右半部分CS1
sbit Enable=P0^2; //6800 mode Enable single ---据说是下降沿有效
sbit RS=P0^0; //Data or Instrument Select ---
sbit RW=P0^1; //Write or Read ---读写选择位
sbit Lcd_Rst=P0^5; //Lcm reset ---LCD复位
#define Lcd_Bus P2 //MCU P1<------> LCM
/*------------------延时子程序-----------------------------*/
void delay(unsigned int t)
{
unsigned int i,j;
for( i = 0 ; i < t ; i ++ )
for( j = 0 ; j < 10 ; j ++ ) ;
}
/*------------------写命令到LCD------------------------------*/
void write_com( unsigned char cmdcode )
{
RS = 0 ;
RW = 0 ;
//tran164(cmdcode);//
Lcd_Bus = cmdcode ;
delay ( 0 ) ;
Enable = 1 ;
delay ( 0 ) ;
Enable = 0 ;
}
/*-------------------写数据到LCD----------------------------*/
void write_data ( unsigned char Dispdata )
{
RS = 1 ;
RW = 0 ;
//tran164(Dispdata);//
Lcd_Bus = Dispdata ;
delay ( 0 ) ;
Enable = 1 ;
delay ( 0 ) ;
Enable = 0 ;
}
/*------------------清除内存---------------*/
void Clr_Scr ( )
{
unsigned char j , k ;
CSZ= 1 ;
CSY = 1 ;
write_com ( Page_Add + 0 ) ;
write_com ( Col_Add + 0 ) ;
for( k = 0 ; k < 8 ; k ++ )
{
write_com( Page_Add + k ) ;
for ( j = 0 ; j < 64 ; j++ )
{
write_data( 0x00 ) ;
}
}
}
/*---------------------指定位置显示汉字16*16-----------------------*/
void hz_disp16( unsigned char pag , unsigned char col, unsigned char code *hzk )
{
unsigned char j , i ;
for(j=0;j<2;j++)
{
write_com(Page_Add+pag+j);
write_com(Col_Add+col);
for(i=0;i<16;i++)
{
write_data(hzk[16*j+i]);
}
}
}
void init_lcd( void )
{
Lcd_Rst = 0 ; //复位LCD
delay ( 100 ) ;
Lcd_Rst = 1 ;
delay ( 100 ) ;
CSZ = 1 ;
CSY = 1 ;
delay ( 100 ) ;
write_com ( Disp_Off ) ;
write_com ( Page_Add ) ;
write_com ( Start_Line );
write_com ( Col_Add ) ;
write_com ( Disp_On );
}
void writecuit( unsigned char pag,unsigned char col,unsigned char code *dat , unsigned char pagc,unsigned char colc)
// 显示起始页 显示起始列 显示图案数据 图案所占页 图案所占列
{
unsigned char i,j;
for(j = 0 ; j < pagc ; j++ )
{
CSZ = 1 ;
CSY = 0 ;
write_com ( Page_Add + pag + j ) ;
write_com ( Col_Add + col ) ;
for( i = 0 ; i < colc ; i ++ )
{
if ( ( i+col ) == 64 )
{
CSZ = 0 ;
CSY = 1 ;
write_com ( Col_Add ) ;
write_com ( Page_Add + pag + j ) ;
}
else if ((i+col)==127)
{
CSZ = 1 ;
CSY = 0 ;
write_com ( Col_Add ) ;
write_com ( Page_Add + pag + j ) ;
}
write_data ( dat [colc * j + i ] ) ;
}
}
}
void main (void )
{
init_lcd( );
Clr_Scr();
while(1)
{
writecuit(0,0,yan,2,16);
writecuit(4,46,yanxinwei,2,34);
writecuit(0,0,Bmp005,8,128);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -