📄 zjj.c
字号:
/*****************************************************************************************************/
/* 选用的液晶: FYD128-64-0402B */
/* 传输方式: 串口传输 */ */
/* 选用的OSC: 4M */
/* 编译器版本: KEIL C 8.01
/* 创建日期: 2007.1.26
/* 所属单位: 台州迈尔电子, lmhtz@hotmail.com
/* 芯片类型: STC89C54RD+
/*****************************************************************************************************/
//#include <reg52.h>
#include "includes.h"
#include "headlast.h"
#define x1 0x80
#define x2 0x88
#define y1 0x80
#define y2 0x60
#define comm 0
#define dat 1
sbit cs = P1^3;
sbit std = P1^4;
sbit sclk = P1^2;
sbit psb = P1^0; //H=并口; L=串口;
sbit rst = P1^1; //Reset Signal 低电平有效
u08 code a1[]="CLANGSONIC ";
u08 code a2[]="Time: 58 60";
u08 code a3[]="Temp: 23 30";
u08 code a4[]="Power: 99% ";
u08 code kk[]=" ";
u08 code err1[]="ERR1 !";
u08 code err2[]=" ERR2 ! ";
u08 code err3[]=" ERR3 ! ";
u08 code tab5[]=
{
/*-- 调入了一幅图像:C:\Documents and Settings\Administrator\桌面\未命名.bmp --*/
/*-- 宽度x高度=128x64 --*/
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x07,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0F,0xC0,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1F,0x80,0x0F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1F,0xC0,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1F,0xE0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1B,0xD0,0x5E,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1B,0x88,0x8E,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1B,0x85,0x0E,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1B,0xC2,0x1E,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1B,0xE0,0x3E,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1B,0xD0,0x5E,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1B,0x88,0x8E,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1B,0x85,0x0E,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1F,0xC2,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1F,0xE0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1F,0xF0,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1C,0xF8,0xF9,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1B,0x7D,0xF6,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1B,0x7F,0xF6,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0C,0xE0,0x39,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x07,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x1F,0x1E,0x00,0x60,0xF3,0xC1,0xF0,0x7E,0x0F,0x8F,0x3C,0x7E,0x03,0xE0,0x00,
0x00,0x33,0x8C,0x00,0x60,0x71,0x83,0x30,0xCE,0x18,0xC7,0x18,0x18,0x06,0x70,0x00,
0x00,0x61,0x8C,0x00,0xF0,0x79,0x86,0x31,0x86,0x18,0xC7,0x98,0x18,0x0C,0x30,0x00,
0x00,0xC0,0x0C,0x00,0xF0,0x79,0x8C,0x01,0x80,0x30,0x67,0x98,0x18,0x18,0x00,0x00,
0x00,0xC0,0x0C,0x00,0x90,0x79,0x8C,0x01,0x80,0x30,0x66,0x98,0x18,0x18,0x00,0x00,
0x00,0xC0,0x0C,0x00,0x90,0x6D,0x8C,0x00,0xE0,0x30,0x66,0xD8,0x18,0x18,0x00,0x00,
0x02,0xC0,0x0C,0x01,0x98,0x6D,0x8C,0x00,0x38,0x30,0x66,0xD8,0x18,0x18,0x00,0x00,
0x00,0xC0,0x0C,0x01,0x98,0x67,0x8C,0x78,0x0C,0x30,0x66,0x78,0x18,0x18,0x00,0x00,
0x00,0xC0,0x0C,0x01,0xF8,0x67,0x8C,0x30,0x06,0x30,0x66,0x78,0x18,0x18,0x00,0x00,
0x00,0xC1,0x8C,0x01,0x98,0x63,0x8C,0x31,0x86,0x30,0x66,0x38,0x18,0x18,0x30,0x00,
0x00,0x61,0x8C,0x33,0x0C,0x63,0x86,0x31,0x86,0x18,0xC6,0x38,0x18,0x0C,0x30,0x00,
0x00,0x63,0x0C,0x33,0x0C,0x61,0x86,0x31,0xCC,0x18,0xC6,0x18,0x18,0x0C,0x60,0x00,
0x00,0x3E,0x1F,0xE7,0x9E,0xF1,0x83,0xE0,0xF8,0x0F,0x8F,0x18,0x7E,0x07,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0x25,0x25,0x24,0x00,0x78,0x78,0xF8,0x88,0x00,0x70,0x70,0xFC,0x00,0x00,
0x00,0x00,0xA8,0xA8,0xA8,0x00,0x88,0x88,0x20,0x88,0x00,0x88,0x48,0xA4,0x00,0x00,
0x00,0x00,0xA8,0xA8,0xA8,0x00,0x80,0x80,0x20,0x50,0x00,0x80,0x88,0xA4,0x00,0x00,
0x00,0x00,0xD8,0xD8,0xD8,0x00,0x80,0x80,0x20,0x50,0x00,0x80,0x88,0xA4,0x00,0x00,
0x00,0x00,0xD8,0xD8,0xD8,0x00,0x88,0x88,0x20,0x70,0x00,0x88,0x88,0xA4,0x00,0x00,
0x00,0x00,0x50,0x50,0x50,0xC0,0x48,0x48,0x28,0x20,0xC0,0x48,0x48,0xA4,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0x30,0x30,0x20,0xC0,0x30,0x70,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
/*------------------------------------------------------------*/
void delay (u16 us) //delay time
{
while(us--);
}
/*--------------------------------------------------------------*/
void delay1 (u16 ms)
{
u16 i,j;
for(i=0; i<ms; i++)
for(j=0; j<15; j++)
delay(1);
}
/*************************************************************************/
/* 串口数据写入函数 */
/* dat_comm: 方式选择 dat是数据类型,comm是控制字类型 */
/* content: 数据 */
/*************************************************************************/
void wr_lcd (u08 dat_comm,u08 content)
{
u08 a,i,j;
delay (50);
a = content;
cs = 1;
sclk = 0;
std = 1;
for(i=0; i<5; i++)
{
sclk = 1;
sclk = 0;
}
std = 0;
sclk = 1;
sclk = 0;
if(dat_comm)
std = 1; //data
else
std = 0; //command
sclk = 1;
sclk = 0;
std = 0;
sclk = 1;
sclk = 0;
for(j=0; j<2; j++)
{
for(i=0; i<4; i++)
{
a= a<<1;
std = CY;
sclk = 1;
sclk = 0;
}
std = 0;
for(i=0; i<4; i++)
{
sclk = 1;
sclk = 0;
}
}
}
/*------------------初始化--------------------------------------*/
void init_lcd (void)
{
rst = 1;
psb = 0;
wr_lcd (comm, 0x30); /*30---基本指令动作*/
wr_lcd (comm, 0x01); /*清屏,地址指针指向00H*/
delay (100);
wr_lcd (comm, 0x06); /*光标的移动方向*/
wr_lcd (comm, 0x0c); /*开显示,关游标*/
}
/*--------------清DDRAM-------------------------------------------*/
void clrram (void)
{
wr_lcd (comm, 0x30);
wr_lcd (comm, 0x01);
delay (180);
}
/*****************************************************
/* 清楚GRAM数据.[速度慢]
******************************************************/
void clrg(void)
{
u08 i,j;
u08 ay,ax;
ax = x1;
for(i=0; i<16; i++)
{
ay = y1;
for(j=0; j<32; j++)
{
wr_lcd (comm, 0x34);
wr_lcd (comm, ay++);
wr_lcd (comm, ax);
wr_lcd (comm, 0x30);
wr_lcd (dat, 0x00);
wr_lcd (dat, 0x00);
}
ax++;
}
wr_lcd (comm,0x36);
}
/**************************************************************************/
/* 反白显示函数 */
/* data1: 第一字节位反白字符选择 范围: 0-0xff 0=全不反白,0xff=全反白 */
/* data2: 第一字节位反白字符选择 范围: 0-0xff 0=全不反白,0xff=全反白 */
/* x0: 反白x轴起始点, 范围: 0-15 */
/* y0: 反白y轴起始点 范围: 0-31 */
/* xl: 反白x轴长度 范围: 0-15 */
/* yl: 反白y轴长度 范围: 0-31 */
/**************************************************************************/
void con_disp (u08 data1,u08 data2,u08 x0,u08 y0,u08 xl,u08 yl)
{
u08 i,j;
for(j=0; j<yl; j++)
{
for(i=0; i<xl; i++)
{
wr_lcd (comm, 0x34);
wr_lcd (comm, y0+j);
wr_lcd (comm, x0+i);
wr_lcd (comm, 0x30);
wr_lcd (dat, data1);
wr_lcd (dat, data2);
}
}
wr_lcd (comm, 0x36);
}
/**************************************************************************/
/* 显示字符函数 */
/* chn: 字符地址 */
/* xx: x轴起始点 范围: 0-3 */
/* yy: y轴起始点 范围: 0-15 */
/* num: 显示字符个数 范围: 1-16 */
/**************************************************************************/
void zj (u08 code *chn, u08 xx, u08 yy, u08 num)
{
u08 i;
if (xx == 1) xx = 2;
else if (xx == 2) xx = 1;
wr_lcd (comm, 0x30);
wr_lcd (comm, x1+xx*8+yy);
for (i=0; i<num; i++)
{
wr_lcd (dat, chn[i]);
}
}
/**************************************************************************/
/* 显示图片函数 */
/* img: 图片地址 */
/* xx: x轴起始点 范围: 0-7 */
/* yy: y轴起始点 范围: 0-63 */
/* xsize: 图片x轴的大小 范围: 1-8 */
/* ysize: 图片y轴的大小 范围: 1-64 */
/**************************************************************************/
void imgxy(u08 code *img, u08 xx,u08 yy, u08 xsize, u08 ysize)
{ //0,0,8,64
u08 ax,ay;
u08 ix,iy;
u16 aa;
for(ax=xx,ix=0; ax<xx+xsize; ax++,ix++)
{
for(ay=yy,iy=0; ay<yy+ysize; ay++,iy++)
{
wr_lcd (comm, 0x34);
if(ay < 32)
{
wr_lcd (comm, (y1+ay));
wr_lcd (comm, (x1+ax));
}
else
{
wr_lcd (comm, y2+ay);
wr_lcd (comm, x2+ax);
}
wr_lcd (comm, 0x30);
aa = iy;
aa *= xsize;
aa <<= 1;
aa += (ix<<1);
wr_lcd (dat, img[aa]);
wr_lcd (dat, img[aa+1]);
}
}
wr_lcd (comm, 0x36);
}
//显示 数据---------------------------------------
void screen1(void)
{
zj(a1,0,0,16);
zj(a2,1,0,16);
zj(a3,2,0,16);
zj(a4,3,0,16);
}
void ERR11(void)
{
zj(err1,1,5,6);
}
void ERR22(void)
{
clrram();
zj(err2,2,0,16);
}
void ERR33(void)
{
clrram();
zj(err3,2,0,16);
}
/*------------------主程序--------------------*/
void main ()
{
SP=0x5f;
init_lcd ();
// clrg();
while (1)
{
clrram();
imgxy(tab5,0,0,8,64);
delay1(5000);
//---------------
screen1();
delay1 (2000);
//---------------
ERR11();
delay1(2000);
//---------------
screen1();
delay1(2000);
//---------------
ERR22();
delay1(2000);
//---------------
screen1();
delay1(2000);
//---------------
ERR33();
delay1(2000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -