KS0107_KS0108控制器

  • 格式:txt
  • 大小:6.90 KB
  • 文档页数:3
* 功能 : 全部清除KS0108显示存储器
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Clr_Screen(void)
{
unsigned char j,k;
{
unsigned char j,k;
CSA=1;
CSB=0;
for(k=hang;k<=hang+1;k++)
{
Write_0108_Reg(Set_Page+k);
Write_0108_Reg(Set_Column);
for(j=0;j<64;j++) Write_0108_Data(0x00);
{
CSA=1;
CSB=0;
}
Write_0108_Reg(0x40+Y);
Write_0108_Reg(0xB8+1+X); //set page address
for(i=0;i<16;i++,p++)
{
if(i==n+1)
{
CSA=0;
* 创建人 : 银剑
* 创建时间: 2011年11月5日
* 版本号 : 2.0
* C51编译器 Keil 7.08
* 最高晶振:22.1184M
***********************************************************************/
/********************************************************************
* 名称 : Delay()
* 功能 : 短延时子程序
* 输入 : x (延时一毫秒的个数)
* 输出 : 无
***********************************************************************/
}
}
//**************************************************************************
/********************************************************************
// KS0108指令代码定义
#define Set_Disp_On 0x3F
#define Set_Disp_Off 0x3E
#define Set_Column 0x40
#define Set_Page 0xB8
#define Set_Start_Line 0xC0
* 输入 : KS0108寄存器指令
* 输出 : 无
***********************************************************************/
void Write_0108_Reg(unsigned char Reg_Code)
{
RS=0;
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);
/********************************************************************
* 文件名 : 3X.H
* 描述 : 该文件是 AM12864-30X,31X,32X 系列KS0108函数库
* 控制芯片: KS0107,KS0108
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);
}
}
/********************************************************************
#ifndef __3X_H__
#define __3X_H__
// 液晶接口定义
#define _RS P3^3
#define _RW P3^4
#define _E P3^5
#define Lcd_Bus P2
#define _CSA P0^7
#define _CSB P0^6
Write_0108_Reg(Set_Column);
Write_0108_Reg(Set_Disp_On);
}
/********************************************************************
* 名称 : Clr_Screen()
NOP;
NOP;
RW=0;
Lcd_Bus=Reg_Code;
E=1;
NOP;
NOP;
NOP;
E=0;
}
/********************************************************************
* 名称 : Write_0108_Data()
* 名称 : Write_one_hanzi1()
* 功能 : 在第X页(最小8行)第Y列(以点为单位)写入汉字
* 输入 : 数据,X,Y
* 输出 : 无
***********************************************************************/
void Write_one_hanzi1(unsigned char *p,unsigned char X,unsigned char Y)
{
unsigned char i,m=0;
char n=100;
if(Y>=63)
{
CSA=0;
CSB=1;
Y-=63;
{
RS=1;
NOP;
NOP;
RW=0;
Lcd_Bus=Disp_Data;
E=1;
NOP;
NOP;
NOP;
E=0;
}
/********************************************************************
{
unsigned char Disp_Data;
RS=1;
RW=1;
Lcd_Bus=0xff;
E=1;
Disp_Data=Lcd_Bus;
E=0;
return Disp_Data;
}
/********************************************************************
for(j=0;j<x;j++)
for(i=0;i<=148;i++);
}
/********************************************************************
* 名称 : Write_0108_Reg()
* 功能 : KS0108寄存器写入函数
* 名称 : Clr_Screen_hang()
* 功能 : 清除KS0108显示存储器的一行
* 输入 : 第几行
* 输出 : 无
***********************************************************************/
void Clr_Screen_hang(unsigned char hang)
* 输入 : x (延时一毫秒的个数)
* 输出 : 无
***********************************************************************/
void Delay_Xms(unsigned int x)//1ms延时
{
unsigned int i,j;
void Delay(int t)
{
while(--t);
}
/********************************************************************
* 名称 : Delay_Xms()
* 功能 : 延时子程序,延时时间为 1ms * x
CSB=1;
Delay_Xms(2);
Write_0108_Reg(0x40+0);
Write_0108_Reg(0xB8+1+X); //set page address
Hale Waihona Puke CSA=1; CSB=0;

下载文档原格式

  / 3