您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机12864 LCD图形显示程序 正文
12864 LCD图形显示程序

12864 LCD图形显示程序

点击数:7831 次   录入时间:03-04 11:46:23   整理:http://www.55dianzi.com   PIC单片机
NOP(); 
NOP(); 
E =0; 

//**********LCD初始化时的送命令****************** 
void send_com_init(unsigned char command_init ) 

RS=0; 
RW=0; 
PORTD=command_init; 
E =1; 
NOP(); 
NOP(); 
E =0; 

//**********写数据*************************** 
void send_data(unsigned char data ) 

check_busy(); 
RS=1; 
RW=0; 
PORTD=data; 
E =1; 
NOP(); 
NOP(); 
E =0; 

//***********读数据**************************** 
unsigned char read_data(void) 

unsigned char read_data; 
check_busy(); 
TRISD=0XFF; 
RS=1; 
RW=1; 
E =1; 
NOP(); 
read_data=PORTD; 
E =0; 
TRISD=0x00;//还原为输出。 
return (read_data); 

//***********清屏***************************** 
void clear_LCD(void) 

send_com(0x01); 
send_com(0x34); 
send_com(0x30); 

//**********LCD初始化************************ 
void initial_LCD(void) 

PSB=1; 
RST=0;//Reset. 
NOP(); 
NOP(); 
RST=1; 
NOP(); 
delay_10us(10); 
send_com_init(0x30);//30H--基本指令操作 
delay_10us(4); 
send_com_init(0x0c);//开显示,关光标,不闪烁。 
delay_10us(10); 
send_com_init(0x01);//清除显示 
delay_ms(10); 
send_com_init(0x06);//指定在资料写入或读取时,光标的移动方向,DDRAM的地址计数器(AC)加1。 


//**********写准备*************************** 
void WR_ZB(void) 

send_com(0x34); 
send_com(LCD_Y); 
send_com(LCD_X); 
send_com(0x30); 

//*********取数送显示****************************** 
void QUSHU(const unsigned char *shu) 

for (;COUNT!=0;COUNT--) 

send_data(*shu++); 
delay_ms(80); 


//*********Flash****************************** 
void flash(void) 

send_com(0x08);//关闭显示 
delay_ms(250); 
send_com(0x0c);//开显示,关光标,不闪烁。 
delay_ms(250); 
send_com(0x08);//关闭显示 
delay_ms(250); 
send_com(0x0c);//开显示,关光标,不闪烁。 
delay_ms(250); 
send_com(0x08);//关闭显示 
delay_ms(250); 

//**********显示图形子程序********************* 
void PHO_DISP(const unsigned char *s) 

COUNT3=0X02; 
LCD_X=0X80; 
for (;COUNT3!=0;COUNT3--) 

LCD_Y=0X80; 
COUNT2=0X20;//32 
for (;COUNT2!=0;COUNT2--) 

COUNT1=0X10;//16 
WR_ZB(); 
for (;COUNT1!=0;COUNT1--) 

send_data(*s++); 


LCD_Y+=1; 

LCD_X=0X88; 

send_com(0x36); 
send_com(0x30); 

//******************显示点阵子程序************ 
void LAT_DISP(void) 

COUNT3=0X02; 
LCD_X=0X80; 
for (;COUNT3!=0;COUNT--) 

LCD_Y=0X80; 
F0=0; 
COUNT2=0X20; 
for (;COUNT2!=0;COUNT--) 

COUNT1=0X10; 
WR_ZB(); 
if (F0!=0) 

LCD_DATA=LCD_DATA2; 

else LCD_DATA=LCD_DATA1; 
for (;COUNT1!=0;COUNT1--) 

send_data(LCD_DATA); 

LCD_Y+=1; 
F0=!F0; 

LCD_X=0X88; 


send_com(0x36); 
send_com(0x30); 


void main(void) 

TRISC=0X00; 
TRISD=0X00; 
PORTD=0X00; 
PORTC=0X00; 
initial_LCD(); 
while (1) 

clear_LCD(); 
PHO_DISP(TU_TAB1);//显示图形 
while (1); 

}  


上一页  [1] [2] 


本文关键字:程序  PIC单片机单片机-工控设备 - PIC单片机