📄 main.c
字号:
/******************************************************************
LCD1602 DEMO
P5.4 RS
P5.5 RW
P5.6 E
P2 D0-D7
*******************************************************************/
#include "msp430x14x.h"
#define E_0 P5OUT &=~BIT6
#define E_1 P5OUT |=BIT6
#define RW_0 P5OUT &=~BIT5
#define RW_1 P5OUT |=BIT5
#define RS_0 P5OUT &=~BIT4
#define RS_1 P5OUT |=BIT4
typedef unsigned char uchar;
//---------------------------------------------
void InitSystemClock(void) // 初始化系统时钟
{
unsigned char i;
WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
BCSCTL1=0x00;//Set 430 clk 开启XT2,DOC的标称频率为最低 且不分频;XT1为低速晶体(32.768K)
BCSCTL2=SELM_2+SELS;//选择MCLK SCLK的时钟源为高速时钟 不分频,均为8M
do
{
IFG1&=~OFIFG;
for(i=0xff;i>0;i--);
}
while ((IFG1&OFIFG)!=0);
// P5DIR=BIT4+BIT5+BIT6;
// P5SEL|=BIT4+BIT5+BIT6;//将MCLK SCLK ACLK分别输出至P5.4 5 6口
}
//----------------------------------------------
void Delay(unsigned int t) // delay 40us
{
for(;t!=0;t--) ;
}
//=============================================
void SendCommandByte(unsigned char ch)
{
P5SEL &=0X00;
P2SEL =0X00;
P5DIR |=0XF0;
P2DIR =0XFF;
RS_0;
RW_0;
P2OUT=ch;
E_1;
Delay(10);
E_0;
Delay(100); //delay 40us
}
//-------------------------------------------------------
void SendDataByte(unsigned char ch)
{
P5SEL &=0X0F;
P2SEL =0X00;
P5DIR |=0XF0;
P2DIR &=0XFF;
RS_1;
RW_0;
P2OUT=ch;
E_1;
Delay(10);
E_0;
Delay(100); //delay 40us
}
//-------------------------------------------------
void InitLcd()
{SendCommandByte(0x30);
SendCommandByte(0x30);
SendCommandByte(0x30);
SendCommandByte(0x38); //??????
SendCommandByte(0x0c); //??????
SendCommandByte(0x01); //??
SendCommandByte(0x06); //??????
}
//=============================================
void DisplayMsg1(uchar *p)
{
unsigned char count;
SendCommandByte(0x80); //??DDRAM??
for(count=0;count<16;count++)
{SendDataByte(*p++);
}
}
//=============================================
void DisplayMsg2(uchar *p)
{
unsigned char count;
SendCommandByte(0xc0); //??DDRAM??
for(count=0;count<16;count++)
{SendDataByte(*p++);
}
}
//=============================================
main()
{
InitSystemClock();
uchar msg1[16]="MSP430F14x16xKFB";
uchar msg2[16]="qq:463136018 ";
InitLcd();
DisplayMsg1(msg1);
DisplayMsg2(msg2);
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -