MSP430驱动12864液晶程序.docx

上传人:m**** 文档编号:547775497 上传时间:2023-05-08 格式:DOCX 页数:7 大小:22.19KB
返回 下载 相关 举报
MSP430驱动12864液晶程序.docx_第1页
第1页 / 共7页
MSP430驱动12864液晶程序.docx_第2页
第2页 / 共7页
MSP430驱动12864液晶程序.docx_第3页
第3页 / 共7页
MSP430驱动12864液晶程序.docx_第4页
第4页 / 共7页
MSP430驱动12864液晶程序.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《MSP430驱动12864液晶程序.docx》由会员分享,可在线阅读,更多相关《MSP430驱动12864液晶程序.docx(7页珍藏版)》请在金锄头文库上搜索。

1、/*名 称:12864液晶操作程序功 能:本c文件封装了对12864液晶的一些简单的基本读写操作.封装函数: void Lcd_WriteCmd(unsigned char a); /写指令 void Lcd_WriteData(unsigned char a); /写数据 int Lcd_ReadCmd(); /读指令 int Lcd_ReadData(); /读数据 void Lcd_Init(); /初始化液晶 void Lcd_XY(unsigned char a,unsigned char b); /设定光标位置 void Clear_GDRAM(void); /清除液晶GDRAM中

2、的随机数据 void Draw_PM(const uchar *ptr); /在整个液晶屏幕上画图 void Draw_TX(uchar Yaddr,uchar Xaddr,const uchar * dp); /显示一个16*16大小的图形作 者:胡静涛最后修改时间:2011年7月25号备注:该程序应在1M的系统时钟下运行,读忙信号函数已经被封装到除读指令函数以外的函数 中.典型应用: Lcd_XY( 1 , 1 ); i = 0; while( num1i != 0 ) Lcd_WriteData( num1i ); i+; 以上函数均进行测试可以正常使用*/#include #inclu

3、de 12864LCD.h/*/12864液晶读指令/典型应用 读忙标志:while(Lcd_ReadCmd() & 0x80);/*int Lcd_ReadCmd() int temp; unsigned char CLKCMD; CLKCMD = BCSCTL2; /先将时钟寄存器的值读出来 BCSCTL2 = SELM_2 + DIVM_3 + (CLKCMD & 0x0e); /重新设定主时钟(不改变从时钟) LCD12864_CMDDIR; LCD12864_DATADIR = 0X00; LCD12864_LCDRS_0; LCD12864_LCDWR_1; LCD12864_LC

4、DEN_0; _NOP(); LCD12864_LCDEN_1; _NOP(); _NOP(); temp = LCD12864_DATAIN; LCD12864_LCDEN_0; BCSCTL2 = CLKCMD; /还原原来的时钟(放在函数最后) return temp;/*/12864液晶读数据/*int Lcd_ReadData() int temp; unsigned char CLKCMD; CLKCMD = BCSCTL2; /先将时钟寄存器的值读出来 BCSCTL2 = SELM_2 + DIVM_3 + (CLKCMD & 0x0e); /重新设定主时钟(不改变从时钟) wh

5、ile(Lcd_ReadCmd() & 0x80); /读忙信号 LCD12864_DATADIR = 0X00; LCD12864_CMDDIR; LCD12864_LCDRS_1; LCD12864_LCDWR_1; LCD12864_LCDEN_0; _NOP(); LCD12864_LCDEN_1; _NOP(); _NOP(); temp = LCD12864_DATAIN; LCD12864_LCDEN_0; BCSCTL2 = CLKCMD; /还原原来的时钟(放在函数最后) return temp;/*/12864液晶写指令/*void Lcd_WriteCmd(uchar a

6、) unsigned char CLKCMD; CLKCMD = BCSCTL2; /先将时钟寄存器的值读出来 BCSCTL2 = SELM_2 + DIVM_3 + (CLKCMD & 0x0e); /重新设定主时钟(不改变从时钟) while(Lcd_ReadCmd() & 0x80); /读忙信号 LCD12864_DATADIR = 0XFF; LCD12864_CMDDIR; LCD12864_LCDRS_0; LCD12864_LCDWR_0; LCD12864_LCDEN_0; _NOP(); LCD12864_DATA = a; _NOP(); LCD12864_LCDEN_1

7、; _NOP(); _NOP(); LCD12864_LCDEN_0; BCSCTL2 = CLKCMD; /还原原来的时钟(放在函数最后)/*/12864液晶写数据/*void Lcd_WriteData(uchar a) unsigned char CLKCMD; CLKCMD = BCSCTL2; /先将时钟寄存器的值读出来 BCSCTL2 = SELM_2 + DIVM_3 + (CLKCMD & 0x0e); /重新设定主时钟(不改变从时钟) while(Lcd_ReadCmd() & 0x80); /读忙信号 LCD12864_DATADIR = 0XFF; LCD12864_CM

8、DDIR; LCD12864_LCDRS_1; LCD12864_LCDWR_0; LCD12864_LCDEN_0; _NOP(); LCD12864_DATA = a; _NOP(); LCD12864_LCDEN_1; _NOP(); _NOP(); LCD12864_LCDEN_0; BCSCTL2 = CLKCMD; /还原原来的时钟(放在函数最后)/*/12864液晶初始化/*void Lcd_Init() Lcd_WriteCmd(0x30); Lcd_WriteCmd(0x0c); Lcd_WriteCmd(0x01); Lcd_WriteCmd(0x80); /*/12864液晶光标地址/*void Lcd_XY(unsigned char a,unsigned char b) switch (a) case 1: a = 0x80; break; case 2: a = 0x90; break; case 3: a = 0x88; break; case 4: a = 0x98; break; Lcd_WriteCmd(a + b - 1);/*/清除液晶GDRAM中的随机数据/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号