📄 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 + -