⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s6b0108.c

📁 s6b0108控制器库函数实例源码 液晶显示ag12864a
💻 C
字号:
//12864系列KS0108(S6B0108)函数库
//liuqinghua
//2008 07 23
//12864 v1.0

//================================================================
//  液晶接口定义
//================================================================
#include <reg52.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;

//===============================================================
unsigned char code tab2[]={
/*--  调入了一幅图像:F:\梁\画图\HOCO32060.bmp  --*/
/*--  宽度x高度=320x60  --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x3F,0xF8,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
0x80,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x00,
0x0F,0xFF,0x00,0x01,0x80,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x80,0x00,0x0F,0xFF,0x00,0x01,0x80,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,};



//================================================================
//  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);
 }
}

void main (void)
{
   SP=0x5f;
   Init_0108();
   //Delay(100);
   Clr_Screen();
   //Delay(100);
   Set_XY(0x00, 0x00);
   //Delay(100);
   Write_0108_Data(00);
   Write_0108_Data(00);
   Write_0108_Data(00);
   Write_0108_Data(0x80);
   Write_0108_Data(0x0f);
   Write_0108_Data(0xc0);
   Write_0108_Data(01);
   Write_0108_Data(0xc0);
   Write_0108_Data(01);

   Write_0108_Data(0xc0);
   Write_0108_Data(0x01);
   Write_0108_Data(0xc0);
   Write_0108_Data(0x01);
   Write_0108_Data(0xc0);
   Write_0108_Data(0x01);
   Write_0108_Data(0xc0);
   Write_0108_Data(0x01);
   Write_0108_Data(0xc0);
   Write_0108_Data(0x01);
   Write_0108_Data(0xc0);
   Write_0108_Data(0x01);
   Write_0108_Data(0xc0);
   Write_0108_Data(0x01);
   Write_0108_Data(0xc0);
   Write_0108_Data(0x1f);
   Write_0108_Data(0xfc);
   Write_0108_Data(0x00);
   Write_0108_Data(0x00);
   Write_0108_Data(0x00);
   Write_0108_Data(0x00);


    //00H,00H,00H,00H,00H,80H,0FH,C0H,01H,C0H,01H,C0H,01H,C0H,01H,C0H,
   //01H,C0H,01H,C0H,01H,C0H,01H,C0H,01H,C0H,1FH,FCH,00H,00H,00H,00H
   //Write_0108_Data(0x90);


  //Write_0108_Reg(0x3f);
 Delay(100000);
}
//#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -