|
LCD12864.H头文件是lcd12864液晶屏的驱动 大家可以另存为到硬盘下载到电脑
- /*
- 把我一直珍藏的程序全部拿出来,给大家共享,这也让我想起来,我刚学的时候,搜集资料是那么辛苦,而且找不到完整的资料,我将把我整理的和自己制作的H文件共享出来,只要修改定义端口,便可以随意的调用,以后我还会慢慢完善我的C资料,也希望大家给我指出程序的漏洞和缺点,已达到相互学习目地。
- */
- #ifndef __LCD12864_H__
- #define __LCD12864_H__
- #include <intrins.h>
- #define uchar unsigned char
- sbit RS=P2^0;//串口时为CS
- sbit RW=P2^1; //串口为SID
- sbit E=P2^2;//串口为时钟SCLK
- sbit RET=P2^3;//复位
- //sbit PSB=P2^4;//串并选择
- unsigned char code line_0[] = {"春城无处不飞花,"};
- unsigned char code line_1[] = {"寒食东风御柳斜。"};
- unsigned char code line_2[] = {"日暮汉宫传蜡烛,"};
- unsigned char code line_3[] = {"轻烟散入五侯家。"};
- /***********************************忙检测*******************************/
- void RDBF(void)
- {
- uchar temp;
- RS=0;
- RW=1;
- while(1)
- {
- P0=0xFF;
- E=1;
- temp=P0;
- E=0;
- if ((temp&0x80)==0) break;
- }
- }
- /*********************************写指令*********************************/
- void Write_Command(uchar comm)
- {
- RDBF();
- RS=0;
- RW=0;
- P0=comm;
- E=1;
- E=0;
- }
- /***************************写数据到数据寄存器****************************/
- void Write_Data(uchar TEMP)
- {
- RDBF();
- RS=1;
- RW=0;
- P0=TEMP;
- E=1;
- E=0;
- }
- /*************************初始化LCD-12864R*********************************/
- void LCDInit(void)
- {
- //PSB=0; //串口
- //PSB=1; //并口
- RET=1;
- RET=0;
- RET=1;
- Write_Command(0x30);//基本指令集,8位并行,RE=1,可执行扩展功能
- Write_Command(0x06);//启始点设定:光标右移
- Write_Command(0x01);//清除显示DDRAM
- Write_Command(0x0f);//D=1,整体显示ON C=1,游标ON B=1,游标闪烁ON
- Write_Command(0x02);//地址归零
-
- }
- /*******************显示数组字符串(显示半宽字型16*8点阵)*********************/
- void Display_String(uchar addr,uchar *string,uchar count)
- {
- uchar i;
- Write_Command(addr); //设定DDRAM地址
- for(i=0;i<count;)
- {
- Write_Data(string[i*2]); //前半角字符
- Write_Data(string[i*2+1]);//后半角字符
- i++;
- }
- }
- /***********************************主函数**************************************/
- void main(void)
- {
- LCDInit(); //lcd初始化
- Display_String(0x80,line_0,8);
- Display_String(0x90,line_1,8);
- Display_String(0x88,line_2,8);
- Display_String(0x98,line_3,8);
- while(1)
- {
- Display_String(0x80,line_0,8);
- Display_String(0x90,line_1,8);
- Display_String(0x88,line_2,8);
- Display_String(0x98,line_3,8);
- }
- }
- #endif
复制代码
|
|