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

PIC单片机12864编程程序

点击数:7782 次   录入时间:03-04 11:47:04   整理:http://www.55dianzi.com   PIC单片机
       0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 
       0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 
       0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 
       0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 
       0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 
       0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 
       0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 
       0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF 
         }; 

//*************delay_ms******************************** 
void delay_10us(unsigned char x)  
{  
  while(x--); 
}  
void delay_ms(unsigned char cnt) 

    unsigned char i; 
do { 
  i = 4; 
  do { 
   delay_10us(39); 
  } while(--i); 
} while(--cnt); 


//***********检查是否LCD忙碌的子程序********************** 
void check_busy(void) 
{  
  TRISD=0xff;//在此处设为输入。 
  PORTD=0xff; 
  RS=0; 
  RW=1; 
  while (1) 
   { 
    NOP();NOP();NOP(); 
    E =1; 
    NOP();NOP();NOP(); 
    if (RD7==0) break; 
    NOP();NOP();NOP(); 
    E =0; 
   } 
  E =0;      
  TRISD=0X00;//还原为输出。 
  RC7=!RC7; 
  //delay_ms(50); 

//**********数据写命令*************************** 
void send_com(unsigned char command ) 

  check_busy(); 
  RS=0; 
  RW=0; 
  PORTD=command; 
  E =1; 
  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++); 
             
          } 

上一页  [1] [2] [3]  下一页


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

上一篇:485通讯PIC源程序