英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3824|回复: 2

12232F液晶驱动程序

[复制链接]
发表于 2012-8-21 14:13:52 | 显示全部楼层 |阅读模式
#include<pic.h>//4MHZ
#define CS  RC4
#define SCK RC3
#define SDI RC2
#define LCD_COM  0xf8
#define LCD_DATA 0xfa
#define nop() asm("nop")
const unsigned char HYSY[8]={  0xbb,0xb6,//欢
                               0xd3,0xad,//迎
                               0xca,0xb9,//使
                               0xd3,0xc3,//用
                                         };
//***************12232写函数  LCD_COMM指令/ LCD_DATA 数据, 值*********************//  
void lcd_comm(unsigned flag,unsigned data)
  {
   unsigned char count;
   CS=1;  
   for(count=8;count>0;count--)
   {
      if(flag&0x80)
        SDI=1;
       else
        SDI=0;
   SCK=1;
   nop();
   nop();
   SCK=0;
   flag=flag<<1;
       }
    for(count=4;count>0;count--)
      {  if(data&0x80)
           SDI=1;
          else
           SDI=0;
           SCK=1;
           nop();
           nop();
           SCK=0;
           data=data<<1;
           }
         
      for(count=4;count>0;count--)
        { SDI=0;  
          SCK=1;
          nop();
          nop();
          SCK=0;
          }
      for(count=4;count>0;count--)
         {
          if(data&0x80)
           SDI=1;
          else
           SDI=0;
           SCK=1;
           nop();
           nop();
           SCK=0;
           data=data<<1;
           }
         
         for(count=4;count>0;count--)
        { SDI=0;
          SCK=1;
          nop();
          nop();
          SCK=0;
          }
      CS=0;
    }
void lcd_delay(void)
{
  unsigned int i=240;   
  while(--i){;}
    }
/********************12232初始化*******************************/
void lcd_init(void)
{
  PORTC=0X00;
  TRISC=0XE3;
  lcd_comm(LCD_COM,0x30);
  lcd_delay();
  lcd_comm(LCD_COM,0x0c);
  lcd_delay();
  lcd_comm(LCD_COM,0x01);
  lcd_delay();
  lcd_comm(LCD_COM,0x02);
  lcd_delay();
  lcd_comm(LCD_COM,0x80);
  lcd_delay();
   }
void hysy(void)
{   
     unsigned char i;
     const unsigned char *romp=HYSY;
     for(i=0x82;i<0x86;i++)
   {
        lcd_comm(LCD_COM,i);
        lcd_delay();
        lcd_comm(LCD_DATA,*romp++);
        lcd_delay();
        lcd_comm(LCD_DATA,*romp++);
        lcd_delay();
       }
   }
void main(void)
{
   lcd_delay();
   lcd_delay();
   lcd_delay(); //液晶上电延时
   lcd_init();
   hysy();
   while(1);
        }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-3-28 19:55 , Processed in 0.056046 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表