当前位置:首页 > 单片机 > 单片机
[导读]/********************************************************************//DM430开发板控制带字库型12864液晶模块显示测试程序//显示模式为汉字模式,直接将12864插入12864接口即可//注意选择液晶的电源,位于电位器

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

//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 != '')

{

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();

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

摘 要:为了能通过串口采集电能参数,完成一种基于串口的三相电能采集设备的研制,设计了电能采集设备的硬件和软件部分。其中硬件采用MCU+专用电能计量芯片的结构,结构简单;软件则用于实现输入、输出、三相电能参数的采集和串行通...

关键字: 电能采集 ATT7022B MSP430 串口

点击上方蓝字关注我们!楼宇自动化系统具备多种功能,可在工业和商业环境中提升工作者的舒适度和安全性。通过创新微控制器技术,这些功能可以变得更加智能和经济。TI 推出的MSP430™MCU 可以帮助您在楼宇自动化解决方案中,...

关键字: MCU MSP430 楼宇自动化

点击上方蓝字关注我们!楼宇自动化系统具备多种功能,可在工业和商业环境中提升工作者的舒适度和安全性。通过创新微控制器技术,这些功能可以变得更加智能和经济。TI 推出的MSP430™MCU 可以帮助您在楼宇自动化解决方案中,...

关键字: MCU MSP430 楼宇自动化

点击上方蓝字关注我们!楼宇自动化系统具备多种功能,可在工业和商业环境中提升工作者的舒适度和安全性。通过创新微控制器(MCU)技术,这些功能可以变得更加智能和经济。为设计出更出色的楼宇自动化解决方案,应选择合适的元件来实现...

关键字: MCU MSP430 楼宇自动化

点击上方蓝字关注我们!楼宇自动化系统具备多种功能,可在工业和商业环境中提升工作者的舒适度和安全性。通过创新微控制器(MCU)技术,这些功能可以变得更加智能和经济。为设计出更出色的楼宇自动化解决方案,应选择合适的元件来实现...

关键字: MCU MSP430 楼宇自动化

点击上方蓝字关注我们!让我们试想一下一种可以减少模拟组件数量并缩小电路板尺寸的设计。使用这种设计,您可以针对特定应用定制功能,并针对性能、功耗、尺寸和成本进行优化。现在,一个简单的MSP430™MCU就可以满足上述所有功...

关键字: MCU MSP430

作为光源,无论从发光效率、全彩色,还是寿命,都已取得了辉煌的成果,而且还在不断深化之中。LCD发明以来,背光源在不断地进步,由单色到彩色,由厚到薄,由侧置荧光灯式到平板荧光灯式。

关键字: 3寸TFT MSP430 驱动

液位测控仪是属于智能化仪器仪表的一种(指采用了微处理器的仪器仪表),其发展始于70年代。它是一种集测量与控制于一体的智能化产品,适用于石油化工、冶金、电力、制药、环保等行业中各种介质的液位测量。

关键字: MSP430 单片机 称重式液位仪

空间定向测试仪是一种应用非常广泛的电子测量仪器,尤其是伴随着微电子技术的发展,空间定向测试仪在车辆、舰船、飞行器等导航领域中的应用日趋成熟。

关键字: MSP430 超低功耗 空间定向测试仪
关闭
关闭