您的位置 首页 电源

MSP430单片机对12864液晶模块显现的测验规划

MSP430单片机对12864液晶模块显示的测试设计-//DM430开发板控制带字库型12864液晶模块显示测试程序

//显示模式为汉字模式,直接将12864插入12864接口即可

//注意选择液晶的电源,位于电位器附近,可选5V或3.3V,根据液晶电压进行选择

//调试环境:EW430 V5.30

//DM430开发板操控带字库型12864液晶模块显现测验程序

//显现形式为汉字形式,直接将12864刺进12864接口即可

//留意挑选液晶的电源,坐落电位器邻近,可选5V或3.3V,依据液晶电压进行挑选

//调试环境:EW430 V5.30

//

********************************************************************/

#include

#define CPU_F ((double)8000000)

#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))

#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

/*12864使用指令*/

#define CLEAR_SCREEN 0x01 //清屏指令:清屏且AC值为00H

#define AC_INIT 0x02 //将AC设置为00H。且游标移到原点方位

#define CURSE_ADD 0x06 //设定游标移到方向及图画全体移动方向(默许游标右移,图画全体不动)

#define FUN_MODE 0x30 //作业形式:8位根本指令集

#define DISPLAY_ON 0x0c //显现开,显现游标,且游标方位反白

#define DISPLAY_OFF 0x08 //显现关

#define CURSE_DIR 0x14 //游标向右移动:AC=AC+1

#define SET_CG_AC 0x40 //设置AC,规模为:00H~3FH

#define SET_DD_AC 0x80

#define P10 0

#define P11 1

#define P12 2

#define P13 3

#define P14 4

#define P15 5

#define P16 6

#define P17 7

#define RS_CLR P3OUT &= ~(1 《《 P13) //RS置低

#define RS_SET P3OUT |= (1 《《 P13) //RS置高

#define RW_CLR P3OUT &= ~(1 《《 P16) //RW置低

#define RW_SET P3OUT |= (1 《《 P16) //RW置高

#define EN_CLR P3OUT &= ~(1 《《 P17) //E置低

#define EN_SET P3OUT |= (1 《《 P17) //E置高

#define PSB_CLR P5OUT &= ~(1 《《 P11) //PSB置低,串口方法

#define PSB_SET P5OUT |= (1 《《 P11) //PSB置高,并口方法

#define RST_CLR P5OUT &= ~(1 《《 P12) //RST置低

#define RST_SET P5OUT |= (1 《《 P12) //RST置高

#define DataPort P4OUT //P4口为数据口

//*************************************************************************

// 体系时钟初始化

//*************************************************************************

void Clock_Init()

{

uchar i;

BCSCTL1&=~XT2OFF; //翻开XT振荡器

BCSCTL2|=SELM1+SELS; //MCLK为8MHZ,SMCLK为8MHZ

do{

IFG1&=~OFIFG; //铲除震动标志

for(i=0;i《100;i++)

_NOP(); //延时等候

}

while((IFG1&OFIFG)!=0); //假如标志为1,则持续循环等候

IFG1&=~OFIFG;

}

//*************************************************************************

// MSP430内部看门狗初始化

//*************************************************************************

void WDT_Init()

{

WDTCTL = WDTPW + WDTHOLD; //封闭看门狗

}

//*************************************************************************

// 初始化IO口儿程序

//*************************************************************************

void Port_init()

{

P4SEL = 0x00;

P4DIR = 0xFF;

P3SEL = 0x00;

P3DIR|= BIT3 + BIT6 + BIT7;

P5SEL = 0x00;

P5DIR|= BIT1 + BIT2;

PSB_SET; //液晶并口方法

RST_SET; //复位脚RST置高

}

//***********************************************************************

// 显现屏指令写入函数

//***********************************************************************

void LCD_write_com(unsigned char com)

{

RS_CLR;

RW_CLR;

EN_SET;

DataPort = com;

delay_ms(5);

EN_CLR;

}

//***********************************************************************

// 显现屏数据写入函数

//***********************************************************************

void LCD_write_data(unsigned char data)

{

RS_SET;

RW_CLR;

EN_SET;

DataPort = data;

delay_ms(5);

EN_CLR;

}

//***********************************************************************

// 显现屏清空显现

//***********************************************************************

void LCD_clear(void)

{

LCD_write_com(0x01);

delay_ms(5);

}

//***********************************************************************

//函数称号:DisplayCgrom(uchar hz)显现CGROM里的汉字

//***********************************************************************

void DisplayCgrom(uchar addr,uchar *hz)

{

LCD_write_com(addr);

delay_ms(5);

while(*hz != ‘\0’)

{

LCD_write_data(*hz);

hz++;

delay_ms(5);

}

}

//****************************************************************

//函数称号:Display()显现测验成果

//****************************************************************

void Display(void)

{

DisplayCgrom(0x80,“起程电子欢迎你”);

DisplayCgrom(0x88,“ QQ: 617889341 ”);

DisplayCgrom(0x90,“ TodayStart2016 ”);

// DisplayCgrom(0x98,“电话18782911298”);

}

//***********************************************************************

// 显现屏初始化函数

//***********************************************************************

void LCD_init(void)

{

LCD_write_com(FUN_MODE); //显现形式设置

delay_ms(5);

LCD_write_com(FUN_MODE); //显现形式设置

delay_ms(5);

LCD_write_com(DISPLAY_ON); //显现开

delay_ms(5);

LCD_write_com(CLEAR_SCREEN); //清屏

delay_ms(5);

}

//***********************************************************************

// 主程序

//***********************************************************************

void main(void)

{

WDT_Init(); //看门狗设置

Clock_Init(); //体系时钟设置

Port_init(); //体系初始化,设置IO口特点

delay_ms(100); //延时100ms

LCD_init(); //液晶参数初始化设置

LCD_clear();

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/346430.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部