?? ks0108.txt
字號:
C51編程:12864系列KS0108(S6B0108)函數庫 [arin] 2005-3-23 22:07:07
12864系列KS0108(S6B0108)函數庫:
僅供大家參考,請不要用于商業目的。
本資料來源于"液晶論壇",網址:http://bbs.lcd-module.com.cn
//================================================================
// 3X.H
// AM12864-30X,31X,32X 系列KS0108函數庫
// 適用液晶型號系列 AM12864-30,31,32
// 控制芯片: KS0107,KS0108
// C51編譯器 Keil 7.08
//================================================================
// 作者:ARIN
// 部門:安的利公司開發部
// Copyright 2004-2006 ANDORIN OptoElec Tech INC.
// All rights reserved.
//================================================================
#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
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -