正文

12864系列KS0108(S6B0108)函数库2012-08-13 13:06:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/enc999/53713.html

分享到:

12864系列KS0108(S6B0108)函数库     #ifndef __3X_H__ #define __3X_H__ //================================================================ //  液晶接口定义 //================================================================ #define Lcd_Bus  P0 #define _CSA  P1^4 #define _CSB  P1^5 #define _RS  P3^0 #define _E  P3^7 #define _RW  P3^6 #define _Lcd_Rst P3^1 sbit CSA = _CSA; sbit CSB = _CSB; sbit RS  = _RS; sbit E  = _E; sbit RW  = _RW; sbit Lcd_Rst = _Lcd_Rst; //================================================================ //  KS0108指令代码定义 //================================================================ #define  Set_Disp_On 0x3F #define  Set_Disp_Off 0x3E #define  Set_Column  0x40 #define  Set_Page  0xB8 #define  Set_Start_Line 0xC0 //================================================================ //  延时子程序 //================================================================ Delay(int t) {  while(--t); } //================================================================ //  长延时子程序 //================================================================ void Long_Delay(int t) { int n=0xff;  while(--t){   while(--n);   n=0xff;  } } //================================================================ //  KS0108寄存器写入函数 //================================================================ Write_0108_Reg(unsigned char Reg_Code) {  RS=0;  RW=0;  Lcd_Bus=Reg_Code;  E=1;  E=0; } //================================================================ //  KS0108显示数据写入函数 //================================================================ Write_0108_Data(unsigned char Disp_Data) {  RS=1;  RW=0;  Lcd_Bus=Disp_Data;  E=1;  E=0; } //================================================================ //  读取KS0108显示数据函数 //================================================================ unsigned char Read_0108_Data() { unsigned char Disp_Data;  RS=1;  RW=1;  Lcd_Bus=0xff;  E=1;  Disp_Data=Lcd_Bus;  E=0;  return Disp_Data; } //================================================================ //  设置地址,X方向以点为单位,Y方向以page为单位 //================================================================ Set_XY(unsigned char X_Column, unsigned char Y_Page) { Write_0108_Reg(Set_Page+Y_Page); Write_0108_Reg(Set_Column+X_Column); } //================================================================ //  KS0108寄存器初始化函数 //================================================================ Init_0108() { Lcd_Rst=0; Delay(100); Lcd_Rst=1; Delay(100); CSA=1; CSB=1; Delay(100); Write_0108_Reg(Set_Disp_Off); Write_0108_Reg(Set_Start_Line); Write_0108_Reg(Set_Page); Write_0108_Reg(Set_Column); Write_0108_Reg(Set_Disp_On); } //================================================================ //  清除KS0108显示存储器 //================================================================ Clr_Screen() { unsigned char j,k; CSA=1; CSB=1;  for(k=0;k<8;k++){   Write_0108_Reg(Set_Page+k);   Write_0108_Reg(Set_Column);   for(j=0;j<64;j++) Write_0108_Data(0x00);  } } #endif

阅读(2214) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册