MSP430 12864显示
来源:互联网 发布:德国巧克力价格 知乎 编辑:程序博客网 时间:2024/06/05 16:43
/********************************************************************//DM430开发板控制带字库型12864液晶模块显示测试程序//显示模式为汉字模式,直接将12864插入12864接口即可//注意选择液晶的电源,位于电位器附近,可选5V或3.3V,根据液晶电压进行选择//调试环境:EW430 V5.30//********************************************************************/#include <msp430x16x.h>#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_SCREEN0x01 //清屏指令:清屏且AC值为00H#define AC_INIT0x02 //将AC设置为00H。且游标移到原点位置#define CURSE_ADD0x06 //设定游标移到方向及图像整体移动方向(默认游标右移,图像整体不动)#define FUN_MODE0x30 //工作模式:8位基本指令集#define DISPLAY_ON0x0c //显示开,显示游标,且游标位置反白#define DISPLAY_OFF0x08 //显示关#define CURSE_DIR0x14 //游标向右移动:AC=AC+1#define SET_CG_AC0x40 //设置AC,范围为:00H~3FH#define SET_DD_AC0x80#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_CLRP3OUT &= ~(1 << P13) //RS置低#define RS_SETP3OUT |= (1 << P13) //RS置高#define RW_CLRP3OUT &= ~(1 << P16) //RW置低#define RW_SETP3OUT |= (1 << P16) //RW置高#define EN_CLRP3OUT &= ~(1 << P17) //E置低#define EN_SETP3OUT |= (1 << P17) //E置高#define PSB_CLRP5OUT &= ~(1 << P11) //PSB置低,串口方式#define PSB_SETP5OUT |= (1 << P11) //PSB置高,并口方式#define RST_CLRP5OUT &= ~(1 << P12) //RST置低#define RST_SETP5OUT |= (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); //延时100msLCD_init(); //液晶参数初始化设置LCD_clear(); //清屏while(1){ LCD_write_com(0x98); LCD_write_data('2'); LCD_write_data('2'); Display(); //显示汉字}}
1 0
- MSP430 12864显示
- MSP430 Launchpad串行/并行12864显示
- msp430
- MSP430
- MSP430
- msp430
- MSP430
- MSP430学习笔记6-动态数码管的显示
- MSP430学习笔记10-ADC采集1602显示
- MSP430学习笔记7-4*4键盘的对应数码管显示
- MSP430学习笔记8-ST7920 12864液晶显示并行接口
- [转]MSP430
- MSP430入门
- 关于MSP430
- msp430看门狗
- MSP430学习
- MSP430 1602
- MSP430------2
- Unity计时器设计 - 基础计时器
- react native 嵌入原生Android应用中的问题
- [生存志] 第119节 刘安编著淮南鸿烈
- angularjs 自定义指令的分类
- Hibernate Set Cascade Example (save, update, delete and delete-orphan)
- MSP430 12864显示
- 如何配置spring+springmvc+mybatis环境
- 监视Linux服务器的性能
- v-model和v-for指令
- java客户端操作Hbase
- 微信开发,本地地址映射到外网的方法
- 函数的可重入性理解
- 实现家庭WiFi网络全覆盖
- Visual Studio 2015常用快捷键