📄 xs.txt
字号:
#include "MSP430X14X.h"
#define LCD_DIR P5DIR
#define LCD_OUT P5OUT
#define LCD_SID BIT1
#define LCD_CLK BIT0
#define LCD_SID_1 LCD_OUT|=LCD_SID
#define LCD_SID_0 LCD_OUT&=~LCD_SID
#define LCD_CLK_1 LCD_OUT|=LCD_CLK
#define LCD_CLK_0 LCD_OUT&=~LCD_CLK
void LCD_Init(void);
void LCD_Writ_Byte(unsigned char data);
void Write_command(unsigned char data);
void Write_data(unsigned char data);
void Write_string(unsigned char *string);
void LCD_Delay(unsigned char data);
//================================================================
//函数:void LCD_Init(void)
//功能:液晶初始化
//出口参数:无
//入口参数:无
//================================================================
void LCD_Init(void)
{
LCD_DIR|=LCD_SID+LCD_CLK; //定义为输出口
Write_command(0x30); //设置为基本指令集
Write_command(0x04); //
Write_command(0x0c); //打开显示
Write_command(0x01); //清屏
}
//================================================================
//函数:void LCD_Writ_Byte(unsigned char data)
//功能:向液晶写一个字节
//出口参数:无
//入口参数:无
//================================================================
void LCD_Writ_Byte(unsigned char data)
{
unsigned char i;
for(i=0;i<8;i++)
{
LCD_CLK_0; //clk置0
LCD_Delay(1);
if(data&0x80)
LCD_SID_1;
else
LCD_SID_0;
LCD_Delay(1); //延时
LCD_CLK_1; //clk置1
data<<=1; //数据位左移
LCD_Delay(1); //延时
}
}
//================================================================
//函数:void LCD_Command(unsigned char data)
//功能:写指令
//出口参数:无
//入口参数:无
//================================================================
void Write_command(unsigned char data)
{
LCD_Writ_Byte(0xf8);
LCD_Writ_Byte(data&0xf0);
LCD_Writ_Byte((data<<4)&0xf0);
LCD_Delay(15); //延时
}
//================================================================
//函数:void LCD_Command(unsigned char data)
//功能:写数据
//出口参数:无
//入口参数:无
//================================================================
void Write_data(unsigned char data)
{
LCD_Writ_Byte(0xfa);
LCD_Writ_Byte(data&0xf0);
LCD_Writ_Byte((data<<4)&0xf0);
LCD_Delay(10); //延时
}
//================================================================
//函数:void LCD_String(unsigned char *p)
//功能:写字符串
//出口参数:无
//入口参数:无
//================================================================
void Write_string(unsigned char *string)
{
while(*string!='\0')
{
Write_data(*string);
string++;
}
}
//================================================================
//函数:void LCD_Delay(unsigned char data)
//功能:延时程序
//出口参数:无
//入口参数:无
//================================================================
void LCD_Delay(unsigned char data)
{
unsigned char i,j;
j=data;
while(j--)
for(i=0;i<0x1f;i++);
}
void sys_Init(void)
{
unsigned int i;
BCSCTL1&=~XT2OFF; //启动高速晶振XT2
do
{
IFG1&=~OFIFG; //清除振荡器失效标志
for(i=0x20;i>0;i--); //延时等待XT2起振
}
while((IFG1&OFIFG)!=0); //判断XT2是否起振
BCSCTL2|=SELM_2+SELS; //MCLK、SMCLK选择XT2,分频为1
}
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
sys_Init();
LCD_Init();
P5DIR=0x07;
P5OUT|=BIT0;
Write_command(0x80);
Write_string("粮食水分检测:");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -