📄 lcd12864.c
字号:
#include <msp430x14x.h>
#define comm 0
#define dat 1
/*P1OUT第一位为cs std sclk*/
void init_lcd (); //初始化LCD
void clrram (void); //清DDRAM
void wr_lcd (unsigned char dat_comm,unsigned char content); //写LCD
void delay (int us);
void delay1 (int ms);
unsigned char tab3[16];
/*------------------初始化-----------------*/
void init_lcd (void)
{
wr_lcd (comm,0x30);
delay (10);
wr_lcd (comm,0x06);
delay (10);
wr_lcd (comm,0x01);
delay1 (10);
wr_lcd (comm,0x0E);
delay (10);
wr_lcd (comm,0x0C);
}
/*--------------清DDRAM------------------*/
void clrram (void)
{
wr_lcd (comm,0x30);
delay (20);
wr_lcd (comm,0x01);
delay (20);
}
/*---------------------------------------*/
void wr_lcd (unsigned char dat_comm,unsigned char content)
{
unsigned char a,i;
a=content;
P1OUT|=0X01; //cs变高
P1OUT|=0X04; //sclk变高
P1OUT|=0X02; //sid变高
for(i=0;i<5;i++)
{
P1OUT&=0XFB;
P1OUT|=0X04; //sclk变高
}
P1OUT &= 0XFD; //sid变低
P1OUT &= 0XFB; //sclk变低
P1OUT |= 0X04; //sclk变高
if(dat_comm)
P1OUT |= 0X02; //data
else
P1OUT &= 0XFD; //command
P1OUT &= 0XFB; //sclk变低
P1OUT |= 0X04; //sclk变高
P1OUT &= 0XFD; //sid变低
P1OUT &= 0XFB; //sclk变低
P1OUT |= 0X04; //sclk变高
for (i=8; i>4; i--)
{
unsigned char mask = 1 << (i-1);
if (a & mask)
P1OUT |= 0x02;
else
P1OUT &= 0xFD;
P1OUT &= 0XFB;
P1OUT |= 0X04;
}
P1OUT &= 0XFD;
for(i=0;i<4;i++)
{
P1OUT &= 0XFB;
P1OUT |= 0X04;
}
for (i=4; i>0; i--)
{
unsigned char mask = 1 << (i-1);
if (a & mask)
P1OUT |= 0x02;
else
P1OUT &= 0xFD;
P1OUT &= 0XFB;
P1OUT |= 0X04;
}
P1OUT &= 0XFD;
for(i=0;i<4;i++)
{
P1OUT &= 0XFB;
P1OUT |= 0X04;
}
P1OUT &=0xfe; //cs变低
}
/*-----------------------------------*/
void delay (int us) //delay 10 us
{
int j;
for(j=0;j<us;j++);
}
void delay1 (int ms) //delay 1 ms
{
int i,j;
for(i=0;i<ms;i++)
for(j=0;j<200;j++);
}
/*---------------显示汉字或字符----------------*/
void chn_disp (unsigned char *chn)
{
unsigned char i,j;
wr_lcd (comm,0x80);
for (j=0;j<4;j++)
{
for (i=0;i<16;i++)
wr_lcd (dat,chn[j*16+i]);
}
}
void add()
{
unsigned char i;
for(i=0;i<16;i++)
{
tab3[i]='m';
}
}
unsigned char tab1[]={
"aaaaaaaaaaaaaaaa"
"1111111111111111"
"丫丫爱猫猫一辈子"
"丫丫爱猫猫一辈子"};
unsigned char tab2[]={
"丫丫爱猫猫一辈子"
"丫丫爱猫猫一辈子"
"丫丫爱猫猫一辈子"
"丫丫爱猫猫一辈子"};
/************************************/
void main (void)
{
WDTCTL = WDTPW + WDTHOLD;
P1DIR=0Xff;
delay1(2000);
init_lcd ();
void add();
while(1)
{
chn_disp (tab2);
delay1(2000);
chn_disp (tab3);
delay1(2000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -