⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ht1621.c

📁 HT1621的液晶显示驱动函数
💻 C
字号:
#include"msp430x14x.h"
#include"sysctrl.h"


#define uchar unsigned char
#define uint  unsigned int

#define    CS1_1   P4OUT|=BIT7
#define    CS1_0   P4OUT&=~BIT7
#define    CS2_1   P4OUT|=BIT6
#define    CS2_0   P4OUT&=~BIT6
#define    DA_1   P5OUT|=BIT0
#define    DA_0   P5OUT&=~BIT0
#define    WR_1   P5OUT|=BIT1
#define    WR_0   P5OUT&=~BIT1

#define BIAS 0x52	
#define SYSEN 0x02
#define LCDON 0x06
#define LCDOFF 0x04

 
void delay(uint time)
{
uint a1=0;
for(a1=0;a1<time;a1++)
  {
  _NOP(); _NOP(); _NOP();_NOP(); _NOP();_NOP(); _NOP();_NOP();
  }

}


/*****************************************
cs  0    cs1
cs  1    cs2
data    
adress
写数据函数
******************************************/
void write_bite(uchar cs,uchar address,uchar data)
{
uchar i1=0;
uchar i2=0;

P5DIR|=BIT0;
P5DIR|=BIT1;
P4DIR|=BIT6;
P4DIR|=BIT7;
if(cs==0){
         if(address==0) data=(data|(yejing1&0x01));
         if(address==0x02) data=(data|(yejing1&0x01));
         if(address==0x04) data=(data|(yejing1&0x01));
         }

CS1_1;
CS2_1;
WR_1;
delay(10);
if(cs==0)  CS1_0;
   else    CS2_0;
i2=0xa0;          //命令代码 101
   delay(10);
for(i1=0;i1<3;i1++)
{

if((i2&0X80)==0X80) DA_1;
   else             DA_0;
delay(3); 
WR_0;
i2=i2<<1;
delay(3);
WR_1;
}


i2=address;       //  a5---a0
i2=i2<<2;   
for(i1=0;i1<6;i1++)
{

if((i2&0X80)==0X80) DA_1;
   else             DA_0;
delay(3); 
WR_0;
i2=i2<<1;
delay(3); 
WR_1;
}

i2=data;       //  a5---a0
 
for(i1=0;i1<8;i1++)
{

if((i2&0X80)==0X80) DA_1;
   else             DA_0;
delay(3); 
WR_0;
i2=i2<<1;
delay(3);
WR_1;
}

CS1_1;
CS2_1;

P5DIR&=~BIT0;
P5DIR&=~BIT1;
P4DIR&=~BIT6;
P4DIR&=~BIT7;


}


void write_com(uchar cs,uchar data)
{
uchar i1=0;
uchar i2=0;

P5DIR|=BIT0;
P5DIR|=BIT1;
P4DIR|=BIT6;
P4DIR|=BIT7;


CS1_1;
CS2_1;
WR_1;
delay(10);
if(cs==0)  CS1_0;
   else    CS2_0;
delay(3);  
i2=0x80;          //命令代码 1000
   
for(i1=0;i1<4;i1++)
{

if((i2&0X80)==0X80) DA_1;
  else             DA_0;
delay(3);
WR_0;
i2=i2<<1;
delay(3);
WR_1;
}



i2=data;       //  a5---a0
 
for(i1=0;i1<8;i1++)
{

if((i2&0X80)==0X80) DA_1;
   else             DA_0;
delay(3);
WR_0;
i2=i2<<1;
delay(3); 
WR_1;
}


CS1_1;
CS2_1;

P5DIR&=~BIT0;
P5DIR&=~BIT1;
P4DIR&=~BIT6;
P4DIR&=~BIT7;
/*CS2_0;
CS1_0;
WR_0;
DA_0;*/
}


void init_1621(void)    //1621初始化
{
/*
//write_com(0,LCDOFF);//打开LCD偏压发生器
write_com(1,LCDOFF);//打开LCD偏压发生器

//write_com(0,BIAS);//设置偏压和占空比
write_com(1,BIAS);//设置偏压和占空比
write_com(1,0x18);
//write_com(0,SYSEN);
//打开系统振荡器
write_com(1,SYSEN);
//打开系统振荡器

//write_com(0,LCDON);//打开LCD偏压发生器
write_com(1,LCDON);//打开LCD偏压发生器
*/


//write_com(1,0x04);//3
write_com(1,0x52);//3
//write_com(1,0x30);//2

write_com(1,0x02);//1

write_com(1,0x06);//4

//write_com(0,0x04);//3
write_com(0,0x52);//3
//write_com(0,0x30);//2

write_com(0,0x02);//1

write_com(0,0x06);//4

}


void clear_1621()
{ 
 uchar i=0;
 for(i=0;i<14;i++)
  {
  write_bite(1,i*2,0X00);
   write_bite(0,i*2,0X00);
  
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -