|
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
復制代碼
|
|