液晶屏为LM6065,控制芯片为RA8802。最基本的显示程序,显示一行字:"型号:LM6065 芯片:RA8802 " 使用P2端口作为数据口,P0的5个脚作为控制口,需要注意的是,P0端口需要加上拉电阻。 #include <regX52.h>#include <intrins.h>#define uchar unsigned char // 0~255#define uint unsigned int // 0~65535 #define _LED0 P0_0#define _LED1 P0_1#define lcd_bus P2#define _RST P0_2#define _WR P0_3#define _RD P0_4 #define _CS P0_5#define _FS P0_6// 厂家:http://www.topwaydisplay.com 型号:LM6065 芯片:RA8802uchar code logo[]=...{"型号:LM6065 芯片:RA8802 "};//====================================================================// 写命令//====================================================================void display_command_sent(uchar command)...{ _WR = 1; _FS = 0; lcd_bus = command; _CS = 0; _nop_(); _WR = 0; _nop_(); _WR = 1; _nop_(); _CS = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();}//====================================================================// 写数据//====================================================================void display_data_sent(uchar disdata)...{ _WR = 1; _FS = 1; lcd_bus = disdata; _CS = 0; _nop_(); _WR = 0; _nop_(); _WR = 1; _nop_(); _CS = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } //====================================================================// 清屏//====================================================================void LCD_clean(void)...{ uint i,j; display_command_sent(0x60);display_command_sent(0x00); display_command_sent(0x70);display_command_sent(0x00); for(i = 0;i<64; i++) ...{ for(j = 0;j < 30; j++) display_data_sent(0x00); }}void delay_ms(unsigned int m) // 11.0592MHz晶振,1.0us周期...{ unsigned int j; unsigned int i; for(i=0;i<m;i++) for(j=0;j<109;j++);}//=====================================================================// 初始化//=====================================================================void LCD_mode_set(void)...{ _RST = 1; _RST = 0; delay_ms(500); _RST = 1; delay_ms(200); display_command_sent(0x00);display_command_sent(0xcd); //LCD控制寄存器 display_command_sent(0x08);display_command_sent(0x73); //通用寄存器 display_command_sent(0x10);display_command_sent(0xe9); //光标控制寄存器 display_command_sent(0x18);display_command_sent(0x20); //光标大小控制寄存器 display_command_sent(0x20);display_command_sent(0x1d); //工作窗右边界寄存器 display_command_sent(0x28);display_command_sent(0x1d); //显示窗右边界寄存器 display_command_sent(0x30);display_command_sent(0x3f); //工作窗底部边界寄存器 display_command_sent(0x38);display_command_sent(0x3f); //显示窗底部边界寄存器 display_command_sent(0x40);display_command_sent(0x00); //工作窗左边界寄存器 display_command_sent(0x50);display_command_sent(0x00); //工作窗顶部边界寄存器 display_command_sent(0x48);display_command_sent(0x00); //显示窗左边界寄存器 display_command_sent(0x58);display_command_sent(0x00); //显示窗顶部边界寄存器 display_command_sent(0x60);display_command_sent(0x00); //X方向光标寄存器 display_command_sent(0x70);display_command_sent(0x00); //Y方向光标寄存器 display_command_sent(0x80);display_command_sent(0x23); //闪烁时间寄存器 display_command_sent(0x90);display_command_sent(0x3e); //移位时钟控制寄存器 display_command_sent(0xe0);display_command_sent(0x00); //数据模式寄存器 display_command_sent(0xf0);display_command_sent(0xa0); //字体控制寄存器 delay_ms(20);} //========================================================================// 初始化,闪亮LED//========================================================================void initport(void)...{ uchar i; for(i=0; i<20; i++) ...{ _LED0 = ~_LED0; delay_ms(100); } _LED1 = 0; _CS = 1; _RD = 1; _WR = 1; _FS = 1; lcd_bus = 0xff; }//========================================================================// LCD显示LOGO//========================================================================uchar code *txtdata;void LOGO_display(void)...{ uchar i,j,tempdata; txtdata = &logo[0]; display_command_sent(0x60);display_command_sent(0x00); display_command_sent(0x70);display_command_sent(0x00); display_command_sent(0x00);display_command_sent(0xcd); for(j = 0;j < 1; j++) ...{ for(i = 0;i < 30; i++) ...{ tempdata = (*(txtdata+(j*30)+i)); display_data_sent(tempdata); } } }//=====================================================================// 主程序//=====================================================================void main(void)...{ initport( ); LCD_mode_set( ); LCD_clean( ); while(1) ...{ LOGO_display( ); delay_ms(2000); }}