📄 320240_c.c.txt
字号:
/*************************************************************
FUNCTION: LCD driver 8080
AUTHOR: 耀宇科技
DESCRIPTION: SED1335
E-mail: szyaoyujs@126.com
CREAT DATE: 2006-3-6
MODIFICATION DATE:
***************************************************************/
#include <AT89X52.H>
#include <intrins.h>
#define A0 P3_1
#define WR_RW P3_4
#define RD_E P3_3
#define CS P3_2
#define RST P1_5
#define DATA_BUS P1
#define CR 0x27//一行占的字节宽度
#define TCR 0x42//时间常数
#define LF 0xef//占空比
#define AP 0x28//显示存储器一行的字节数
unsigned char code font[]=
{
0x40,0x00,0x00,0x00,0x13,0xDC,0x01,0x00,0x06,0x08,0x10,0x20,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x13,0xDC,0x01,0x00,0x06,0x08,0x10,0x20,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x27,0xFE,0x12,0x04,0x12,0x44,0x00,0x80,
0x78,0x88,0x10,0x20,0x01,0x00,0xFB,0xF8,0x04,0x40,0x3F,0xFC,0x27,0xFE,0x12,0x04,
0x12,0x44,0x00,0x80,0x78,0x88,0x10,0x20,0x01,0x00,0xFB,0xF8,0x04,0x40,0x3F,0xFC,
0x24,0x04,0x12,0x44,0x95,0x54,0x3F,0xFE,0x08,0x48,0x10,0x20,0x7F,0xFE,0x92,0x08,
0x06,0x40,0x00,0x04,0x24,0x04,0x12,0x44,0x95,0x54,0x3F,0xFE,0x08,0x48,0x10,0x20,
0x7F,0xFE,0x92,0x08,0x06,0x40,0x00,0x04,0x01,0x20,0x12,0x44,0x54,0xCC,0x20,0x04,
0x08,0x48,0xFD,0xFE,0x02,0x00,0x93,0xF8,0x04,0x40,0x00,0x04,0x01,0x20,0x12,0x44,
0x54,0xCC,0x20,0x04,0x08,0x48,0xFD,0xFE,0x02,0x00,0x93,0xF8,0x04,0x40,0x00,0x04,
0x81,0x18,0xFE,0x44,0x11,0x54,0x40,0x08,0xFE,0x08,0x10,0x20,0x04,0x00,0xA2,0x08,
0x08,0x20,0x7F,0xE4,0x81,0x18,0xFE,0x44,0x11,0x54,0x40,0x08,0xFE,0x08,0x10,0x20,
0x04,0x00,0xA2,0x08,0x08,0x20,0x7F,0xE4,0x56,0x08,0x12,0x44,0xFE,0xC4,0x1F,0xF0,
0x18,0x88,0x14,0x20,0x0F,0xF0,0xA2,0x08,0x08,0x10,0x00,0x04,0x56,0x08,0x12,0x44,
0xFE,0xC4,0x1F,0xF0,0x18,0x88,0x14,0x20,0x0F,0xF0,0xA2,0x08,0x08,0x10,0x00,0x04,
0x50,0x40,0x12,0x44,0x29,0x20,0x00,0x80,0x1C,0x48,0x19,0xFC,0x18,0x10,0x93,0xF8,
0x10,0x18,0x00,0x04,0x50,0x40,0x12,0x44,0x29,0x20,0x00,0x80,0x1C,0x48,0x19,0xFC,
0x18,0x10,0x93,0xF8,0x10,0x18,0x00,0x04,0x10,0x40,0x12,0x44,0x29,0xFC,0x00,0x80,
0x2A,0x48,0x31,0x08,0x28,0x10,0x8A,0x80,0x22,0x0E,0x3F,0xC4,0x10,0x40,0x12,0x44,
0x29,0xFC,0x00,0x80,0x2A,0x48,0x31,0x08,0x28,0x10,0x8A,0x80,0x22,0x0E,0x3F,0xC4,
0x27,0xFC,0x12,0x44,0x2B,0x20,0x7F,0xFC,0x28,0x0E,0xD0,0x88,0x4F,0xF0,0x8A,0x48,
0x43,0x04,0x20,0x44,0x27,0xFC,0x12,0x44,0x2B,0x20,0x7F,0xFC,0x28,0x0E,0xD0,0x88,
0x4F,0xF0,0x8A,0x48,0x43,0x04,0x20,0x44,0x20,0x40,0x12,0x44,0x2D,0xFC,0x00,0x80,
0x48,0x78,0x10,0x90,0x88,0x10,0xAA,0x50,0x02,0x00,0x20,0x44,0x20,0x40,0x12,0x44,
0x2D,0xFC,0x00,0x80,0x48,0x78,0x10,0x90,0x88,0x10,0xAA,0x50,0x02,0x00,0x20,0x44,
0xC0,0xE0,0x3A,0x44,0x29,0x20,0x00,0x80,0x8B,0x88,0x10,0x60,0x08,0x10,0x92,0x20,
0x04,0x20,0x3F,0xC4,0xC0,0xE0,0x3A,0x44,0x29,0x20,0x00,0x80,0x8B,0x88,0x10,0x60,
0x08,0x10,0x92,0x20,0x04,0x20,0x3F,0xC4,0x41,0x58,0xC4,0x44,0x2B,0xFC,0x00,0x80,
0x08,0x08,0x10,0x60,0x0F,0xF0,0x82,0x20,0x08,0x10,0x20,0x44,0x41,0x58,0xC4,0x44,
0x2B,0xFC,0x00,0x80,0x08,0x08,0x10,0x60,0x0F,0xF0,0x82,0x20,0x08,0x10,0x20,0x44,
0x46,0x4E,0x04,0x44,0x5D,0x20,0x00,0x80,0x08,0x08,0x10,0x90,0x08,0x10,0x82,0x10,
0x11,0xF8,0x20,0x04,0x46,0x4E,0x04,0x44,0x5D,0x20,0x00,0x80,0x08,0x08,0x10,0x90,
0x08,0x10,0x82,0x10,0x11,0xF8,0x20,0x04,0x58,0x44,0x08,0x04,0x49,0x20,0x00,0x80,
0x08,0x08,0x11,0x0E,0x08,0x90,0x82,0x8E,0x3F,0x18,0x00,0x14,0x58,0x44,0x08,0x04,
0x49,0x20,0x00,0x80,0x08,0x08,0x11,0x0E,0x08,0x90,0x82,0x8E,0x3F,0x18,0x00,0x14,
0x40,0x40,0x10,0x04,0x81,0xFE,0x02,0x80,0x08,0x08,0x56,0x04,0x08,0x70,0x83,0x04,
0x10,0x10,0x00,0x08,0x40,0x40,0x10,0x04,0x81,0xFE,0x02,0x80,0x08,0x08,0x56,0x04,
0x08,0x70,0x83,0x04,0x10,0x10,0x00,0x08,0x40,0x40,0x00,0x00,0x01,0x00,0x01,0x00,
0x08,0x08,0x20,0x00,0x08,0x20,0x82,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x00,0x00,
0x01,0x00,0x01,0x00,0x08,0x08,0x20,0x00,0x08,0x20,0x82,0x00,0x00,0x00,0x00,0x00
};
unsigned char code ft[]={
0x08,0x08,0x6B,0x1C,0x1C,0x6B,0x08,0x08
};
/***********************************
** 函数名称: Delay
** 功能描述: 延时时间=(n*9+17)*12/F
** 输 入: n
** 输 出 : 无
** 全局变量:无
** 调用模块: 无
**
** 作 者: 耀宇科技
** 日 期: 2006-2-17
******************************************/
void Delay(unsigned int n)
{
while(n--);
return;
}
/***********************************
** 函数名称: Busy
** 功能描述: 从液晶显示控制器中读忙标志,并作为返回值返回
** busy flag
** 输 入: 无
** 输 出 : 忙标志
** 全局变量:无
** 调用模块: 无
**
** 作 者: 耀宇科技
** 日 期: 2006-1-10
******************************************/
/*
#pragma disable
void Busy(void)
{
unsigned char datum;
datum=0xff;
while((datum&0x40)==0x40)
{
CS=0;
A0=0;
RD_E=0;
Delay(2);
datum=DATA_BUS;
RD_E=1;
CS=1;
}
return;
}
*/
/***********************************
** 函数名称: Write_Data
** 功能描述: 传送数据
** 输 入: dat
** 输 出 : 无
** 全局变量:无
** 调用模块:Delay
**
** 作 者: 耀宇科技
** 日 期: 2006-2-16
******************************************/
#pragma disable
void Write_Data(unsigned char dat)
{
// Busy();
CS=0;
A0=0;
DATA_BUS=dat;
WR_RW=0;
_nop_();
WR_RW=1;
CS=1;
_nop_();
return;
}
/***********************************
** 函数名称: Write_Instruction
** 功能描述: 传送命令
** 输 入: cmd
** 输 出 : 无
** 全局变量:无
** 调用模块:Delay
**
** 作 者: 耀宇科技
** 日 期: 2006-2-16
******************************************/
#pragma disable
void Write_Instruction(unsigned char idata cmd)
{
// Busy();
CS=0;
A0=1;
DATA_BUS=cmd;
WR_RW=0;
_nop_();
WR_RW=1;
CS=1;
_nop_();
return;
}
void System_Set(void)
{
Write_Instruction(0x40);
Write_Data(0x30);
Write_Data(0x87);
Write_Data(0x07);
Write_Data(CR);
Write_Data(TCR);
Write_Data(LF);
Write_Data(AP);
Write_Data(0x00);
return;
}
void Scroll(void)
{
Write_Instruction(0x44);
Write_Data(0x00);
Write_Data(0x00);
Write_Data(LF); //一区
Write_Data(0x00);
Write_Data(0x40);//1c
Write_Data(LF); //二区
Write_Data(0x00);
Write_Data(0x80); //三区6c
Write_Data(0x00);
Write_Data(0x00); //四区
return;
}
void Disp_ON(unsigned char idata par)
{
Write_Instruction(0x59);
Write_Data(par);
return;
}
/*
void Ovlay_or(void)
{
Write_Instruction(0x5b);
Write_Data(0x0c);
return;
}
*/
void Ovlay_Xor(void)
{
Write_Instruction(0x5b);
Write_Data(0x0d);
return;
}
void Cursor_Direction(void)
{
Write_Instruction(0x4c);
return;
}
void Cursor_Address(unsigned char idata csrl,unsigned char idata csrh)
{
Write_Instruction(0x46);
Write_Data(csrl);
Write_Data(csrh);
return;
}
void Hdot_Scr(void)
{
Write_Instruction(0x5a);
Write_Data(0x00);
return;
}
void Multiple_Write(void)
{
Write_Instruction(0x42);
}
void Initial(void)
{
register unsigned char i,j;
Delay(2000);
RST=0;
Delay(10);
RST=1;
Delay(2000);
System_Set();
Scroll();
Ovlay_Xor();
Cursor_Direction();
Cursor_Address(0x00,0x00);
Hdot_Scr();
Disp_ON(0x04);
Multiple_Write();
for(i=0;i<0x80;i++)
for(j=0;j<0xff;j++)
Write_Data(0xff);
return;
}
/***********************************
** 函数名称: Display_Chess
** 功能描述: Display_Chess
** 输 入: value
** 输 出 : 无
** 全局变量:无
** 调用模块:
**
** 作 者: 耀宇科技
** 日 期: 2006-2-10
******************************************/
void Display_Chess(unsigned char idata value)
{
register unsigned char i,j;
Cursor_Address(0x00,0x00);
Multiple_Write();
for(i=0;i<0x1e;i++)
{
value=~value;
for(j=0;j<0xa0;j++)
{
Write_Data(value);
Write_Data(~value);
}
}
return;
}
/***********************************
** 函数名称: Display_Chinese
** 功能描述: Display_Chinese
** 输 入: value
** 输 出 : 无
** 全局变量:无
** 调用模块:
**
** 作 者: 耀宇科技
** 日 期: 2006-2-10
******************************************/
void Display_Chinese(unsigned char fnt[])
{
unsigned char i;
unsigned int j;
Cursor_Address(0x00,0x00);
Multiple_Write();
for(i=0;i<0x0f;i++)
{
for(j=0;j<640;j++)
{
Write_Data(fnt[j]);
}
}
return;
}
main()
{
Initial();
while(1)
{
Display_Chess(0xff);
Delay(60000);
Delay(60000);
Disp_ON(0x14);
Delay(60000);
Delay(60000);
Disp_ON(0x04);
Display_Chinese(font);
Delay(60000);
Delay(60000);
Disp_ON(0x14);
Delay(60000);
Delay(60000);
Disp_ON(0x04);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -