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

📄 zjj.c

📁 液晶: FYD128-64-0402B控制程序 c51
💻 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 + -