📄 1135603514.c
字号:
#include <msp430x14x.h>
#define P2_0_RS 0x01
#define P2_1_RW 0x02
#define P2_2_EN 0x04
#define P2_3_CS1 0x08
#define P2_3_CS2 0x40
#define P2_3_RST 0x80
#define P5_0_DB0 0x01
#define P5_1_DB1 0x02
#define P5_2_DB2 0x04
#define P5_3_DB3 0x08
#define P5_4_DB4 0x10
#define P5_5_DB5 0x20
#define P5_6_DB6 0x40
#define P5_7_DB7 0x80
void delay(uint v)
{
while(v>0)
{
v--;
}
}
void port_ini( void )
{
P5DIR = 0xFF;
P5OUT = 0x00;
P2DIR = 0xFF;
P2OUT = P2_3_CS1 | P2_3_CS2 | P2_3_RST;
P2OUT &=~P2_3_RST;
_NOP();
_NOP();
P2OUT |= P2_2_EN;
_NOP();
_NOP();
P2OUT &=~P2_2_EN;
_NOP();
_NOP();
P2OUT |= P2_3_RST;
_NOP();
_NOP();
delay(400);
}
void write_command( uchar nByte )
{
P5DIR = 0xFF;
P2OUT |= P2_3_CS1+P2_3_CS2;
P2OUT &=~(P2_0_RS+P2_1_RW);
P5OUT = nByte;
P2OUT |= P2_2_EN;
delay(10);
P2OUT &=~P2_2_EN;
delay(400);
}
void write_char( uchar nByte, uchar CS1, uchar CS2 )
{
P5DIR = 0xFF;
if(CS1) P2OUT |= P2_3_CS1;
else P2OUT &=~P2_3_CS1;
if(CS2) P2OUT |= P2_3_CS2;
else P2OUT &=~P2_3_CS2;
P2OUT |= P2_0_RS; //H,显示数据。L,写指令
P2OUT &=~P2_1_RW; //H,读数据。L,写数据
P5OUT = nByte;
P2OUT |= P2_2_EN; //下降沿锁存数据。结合RW为L时,数据写到数据总线
delay(3);
P2OUT &=~P2_2_EN;
}
void clear_lcd( void )
{
uchar i,j;
for(i=0;i<8;i++)
{
write_command(i|0xB8);
write_command(0x40);
for(j=0;j<128;j++)
{
if(j<=63) write_char(0,1,0);
else write_char(0,0,1);
_NOP();
}
}
}
void display_hz( uchar *chr, uchar nRow, uchar nCol )
{
uchar i,tmpCol;
write_command(0xB8|nRow);
tmpCol=nCol;
for(i=0;i<16;i++)
{
if(tmpCol<=63)
{
write_command(0x40|tmpCol);
write_char(chr[i],1,0);
}
else
{
write_command(0x40|(tmpCol-64));
write_char(chr[i],0,1);
}
tmpCol++;
}
write_command(0xB8|nRow+1);
tmpCol=nCol;
for(i=0;i<16;i++)
{
if(tmpCol<=63)
{
write_command(0x40|tmpCol);
write_char(chr[i+16],1,0);
}
else
{
write_command(0x40|(tmpCol-64));
write_char(chr[i+16],0,1);
}
tmpCol++;
}
}
void display_8_16_icon( uchar *chr, uchar nRow, uchar nCol )
{
uchar i,tmpCol;
write_command(0xB8|nRow);
tmpCol=nCol;
for(i=0;i<8;i++)
{
if(tmpCol<=63)
{
write_command(0x40|tmpCol);
write_char(chr[i],1,0);
}
else
{
write_command(0x40|(tmpCol-64));
write_char(chr[i],0,1);
}
tmpCol++;
}
write_command(0xB8|nRow+1);
tmpCol=nCol;
for(i=0;i<8;i++)
{
if(tmpCol<=63)
{
write_command(0x40|tmpCol);
write_char(chr[i+8],1,0);
}
else
{
write_command(0x40|(tmpCol-64));
write_char(chr[i+8],0,1);
}
tmpCol++;
}
}
void display_char( uchar *chr, uchar nRow, uchar nCol )
{
uchar i,tmpCol;
write_command(0xB8|nRow);
tmpCol=nCol;
for(i=0;i<5;i++)
{
if(tmpCol<=63)
{
write_command(0x40|tmpCol);
write_char(chr[i],1,0);
}
else
{
write_command(0x40|(tmpCol-64));
write_char(chr[i],0,1);
}
tmpCol++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -