/*********************************************************************************************
程序名: 12864多功能万年历
功能 6路闹钟--时间修整程序 自动光敏调光
多界面显示
编写人: 李文杰
编写时间: 2010年12月31日
硬件支持: STC12C5A60S2 12MHz晶体(不可换其他8051单片机)
接口说明: 见《多界面调光万年历时钟电路原理图》
修改日志: 晶振的地线有很大的关系,线路不好也会引起30P电容无效或MCU速度变慢
/*
;***************************************************************************
;连线图:
;*LCM---STC12* *LCM---STC12* *LCM-------STC12* *LCM----------STC12* *
;*DB0---P0.0* *DB4---P0.4* *D/I-------P2.6* *CS1----------P2.4* *
;*DB1---P0.1* *DB5---P0.5* *R/W-------P2.7* *CS2----------P2.5* *
;*DB2---P0.2* *DB6---P0.6* *o/RST-----VCC* *CS3----------P3.2* *
/*DB3---P0.3* *DB7---P0.7* *E---------P2.3* *
STC12C5A60S2的晶振频率为12MHz
/*------------12864屏的接线,这里用串口驱动---------------*/
/***********************12864带字库**********************************************
LED负-LED正-VOUT-RST--NC-PSB--DB7-DB6-DB5-DB4-DB3-DB2-DB1-DB0-E-R/W-RS-VO-VCC-GND
************************12864无字库**********************************************
LED正-LED负-VOUT-RST-CS2-CS1--DB7-DB6-DB5-DB4-DB3-DB2-DB1-DB0-E-R/W-RS-VO-VCC-GND
20-----19----18--17--16--15---14--13--12--11--10---9---8---7--6--5--4---3--2---1
*********************************************************************************
//液晶模块指令集说明
//#define 0x01 //清显示指令
//#define 0x06 //设置输入模式
//#define 0x0c //设置开显控制
//#define 0x30 //功能设定(基本指令)
//#define 0x34 //功能设定(扩充指令)
//#define 0x36 //设置绘图功能
//-----------------------------------------------
/*
第一行0X80-0X81-0X82-0X83-0X84-0X85-0X86-0X87
第三行0X88-0X89-0X8A-0X8B-0X8C-0X8D-0X8E-0X8F
第二行0X90-0X91-0X92-0X93-0X94-0X95-0X96-0X97
第四行0X98-0X99-0X9A-0X9B-0X9C-0X9D-0X9E-0X9F
-------1----2----3----4----5----6----7----8--
/*********************************************************************************************
说明:
-------[DS1302用户寄存器说明]---------
每个闹钟占用DS1302的三个RAM,从第5个RAM开始使用。
每三个RAM中的第一个为当前闹钟的开关,
第二个为设置的小时值,
第三个为设置的分钟值。
0XC1用于自动背光控制开关。
0XC3用于整点报时状态设置。
0XC5用于背光亮度设置。
0XC7用于闹钟总开关,
0xFB用于存放加或减(1/0)校时程序用RAM,,
0XFD用于存放加减的秒数(0~20秒)
/*0XC1*RAM1写入是否自动亮度控制的标记*如果是1就自动,0按照设置的亮度进行控制
0XC5*RAM5写入自动亮度控制量0-----9级*/
////整点报时设置0XC3
//----------------------------------------
/*0XFB*RAM29写入是否校时的标记*如果是1就校时,0不校时
0XFD*RAM30写入校时的时间量0-----20秒*/
// 自动亮度 报时 亮度 闹钟总
//0XC0--0XC1--0XC2--0XC3--0XC4--0XC5--0XC6--0XC7
//0XC8--0XC9--0XCA--0XCB--0XCC--0XCD--0XCE--0XCF
//0XD0--0XD1--0XD2--0XD3--0XD4--0XD5--0XD6--0XD7
//0XD8--0XD9--0XDA--0XDB--0XDC--0XDD--0XDE--0XDF
//0XE0--0XE1--0XE2--0XE3--0XE4--0XE5--0XE6--0XE7
//0XE8--0XE9--0XEA--0XEB--0XEC--0XED--0XEE--0XEF
//0XD0--0XD1--0XD2--0XD3--0XD4--0XF5--0XF6--0XF7
//--0XF8--0XF9
// 加或减
//--0XFA--0XFB
// 加减的秒数
//--0XFC--0XFD
//--0XFE--0XFF
/*********************************************************************************************
说明:
-------[DS1302用户寄存器说明]---------
每个闹钟占用DS1302的三个RAM,从第5个RAM开始使用。
每三个RAM中的第一个为当前闹钟的开关,第二个为设置的小时值,第三个为设置的分钟值。
0xc6用于闹钟总开关,0xc2用于整点报时状态设置。
0xc4用于背光亮度设置。0xc0用于自动背光控制开关。
校时程序用RAM,0xFA用于存放加或减(1/0),0XFC用于存放加减的秒数(0~20秒)
----------------------------------------
//unsigned char 单字节 0~255
/*----------------------------------------------------------------------
unsigned char 才是正统放字符的,它的范围是0-255;char 是:-128-127
unsigned int 是无符号整型,范围是:0-65535;
int是整型数据
int :范围是:-32768 - 32767
unsigned long int 就是无符号长整型数据
unsigned long int的取值范围: 0~4294967295 即 0~(2的32次方-1)
unsigned long int在C语言中是无符号长整形变量,是整形变量的一种。
unsigned long int 与unsigned long是等价的,即定义的时候int可以不写。
C语言字节数为4,与long型数据一样。
unsigned 是无符号 long是长
//****************************************************************************************
两个字节就是16位,
int是有正负之分的,就是第一位是符号位。
而unsigned int只有正数,只不过它的第一位不是符号位。
2^16=65536,那么它的范围就是0-65536
//*********************************************************************************
unsigned long int
unsigned long int在C语言中是无符号长整形变量,是整形变量的一种。
unsigned long int 与unsigned long是等价的,即定义的时候int可以不写。 C语言字节数为4,与long型数据一样。
unsigned long int的取值范围: 0~4294967295 即 0~(2的32次方-1)
unsigned 是无符号 long是长 int是整型数据 unsigned long int 就是无符号长整型数据
unsigned
整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),
在默认情况下声明的整型变量都是有符号的类型(char有点特别),
如果需声明无符号类型的话就需要在类型前加上unsigned。
无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的数据,
比如16位系统中一个int能存储的数据的范围为-32768~32767,
而unsigned能存储的数据范围则是0~65535。由于在计算机中,整数是以补码形式存放的。
根据最高位的不同,如果是1,有符号数的话就是负数拉;如果是无符号数,则都解释为正数。
同时在相同位数的情况下,所能表达的整数范围变大。另外,unsigned若省略后一个关键字,
大多数编译器都会认为是unsigned int。
int
int数据类型,在32位系统中(现在基本上int都是32位),范围-2147483648~+2147483647。
unsigned类型 的int 范围:0~4294967295 即 0~(2的32次方-1)
所以我觉得unsigned int 与 unsigned long 在一般情况下是一样的
//***************************************************************************************
typedef unsigned char BYTE 的意思
就是在这个说明以后就可以在程序中用BYTE
代替unsigned char了,这只是为了编写代码的方便而已!
BYTE在这里还是一个类型,并不是一个变量,里面没有存储东西。
你可以 BTYE ar=‘a’,这时候变量ar中存储的就是字符a,
你输出变量ar的值的话,取决于什么样的语言。
在c语言中输出可以字符或者是与这个字符等价的整数。
在C/C++中char 表示一个字符变量,占8位,但是可以解释为int型的整数。
unsigned char表示 0~255 的整数或者对应的字符,例如‘A’等价于65(十进制),
而char表示的范围位-128~127,意义同上
知识点:typedef与#define的区别
typedef:类型定义,其功能是用户为已有数据类型取“别名”。
如:typedef int INT; 意思是将int重新定义为INT,以后使用INT a;就相当于int a;
用typedef定义数组、指针、结构等类型将带来很大的方便,
不仅使程序书写简单,而且使意义更为明确,因而增强了可读性。
例如:typedef int a[10];表示a是整型数组类型,数组长度为10,
然后就可用a定义变量,如:a s1,s2;完全等效于:int s1[10],s2[10];
define:宏定义。
如:#define PI 3.14 意思是以后程序中出现PI的地方将用3.14代替,
这个替换是在编译预处理阶段完成的,注意#define最后没有分号,否则编译时将分号一同带入PI中
unsigned short int 无符号2字节短整形
short int 带符号2字节短整形 - 32768 ~ 32767
unsigned int 无符号4字节整形 0 ~ 2^32 -1 (这个是对的)
int 4字节整形 - 2^31 ~ 2^31 - 1
int 64 64位(8字节)整形 - 2^63 ~ 2^63 - 1
(这个很少用到,一般是表示为高位int和低位int,贝式弧现对它的范围也给错了)
//****************************************************************************
unsigned int x = 0;
请问 x - 1 的值是多少,并说明原理,
- 1(减1), 可以用 加1的补码 表示. -- 减法用补码加法实现.
unsigned int -- 有的编译器处理成unsigned long int, (32位), 有的编译器处理成unsigned short int, (16位),
我们用MS VC++编译器,处理成unsigned long int, (32位).
1的反码是 11111111 11111111 11111111 11111110
反码加1是补码: 11111111 11111111 11111111 11111111
x = 0: 00000000 00000000 00000000 00000000
x -1 = 00000000 00000000 00000000 00000000 + 11111111 11111111 11111111 11111111
得: 11111111 11111111 11111111 11111111
写成16进制是 0xffffffff
16进制好记,好懂, 就不给你转10进制了. (10进制数值等于2的32次方减1).
//**********************************************************************************
volatile unsigned int 什么意思
volatile的意思是告诉编译器,在编程源代码时,对这个变量不要使用优化。
在一般的程序设计中,如:
int *a; int b;
b = (*a) * (*a);这种情况。
通常编译器为了减少存储器的读写时间,会把代码优化为:
int *a; int b; int c;
c = *a;
b = c * c;
因为外部存储器的读写速度肯定赶不上内存的读写速度,这样可以省一次外部存储器的读取时间,从而提高速度。
如果把int *a改为volatile int* a编译器就不会自动把它优化掉了。
在整个运算过程中,对变量*a的值读取了再次。
防止因变量*a的值在这一期间发生了改变,而导致程序结果的错误。
//**************************************************************************************************
typedef unsigned char byte;
#define MCODE code
extern byte MCODE VerDate[];
byte XDATA timer_1ms_L _at_ 0x1F74;
#define MCU_DATA ((byte data*)(0x00))
data表明数据在片内数据存储区;
xdata表明数据在片外数据存储区;
code表明数据在程序存储区;
extern定义的数据是在另外一个模块,当引用其它文件中的变量时要加上extern。
extern的重要意义在于表明要定义的数据已经在其他地方定义过,此处只是引用,所以编译器不会另外开辟内存。
byte 是字节的意思,
第二行 #define MCODE code一句指明MCODE 代表code;所以第三行
extern byte MCODE VerDate[];
的意思是在程序存储空间定义字节型数组,因为加了extern,
所以本语句并不开辟内存空间,只是调用其他地方已经定义过的数组。
第四行:
byte XDATA timer_1ms_L _at_ 0x1F74;
意思是定义片外数据存储区的变量timer_1ms_L _at_,值为 0x1F74;
第五行:#define MCU_DATA ((byte data*)(0x00))
意思是定义指向字节型的片内数据存储区的指针MCU_DATA ,并赋值为Ox00.
//**************************************************************
typedef unsigned char byte;意思
就是用‘byte’来代替 unsigned char
比如你原来这样写:
unsigned char ch[10];
现在你可以这样写
byte ch[10];
typedef unsigned char BYTE;
就是unsigned char,,
你可以认为 typedef 是一种定义别名的方法,和宏定义一样.
typedef unsigned __int8 INT8U; 的意思是经过预处理之后, 所有 INT8U 都会被 unsigned __int8 取代.
你在源代码中这样书写: INT8U i;
编译器实际看见的是: unsigned __int8 i;
这样做的好处是让你的代码更简短.
//*************************************************************************************
int和long int二者的范围是一致的,都是-2^31---2^31-1,能表示的最大值是0x7FFFFFFF;
unsigned int和unsigned long int二者的范围也是一致的,都是0---2^32-1,能表示的最大值是0xFFFFFFFF;
假设一个输入字符串inputdata的合法值是0x0-0xFFFFFFFF,你需要检查输入数据的有效性,怎么办?
刚开始我用下面的这个方法:
int a;
a = atoi(inputdata);
if(a<0x0 || a>0xFFFFFFFF)
return BOOL_FALSE;
结果发现无论输入多大的值,检查都是成功的.后来追查原因,发现如果输入大于0x7FFFFFFF的值,a的值都是0x7FFFFFFF,
当然不会超过0xFFFFFFFF了,没有达到检测的目的.
后来把a的定义改为unsigned int a,还是不行,原来atoi的函数原型是int atoi(const char *nptr);
再后来不用atoi了,改用sscanf,如下所示:
unsigned int a;
sscanf(inputdata, "%u", (unsigned int *)&a) ;
if(a<0x0 || a>0xFFFFFFFF)
return BOOL_FALSE;
可又有一个问题,如果输入超过0xFFFFFFFF的值,a的值都是0xFFFFFFFF,用a>0xFFFFFFFF来检查没有达到目的.
如果用a>=0xFFFFFFFF 来检查似乎达到目的了,不过如果用户恰好输入0xFFFFFFFF这个值程序会认为输入非法,
而我又想允许用户输入0xFFFFFFFF这个值,怎么办呢?
无奈之下,只好用了long long: (c99支持long long)
long long a;
a = atoll(inputdata);
if(a<0x1 || a>0xFFFFFFFF)
return BOOL_FALSE;
//********************************************************************************************
Int64 值类型表示值介于 -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之间的整数。
Int64 为比较此类型的实例、
将实例的值转换为它的字符串表示形式以及将数字的字符串表示形式转换为此类型的实例提供了相应的方法。
警告 在 32 位 Intel 计算机上分配 64 位值不是原子操作;
即该操作不是线程安全的。这意味着,如果两个人同时将一个值分配给一个静态 Int64 字段,
则该字段的最终值是无法预测的。
有关格式规范代码如何控制值类型的字符串表示形式的信息,请参见格式化概述。
此类型实现接口 IComparable、IFormattable 和 IConvertible。使用 Convert 类进行转换,
而不是使用此类型的 IConvertible 显式接口成员实现。
-------------------------------------------------------------------------*/
/*----------------- -单片机头文件------------*/
#include <STC12C5A60S2.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#include "SoundPlay.h"//单片机音乐H文件
#include "ht6221.h" //遥控芯片H文件
uchar DSS (void); //汇编语言读18B20温度程序声明
uchar temperature; //定义温度全局变量(图形温度计用)
uchar tempera; //定义温度全局变量(其他温度用)
uchar disdata[5];
uchar th1=2;
uchar th2=3;
uchar th3=2;
uchar th4=0;
uint th;
uint th5;
/****定义时间映射全局变量(专用寄存器)*/
uchar Dianya;
/****************年-月--日--星期-时-分-秒*/
unsigned char yy,mo,days,xinq,hh,mm,ss;
unsigned char year_10,noliyue;
unsigned char shi,ge,secl,e=0;
static uchar dayflag2 = 0; //农历转换变量
unsigned char noliyear;//
unsigned char sec_temp,min_temp,hour_temp;
unsigned char v,t;//定义静态小时更新用数据变量
unsigned char menu = 0; //调整菜单变量
unsigned char r,sb;
unsigned char d;
unsigned char KA; //界面切换变量
unsigned char ZTB; //字体变换变量
/*函数功能:输入BCD阳历数据,输出BCD星期数据(只允许1901-2099年)
调用函数示例:Conver_week(c_sun,year_sun,month_sun,day_sun)
如:计算2004年10月16日Conversion(0,0x4,0x10,0x16);
c_sun,year_sun,month_sun,day_sun均为BCD数据,c_sun为世纪标志位,c_sun=0为21世
纪,c_sun=1为19世纪
调用函数后,原有数据不变,读week得出阴历BCD数据*/
///月份数据表
code uchar day_code1[9]={0x0,0x1f,0x3b,0x5a,0x78,0x97,0xb5,0xd4,0xf3};
code uint day_code2[3]={0x111,0x130,0x14e};
bit c_moon;
data uchar year_moon,month_moon,day_moon,week;
code uchar table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}; //修数据表
uchar c_sun,year_sun,month_sun,day_sun;
bit BEEP_bit; //闹钟标志位
bit menu2 = 0; //
bit shengri_bit; // 生日标志位
bit m; //冒号":"以秒闪烁标记
bit tflag ; //负温度标记
bit CKTIME_1=0 ; //允许调整校时标记标记
bit faceouto=0; // 界面读取标记
bit Autofance=0; // 自动界面读取标记
//按键引脚定义
sbit KEY_1 = P3^0; //A
sbit KEY_2 = P3^3; //B
sbit KEY_3 = P1^6; //C
sbit KEY_4 = P3^1; //D
//-----------------------------------------------
#define KEY_VAL 20 //定义按键手感(按键延时)
uchar key =20; //按键延时用
uchar LCDlightsu=80; //LCD背光自动控制最暗(数据越大亮度低,否则越亮)
unsigned char lcdPosX, lcdPosY; //X,Y坐标
unsigned char halfScr, halfLineCnt, basicBlock; //半屏,半屏行数,N*8块
//-----------------------------------------------
/************这里是按键声音的函数调用***另外在soundplay.h中也有一定义是唱歌用的*/
sbit beep = P3 ^ 7; //扬声器(独立时序CLOK2复用接口,不能更改)
/************可手动或自动调光***************************************************/
sbit ADC_L = P1 ^ 3; //光敏二极管ADC采光定义
sbit LCDlight = P1 ^ 4; //液晶屏背光定义(PWM控制,不能更改)
/*--------------温度用了汇编程序----------------------------*/
sbit DQ = P2 ^ 6; //DS18B20温度传感器定义
#define Lcd_Bus P0 //数据总线
sbit RS = P2 ^ 5; //并口屏用(未用)模式位,为0输入指令,为1输入数据
/*-----------串口只用了下面的接线,PSW必须拉低电平---------*/
sbit E = P2 ^ 4; //时钟 //LCD接口定义使能位 E-------------
sbit RW = P2 ^ 3; //数据 //LCD接口定义 RW------------
sbit PSB = P2 ^ 2; //电平拉低(串口)(拉高并口用) //LCD接口定义 (CS1)
sbit LCRst = P2 ^ 0; //复位脚
/*---------时钟芯片的接线---------------------------*/
/*--------发现了DS1302用P2口驱动必须上拉10电阻-K--------*/
sbit clock_Rst = P3 ^ 4; //ds1302_Rst(复位线)//DS1302时钟接口
sbit clock_dat = P3 ^ 5; //ds1302_dat(数据线)//DS1302时钟接口
sbit clock_clk = P3 ^ 6; //ds1302_clk(时钟线)//DS1302时钟接口
//定义累加器A中的各位
sbit a0 = ACC ^ 0;
sbit a1 = ACC ^ 1;
sbit a2 = ACC ^ 2;
sbit a3 = ACC ^ 3;
sbit a4 = ACC ^ 4;
sbit a5 = ACC ^ 5;
sbit a6 = ACC ^ 6;
sbit a7 = ACC ^ 7;
/************************************************************************
函数功能: 向LCM中填写 年 月 日 时 秒 数据
入口参数:
出口参数:
//************************************************************************/
uchar code secHand[][2]=//长度25
{
{ 0,24},{ 2,23},{ 5,23},{ 7,22},{10,22},
{12,20},{14,20},{16,18},{18,16},{20,14},
{20,12},{22,10},{22, 7},{23, 5},{23, 2},
};
uchar code minHand[][2]=//长度20
{
{ 0,20},{ 2,19},{ 4,19},{ 6,19},{ 8,18},
{10,17},{11,16},{13,14},{14,13},{16,11},
{17,10},{18, 8},{19, 6},{19, 4},{19, 2},
};
uchar code houHand[][2]=//长度15
{
{ 0,15},{ 1,14},{ 3,14},{ 4,14},{ 6,13},
{ 7,13},{ 8,12},{10,11},{11,10},{12, 8},
{13, 7},{13, 6},{14, 4},{14, 3},{14, 1},
};
uchar code mininums[][15]=
{
{1,1,1, 1,0,1, 1,0,1, 1,0,1, 1,1,1,},//0
{0,1,0, 0,1,0, 0,1,0, 0,1,0, 0,1,0,},//1
{1,1,1, 0,0,1, 1,1,1, 1,0,0, 1,1,1,},//2
{1,1,1, 0,0,1, 1,1,1, 0,0,1, 1,1,1,},//3
{1,0,0, 1,0,0, 1,1,1, 0,0,1, 0,0,1,},//4
{1,1,1, 1,0,0, 1,1,1, 0,0,1, 1,1,1,},//5
{1,1,1, 1,0,0, 1,1,1, 1,0,1, 1,1,1,},//6
{1,1,1, 0,0,1, 0,0,1, 0,0,1, 0,0,1,},//7
{1,1,1, 1,0,1, 1,1,1, 1,0,1, 1,1,1,},//8
{1,1,1, 1,0,1, 1,1,1, 0,0,1, 1,1,1,},//9
{0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0,},//□
};
/**************表盘时钟的数据库***************************************************/
uchar code pic[]=
{ /*-- 调入了一幅图像:表盘.BMP --*/
/*-- 宽度x高度=128x64 --*/
0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x3F,0xFC,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x77,0x00,0x03,0xC0,0x03,0xC0,0x00,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x55,0x00,0x1C,0x02,0xE0,0x38,0x00,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x77,0x00,0x60,0x02,0x20,0x06,0x00,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x55,0x00,0x80,0x02,0xE0,0x01,0x00,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x77,0x03,0x80,0x02,0x80,0x01,0xC0,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x04,0x40,0x02,0xE0,0x02,0x20,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x18,0x20,0x00,0x00,0x04,0x18,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xBC,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xA4,0x00,0x00,0x00,0x00,0x00,0x00,0x3D,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xBC,0x00,0x00,0x01,0x80,0x00,0x00,0x05,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x84,0x00,0x00,0x01,0x80,0x00,0x00,0x3D,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xBC,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x3D,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x18,0x20,0x00,0x00,0x04,0x18,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x04,0x40,0x03,0xC0,0x02,0x20,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x77,0x03,0x80,0x02,0x00,0x01,0xC0,0xEE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x55,0x00,0x80,0x03,0xC0,0x01,0x00,0xAA,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x77,0x00,0x60,0x02,0x40,0x06,0x00,0xEE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x55,0x00,0x1C,0x03,0xC0,0x38,0x00,0xAA,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x77,0x00,0x03,0xC0,0x03,0xC0,0x00,0xEE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x3F,0xFC,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
/* (128 X 64 )*/
};
uchar code kongxinga[13][64]= {
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x01,0xF8,0x03,0x0C,0x06,0x7E,
0x0D,0xCE,0x0F,0x8E,0x1B,0x0E,0x1B,0x0E,0x36,0x0E,0x36,0x0E,0x66,0x0E,0x6C,0x1E,
0x6C,0x1E,0xCC,0x3E,0xD8,0x36,0xD8,0xEC,0xD9,0xCC,0xDF,0x18,0xCC,0x30,0x60,0xE0,
0x33,0x80,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"0",0*/},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x1F,0x00,0x1B,0x00,0x36,
0x00,0x36,0x00,0x6C,0x00,0xCC,0x00,0xD8,0x01,0x98,0x01,0xB0,0x03,0x60,0x06,0x60,
0x06,0xC0,0x0C,0xC0,0x0D,0x80,0x19,0x80,0x1B,0x00,0x33,0x00,0x66,0x00,0x66,0x00,
0x6C,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"1",0*/},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x01,0xC6,0x03,0x03,
0x03,0x3D,0x06,0xED,0x07,0x8D,0x03,0x1B,0x00,0x1B,0x00,0x33,0x00,0x66,0x00,0x66,
0x00,0xCC,0x01,0x98,0x01,0x98,0x03,0x30,0x06,0x3C,0x1C,0x06,0x70,0x03,0xC0,0x7B,
0x87,0xCE,0xBC,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"2",0*/},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE0,0x01,0xB8,0x00,0xCC,0x00,0x76,0x00,0x1B,
0x00,0x19,0x00,0x33,0x00,0x66,0x00,0xC6,0x01,0x8C,0x03,0x18,0x0E,0x30,0x38,0x1C,
0xE0,0x06,0x81,0xFB,0x9F,0x19,0xF0,0x31,0x00,0x63,0x00,0xC6,0x03,0x8C,0x0E,0x18,
0x38,0x70,0x30,0xC0,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"3",0*/},
{
0x00,0x00,0x00,0x60,0x00,0x70,0x00,0xD8,0x00,0xD8,0x01,0x98,0x03,0x38,0x03,0x7C,
0x06,0x76,0x06,0xF6,0x0C,0xF6,0x19,0xE6,0x1B,0x66,0x33,0x6C,0x66,0x67,0xEC,0xC1,
0xC7,0x81,0x80,0x03,0x00,0x1E,0x01,0x98,0x1F,0xD8,0xF1,0x98,0x01,0xB0,0x01,0xB0,
0x00,0xF0,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"4",0*/},
{
0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0x9C,0x03,0x06,0x06,0x03,0x06,0x1F,0x06,0x76,
0x06,0xC0,0x0D,0x80,0x1B,0x00,0x36,0x00,0x37,0xE0,0x60,0x38,0xC0,0x0C,0x81,0xF6,
0x07,0x1B,0x1C,0x0D,0x70,0x19,0xC0,0x19,0x00,0x31,0x00,0x33,0x00,0x66,0xE1,0xCC,
0xFF,0x18,0x60,0x30,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"5",0*/},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x1D,0x00,0x33,
0x00,0x66,0x00,0xCC,0x01,0x98,0x03,0x30,0x03,0x70,0x06,0x60,0x0C,0xC0,0x0D,0x80,
0x38,0xC0,0xE0,0x60,0x67,0x30,0x6D,0x98,0x6D,0x98,0x67,0x18,0x60,0x30,0x60,0x60,
0x31,0xC0,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"6",0*/},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0xC0,0x03,0x7C,0x61,
0x07,0xF3,0x00,0x66,0x00,0xCC,0x00,0xD8,0x01,0x98,0x03,0x30,0x03,0x60,0x06,0xC0,
0x06,0xC0,0x0D,0x80,0x19,0x80,0x1B,0x00,0x36,0x00,0x36,0x00,0x6C,0x00,0x6C,0x00,
0xD8,0x00,0xD8,0x00,0xF0,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"7",0*/},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x66,0x01,0xDF,
0x03,0x30,0x03,0x63,0x06,0xCF,0x06,0xDB,0x06,0xFE,0x06,0xD8,0x07,0x70,0x0C,0x60,
0x39,0xF0,0x63,0xD8,0xCE,0x78,0xD8,0xD8,0xB1,0x98,0xF3,0x30,0xEE,0x60,0xB8,0xC0,
0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"8",0*/ },
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,0x0E,0x0E,0x18,0xFB,0x33,0x8D,
0x66,0x07,0xCC,0x03,0xD8,0x1C,0xD8,0xF7,0xCF,0x87,0x60,0x0C,0x3E,0x18,0x06,0x30,
0x06,0x30,0x0C,0x60,0x0C,0xC0,0x19,0x80,0x19,0x80,0x33,0x00,0x33,0x00,0x66,0x00,
0x66,0x00,0x6C,0x00,0x6C,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"9",0*/ },
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xF0,0x00,0xF0,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x80,0x03,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*":",0*/ },
{// 图片" " 空白 如果秒不闪空就用不到!
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{
0x00,0x00,0x0C,0x70,0x13,0x88,0x11,0xA8,0x09,0x68,0x09,0x28,0x09,0x30,0x08,0xD0,
0x08,0x10,0x08,0xF0,0x11,0x50,0x08,0x8E,0x08,0x61,0x12,0x5F,0x6E,0x40,0x52,0x40,
0xA2,0x80,0x42,0x60,0x02,0x10,0x02,0x48,0x04,0x68,0x04,0xA8,0x02,0xA8,0x01,0x28,
0x00,0x30,0x00,0x30,0x00,0x50,0x07,0xA0,0x08,0x40,0x07,0x80,0x00,0x00,0x00,0x00},/*"号",0*/
};
uchar code huakangshonv[13][64]= {
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,
0x1F,0xFE,0x3E,0x3F,0x78,0x0F,0xF0,0x07,0xE0,0x03,0xE0,0x03,0xC0,0x01,0xC0,0x01,
0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x03,0xC0,0x03,0xE0,0x07,0xF0,0x0F,
0xF8,0x1F,0x7F,0xFE,0x3F,0xFC,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"0",*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,
0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,
0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,
0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF8,
0x1F,0xFE,0x7E,0x0F,0x78,0x07,0xF0,0x03,0xE0,0x03,0xE0,0x03,0xC0,0x03,0x00,0x07,
0x00,0x1F,0x00,0x3E,0x00,0xF8,0x03,0xF0,0x07,0xC0,0x0F,0x00,0x1E,0x00,0x1C,0x03,
0x1C,0x07,0x1F,0x3F,0x0F,0xFE,0x07,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"2",*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,
0x3F,0xF8,0xFC,0x3C,0xF0,0x1C,0xE0,0x0E,0x00,0x0E,0x00,0x1C,0x00,0x3C,0x00,0x7C,
0x00,0xF8,0x07,0xFE,0x1F,0xFF,0x3F,0x0F,0x18,0x07,0x00,0x07,0x00,0x07,0x00,0x07,
0x00,0x07,0x00,0x0F,0x00,0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"3",*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1C,
0x1F,0x3C,0x3C,0x3C,0x78,0x38,0x78,0x38,0xF0,0x38,0xE0,0x38,0xE0,0x38,0xC0,0x38,
0xC0,0x38,0xC0,0x78,0x80,0x78,0xC0,0x78,0xC0,0x71,0xE0,0x77,0xF8,0x7F,0x7F,0xFF,
0x1F,0xF0,0x00,0x70,0x00,0x78,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"4",*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,
0xFF,0xFF,0xFF,0xFF,0xE0,0x07,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x80,0x00,0x8F,0xF8,
0xFF,0xFE,0xFF,0x3F,0xF0,0x07,0xC0,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,
0x00,0x01,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"5",*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,
0x1F,0x00,0x3E,0x00,0x78,0x00,0x70,0x00,0xF0,0x00,0xE7,0xFC,0xFF,0xFF,0xFF,0x0F,
0xFC,0x03,0xF0,0x03,0xE0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x03,0xE0,0x03,
0xF0,0x07,0x7F,0x3F,0x3F,0xFE,0x07,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"6",*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFC,
0xFF,0xFF,0xF8,0x1F,0x80,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,
0x00,0x03,0x00,0x03,0x00,0x07,0x00,0x0F,0x00,0x0E,0x00,0x1E,0x00,0x3C,0x00,0x78,
0x00,0x78,0x00,0xF0,0x01,0xE0,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"7",*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF8,
0x7F,0xFE,0xFC,0x1F,0xE0,0x07,0xC0,0x03,0xC0,0x01,0xC0,0x01,0xC0,0x03,0xF0,0x07,
0xFE,0x1F,0xFF,0xFF,0xEF,0xFF,0xC0,0x03,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x03,
0xF0,0x07,0xFE,0x3F,0x3F,0xFE,0x0F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"8"*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFC,
0x3F,0xFE,0x7E,0x1F,0xF8,0x07,0xE0,0x03,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,
0xC0,0x03,0xC0,0x03,0xC0,0x07,0xF0,0x1F,0xFF,0xFF,0x3F,0xFB,0x0F,0xC3,0x00,0x07,
0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"9",*/
{// 图片":" 10
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0,0x01,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*":",0*/},
{// 图片" " 空白 如果秒不闪空就用不到!
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{
0x00,0x00,0x00,0x00,0x03,0xE0,0x0F,0xF0,0x0F,0xF8,0x18,0x08,0x10,0x08,0x10,0x08,
0x10,0x08,0x10,0x08,0x18,0x18,0x0F,0xF8,0x07,0xF0,0x00,0x00,0x00,0x00,0x3F,0xF0,
0x3F,0xFC,0x0C,0x7C,0x08,0x00,0x08,0x00,0x08,0xE0,0x0B,0xF0,0x0F,0x90,0x0E,0x08,
0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x18,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00},/*"号",0*/
};
uchar code maozhedong[13][64]= {
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,
0x1E,0x3C,0x3C,0x3E,0x3C,0x1E,0x7C,0x1F,0x7C,0x1F,0x7C,0x1F,0x7C,0x1F,0x7C,0x1F,
0x7C,0x1F,0x7C,0x1F,0x7C,0x1F,0x7C,0x1F,0x7C,0x1F,0x3C,0x1E,0x3C,0x3E,0x1E,0x3C,
0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*"0",0*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,
0x01,0xF8,0x07,0xF8,0x1F,0xF8,0x19,0xF8,0x01,0xF8,0x01,0xF8,0x01,0xF8,0x01,0xF8,
0x01,0xF8,0x01,0xF8,0x01,0xF8,0x01,0xF8,0x01,0xF8,0x01,0xF8,0x01,0xF8,0x01,0xF8,
0x0F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*"1",1*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFC,
0x1F,0xFE,0x1C,0x7E,0x38,0x3F,0x30,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x3E,0x00,0x3C,
0x00,0x78,0x00,0xF0,0x01,0xE0,0x03,0x80,0x07,0x01,0x0E,0x03,0x1F,0xFF,0x3F,0xFF,
0x7F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*"2",2*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,
0x1F,0xFC,0x18,0x7C,0x30,0x7C,0x00,0x7C,0x00,0x78,0x00,0xE0,0x01,0xFC,0x03,0xFE,
0x00,0x7F,0x00,0x3F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1E,0x7C,0x3E,0x7E,0x7C,
0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*"3",3*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,
0x00,0x3C,0x00,0x7C,0x00,0xFC,0x01,0xFC,0x01,0xFC,0x03,0x7C,0x07,0x7C,0x0E,0x7C,
0x1C,0x7C,0x18,0x7C,0x30,0x7C,0x7F,0xFF,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*"4",4*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1F,0xFE,
0x1F,0xFE,0x1F,0xFC,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1F,0xF0,0x1F,0xFC,0x1F,0xFE,
0x00,0x7F,0x00,0x3F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x3C,0x1E,0x3E,0x3C,
0x1F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*"5",5*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,
0x00,0xF8,0x03,0xE0,0x07,0xC0,0x0F,0x80,0x1F,0x00,0x1F,0x00,0x3F,0xFE,0x3F,0x1F,
0x3E,0x1F,0x3E,0x0F,0x3E,0x0F,0x3E,0x0F,0x3E,0x0F,0x3E,0x0F,0x1F,0x0F,0x0F,0x1F,
0x03,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*"6",6*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,
0x3F,0xFF,0x3F,0xFF,0x70,0x0F,0x70,0x0F,0x00,0x1E,0x00,0x1E,0x00,0x3C,0x00,0x3C,
0x00,0x78,0x00,0x78,0x00,0xF0,0x00,0xF0,0x01,0xE0,0x01,0xE0,0x03,0xC0,0x07,0xC0,
0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*"7",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFC,
0x1E,0x1F,0x1E,0x0F,0x3E,0x0F,0x3E,0x0F,0x3F,0x0F,0x1F,0xDE,0x1F,0xFC,0x07,0xFC,
0x07,0xFE,0x1F,0x7F,0x3E,0x1F,0x3E,0x0F,0x3C,0x07,0x3E,0x07,0x3E,0x07,0x1F,0x0E,
0x07,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*"8",8*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFC,
0x1F,0x1E,0x3E,0x1F,0x3E,0x0F,0x3E,0x0F,0x7E,0x0F,0x3E,0x0F,0x3E,0x0F,0x3E,0x0F,
0x1F,0x3F,0x07,0xFF,0x00,0x1F,0x00,0x3F,0x00,0x3E,0x00,0x7C,0x00,0xF8,0x03,0xE0,
0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*"9",9*/
{// 图片":" 10
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0,0x01,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*":",0*/},
{// 图片" " 空白 如果秒不闪空就用不到!
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{
0x00,0x00,0x00,0x18,0x0D,0x12,0x0D,0x2A,0x14,0x94,0x14,0xA4,0x94,0xAC,0xB4,0xC8,
0xF4,0xD0,0x75,0x90,0x61,0x20,0x22,0xB0,0x1E,0xB0,0x18,0xB0,0x31,0xF0,0x71,0xF0,
0xF2,0xD0,0xA2,0xA0,0x23,0x30,0x24,0x50,0x34,0x50,0x3C,0x92,0x0C,0xA2,0x0D,0x22,
0x19,0x26,0x09,0x3C,0x0A,0x10,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"号",0*/
};
uchar code bignums[13][64]={
{
0x00,0x00,0x1F,0xF8,0x3F,0xFC,0x6F,0xF6,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x20,0x04,0x50,0x0A,
0x20,0x04,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF6,0x3F,0xFC,0x1F,0xF8,0x00,0x00,
/* (16 X 32 )*/
},
{
0x00,0x00,0x00,0x80,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,
0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x00,0x80,0x01,0x40,
0x00,0x80,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,
0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x00,0x80,0x00,0x00,
/* (16 X 32 )*/
},
{
0x00,0x00,0x3F,0xF8,0x7F,0xFC,0x3F,0xF6,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x1F,0xF6,0x3F,0xFC,
0x6F,0xF8,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,
0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x6F,0xFC,0x3F,0xFE,0x1F,0xFC,0x00,0x00,
/* (16 X 32 )*/
},
{
0x00,0x00,0x3F,0xF8,0x7F,0xFC,0x3F,0xF6,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x3F,0xF4,0x7F,0xFA,
0x3F,0xF4,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x3F,0xF6,0x7F,0xFC,0x3F,0xF8,0x00,0x00,
/* (16 X 32 )*/
},
{0x00,0x00,0x20,0x04,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF4,0x3F,0xFA,
0x1F,0xF4,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x04,0x00,0x00,
/* (16 X 32 )*/
},
{
0x00,0x00,0x1F,0xFC,0x3F,0xFE,0x6F,0xFC,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,
0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x6F,0xF8,0x3F,0xFC,
0x1F,0xF6,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x3F,0xF6,0x7F,0xFC,0x3F,0xF8,0x00,0x00,
/* (16 X 32 )*/
},
{
0x00,0x00,0x1F,0xFC,0x3F,0xFE,0x6F,0xFC,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,
0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x2F,0xF8,0x5F,0xFC,
0x2F,0xF6,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF6,0x3F,0xFC,0x1F,0xF8,0x00,0x00,
/* (16 X 32 )*/
},
{
0x00,0x00,0x3F,0xF8,0x7F,0xFC,0x3F,0xFE,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x04,0x00,0x0A,
0x00,0x04,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x04,0x00,0x00,
/* (16 X 32 )*/
},
{
0x00,0x00,0x1F,0xF8,0x3F,0xFC,0x6F,0xF6,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x2F,0xF4,0x5F,0xFA,
0x2F,0xF4,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF6,0x3F,0xFC,0x1F,0xF8,0x00,0x00,
/* (16 X 32 )*/
},
{
0x00,0x00,0x1F,0xF8,0x3F,0xFC,0x6F,0xFE,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF4,0x3F,0xFA,
0x1F,0xF4,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x3F,0xF6,0x7F,0xFC,0x3F,0xF8,0x00,0x00,
/* (16 X 32 )*/
},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x03,0xC0,
0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,
0x03,0xC0,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* (16 X 32 )*/
},
{// 图片" " 空白 如果秒不闪空就用不到!
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x0C,0x18,0x0F,0xF8,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,
0x0C,0x18,0x0C,0x18,0x0F,0xF8,0x0C,0x00,0x00,0x00,0x00,0x07,0x7F,0xFC,0x06,0x00,
0x06,0x00,0x06,0x00,0x06,0x0C,0x07,0xFC,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,
0x00,0x18,0x00,0x18,0x01,0x98,0x00,0xF0,0x00,0x70,0x00,0x60,0x00,0x00,0x00,0x00},/*"号",0*/
} ;
//---------------------汗鼎繁淡古----------------------
uchar code tabHDF[13][64]={
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE0,0x1C,0x70,0x38,0x38,
0x38,0x3C,0x78,0x3C,0x70,0x1C,0x70,0x1E,0xF0,0x1E,0xF0,0x1E,0xF0,0x1E,0xF0,0x1E,
0xF0,0x1E,0xF0,0x1E,0xF0,0x1E,0x70,0x1E,0x70,0x1E,0x78,0x1C,0x78,0x1C,0x38,0x38,
0x3C,0x38,0x1C,0x70,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x80,0x0F,0x80,0x1B,0x80,
0x03,0x80,0x03,0x80,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,
0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,
0x03,0xC0,0x03,0xC0,0x1F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x0F,0xF0,0x1F,0xF8,0x38,0x78,
0x30,0x3C,0x60,0x3C,0x00,0x3C,0x00,0x1C,0x00,0x1C,0x00,0x3C,0x00,0x38,0x00,0x38,
0x00,0x70,0x00,0x60,0x00,0xC0,0x01,0xC0,0x03,0x80,0x07,0x00,0x0E,0x00,0x0C,0x07,
0x18,0x0E,0x7F,0xFE,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x1F,0xF8,0x30,0x78,
0x60,0x38,0x00,0x38,0x00,0x38,0x00,0x30,0x00,0x70,0x00,0xE0,0x01,0xF0,0x07,0xF8,
0x00,0x7C,0x00,0x3C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x38,
0x30,0x38,0x7F,0xF0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0xF0,0x01,0xF0,
0x01,0xF0,0x03,0xF0,0x07,0xF0,0x06,0xF0,0x0C,0xF0,0x1C,0xF0,0x18,0xF0,0x30,0xF0,
0x70,0xF0,0x60,0xF0,0xC0,0xF0,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0x00,0xF0,0x00,0xF0,
0x00,0xF0,0x00,0xF0,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFC,0x07,0xFC,0x0E,0x00,
0x0C,0x00,0x1C,0x00,0x18,0x00,0x3F,0x00,0x3F,0xC0,0x07,0xF0,0x01,0xF0,0x00,0x78,
0x00,0x38,0x00,0x3C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x18,0x00,0x38,
0x60,0x70,0x7C,0xE0,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0xF8,0x03,0x80,0x0F,0x00,
0x1E,0x00,0x3C,0x00,0x3C,0x00,0x78,0x00,0x79,0x80,0xFF,0xF0,0xF8,0xF8,0xF0,0x3C,
0xF0,0x3C,0xF0,0x3E,0xF0,0x1E,0xF0,0x1E,0xF0,0x1E,0xF0,0x1C,0xF0,0x1C,0x70,0x1C,
0x78,0x38,0x3C,0x38,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFE,0x3F,0xFC,0x70,0x1C,
0x60,0x1C,0x60,0x18,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x30,0x00,0x70,0x00,0x70,
0x00,0x60,0x00,0xE0,0x00,0xE0,0x00,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0x80,
0x03,0x80,0x03,0x80,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x1E,0xF0,0x38,0x38,0x38,0x38,
0x70,0x1C,0x78,0x1C,0x78,0x3C,0x38,0x38,0x3C,0x30,0x1E,0x60,0x0F,0xC0,0x07,0xC0,
0x0F,0xF0,0x1C,0xF8,0x38,0x78,0x38,0x3C,0x70,0x1C,0x70,0x1C,0x70,0x1C,0x78,0x1C,
0x38,0x18,0x1C,0x38,0x0F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x0C,0x70,0x18,0x38,0x38,0x3C,
0x38,0x1C,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x3C,0x1E,
0x3C,0x1E,0x1F,0xFE,0x07,0xDC,0x00,0x3C,0x00,0x3C,0x00,0x78,0x00,0x70,0x00,0xE0,
0x01,0xC0,0x07,0x80,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},
{// 图片":" 冒 号
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,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,0x80,0x00,0x88,0x18,0xF8,0x38,0xD8,0x28,0xC0,0x2A,0xF0,
0x25,0xF8,0x27,0xCC,0x27,0x44,0x3D,0x44,0x39,0x70,0x11,0xF8,0x05,0x40,0x3D,0x40,
0x7D,0x70,0x79,0x30,0x51,0x08,0x19,0x54,0x1D,0x74,0x15,0x74,0x05,0x62,0x05,0x62,
0x47,0xF2,0x2A,0xB6,0x3A,0xBE,0x3A,0x8E,0x10,0x04,0x00,0x00,0x00,0x00,0x00,0x00},/*"号",0*/
};
/*========================== 标记及点图片(宽度x高度=16*16)===========================*/
//PCtoLCD2002取模:顺向,逐行式/
uchar code running[10][32]={
{// 警报标记16*16 0 //像大喇叭
0x00,0x00,0x00,0x39,0x00,0x7B,0x00,0xFE,0x01,0xDC,0x0F,0x98,0x0F,0x18,0x0C,0x1F,
0x0C,0x1F,0x0F,0x18,0x0F,0x98,0x01,0xDC,0x00,0xFE,0x00,0x7B,0x00,0x39,0x00,0x00,},
{// 闹铃开启标记16*16 1
0x00,0x00,0x00,0x40,0x00,0xE0,0x01,0xB0,0x01,0xB0,0x03,0x18,0x03,0x18,0x06,0x0C,
0x0C,0x06,0x0C,0xE6,0x1B,0x1B,0x0C,0x06,0x06,0x0C,0x03,0xF8,0x00,0xE0,0x00,0x00,},
{// 键盘锁标记16*16 2
0x00,0x00,0x01,0xF8,0x03,0xFC,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0xFC,0x06,0x96,
0x0E,0xA7,0x0E,0xC7,0x0E,0xA7,0x0E,0x97,0x07,0xFE,0x03,0xFC,0x01,0xF8,0x00,0x00,},
{// 温度计标记16*16 //一个大字母T和一个小三角 3
0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
0x01,0x90,0x01,0x98,0x01,0x9C,0x01,0x9E,0x01,0x9C,0x00,0x18,0x00,0x10,0x00,0x00,},
{// 模式3点16*16 4
0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,
0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},
{// 模式2点16*16 5
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},
{// 篮球器运行标记16*16 6
0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x01,0x80,0x01,0x80,0x01,0x90,
0x01,0x98,0x01,0x9C,0x01,0x9E,0x01,0x9C,0x01,0x98,0x01,0x90,0x00,0x00,0x00,0x00},
{// 开启标记16*16 //像水滴一样的 7
0x00,0x00,0x00,0x40,0x00,0xE0,0x01,0xB0,0x01,0xB0,0x03,0x18,0x03,0x18,0x06,0x0C,
0x0C,0x06,0x0C,0xE6,0x1B,0x1B,0x0C,0x06,0x06,0x0C,0x03,0xF8,0x00,0xE0,0x00,0x00,},
//"℃" tt=0 8
{0x00,0x00,0x30,0x00,0x48,0x00,0x49,0xC0,0x33,0xE8,0x06,0x38,0x0C,0x18,0x0C,0x08,
0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x06,0x08,0x03,0x10,0x01,0xE0,0x00,0x00,},
//温度计图标 像一个温度器 9
{0x00,0x00,0x01,0x80,0x02,0x40,0x02,0xC0,0x02,0x40,0x02,0xC0,0x02,0x40,0x02,0xC0,
0x02,0x40,0x03,0xC0,0x07,0xE0,0x0F,0xF0,0x0F,0xF0,0x07,0xE0,0x03,0xC0,0x00,0x00,},
};
//--------------------------数码体--------------------
uchar code tabshuma[13][64]={
{// 图片数字0
0x00,0x00,0x3F,0xFC,0x5F,0xFA,0x6F,0xF6,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x60,0x06,0x40,0x02,0x00,0x00,
0x40,0x02,0x60,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF6,0x5F,0xFA,0x3F,0xFC,0x00,0x00,0x00,0x00},
{// 图片数字1
0x00,0x00,0x00,0x20,0x00,0x60,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,
0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0x60,0x00,0x20,0x00,0x00,0x00,0x20,
0x00,0x60,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,
0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0x60,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00},
{// 图片数字2
0x00,0x00,0x3F,0xFC,0x1F,0xFA,0x0F,0xF6,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x1F,0xFA,0x3F,0xFC,
0x5F,0xF8,0x60,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,
0x70,0x00,0x70,0x00,0x70,0x00,0x6F,0xF8,0x5F,0xFC,0x3F,0xFE,0x00,0x00,0x00,0x00},
{// 图片数字3
0x00,0x00,0x7F,0xFC,0x3F,0xFA,0x1F,0xF6,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x1F,0xFA,0x3F,0xFC,
0x1F,0xFA,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x1F,0xF6,0x3F,0xFA,0x7F,0xFC,0x00,0x00,0x00,0x00},
{// 图片数字4
0x00,0x00,0x40,0x02,0x60,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x60,0x06,0x5F,0xFA,0x3F,0xFC,
0x1F,0xFA,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x00,0x02,0x00,0x00,0x00,0x00},
{// 图片数字5
0x00,0x00,0x3F,0xFC,0x5F,0xF8,0x6F,0xF0,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,
0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x60,0x00,0x5F,0xF8,0x3F,0xFC,
0x1F,0xFA,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x0F,0xF6,0x1F,0xFA,0x3F,0xFC,0x00,0x00,0x00,0x00},
{// 图片数字6
0x00,0x00,0x3F,0xFC,0x5F,0xF8,0x6F,0xF0,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,
0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x60,0x00,0x5F,0xF8,0x3F,0xFC,
0x5F,0xFA,0x60,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF6,0x5F,0xFA,0x3F,0xFC,0x00,0x00,0x00,0x00},
{// 图片数字7
0x00,0x00,0x7F,0xFC,0x3F,0xFA,0x1F,0xF6,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x00,0x02,0x00,0x00,
0x00,0x02,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x00,0x02,0x00,0x00,0x00,0x00},
{// 图片数字8
0x00,0x00,0x3F,0xFC,0x5F,0xFA,0x6F,0xF6,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x60,0x06,0x5F,0xFA,0x3F,0xFC,
0x5F,0xFA,0x60,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF6,0x5F,0xFA,0x3F,0xFC,0x00,0x00,0x00,0x00},
{// 图片数字9
0x00,0x00,0x3F,0xFC,0x5F,0xFA,0x6F,0xF6,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,
0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x60,0x06,0x5F,0xFA,0x3F,0xFC,
0x1F,0xFA,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,
0x00,0x0E,0x00,0x0E,0x00,0x0E,0x1F,0xF6,0x3F,0xFA,0x7F,0xFC,0x00,0x00,0x00,0x00},
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x07,0xE0,
0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,
0x07,0xE0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{// 图片" " 空白
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{
0x00,0x00,0x00,0x00,0x00,0xF0,0x07,0xF0,0x06,0x70,0x06,0x60,0x06,0x60,0x06,0x60,
0x06,0xE0,0x03,0xC0,0x00,0x00,0x00,0x1E,0x00,0xFE,0x0F,0x80,0x7D,0x80,0x03,0x00,
0x03,0x00,0x03,0xE0,0x07,0xF0,0x06,0x30,0x00,0x30,0x00,0x30,0x00,0x70,0x00,0x60,
0x00,0x60,0x00,0x60,0x00,0x60,0x01,0xE0,0x00,0xC0,0x00,0xC0,0x00,0x00,0x00,0x00},/*"号",0*/
};//,"9",9*
uchar code num1632[13][64]={
{//图片数字0
0x00,0x00,0x0F,0xF0,0x1F,0xF8,0x3F,0xFC,0x7F,0xFE,0x7C,0x3E,0x78,0x1E,0x78,0x1E,
0x78,0x1E,0x78,0x1E,0x78,0x3E,0x78,0x3E,0x78,0x5E,0x78,0x5E,0x78,0x9E,0x78,0x9E,
0x79,0x1E,0x79,0x1E,0x7A,0x1E,0x7A,0x1E,0x7C,0x1E,0x7C,0x1E,0x78,0x1E,0x78,0x1E,
0x78,0x1E,0x78,0x1E,0x7C,0x3E,0x7F,0xFE,0x3F,0xFC,0x1F,0xF8,0x0F,0xF0,0x00,0x00,},
{//图片数字1
0x00,0x00,0x00,0x38,0x00,0x78,0x00,0xF8,0x01,0xF8,0x01,0xF8,0x00,0x78,0x00,0x78,
0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,
0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,
0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x00,},
{//图片数字2
0x00,0x00,0x0F,0xF0,0x1F,0xF8,0x3F,0xFC,0x7F,0xFE,0x7C,0x3E,0x78,0x1E,0x78,0x1E,
0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x3E,0x00,0x7E,0x00,0xFC,0x01,0xF8,
0x03,0xF0,0x07,0xE0,0x0F,0xC0,0x1F,0x80,0x3F,0x00,0x7E,0x00,0x7C,0x00,0x78,0x00,
0x78,0x00,0x78,0x00,0x78,0x1E,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x00,0x00,},
{//图片数字3
0x00,0x00,0x0F,0xF0,0x1F,0xF8,0x3F,0xFC,0x7F,0xFE,0x7C,0x3E,0x78,0x1E,0x78,0x1E,
0x78,0x1E,0x78,0x1E,0x78,0x1E,0x00,0x1E,0x00,0x1E,0x00,0x3E,0x0F,0xFC,0x0F,0xF8,
0x0F,0xF8,0x0F,0xFC,0x00,0x3E,0x00,0x1E,0x00,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,
0x78,0x1E,0x78,0x1E,0x7C,0x3E,0x7F,0xFE,0x3F,0xFC,0x1F,0xF8,0x0F,0xF0,0x00,0x00,},
{//图片数字4
0x00,0x00,0x00,0x1C,0x00,0x3C,0x00,0x7C,0x00,0x7C,0x00,0xFC,0x01,0xFC,0x01,0xFC,
0x03,0xFC,0x07,0xBC,0x07,0xBC,0x0F,0x3C,0x0F,0x3C,0x1E,0x3C,0x1E,0x3C,0x3C,0x3C,
0x3C,0x3C,0x78,0x3C,0x78,0x3C,0x78,0x3C,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,
0x00,0x3C,0x00,0x3C,0x00,0x3C,0x00,0x3C,0x00,0x3C,0x00,0x3C,0x00,0x3C,0x00,0x00,},
{//图片数字5
0x00,0x00,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x78,0x00,0x78,0x00,0x78,0x00,
0x78,0x00,0x78,0x00,0x7B,0xF0,0x7F,0xF8,0x7F,0xFC,0x7F,0xFE,0x7E,0x3E,0x7C,0x1E,
0x7C,0x1E,0x00,0x1E,0x00,0x1E,0x00,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,
0x78,0x1E,0x78,0x1E,0x7C,0x3E,0x7F,0xFE,0x3F,0xFC,0x1F,0xF8,0x0F,0xF0,0x00,0x00,},
{//图片数字6
0x00,0x00,0x0F,0xF0,0x1F,0xF8,0x3F,0xFC,0x7F,0xFE,0x7C,0x3E,0x78,0x1E,0x78,0x1E,
0x78,0x1E,0x78,0x00,0x78,0x00,0x78,0x00,0x7B,0xF0,0x7F,0xF8,0x7F,0xFC,0x7F,0xFE,
0x7C,0x3E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,
0x78,0x1E,0x78,0x1E,0x7C,0x3E,0x7F,0xFE,0x3F,0xFC,0x1F,0xF8,0x0F,0xF0,0x00,0x00},
{//图片数字7
0x00,0x00,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x78,0x1E,0x00,0x1E,0x00,0x3C,
0x00,0x3C,0x00,0x78,0x00,0x78,0x00,0xF0,0x00,0xF0,0x01,0xE0,0x01,0xE0,0x03,0xC0,
0x03,0xC0,0x07,0x80,0x07,0x80,0x07,0x80,0x07,0x80,0x07,0x80,0x07,0x80,0x07,0x80,
0x07,0x80,0x07,0x80,0x07,0x80,0x07,0x80,0x07,0x80,0x07,0x80,0x07,0x80,0x00,0x00},
{//图片数字8
0x00,0x00,0x0F,0xF0,0x1F,0xF8,0x3F,0xFC,0x7F,0xFE,0x7C,0x3E,0x78,0x1E,0x78,0x1E,
0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x7C,0x3E,0x3F,0xFC,0x1F,0xF8,0x1F,0xF8,
0x3F,0xFC,0x7C,0x3E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,
0x78,0x1E,0x78,0x1E,0x7C,0x3E,0x7F,0xFE,0x3F,0xFC,0x1F,0xF8,0x0F,0xF0,0x00,0x00},
{//图片数字9
0x00,0x00,0x0F,0xF0,0x1F,0xF8,0x3F,0xFC,0x7F,0xFE,0x7C,0x3E,0x78,0x1E,0x78,0x1E,
0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x78,0x1E,0x7C,0x3E,
0x7F,0xFE,0x3F,0xFE,0x1F,0xFE,0x0F,0xDE,0x00,0x1E,0x00,0x1E,0x00,0x1E,0x78,0x1E,
0x78,0x1E,0x78,0x1E,0x7C,0x3E,0x7F,0xFE,0x3F,0xFC,0x1F,0xF8,0x0F,0xF0,0x00,0x00},
{// 图片":" 10
//6X6方点
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x07,0xE0,
0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,
0x07,0xE0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{// 图片" " 空白 如果秒不闪空就用不到!
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{
0x00,0x00,0x06,0x00,0x06,0x7C,0x03,0xFE,0x03,0x0C,0x03,0x18,0x03,0x38,0x01,0xF8,
0x01,0xFC,0x01,0xB8,0x01,0xF0,0x01,0x9F,0x03,0xFF,0x1F,0x60,0x3C,0x60,0x70,0x60,
0x00,0x60,0x00,0x78,0x00,0xF8,0x00,0xF8,0x00,0xD8,0x00,0x18,0x00,0x18,0x00,0x18,
0x00,0x18,0x00,0x18,0x00,0x18,0x0C,0x38,0x07,0x30,0x01,0xF0,0x00,0x00,0x00,0x00,}/*"号",0*/
};
/******************************************************************************/
/*===================== 显示模式3数字图片(宽度x高度=24*32)=========================*/
//最大的LCD12864
uchar code mode_3num[10][96]={
{// 图片数字0
0x00,0x7E,0x00,0x01,0xE7,0x80,0x03,0xC3,0xC0,0x07,0x81,0xE0,0x0F,0x80,0xF0,0x0F,
0x00,0xF0,0x1F,0x00,0xF8,0x1E,0x00,0xF8,0x3E,0x00,0x78,0x3E,0x00,0x7C,0x3E,0x00,
0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,
0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,
0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x78,0x1E,0x00,0xF8,0x1F,0x00,0xF8,0x0F,0x00,
0xF0,0x0F,0x81,0xF0,0x07,0x81,0xE0,0x03,0xC3,0xC0,0x01,0xE7,0x80,0x00,0x7E,0x00},
{// 图片数字1
0x00,0x0C,0x00,0x00,0x1C,0x00,0x00,0x7C,0x00,0x07,0xFC,0x00,0x00,0x3C,0x00,0x00,
0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,
0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,
0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,
0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,
0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3E,0x00,0x00,0x7F,0x00,0x07,0xFF,0xF0},
{// 图片数字2
0x00,0xFF,0x00,0x03,0xC7,0xC0,0x07,0x01,0xE0,0x0E,0x00,0xF0,0x1E,0x00,0xF8,0x1E,
0x00,0xF8,0x3E,0x00,0x78,0x3E,0x00,0x78,0x3F,0x00,0x78,0x3F,0x00,0x78,0x1F,0x00,
0xF8,0x00,0x00,0xF8,0x00,0x00,0xF0,0x00,0x01,0xF0,0x00,0x03,0xE0,0x00,0x03,0xC0,
0x00,0x07,0x80,0x00,0x0F,0x00,0x00,0x1E,0x00,0x00,0x3C,0x00,0x00,0x78,0x00,0x00,
0xF0,0x00,0x01,0xE0,0x00,0x03,0xC0,0x00,0x07,0x80,0x1C,0x07,0x00,0x1C,0x0E,0x00,
0x38,0x1C,0x00,0x38,0x3C,0x00,0x78,0x3F,0xFF,0xF8,0x3F,0xFF,0xF8,0x3F,0xFF,0xF8},
{// 图片数字3
0x00,0xFE,0x00,0x07,0x87,0x80,0x0F,0x03,0xC0,0x1E,0x01,0xE0,0x1E,0x01,0xF0,0x1E,
0x01,0xF0,0x1F,0x00,0xF0,0x1F,0x00,0xF0,0x1E,0x00,0xF0,0x00,0x00,0xF0,0x00,0x01,
0xF0,0x00,0x01,0xF0,0x00,0x03,0xE0,0x00,0x03,0xC0,0x00,0x0F,0x00,0x00,0xFE,0x00,
0x00,0x07,0x80,0x00,0x01,0xE0,0x00,0x00,0xF0,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,
0x00,0x78,0x00,0x00,0x7C,0x1E,0x00,0x7C,0x3F,0x00,0x7C,0x3F,0x00,0x7C,0x3F,0x00,
0x78,0x3E,0x00,0xF8,0x1E,0x00,0xF0,0x0F,0x01,0xE0,0x07,0x87,0xC0,0x01,0xFF,0x00},
{// 图片数字4
0x00,0x03,0xC0,0x00,0x03,0xC0,0x00,0x07,0xC0,0x00,0x0F,0xC0,0x00,0x0F,0xC0,0x00,
0x1F,0xC0,0x00,0x3F,0xC0,0x00,0x3F,0xC0,0x00,0x77,0xC0,0x00,0x77,0xC0,0x00,0xE7,
0xC0,0x01,0xC7,0xC0,0x01,0xC7,0xC0,0x03,0x87,0xC0,0x07,0x07,0xC0,0x07,0x07,0xC0,
0x0E,0x07,0xC0,0x1E,0x07,0xC0,0x1C,0x07,0xC0,0x38,0x07,0xC0,0x38,0x07,0xC0,0x7F,
0xFF,0xFE,0x7F,0xFF,0xFE,0x00,0x07,0xC0,0x00,0x07,0xC0,0x00,0x07,0xC0,0x00,0x07,
0xC0,0x00,0x07,0xC0,0x00,0x07,0xC0,0x00,0x07,0xC0,0x00,0x07,0xE0,0x00,0x7F,0xFE},
{// 图片数字5
0x0F,0xFF,0xF8,0x0F,0xFF,0xF8,0x0F,0xFF,0xF8,0x0E,0x00,0x00,0x0E,0x00,0x00,0x0E,
0x00,0x00,0x0E,0x00,0x00,0x0E,0x00,0x00,0x0E,0x00,0x00,0x0E,0x00,0x00,0x0E,0x00,
0x00,0x0E,0x7F,0x00,0x0D,0xFF,0xC0,0x0F,0xC3,0xE0,0x1F,0x01,0xF0,0x1E,0x00,0xF8,
0x1E,0x00,0xF8,0x00,0x00,0x78,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,
0x00,0x7C,0x1E,0x00,0x7C,0x3F,0x00,0x7C,0x3F,0x00,0x78,0x3F,0x00,0x78,0x3E,0x00,
0xF8,0x1E,0x00,0xF0,0x1E,0x01,0xF0,0x0E,0x01,0xE0,0x07,0x87,0xC0,0x00,0xFF,0x00},
{// 图片数字6
0x00,0x3F,0xC0,0x00,0xF1,0xE0,0x03,0xC1,0xF0,0x07,0x81,0xF8,0x07,0x01,0xF8,0x0F,
0x00,0xF0,0x1F,0x00,0x00,0x1E,0x00,0x00,0x1E,0x00,0x00,0x3E,0x00,0x00,0x3E,0x00,
0x00,0x3E,0x00,0x00,0x3E,0x3F,0x80,0x3E,0xFF,0xE0,0x3F,0xE3,0xF0,0x3F,0x80,0xF8,
0x3F,0x00,0xF8,0x3F,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x3C,0x3E,
0x00,0x3C,0x3E,0x00,0x3C,0x3E,0x00,0x3C,0x3E,0x00,0x7C,0x1E,0x00,0x7C,0x1F,0x00,
0x78,0x0F,0x00,0x78,0x0F,0x80,0xF0,0x07,0xC0,0xE0,0x03,0xE3,0xC0,0x00,0xFF,0x00},
{// 图片数字7
0x1F,0xFF,0xFC,0x1F,0xFF,0xFC,0x1F,0xFF,0xF8,0x1F,0x00,0x38,0x1C,0x00,0x70,0x1C,
0x00,0xE0,0x38,0x00,0xE0,0x38,0x01,0xC0,0x00,0x01,0xC0,0x00,0x03,0x80,0x00,0x03,
0x80,0x00,0x07,0x80,0x00,0x07,0x00,0x00,0x0F,0x00,0x00,0x0E,0x00,0x00,0x1E,0x00,
0x00,0x1E,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x7C,0x00,0x00,
0x78,0x00,0x00,0x78,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0xF8,
0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0x78,0x00},
{// 图片数字8
0x00,0xFF,0x00,0x07,0xC3,0xC0,0x0F,0x00,0xE0,0x1E,0x00,0xF0,0x1E,0x00,0x78,0x3C,
0x00,0x78,0x3C,0x00,0x78,0x3C,0x00,0x7C,0x3E,0x00,0x78,0x3E,0x00,0x78,0x1F,0x00,
0x78,0x1F,0x80,0xF0,0x0F,0xE1,0xE0,0x07,0xFB,0xC0,0x01,0xFF,0x80,0x01,0xFF,0x80,
0x07,0xBF,0xC0,0x0F,0x0F,0xE0,0x1E,0x03,0xF0,0x3E,0x01,0xF8,0x3C,0x00,0xF8,0x3C,
0x00,0x7C,0x7C,0x00,0x7C,0x78,0x00,0x3C,0x78,0x00,0x3C,0x7C,0x00,0x3C,0x3C,0x00,
0x78,0x3C,0x00,0x78,0x1E,0x00,0x70,0x0F,0x00,0xE0,0x07,0xC3,0xC0,0x01,0xFF,0x00},
{// 图片数字9
0x01,0xFE,0x00,0x07,0xC7,0x80,0x0F,0x01,0xE0,0x1E,0x01,0xE0,0x1E,0x00,0xF0,0x3E,
0x00,0xF8,0x3C,0x00,0x78,0x3C,0x00,0x78,0x7C,0x00,0x7C,0x7C,0x00,0x7C,0x7C,0x00,
0x7C,0x7C,0x00,0x7C,0x7C,0x00,0x7C,0x3C,0x00,0xFC,0x3E,0x00,0xFC,0x3E,0x01,0xFC,
0x1F,0x03,0xFC,0x1F,0x8F,0xFC,0x0F,0xFF,0x7C,0x03,0xFC,0x7C,0x00,0x00,0x7C,0x00,
0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0xF0,0x00,0x01,0xF0,0x0F,0x01,
0xE0,0x1F,0x01,0xE0,0x1F,0x03,0xC0,0x1F,0x07,0x80,0x0F,0x9F,0x00,0x03,0xFC,0x00},
};
/*******************我的文档*******我的电脑*************************/
uchar code TU_TAB1[]={
// 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xF0,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x18,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0xFF,0xDC,0x00,0x01,
0x80,0x00,0x1F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0xFF,0xBC,0x00,0x01,
0x80,0x00,0x30,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x01,0x7F,0xFF,0xB8,0x00,0x01,
0x80,0x00,0x30,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x01,0x7F,0xFF,0x78,0x00,0x01,
0x80,0x00,0x19,0xFF,0xFE,0xC0,0x00,0x00,0x00,0x00,0x02,0xFF,0xFF,0x70,0x00,0x01,
0x80,0x00,0x18,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,0xFF,0xFE,0xF0,0x00,0x01,
0x80,0x00,0x0C,0x01,0xFF,0x60,0x00,0x00,0x00,0x00,0x05,0xFF,0xFE,0xE0,0x00,0x01,
0x80,0x00,0x0C,0x7F,0xD0,0x20,0x00,0x00,0x00,0x00,0x05,0xFF,0xFD,0xE0,0x00,0x01,
0x80,0x00,0x06,0x00,0x0F,0xB0,0x00,0x00,0x00,0x00,0x0B,0xFF,0xFD,0xC0,0x00,0x01,
0x80,0x00,0x06,0x03,0xFC,0x10,0x00,0x00,0x00,0x00,0x0B,0xFF,0xFB,0xC0,0x00,0x01,
0x80,0x00,0x03,0x1F,0x00,0x18,0x00,0x00,0x00,0x00,0x17,0xFF,0xFB,0x80,0x00,0x01,
0x80,0x00,0x03,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x17,0xFF,0xF7,0x80,0x00,0x01,
0x80,0x00,0x01,0x80,0x00,0x0C,0x00,0x00,0x00,0x00,0x17,0xFF,0xF7,0x00,0x00,0x01,
0x80,0x00,0x01,0x80,0x00,0x04,0x00,0x00,0x00,0x00,0x09,0xFF,0xEF,0x00,0x00,0x01,
0x80,0x00,0x00,0xC0,0x00,0xF6,0x00,0x00,0x00,0x00,0x06,0x7F,0xEE,0x00,0x00,0x01,
0x80,0x00,0x00,0xC0,0x03,0xC2,0x00,0x00,0x00,0x00,0x01,0x9F,0xDE,0x00,0x00,0x01,
0x80,0x00,0x00,0x60,0x00,0x3B,0x00,0x00,0x00,0x00,0x00,0x67,0xDF,0x00,0x00,0x01,
0x80,0x00,0x00,0x60,0x00,0xE3,0x00,0x00,0x00,0x00,0x00,0x19,0xBF,0x00,0x00,0x01,
0x80,0x00,0x00,0x30,0x03,0x8E,0x00,0x00,0x00,0x00,0x00,0x06,0x3F,0x00,0x00,0x01,
0x80,0x00,0x00,0x30,0x06,0x3C,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0x00,0x00,0x01,
0x80,0x00,0x00,0x18,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x01,
0x80,0x00,0x00,0x18,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x0F,0x7F,0x80,0x00,0x01,
0x80,0x00,0x00,0x0C,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x1F,0xC0,0x00,0x01,
0x80,0x00,0x00,0x0C,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x07,0xE0,0x00,0x01,
0x80,0x00,0x00,0x06,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x1F,0xE0,0x00,0x01,
0x80,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x3F,0xC0,0x00,0x01,
0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0xFF,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFC,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x05,0x40,0x88,0x04,0x01,0x08,0x00,0x00,0x0A,0x81,0x10,0x04,0x00,0x20,0x01,
0x80,0x79,0x21,0x08,0x02,0x21,0x49,0x00,0x00,0xF2,0x42,0x10,0x04,0x47,0x10,0x01,
0x80,0x09,0x07,0xDF,0x7F,0xF7,0xAA,0x00,0x00,0x12,0x0F,0xBE,0x7F,0xE5,0xFE,0x01,
0x80,0x7F,0xF4,0x51,0x08,0x81,0x2C,0x00,0x00,0xFF,0xE8,0xA2,0x44,0x47,0x00,0x01,
0x80,0x09,0x04,0x61,0x08,0x81,0x7F,0x00,0x00,0x12,0x08,0xC2,0x7F,0xC5,0x4A,0x01,
0x80,0x0B,0x24,0x51,0x08,0x83,0x81,0x00,0x00,0x16,0x48,0xA2,0x44,0x45,0x6A,0x01,
0x80,0x1D,0x47,0xC9,0x05,0x05,0x01,0x00,0x00,0x3A,0x8F,0x92,0x44,0x47,0x52,0x01,
0x80,0x68,0x84,0x49,0x05,0x05,0x7F,0x00,0x00,0xD1,0x08,0x92,0x7F,0xC5,0x6A,0x01,
0x80,0x09,0x94,0x41,0x02,0x01,0x01,0x00,0x00,0x13,0x28,0x82,0x44,0x05,0x4A,0x01,
0x80,0x0E,0x57,0xC1,0x0D,0x81,0x01,0x00,0x00,0x1C,0xAF,0x82,0x04,0x29,0x42,0x01,
0x80,0x38,0x34,0x4E,0x70,0x71,0x7F,0x00,0x00,0x70,0x68,0x9C,0x03,0xEB,0x7E,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};
/////////////////////////////////////////////////////////////////////////
// Bitmap点阵数据表 //
// 图片: C:\..件\宋体16.dot,横向取模左高位,数据排列:从左到右从上到下 //
// 图片尺寸: 104 * 46 //
/////////////////////////////////////////////////////////////////////////
uchar code nBitmapDot[] = // 数据表
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00
};
uchar code tab5[]={
/*-- 调入了一幅图像:F:\梁\画图\COCK.bmp --*/
/*-- 宽度x高度=128x64 --------一只公鸡的图案-*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x00,0x0F,0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x0C,0x43,0x01,0x80,0x00,0x7F,0xFF,0xF0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x19,0xFF,0x07,0x00,0x07,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x3F,0xFC,0x1E,0x00,0x1F,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xBF,0xFF,0xFC,0x00,0x7F,0xFC,0x00,0x7F,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFF,0xFF,0xF0,0x00,0xFF,0xC0,0x00,0x0F,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xFC,0x01,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xDF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0x80,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x0F,0xFF,0xFF,0xFF,0xE0,0x38,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xFF,0xF8,0x00,0x1F,0xFF,0xF0,0x03,0xF8,0x38,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xFF,0xE0,0x00,0x3F,0xFF,0xFF,0xC0,0x7C,0x18,0x00,0x00,0x00,
0x00,0x00,0x00,0x04,0x7F,0xF0,0x00,0x3F,0xFF,0xFF,0xF8,0x1E,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFF,0xF8,0x00,0x7F,0xFF,0xFF,0xFE,0x0F,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0xFF,0x87,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0xFF,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0x83,0x88,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xC3,0x88,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF1,0x88,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF3,0x08,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xF2,0x10,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0x8F,0xFF,0xFF,0xFF,0xFF,0xF0,0x20,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x70,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x7E,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x3E,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0x3C,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x30,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x1F,0x7C,0x20,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x1E,0x78,0x00,0x40,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFE,0x1E,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xDA,0x3C,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xF2,0x30,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xF1,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x7C,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x78,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x72,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x40,0x04,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x02,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x0C,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x38,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xE2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
/**************************我的QQ号**********************************/
uchar code Photo2[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x07,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x7F,0x80,0x00,0x00,0x7F,0x80,0x00,0x00,
0x00,0x03,0xFF,0xFF,0xFE,0x00,0x00,0x01,0xFF,0xE0,0x00,0x01,0xFF,0xE0,0x00,0x00,
0x00,0x07,0xFF,0xFF,0xFE,0x00,0x00,0x07,0xFF,0xF0,0x00,0x07,0xFF,0xF0,0x00,0x00,
0x00,0x0F,0xF9,0xFD,0xFF,0x00,0x00,0x0F,0xFF,0xF8,0x00,0x0F,0xFF,0xF8,0x00,0x00,
0x00,0x0F,0xF0,0xF0,0xFF,0x80,0x00,0x1F,0xFF,0xFC,0x00,0x1F,0xFF,0xFC,0x00,0x00,
0x00,0x1F,0xF0,0x70,0x7F,0x80,0x00,0x3F,0xFF,0xFC,0x00,0x3F,0xFF,0xFC,0x00,0x00,
0x00,0x1F,0xE1,0x70,0x7F,0x80,0x00,0x7F,0xFF,0xFE,0x00,0x7F,0xFF,0xFE,0x00,0x00,
0x00,0x3F,0xE1,0x66,0x7F,0xC0,0x00,0xFF,0xFF,0xFE,0x00,0xFF,0xFF,0xFE,0x00,0x00,
0x00,0x3F,0xE3,0xE0,0x7F,0xC0,0x01,0xFF,0xFF,0xFE,0x01,0xFF,0xFF,0xFE,0x00,0x00,
0x00,0x3F,0xE0,0x60,0x7F,0xE0,0x01,0xFF,0xEF,0xFF,0x01,0xFF,0xEF,0xFF,0x00,0x00,
0x00,0x7F,0xF0,0xF0,0x7F,0xC0,0x03,0xFF,0x87,0xFF,0x03,0xFF,0x87,0xFF,0x00,0x00,
0x00,0x7F,0xF0,0xF8,0xFF,0xE0,0x03,0xFF,0x83,0xFF,0x83,0xFF,0x81,0xFF,0x80,0x00,
0x00,0x7F,0xFF,0xFF,0xFF,0xE0,0x07,0xFF,0x01,0xFF,0x07,0xFF,0x01,0xFF,0x00,0x00,
0x00,0x7F,0xFF,0xFF,0xFF,0xF0,0x07,0xFF,0x00,0xFF,0x87,0xFF,0x00,0xFF,0x80,0x00,
0x00,0x7F,0xE0,0x00,0xBF,0xF0,0x0F,0xFE,0x00,0xFF,0x8F,0xFE,0x00,0xFF,0x80,0x00,
0x00,0xFF,0x80,0x00,0x0F,0xF0,0x0F,0xFE,0x00,0xFF,0x8F,0xFE,0x00,0xFF,0x80,0x00,
0x00,0xFE,0x00,0x00,0x07,0xF0,0x1F,0xFC,0x00,0x7F,0x9F,0xFC,0x00,0x7F,0x80,0x00,
0x00,0xFF,0xB0,0x00,0x5F,0xF0,0x0F,0xFC,0x00,0xFF,0x8F,0xFC,0x00,0x7F,0x80,0x00,
0x01,0xFF,0xF8,0x01,0xFF,0xF0,0x1F,0xF8,0x3F,0xFF,0x9F,0xFC,0x3D,0xFF,0x80,0x00,
0x01,0xFF,0xFF,0xFF,0xFF,0xF8,0x0F,0xFC,0x37,0x0F,0x8F,0xFC,0x37,0x9F,0x80,0x00,
0x07,0xFF,0xFF,0xFF,0xFF,0xF8,0x1F,0xF8,0x66,0x07,0x1F,0xF8,0x26,0x1F,0x80,0x00,
0x07,0xFF,0xFF,0xFF,0xFF,0xFC,0x0F,0xFC,0x6C,0x63,0x8F,0xFC,0x66,0x73,0x80,0x00,
0x1F,0xC7,0xFF,0xFF,0xFC,0xFE,0x0F,0xFE,0xEC,0x80,0x8F,0xFE,0xED,0x80,0x80,0x00,
0x1F,0xC3,0xFF,0xFF,0xF0,0x7E,0x07,0xFF,0xFD,0x00,0x07,0xFF,0xFE,0x80,0x00,0x00,
0x3F,0xC7,0xFF,0xFF,0x80,0x7F,0x07,0xFF,0xFF,0x00,0x07,0xFF,0xFE,0x80,0x00,0x00,
0x3F,0xC3,0xFF,0xFE,0x00,0x3F,0x01,0xFF,0xFF,0x00,0x21,0xFF,0xFF,0x80,0x20,0x00,
0x3F,0x87,0xF0,0x00,0x00,0x3F,0x00,0xFF,0xFF,0x00,0x40,0xFF,0xFF,0x00,0x40,0x00,
0x7F,0x83,0xF8,0x00,0x00,0x3F,0x00,0x1F,0xFF,0x80,0x40,0x1F,0xFF,0xC0,0xC0,0x00,
0x7F,0x87,0xF0,0x00,0x00,0x3F,0x00,0x00,0x00,0xC1,0x80,0x00,0x00,0xE3,0x80,0x00,
0x7F,0xC3,0xF8,0x00,0x00,0x3F,0x80,0x00,0x00,0x7F,0x00,0x00,0x00,0x7F,0x00,0x00,
0x7B,0x83,0xF0,0x00,0x00,0x3F,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x1C,0x00,0x00,
0x79,0xC1,0xF0,0x00,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x21,0xC0,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xE0,0x00,0x00,0x00,0x40,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0xE0,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x30,0x00,0x00,0x01,0x80,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
0x00,0x38,0x00,0x00,0x03,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
0x00,0x9C,0x00,0x00,0x06,0x40,0xC7,0xC7,0xC1,0x80,0xC7,0xE1,0xCF,0xE1,0xC1,0xC3,
0x01,0x07,0x00,0x00,0x0C,0x60,0xCE,0xCF,0xE1,0x80,0xC7,0xE3,0xEF,0xE3,0xE3,0xE3,
0x01,0x81,0xC0,0x00,0x38,0x10,0xCC,0x4C,0x63,0x81,0xC6,0x06,0x6C,0x66,0x26,0x23,
0x01,0x00,0xFC,0x00,0xE0,0x10,0xCC,0x4C,0x61,0x83,0xC6,0x06,0x00,0xC4,0x24,0x23,
0x01,0x00,0x07,0xAD,0x00,0x10,0xC0,0x4C,0x61,0x86,0xC6,0x06,0x00,0x80,0x60,0x63,
0x00,0xE0,0x0B,0x0F,0x7E,0xE0,0xC0,0xCC,0x61,0x8C,0xC7,0xC7,0xC1,0x80,0xC0,0xC3,
0x00,0x00,0x7C,0x00,0x00,0x00,0xC3,0x8F,0xE1,0x8C,0xC4,0x67,0xE3,0x01,0x81,0x83,
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC7,0x61,0x8F,0xE0,0x66,0x23,0x03,0x03,0x03,
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0x61,0x8F,0xE0,0x66,0x23,0x06,0x06,0x03,
0x00,0x00,0x00,0x00,0x00,0x00,0xC4,0xC0,0x61,0x80,0xC4,0x66,0x23,0x06,0x06,0x03,
0x00,0x00,0x00,0x00,0x00,0x00,0xDC,0xCC,0xE1,0x80,0xCC,0x66,0x23,0x06,0x26,0x23,
0x00,0x00,0x00,0x00,0x00,0x00,0xCD,0xCF,0xC1,0x80,0xC7,0xE7,0xE3,0x07,0xE7,0xE3,
0x00,0x00,0x00,0x00,0x00,0x00,0xC7,0x87,0x83,0xC3,0xE3,0xC3,0xC3,0x07,0xE7,0xE3,
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};
uchar code powerOnPhoto [] = { //开机画面
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xFB,0x7C,0x00,0x70,0x38,0x77,0xFA,0xBF,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xFA,0xFF,0xD7,0xF7,0xBF,0x40,0x86,0xDF,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xF6,0x06,0x00,0xF0,0x3B,0x5E,0xF6,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xE5,0xF6,0xD6,0xF7,0xBB,0x40,0x80,0x0F,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xD3,0xBE,0x00,0xF0,0x3B,0x5F,0xF6,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xF6,0xAF,0xDF,0xFF,0xF8,0x40,0xF4,0xDF,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xF6,0xAC,0x00,0x00,0x0F,0x4A,0xE2,0xBF,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xF5,0xB7,0xBB,0xED,0xFE,0x40,0x97,0x7F,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xF3,0xB7,0x17,0xE4,0x19,0x2A,0xF6,0x6F,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xF7,0xBF,0xE3,0xD9,0xFF,0x6A,0xF1,0xAD,0xEF,0xBE,0xF7,0xE0,0x00,
0x00,0x03,0xFF,0xF6,0x3C,0x1C,0xBC,0x0C,0x7C,0xC7,0xCF,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,
0x00,0x03,0xAB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x87,0xFF,0xF7,0xFF,0xE0,0x00,
0x00,0x03,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0xFF,0x73,0xFF,0xE0,0x00,
0x00,0x03,0x00,0xBF,0xFF,0xFF,0xCF,0xFF,0xFF,0xFF,0xFE,0xF6,0x33,0xFF,0xE0,0x00,
0x00,0x03,0xC7,0xFF,0xFF,0xFF,0x1F,0xBF,0xFF,0xF3,0xFE,0xE4,0x13,0xFF,0xE0,0x00,
0x00,0x03,0xA3,0xFF,0xFF,0xFC,0x1C,0x7D,0xFF,0xFC,0xFF,0xC0,0x83,0xFF,0xE0,0x00,
0x00,0x03,0x6D,0xFF,0xFF,0xF0,0x30,0x71,0xFD,0xFF,0x3F,0xB9,0xC7,0xFF,0xE0,0x00,
0x00,0x03,0xEF,0xDF,0x8F,0xE0,0x00,0x43,0x7E,0x3F,0xCF,0xF9,0xF7,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xEF,0x07,0xC0,0x00,0x02,0x5F,0x07,0xE3,0xFB,0xFF,0xBF,0xE0,0x00,
0x00,0x03,0xEF,0xAE,0x63,0x80,0x00,0xE4,0x43,0xC0,0xF0,0xFF,0xFE,0xFF,0xE0,0x00,
0x00,0x03,0xFF,0xC6,0x93,0x80,0x00,0x10,0x40,0x70,0x18,0x7E,0x3E,0x5F,0xE0,0x00,
0x00,0x03,0xFF,0x46,0x2B,0x00,0x00,0x00,0xC0,0x00,0x04,0x3C,0x1E,0x3F,0xE0,0x00,
0x00,0x03,0xFF,0x82,0x28,0x00,0x00,0x00,0xC0,0xE0,0x00,0x18,0xCC,0x6F,0xE0,0x00,
0x00,0x03,0xFE,0x81,0x10,0x00,0x00,0x01,0x41,0x00,0x00,0x19,0x2C,0x5F,0xE0,0x00,
0x00,0x03,0xFF,0x01,0x80,0x00,0x3F,0x01,0x20,0x00,0x00,0x0A,0x88,0x17,0xE0,0x00,
0x00,0x03,0xFD,0x01,0xC0,0x00,0xFF,0x82,0x20,0x00,0x00,0x02,0x88,0x0F,0xE0,0x00,
0x00,0x03,0xFE,0x03,0xE0,0x00,0x03,0xC4,0x10,0x1F,0x80,0x01,0x10,0x07,0xE0,0x00,
0x00,0x03,0xFA,0x07,0xA0,0x00,0x07,0x08,0x11,0x3F,0xE0,0x00,0x3C,0x0F,0xE0,0x00,
0x00,0x03,0xFC,0x00,0x20,0x00,0x06,0x10,0x08,0xF8,0x00,0x00,0x7E,0x0B,0xE0,0x00,
0x00,0x03,0xF4,0x00,0x40,0x00,0x02,0x20,0x04,0x18,0x00,0x00,0x41,0x07,0xE0,0x00,
0x00,0x03,0xF8,0x07,0x80,0x04,0x4C,0x20,0x02,0x1C,0x00,0x00,0x40,0x06,0xE0,0x00,
0x00,0x03,0xFC,0x18,0x80,0x02,0x20,0x40,0x01,0x0C,0x00,0x00,0x40,0x04,0x60,0x00,
0x00,0x03,0xF4,0x28,0x40,0x05,0x10,0x40,0x00,0x88,0x00,0x00,0x60,0x06,0xE0,0x00,
0x00,0x03,0xE0,0x44,0x40,0x02,0x00,0x40,0x00,0x86,0x44,0x00,0x50,0x07,0xE0,0x00,
0x00,0x03,0xF0,0x42,0x21,0xC0,0x00,0x40,0x00,0x40,0x88,0x0F,0x80,0x02,0xE0,0x00,
0x00,0x03,0xF8,0x82,0x11,0x30,0x00,0x80,0x00,0x41,0x14,0x14,0xC4,0x03,0xE0,0x00,
0x00,0x03,0xD0,0x81,0x0E,0x2E,0x03,0x00,0x00,0x40,0x08,0x22,0x22,0x02,0xE0,0x00,
0x00,0x03,0xF0,0x81,0x00,0x23,0xFC,0x00,0x00,0x40,0x00,0x61,0x01,0x01,0xE0,0x00,
0x00,0x03,0xD8,0x81,0x00,0x22,0x00,0x00,0x00,0x20,0x01,0xA1,0x00,0x03,0x60,0x00,
0x00,0x03,0xF0,0x81,0x00,0x22,0x00,0x00,0x00,0x18,0x0E,0x40,0x80,0x81,0xA0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"C:\Documents and Settings\Administrator\桌面\天祥电子原始图片.BMP",0*/
};
/******************** 龙的图案*****************************************/
uchar code BMP11[]={
/*-- 一幅图像龙的图案 KISS- 正向取模,字节正序*/
/*-- 宽度x高度=128x64 --*/
0xFF,0xFE,0xFE,0x80,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x01,0x7F,0x7F,0xFF,
0xE9,0x6E,0xEE,0x80,0x00,0x00,0x70,0x00,0x80,0x00,0x00,0x00,0x01,0x77,0x69,0x69,
0x96,0x96,0xEE,0x80,0x00,0x00,0x70,0x07,0x80,0x00,0x00,0x00,0x01,0x77,0x76,0x97,
0xE9,0x6E,0xE0,0x80,0x00,0x00,0xE6,0x1E,0x00,0x00,0x00,0x00,0x01,0x07,0x69,0x69,
0x96,0x96,0xFF,0x80,0x00,0x01,0xE8,0x78,0x00,0x00,0x00,0x00,0x01,0xFF,0x76,0x97,
0xE9,0x6E,0xFF,0x80,0x00,0x07,0xF7,0xFF,0xFF,0x80,0x00,0x00,0x01,0xFF,0x69,0x69,
0x96,0x96,0x00,0x80,0x00,0x0F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x01,0x00,0x76,0x97,
0xE9,0x6F,0xFE,0x80,0x00,0x1F,0xF7,0xFF,0xF0,0x00,0x00,0x00,0x01,0x7F,0xE9,0x69,
0x96,0x97,0xFE,0x80,0x00,0xFF,0xFF,0x0F,0xF8,0x00,0x00,0x00,0x01,0x7F,0xF6,0x97,
0xE9,0x6E,0x0E,0x80,0x01,0xFF,0xFE,0xF6,0xFF,0x80,0x00,0x00,0x01,0x70,0x69,0x69,
0x96,0x96,0xEE,0x80,0x07,0xFF,0xF7,0xFF,0x1F,0xF8,0x00,0x00,0x01,0x77,0x76,0x97,
0xE9,0x6E,0xEE,0x80,0xFF,0xFF,0xF0,0x1E,0xFF,0xFE,0x00,0x00,0x01,0x77,0x69,0x69,
0x96,0x96,0xFE,0x81,0xFF,0x1F,0xF8,0x01,0xF7,0xE1,0x00,0x00,0x01,0x7F,0x76,0x97,
0xE9,0x6E,0x00,0x81,0xFE,0x1F,0xFF,0x00,0x97,0xF0,0x78,0x00,0x01,0x00,0x69,0x69,
0x96,0x97,0xFF,0x80,0x00,0x78,0x00,0x00,0x79,0xF8,0x68,0x00,0x01,0xFF,0xF6,0x97,
0xE9,0x6F,0xFF,0x80,0x00,0x70,0x00,0x00,0x71,0xFE,0x7E,0x00,0x01,0xFF,0xE9,0x69,
0x96,0x96,0x00,0x80,0x00,0x70,0x00,0x00,0x1F,0xFE,0x7F,0x00,0x01,0x00,0x76,0x97,
0xE9,0x6E,0xFE,0x80,0x00,0x70,0x00,0x00,0x1E,0xFE,0x97,0x80,0x01,0x7F,0x69,0x69,
0x96,0x96,0xEE,0x80,0x01,0xF0,0x00,0x00,0x0E,0xF8,0xFF,0xE0,0x01,0x77,0x76,0x97,
0xE9,0x6E,0xEE,0x80,0x00,0xF0,0x00,0x00,0x1E,0xFF,0x9F,0xF0,0x01,0x77,0x69,0x69,
0x96,0x96,0xE0,0x80,0x00,0x60,0x00,0x00,0x1E,0xEF,0xF9,0xF0,0x01,0x07,0x76,0x97,
0xE9,0x6E,0xFF,0x80,0x00,0x00,0x00,0x00,0x16,0xFF,0x99,0xF8,0x01,0xFF,0x69,0x69,
0x96,0x96,0xFF,0x80,0x00,0x00,0x00,0x00,0x79,0xFF,0x79,0xFE,0x01,0xFF,0x76,0x97,
0xE9,0x6E,0x00,0x80,0x00,0x00,0x00,0x00,0x7F,0xF9,0xFF,0xFE,0x01,0x00,0x69,0x69,
0x96,0x97,0xFE,0x80,0x00,0x00,0x00,0x01,0xE7,0xF9,0x7F,0xEF,0x01,0x7F,0xF6,0x97,
0xE9,0x6F,0xFE,0x80,0x00,0x00,0x00,0x01,0xEF,0xF8,0x07,0x87,0x01,0x7F,0xE9,0x69,
0x96,0x96,0x0E,0x80,0x00,0x00,0x00,0x1F,0x7F,0x98,0x07,0x01,0x01,0x70,0x76,0x97,
0xE9,0x6E,0xEE,0x80,0x00,0x00,0x00,0xFE,0xFF,0x90,0x00,0x00,0x81,0x77,0x69,0x69,
0x96,0x96,0xEE,0x80,0x00,0x00,0x01,0xF7,0xFF,0x10,0x00,0x00,0x01,0x77,0x76,0x97,
0xE9,0x6E,0xFE,0x80,0x00,0x00,0x1E,0xFF,0xFE,0x00,0x80,0x00,0x01,0x7F,0x69,0x69,
0x96,0x96,0x00,0x80,0x00,0x00,0x7F,0x7F,0xEE,0x1F,0xFE,0x00,0x01,0x00,0x76,0x97,
0xE9,0x6F,0xFF,0x80,0x00,0x00,0x8E,0xFF,0xE8,0x1F,0xFF,0x00,0x01,0xFF,0xE9,0x69,
0x96,0x97,0xFF,0x80,0x00,0x01,0xF9,0xF9,0xE8,0xFF,0xEF,0x00,0x01,0xFF,0xF6,0x97,
0xE9,0x6E,0x00,0x80,0x00,0x06,0xF7,0xF9,0x87,0xF0,0x01,0xE0,0x01,0x00,0x69,0x69,
0x96,0x96,0xFE,0x80,0x00,0x0F,0x6F,0xF9,0x8F,0xE0,0x00,0xE0,0x01,0x7F,0x76,0x97,
0xE9,0x6E,0xEE,0x80,0x00,0x1F,0x9F,0x11,0x0F,0x80,0x00,0x70,0x01,0x77,0x69,0x69,
0x96,0x96,0xEE,0x80,0x00,0x7F,0xFF,0x71,0x0F,0x00,0x01,0x91,0x01,0x77,0x76,0x97,
0xE9,0x6E,0xE0,0x80,0x00,0x16,0x7F,0x10,0x1F,0x80,0x00,0xFE,0x01,0x07,0x69,0x69,
0x96,0x96,0xFF,0x80,0x00,0xFF,0xFF,0x60,0x1F,0xE0,0x00,0x7E,0x01,0xFF,0x76,0x97,
0xE9,0x6E,0xFF,0x80,0x00,0xFE,0xFF,0x00,0x1F,0xFF,0x80,0x1E,0x01,0xFF,0x69,0x69,
0x96,0x96,0x00,0x80,0x00,0xFF,0xEF,0x00,0x0F,0xFF,0xF8,0x18,0x01,0x00,0x76,0x97,
0xE9,0x6F,0xFE,0x80,0x00,0x96,0xE7,0x00,0x07,0xFF,0xFE,0x0E,0x01,0x7F,0xE9,0x69,
0x96,0x97,0xFE,0x80,0x01,0xF9,0xE1,0x00,0x00,0xFF,0xFF,0x08,0x01,0x7F,0xF6,0x97,
0xE9,0x6E,0x0E,0x80,0x01,0xF9,0xF1,0x00,0x00,0x1F,0xFF,0x00,0x01,0x70,0x69,0x69,
0x96,0x96,0xEE,0x80,0x01,0xF9,0xF8,0x00,0x00,0x09,0xFF,0x80,0x01,0x77,0x76,0x97,
0xE9,0x6E,0xEE,0x80,0x01,0xF9,0xF8,0x00,0x00,0x07,0xFF,0x80,0x01,0x77,0x69,0x69,
0x96,0x96,0xFE,0x80,0x01,0x01,0xF8,0x00,0x00,0x01,0xFF,0xE0,0x01,0x7F,0x76,0x97,
0xE9,0x6E,0x00,0x80,0x01,0xF9,0x8E,0x00,0x00,0x00,0xFF,0x80,0x01,0x00,0x69,0x69,
0x96,0x97,0xFF,0x80,0x01,0xF9,0xE6,0x00,0x00,0x00,0x7F,0xE0,0x01,0xFF,0xF6,0x97,
0xE9,0x6F,0xFF,0x80,0x00,0xFE,0xF0,0x00,0x00,0x06,0x1F,0xE0,0x01,0xFF,0xE9,0x69,
0x96,0x96,0x00,0x80,0x00,0xF8,0xF8,0x00,0x00,0x07,0xFF,0xE0,0x01,0x00,0x76,0x97,
0xE9,0x6E,0xFE,0x80,0x00,0x96,0xFF,0x80,0x00,0x01,0xFF,0x80,0x01,0x7F,0x69,0x69,
0x96,0x96,0xEE,0x80,0x00,0x7F,0xF9,0x60,0x00,0x01,0xFF,0x80,0x01,0x77,0x76,0x97,
0xE9,0x6E,0xEE,0x80,0x00,0x7F,0x78,0x00,0x00,0x18,0xFF,0x80,0x01,0x77,0x69,0x69,
0x96,0x96,0xE0,0x80,0x00,0x79,0x7E,0x7F,0x01,0x10,0xFF,0x00,0x01,0x07,0x76,0x97,
0xE9,0x6E,0xFF,0x80,0x00,0x1F,0x9F,0xFE,0x1E,0x70,0xFF,0x00,0x01,0xFF,0x69,0x69,
0x96,0x96,0xFF,0x80,0x00,0x0F,0xEF,0xE0,0x78,0x79,0xFF,0x00,0x01,0xFF,0x76,0x97,
0xE9,0x6E,0x00,0x80,0x00,0x07,0x87,0xE1,0xF8,0xFF,0xFE,0x00,0x01,0x00,0x69,0x69,
0x96,0x97,0xFE,0x80,0x00,0x01,0xF9,0xFF,0xF9,0xFF,0xF8,0x00,0x01,0x7F,0xF6,0x97,
0xE9,0x6F,0xFE,0x80,0x00,0x00,0xF8,0xFF,0xFF,0xFF,0xF0,0x00,0x01,0x7F,0xE9,0x69,
0x96,0x96,0x0E,0x80,0x00,0x00,0x6F,0x7F,0xFF,0xFF,0xE0,0x00,0x01,0x70,0x76,0x97,
0xE9,0x6E,0xEE,0x80,0x00,0x00,0x1F,0x87,0xFF,0xFF,0x00,0x00,0x01,0x77,0x69,0x69,
0x96,0x96,0xEE,0x80,0x00,0x00,0x0F,0xF8,0xFF,0xF8,0x00,0x00,0x01,0x77,0x76,0x97,
0xFF,0xFE,0xFE,0x80,0x00,0x00,0x00,0x0E,0x70,0x00,0x00,0x00,0x01,0x7F,0x7F,0xFF,
};
/**********************音乐数据库*******************************************************/
//天空之城 //音乐数据
uchar code Music_wo[]={ 0x10,0x03, 0x11,0x03, 0x15,0x66, 0x11,0x03, 0x15,0x02,
0x17,0x02, 0x11,0x01, 0x0D,0x02, 0x0D,0x02, 0x10,0x66,
0x0F,0x03, 0x10,0x02, 0x15,0x02, 0x0F,0x15, 0x0D,0x03,
0x0D,0x03, 0x0E,0x66, 0x0D,0x03, 0x0E,0x03, 0x15,0x66,
0x0D,0x01, 0x15,0x02, 0x15,0x02, 0x15,0x02, 0x11,0x66,
0x0E,0x03, 0x0E,0x02, 0x11,0x02, 0x11,0x15, 0x10,0x03,
0x11,0x03, 0x15,0x66, 0x11,0x03, 0x15,0x02, 0x17,0x02,
0x11,0x15, 0x0D,0x03, 0x0D,0x03, 0x10,0x66, 0x0F,0x03,
0x10,0x02, 0x15,0x02, 0x0F,0x01, 0x0D,0x03, 0x0E,0x02,
0x15,0x03, 0x11,0x03, 0x11,0x02, 0x15,0x02, 0x16,0x03,
0x16,0x03, 0x17,0x03, 0x15,0x16, 0x15,0x02, 0x11,0x03,
0x10,0x03, 0x10,0x03, 0x11,0x02, 0x0F,0x02, 0x10,0x15,
0x15,0x03, 0x16,0x03, 0x17,0x66, 0x16,0x03, 0x17,0x02,
0x19,0x02, 0x16,0x15, 0x0F,0x03, 0x0F,0x03, 0x15,0x03,
0x11,0x03, 0x15,0x02, 0x17,0x02, 0x17,0x15, 0x10,0x03,
0x11,0x03, 0x15,0x02, 0x11,0x02, 0x16,0x03, 0x16,0x03,
0x15,0x66, 0x0F,0x03, 0x0F,0x16, 0x18,0x02, 0x17,0x02,
0x16,0x02, 0x15,0x02, 0x17,0x00, 0x17,0x02, 0x1A,0x01,
0x19,0x02, 0x19,0x02, 0x17,0x03, 0x16,0x03, 0x15,0x02,
0x15,0x02, 0x16,0x02, 0x15,0x03, 0x16,0x03, 0x16,0x03,
0x19,0x02, 0x17,0x15, 0x17,0x02, 0x1A,0x01, 0x19,0x01,
0x17,0x03, 0x16,0x03, 0x15,0x01, 0x15,0x03, 0x16,0x02,
0x15,0x03, 0x16,0x03, 0x16,0x03, 0x11,0x02, 0x10,0x01,
0x00,0x00 };
//
/*---------------祝你生日快乐-------------------------------------------*/
uchar code Music_lz[]={ 0x0F,0x03, 0x0F,0x03, 0x10,0x02, 0x0F,0x02, 0x15,0x02,
0x11,0x01, 0x0F,0x03, 0x0F,0x03, 0x10,0x02, 0x0F,0x02,
0x16,0x02, 0x15,0x01, 0x0F,0x03, 0x0F,0x03, 0x19,0x02,
0x17,0x02, 0x15,0x02, 0x11,0x02, 0x10,0x02, 0x18,0x03,
0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x02, 0x15,0x01,
0x0F,0x03, 0x0F,0x03, 0x10,0x02, 0x0F,0x02, 0x15,0x02,
0x11,0x01, 0x0F,0x03, 0x0F,0x03, 0x10,0x02, 0x0F,0x02,
0x16,0x02, 0x15,0x01, 0x0F,0x03, 0x0F,0x03, 0x19,0x02,
0x17,0x02, 0x15,0x02, 0x11,0x02, 0x10,0x02, 0x18,0x03,
0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x02, 0x15,0x01,
0x0F,0x03, 0x0F,0x03, 0x10,0x02, 0x0F,0x02, 0x15,0x02,
0x11,0x01, 0x0F,0x03, 0x0F,0x03, 0x10,0x02, 0x0F,0x02,
0x16,0x02, 0x15,0x01, 0x0F,0x03, 0x0F,0x03, 0x19,0x02,
0x17,0x02, 0x15,0x02, 0x11,0x02, 0x10,0x02, 0x18,0x03,
0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x02, 0x15,0x01,
0x00,0x00 };
/*********************图形温度机用的数据库***********************************************/
uchar code wendu1[]=
{
0xff,0xff,//64
0x85,0x01,//63
0x88,0x99,//62
0x98,0xc1,//61
0x98,0xc1,//60
0x98,0xc1,//59
0x98,0xc1,//58
0x98,0xd1,//57
0x98,0xc1,//56
0x98,0xc1,//55
0x98,0xc1,//54
0x98,0xc1,//53
0x98,0xd9,//52
0x98,0xc1,//51
0x98,0xc1,//50
0x98,0xc1,//49
0x98,0xc1,//48
0x98,0xd1,//47
0x98,0xc1,//46
0x98,0xc1,//45
0x98,0xc1,//44
0x98,0xc1,//43
0x98,0xd9,//42
0x98,0xc1,//41
0x98,0xc1,//40
0x98,0xc1,//39
0x98,0xc1,//38
0x98,0xd1,//37
0x98,0xc1,//36
0x98,0xc1,//35
0x98,0xc1,//34
0x98,0xc1,//33
0x98,0xd9,//32
0x98,0xc1,//31
0x98,0xc1,//30
0x98,0xc1,//29
0x98,0xc1,//28
0x98,0xd1,//27
0x98,0xc1,//26
0x98,0xc1,//25
0x98,0xc1,//24
0x98,0xc1,//23
0x98,0xd9,//22
0x98,0xc1,//21
0x98,0xc1,//20
0x98,0xc1,//19
0x98,0xc1,//18
0x98,0xd1,//17
0x98,0xc1,//16
0x98,0xc1,//15
0x98,0xc1,//14
0x98,0xc1,//13
0x98,0xd9,//12
0x98,0xc1,//11
0x98,0xc1,//10
0x98,0xc1,//09
0x98,0xc1,//08
0x98,0xd1,//07
0x98,0xc1,//06
0x98,0xc1,//05
0x98,0xc1,//04
0x98,0xc1,//03
0xbf,0xe1,//02
0xff,0xff,//01
};
uchar code wendu2[]=
{
0x57,0x7f,//64
0x55,0x01,
0x75,0x01,
0x15,0x01,
0x17,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x77,0x01,//54
0x15,0x01,
0x75,0x01,
0x15,0x01,
0x77,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x77,0x01,//44
0x15,0x01,
0x75,0x01,
0x45,0x01,
0x77,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x27,0x01,//34
0x25,0x01,
0x25,0x01,
0x25,0x01,
0x27,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x27,0x01,//24
0x75,0x01,
0x25,0x01,
0x05,0x01,
0x77,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x27,0x01,//14
0x25,0x01,
0x25,0x01,
0x25,0x01,
0x27,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x00,0x01,
0x77,0x01,
0x15,0x01,//04
0x75,0x01,
0x45,0x01,
0x77,0x7f,
};
uchar code wendu3[10][5]=
{
{0x70,0x50,0x50,0x50,0x70}, //0
{0x20,0x20,0x20,0x20,0x20}, //1
{0x70,0x10,0x70,0x40,0x70}, //2
{0x70,0x10,0x70,0x10,0x70}, //3
{0x50,0x50,0x70,0x10,0x10}, //4
{0x70,0x40,0x70,0x10,0x70}, //5
{0x70,0x40,0x70,0x50,0x70}, //6
{0x70,0x10,0x10,0x10,0x10}, //7
{0x70,0x50,0x70,0x50,0x70}, //8
{0x70,0x50,0x70,0x10,0x70}, //9
};
/*
void Timer_init(void) //12.5ms中断一次
{
IE=0x8B;// -------------------10001011 //中断允许 定时1 定时0 外中断0
IT0=1;//-------------------//外中断为边沿触发
TMOD=0x11; //---------------//定时器0 1 模式1(16位)
TH1=0X3C; // (65536-50000)/256; //24M晶振
TL1=0XB0; //(65536-50000)%256;
PX0=1; //外中断优先
PT1=1; //定时器1优先
PT0=1; //定时器0优先
TR1=1;//------------------//开定时器运}
EA=1;
} */
void KEY_procon(void)
{
if(key!=0&&((KEY_1==0)||(KEY_2==0)||(KEY_3==0)||(KEY_4==0))) //按键判断
{ key--;
if(!key) //自减延时
//-------------------------------------
{
if(KEY_1==0)
{DelayM(20);
if(KEY_1==0)
{adj=1 ;}
while(KEY_1== 0);DelayM(20);//等待键松开
} //最高位置1,表示菜单
//-------------------------------------
if (KEY_2==0)
{DelayM(20);
if (KEY_2==0)
{adj=2;}
while(KEY_2 == 0);DelayM(20);//等待键松开
} //最高位置2,表示加
//-------------------------------------
if (KEY_3==0)
{DelayM(20);
if (KEY_3==0)
{adj=3;}
while(KEY_3 == 0);DelayM(20);//等待键松开
} //最高位置3,表示减
//-------------------------------------
if (KEY_4==0)
{DelayM(20);
if (KEY_4==0)
{ adj=4;}
while(KEY_4 == 0);DelayM(20);//等待键松开
} //最高位置4,表示退出
}}
else
if(KEY_1&&KEY_2&&KEY_3&&KEY_4)
{key=KEY_VAL;}//防止按键连动
}
/*********************************************************************************************
函数名:毫秒级CPU延时函数
调 用:DELAY_MS (?);
参 数:1~65535(参数不可为0)
返回值:无
结 果:占用CPU方式延时与参数数值相同的毫秒时间
备 注:应用于1T单片机时i<600,应用于12T单片机时i<125
/*********************************************************************************************/
void DELAY_MS(unsigned int a){//延时函数 1MS/次
unsigned int i;
while( --a != 0){
for(i = 0; i < 600; i++); //一个 ; 表示空语句,CPU空转。
} //i 从0加到125,CPU大概就耗时1毫秒
}
/*********************************************************************************************/
/*********************************************************************************************
函数名:蜂鸣器用延时函数
调 用:Delay (?);
参 数:1~65535(参数不可为0)
返回值:无
结 果:占用CPU方式延时与参数数值相同的微秒时间
备 注:蜂鸣器专用
/*********************************************************************************************/
void Delay(int num){//蜂鸣器用延时函数
while(num--) ;
}
/*********************************************************************************************/
/*********************************************************************************************
函数名:蜂鸣器驱动函数
调 用:
参 数:无
返回值:无
结 果:占用CPU方式延时与参数数值相同的微秒时间
备 注:蜂鸣器专用
/*********************************************************************************************/
void Beep(void){//扬声器--开机音
unsigned char a;//定义变量用于发声的长度设置
for(a=60;a>0;a--){//第一个声音的长度
beep = ~beep;//取反扬声器驱动口,以产生音频
Delay(600);//音调设置延时
}
for(a=100;a>0;a--){//同上
beep = ~beep;
Delay(480);//
}
for(a=100;a>0;a--){//同上
beep = ~beep;
Delay(180);//
}
beep = 1;//音乐结束后扬声器拉高关闭
}
/*****************************************************************************/
void Beep_set(void){//扬声器--确定设置
unsigned char a;//定义变量用于发声的长度设置
for(a=50;a>0;a--){//第一个声音的长度
beep = ~beep;//取反扬声器驱动口,以产生音频
Delay(600);//音调设置延时
}
for(a=100;a>0;a--){//同上
beep = ~beep;
Delay(300);//
}
for(a=50;a>0;a--){//同上
beep = ~beep;
Delay(600);//
}
beep = 1;//音乐结束后扬声器拉高关闭
}
/*****************************************************************************/
void Beep_key(void){//扬声器--按键音
unsigned char a;//定义变量用于发声的长度设置
for(a=100;a>0;a--){//声音的长度
beep = ~beep;
Delay(300);//音调设置延时
}
beep = 1;//音乐结束后扬声器拉高关闭
}
/*****************************************************************************/
void Beep_bs(void){//扬声器--整点报时
unsigned char a;//定义变量用于发声的长度设置
for(a=150;a>0;a--){//第一个声音的长度
beep = ~beep;//取反扬声器驱动口,以产生音频
Delay(400);//音调设置延时
}
DELAY_MS(500);
for(a=150;a>0;a--){//同上
beep = ~beep;
Delay(400);//
}
DELAY_MS(500);
for(a=150;a>0;a--){//第一个声音的长度
beep = ~beep;//取反扬声器驱动口,以产生音频
Delay(400);//音调设置延时
}
DELAY_MS(500);
for(a=250;a>0;a--){//同上
beep = ~beep;
Delay(200);//
}
beep = 1;//音乐结束后扬声器拉高关闭
}
/*****************************************************************************/
void Beep_al(void){//扬声器--闹钟
unsigned int a;//定义变量用于发声的长度设置
for(a=2500;a>0;a--){//
beep = ~beep;
Delay(180);//
}
beep = 1;//音乐结束后扬声器拉高关闭
}
/******************************************************************************/
//LCD驱动(DY12864CBL液晶显示屏并口驱动程序)
/******************************************************************************/
void chk_busy(){//检查忙位(底层)
PSB=1;
RS=0;
RW=1;
E=1;
Lcd_Bus=0xff;
while((Lcd_Bus&0x80)==0x80);
_nop_();//并口驱动一个nop足够了!
E=0;
}
/*********************************************************
** 函数名称:write_12864_cmd(uchar cmd)
** 功能描述: 12864写入一个指令函数
** 输 入: cmd : 指令码
** 输出 : 无
** 全局变量: 无
** 调用模块: uchar busy_12864()
** 说明:
** 注意:
*********************************************************/
void write_12864_cmd(unsigned char cmdcode){//写命令到LCD(底层)
PSB=1;
chk_busy();
RS=0;
RW=0;
Lcd_Bus=cmdcode;
E=1;
_nop_();//并口驱动一个nop足够了!DELAY_MS(1); //延时是必须的
E=0;
}
/******************************************************************************/
void write_data(unsigned char Dispdata){ //写数据到LCD(底层)
PSB=1;
chk_busy();
_nop_();//并口驱动一个nop足够了!DELAY_MS(1); //延时是必须的
RS=1;
RW=0;
E=1;
Lcd_Bus=Dispdata;
_nop_();//并口驱动一个nop足够了!DELAY_MS(1); //延时是必须的
E=0;
}
/******************************************************************************/
void lcm_init(){//初始化LCD屏(被调用层)
PSB=1;
_nop_();//并口驱动一个nop足够了!DELAY_MS(200); //启动等待,等LCM讲入工作状态
write_12864_cmd(0x30); //选择8bit数据流
write_12864_cmd(0x0c); //开显示(无游标、不反白)
write_12864_cmd(0x01); //清除显示,并且设定地址指针为00H
_nop_();//并口驱动一个nop足够了!DELAY_MS(200); //启动等待,等LCM讲入工作状态
}
/*****************************************************************************/
void lcm_w_word(unsigned char *s){//向LCM发送一个字符串,长度64字符之内。(被调用层)
while(*s>0){ //应用:lcm_w_word("您好!");
write_data(*s);
s++;
}
}
/******************************************************************************/
void lcm_w_test(bit i,unsigned char word){//写指令或数据(被调用层)
if(i == 0){write_12864_cmd(word);//写指令或数据(0,指令)
_nop_();}//并口驱动一个nop足够了!
else{write_data(word);//写指令或数据(1,数据)
_nop_();}//并口驱动一个nop足够了!
}
/*写LCD 参数格式:0:命令,1:数值 ,数据*/
void wr_lcd (uchar dat_comm,uchar content)
{
chk_busy();
RS =dat_comm;
_nop_();
RW = 0; // 写
Lcd_Bus =content; // 输出数据或命令
_nop_();
E=1;
_nop_();
E=0;
}
/******************************************************************************/
void lcm_clr(void){//清屏函数
lcm_w_test(0,0x01);
_nop_();//并口驱动一个nop足够了启动等待,等LCM讲入工作状态
}
//===========================================================
//读数据
uchar lcdReadData (void)
{
uchar dat;
chk_busy();
RS=1;
RW=1;
E=1;
dat=Lcd_Bus;
_nop_();
E=0;
return dat;
}
/**********************************************************
//函数功能:使用绘图的方法让一个16*16的汉字符反白
//形式参数:uchar x,uchar y,uchar wide,uchar bkcor
//行参说明:坐标水平位置,坐标垂直位置,反白行数,要反白还是清除(1:反白,0:清除)
//返回参数:无
//使用说明:无
//**********************************************************/
void write1616GDRAM(uchar x,uchar y,uchar sign,uchar *bmp)
{
uchar i,j,basex;
write_12864_cmd(0x36); //扩展指令,写图片时,关图片显示
if(y==1||y==2) //第一第二行
{basex=0x80; //上半屏
y=(y-1)*16;} //垂直位址从0X80开始.
if(y==3||y==4) //第三第四行
{basex=0x88; //下半屏
y=(y-3)*16;} //垂直位址都是从0X80开始的,不管上下半屏。
for(i=0;i<16;i++) //
{write_12864_cmd(0x80+y+i); //写入垂直位址。
write_12864_cmd(basex+x-1); //再写入水平位址(上半屏第一字为0X80,……第七字为0X87)
//下半屏第一字为0X88,……第七字为0X8F;
for(j=0;j<2;j++) //再写入两个8位元的数据,AC会自动增一,接着写数据
{if(sign==1)
write_data(~(*bmp++));
else
write_data(*bmp++);}}
write_12864_cmd(0x36); //写完数据,开图片显示
}
/**************************************************************************************
//函数功能:显示16X16图形,适用于st7920型液晶
//形式参数:uchar x,uchar y,uchar *bmp
//行参说明:横坐标X列,纵坐标Y行,sign=1反白、=0不反,tt是要显示的图形bmp1616中的第几个
//************************************************************************************/
void set16162pic(uchar x,uchar y,uchar sign,uchar tt) //固定数组了,只有TT选择是哪一个显示
{ uchar (*pp)[32]; //定义指针
pp=running; //二维数组首地址给指针,故指针指向下一个数组地址应为加64
write1616GDRAM(x,y,sign,pp[tt]); //写入小时的十位
}
//===============================================
//显时文本
void dispS2tring (uchar x,y,char *msg)
{
write_12864_cmd(0x30);
switch(x)
{
case 0:x=0x80;break;
case 1:x=0x90;break;
case 2:x=0x88;break;
case 3:x=0x98;break;
}
y =x+y;
write_12864_cmd(y);
while (*msg)
{
write_data(*msg++);
}}
//===============================================
void dispString (uchar X, Y, speed, uchar *msg)
{
if (X == 0)
{X = 0x80;}
else if (X == 1)
{X = 0x90;}
else if (X == 2)
{X = 0x88;}
else if (X == 3)
{X = 0x98;}
Y = X + Y;
write_12864_cmd(Y);
while (*msg)
{write_data(*msg++);DELAY_MS(speed);}}
void Disp_Img(unsigned char code *img)
{ unsigned int j=0;
unsigned char x,y,i;
for(i=0;i<9;i+=8)
for(y=0;y<32;y++)/*原来 为 y<26 ,上下两个半屏不能正常对接显示,导致显示的图片中间有空隙*/
for(x=0;x<8;x++)
{ write_12864_cmd(0x36);//功能设置---8BIT控制界面,扩充指令集
write_12864_cmd(y+0x80); //行地址
write_12864_cmd(x+0x80+i); //列地址
write_12864_cmd(0x30);
write_data(img[j++]); //写数据还要回到基本指令集
write_data(img[j++]);
} }
//写入坐标
void wrPosition2 (uchar x,uchar y)
{
write_12864_cmd(0x34);
write_12864_cmd(y);
write_12864_cmd(x);
write_12864_cmd(0x30);
}
//===============================================
void wrPosition (void)
{ write_12864_cmd(0x34);
write_12864_cmd(lcdPosY);
write_12864_cmd(lcdPosX);
write_12864_cmd(0x30);}
//===========================================================
//显示图片
void dispPic(uchar *bmp)
{
uchar i,j;
uchar *p1,*p2;
uchar x=0x80,y=0x80;
p1=bmp;p2=bmp+512;
write_12864_cmd(0x34); //扩充指令集
for (i=0;i<32;i++)
{
wrPosition2(x,y);
for (j=0;j<16;j++)
write_data (*p1++);
for (j=0;j<16;j++)
write_data(*p2++);
y++;
}
write_12864_cmd(0x36);
write_12864_cmd(0x30);
}
//===========================================================
//打点
void dispDot(uchar posx,uchar posy,uchar color)
{
union int2char //利用共用体,将int和char类型数据互换
{
int intdata;
char chardata[2];
}tran;
uchar x,y;
if(posx > 127 || posy > 63) return; //参数错误,退出
if(posy > 31) //128*64点转化为真实的位置256*32点
{
posx += 128;
posy -= 32;
}
x = 0x80 + posx / 16; //转化为字节坐标值
y = 0x80 + posy;
wrPosition2(x,y); //写入坐标值
lcdReadData(); //先执行一次空的读数据
tran.chardata[0] = lcdReadData(); //读取高8位
tran.chardata[1] = lcdReadData(); //读取低8位
if(color) tran.intdata |= 1 << (15 - (posx & 0x0f)); //修改数据(写点)
else tran.intdata &= ~ (1 << (15 - (posx & 0x0f))); //修改数据(清点)
write_12864_cmd(0x34); //扩充指令集
wrPosition2(x,y); //写入坐标值
write_data(tran.chardata[0]); //写入高8位
write_data (tran.chardata[1]); //写入低8位
write_12864_cmd(0x36); //开图形显示
write_12864_cmd(0x30); //基本指令集
}
//===========================================================
//基于打点的Bresenham画线
void dispLine23(char x0,char y0,char x1,char y1,char color)
{
int dx,dy,sub; //定义起点到终点的横、纵坐标增加值
int s1,s2,status,i;
dx=x1-x0;
if(dx>=0) s1=1; //X的方向是增加的
else {dx = -dx; s1=-1; } //X的方向是降低的
dy=y1-y0; //判断Y的方向是增加还是降低的
if(dy>=0) s2=1;
else {dy = -dy; s2=-1; }
if(dy>dx)
{ //以45度角为分界线,靠进Y轴是status=1,靠近X轴是status=0
dx = dx + dy;
dy = dx - dy;
dx = dx - dy;
status=1;
}
else
status=0;
/*********Bresenham算法画任意两点间的直线********/
sub=2*dy-dx; //第1次判断下个点的位置
for(i=0;i<=dx;i++)
{
dispDot(x0,y0,color); //画点
if(sub>=0)
{
if(status==1) x0+=s1; //在靠近Y轴区,x值加1
else y0+=s2; //在靠近X轴区,y值加1
sub-=2*dx; //判断下下个点的位置
}
if(status==1) y0+=s2;
else x0+=s1;
sub+=2*dy;
}
}
//===============================================
//显时线
void dispLine(uchar lie,hang,dat1,dat2)
{ uchar x=0x80+lie,y=0x80+hang;
write_12864_cmd(0x34); //扩充指令集 lcdWriteData
lcdPosX = 0x80+lie;
lcdPosY = 0x80+hang;
wrPosition2(x,y);
write_data (dat1);
write_data (dat2);
write_12864_cmd(0x36);
write_12864_cmd(0x30);
}
//===========================================================
//基于打点的miniNum显示
void dispMiniNum(uchar posx, uchar posy, uchar *a)
{
uchar i,j;
for(i = 0; i < 5; i ++)
for(j = 0; j < 3; j ++)
dispDot(posx + j, posy + i, *a++);
}
//===============================================
void displayPhoto (uchar *bmp, uchar bmpCls)
{
lcdPosX = 0x80;
halfScr = 2;
for (;halfScr != 0; halfScr--)
{
lcdPosY = 0x80;
halfLineCnt = 32;
for (;halfLineCnt != 0; halfLineCnt--)
{
basicBlock = 16;
wrPosition ();
for (; basicBlock != 0; basicBlock--)
{
if (bmpCls == 0)
{
write_data (*bmp++);
}
else if (bmpCls == 1)
{
write_data (0x00);
}
}
lcdPosY++;
}
lcdPosX = 0x88;
}
write_12864_cmd(0x36);
write_12864_cmd(0x30);
}
//===============================================
void convertChar (uchar CX, CY, width)
{
displayPhoto(0,1);
lcdPosY = 0x80;
if (CX == 0)
{
CX = 0x80;
halfLineCnt = 16;
}
else if (CX == 1)
{
CX = 0x80;
halfLineCnt = 32;
}
else if (CX == 2)
{
CX = 0x88;
halfLineCnt = 16;
}
else if (CX == 3)
{
CX = 0x88;
halfLineCnt = 32;
}
lcdPosX = CX + CY;
for (; halfLineCnt != 0; halfLineCnt--)
{
basicBlock = width;
wrPosition();
for (;basicBlock != 0; basicBlock--)
{
if (halfLineCnt > 16)
{
write_data(0x00);
}
else
{
write_data(0xff);
}
}
lcdPosY++;
}
write_12864_cmd(0x36);
write_12864_cmd(0x30);
}
/********************************************************************************************************
清理图片缓冲区
********************************************************************************************************/
void clear_img()
{ uchar i,j;
for(i=0;i<32;i++)
{ write_12864_cmd(0x80+i);
write_12864_cmd(0x80);
for(j=0;j<16;j++)
{write_data(0x00);}}
for(i=0;i<32;i++)
{write_12864_cmd(0x80+i);
write_12864_cmd(0x88);
for(j=0;j<16;j++)
{write_data(0x00);}
}}
/*********************************************************************************************
函数名:1302驱动程序
调 用:
参 数:无
返回值:无
结 果:
备 注:适用于DS1302芯片+32.768KHz6pF晶体
/**********************************************************************************************/
//1302驱动程序(底层协议)
void clock_out(unsigned char Timdd){
ACC=Timdd;
clock_dat=a0; clock_clk=1; clock_clk=0;clock_dat=a1; clock_clk=1; clock_clk=0;
clock_dat=a2; clock_clk=1; clock_clk=0;clock_dat=a3; clock_clk=1; clock_clk=0;
clock_dat=a4; clock_clk=1; clock_clk=0;clock_dat=a5; clock_clk=1; clock_clk=0;
clock_dat=a6; clock_clk=1; clock_clk=0;clock_dat=a7; clock_clk=1; clock_clk=0;
}
/*****************************************************************************/
//DS1302写数据(底层协议)
void write_clock(unsigned char ord, unsigned char Tidd){
clock_clk=0;
clock_Rst=0;
clock_Rst=1;
clock_out(ord);
clock_out(Tidd);
clock_Rst=0;
clock_clk=1;
}
/*****************************************************************************/
//DS1302写入字节(底层协议)
unsigned char clock_in(void){
clock_dat=1;
a0=clock_dat;
clock_clk=1; clock_clk=0; a1=clock_dat;
clock_clk=1; clock_clk=0; a2=clock_dat;
clock_clk=1; clock_clk=0; a3=clock_dat;
clock_clk=1; clock_clk=0; a4=clock_dat;
clock_clk=1; clock_clk=0; a5=clock_dat;
clock_clk=1; clock_clk=0; a6=clock_dat;
clock_clk=1; clock_clk=0; a7=clock_dat;
return(ACC);
}
/*****************************************************************************/
//DS1302读数据(底层协议)
unsigned char read_clock(unsigned char ord){
unsigned char Timedd=0;
clock_clk=0;
clock_Rst=0;
clock_Rst=1;
clock_out(ord);
Timedd=clock_in();
clock_Rst=0;
clock_clk=1;
return(Timedd);
}
/*****************************************************************************/
/*****************************************************************************/
/*****************************************************************************/
//DS1302时钟芯片驱动程序
/*****************************************************************************/
//常用时钟数据读取
void read_clockS(void){
ss = read_clock(0x81); //读取秒数据
mm = read_clock(0x83); //读取分钟数据
hh = read_clock(0x85); //小时
days = read_clock(0x87);//日
mo = read_clock(0x89); //月
xinq = read_clock(0x8b);//星期
yy = read_clock(0x8d); //年
t=ss/16*10+ss%16;
year_10=(mo/16*10)+mo%16;
}
/*********************************************************************************************
函数名:1302初始化程序
调 用:Init_1302();
参 数:无
返回值:无
结 果:初始化时钟芯片,自动检测并初始化
备 注:适用于DS1302芯片+32.768KHz6pF晶体
/**********************************************************************************************/
//设置1302的初始时间(如果时钟芯片停止自动初始化)
void Init_1302(void){//-设置1302的初始时间(2010年1月1日00时00分00秒星期一)
unsigned char f;
if(read_clock(0x81) == 0x80){
write_clock(0x8e,0x00);//允许写操作
write_clock(0x8c,0x10);//年
write_clock(0x8a,0x01);//星期
write_clock(0x88,0x01);//月
write_clock(0x86,0x01);//日
write_clock(0x84,0x00);//小时
write_clock(0x82,0x00);//分钟
write_clock(0x80,0x50);//秒
write_clock(0x90,0xa5);//充电设置(0x05不充电,0xa5充电)
for(f=0;f<60;f=f+2){//清除闹钟RAM位为0
write_clock(0xc0+f,0x00);
}
write_clock(0xC0,0x01);//0XC1用于开机LOGO的储存
write_clock(0xC4,0x09);//背光初始为亮度9
write_clock(0x8e,0x80);//禁止写操作
}
}
/*
公历年对应的农历数据,每年三字节,
格式第一字节BIT7-4 位表示闰月月份,值为0 为无闰月,BIT3-0 对应农历第1-4 月的大小
第二字节BIT7-0 对应农历第5-12 月大小,第三字节BIT7 表示农历第13 个月大小
月份对应的位为1 表示本农历月大(30 天),为0 表示小(29 天)
第三字节BIT6-5 表示春节的公历月份,BIT4-0 表示春节的公历日期 */
code uchar year_code[] = {
/* 0x04,0xAe,0x53, //1901 0
0x0A,0x57,0x48, //1902 3
0x55,0x26,0xBd, //1903 6
0x0d,0x26,0x50, //1904 9
0x0d,0x95,0x44, //1905 12
0x46,0xAA,0xB9, //1906 15
0x05,0x6A,0x4d, //1907 18
0x09,0xAd,0x42, //1908 21
0x24,0xAe,0xB6, //1909
0x04,0xAe,0x4A, //1910
0x6A,0x4d,0xBe, //1911
0x0A,0x4d,0x52, //1912
0x0d,0x25,0x46, //1913
0x5d,0x52,0xBA, //1914
0x0B,0x54,0x4e, //1915
0x0d,0x6A,0x43, //1916
0x29,0x6d,0x37, //1917
0x09,0x5B,0x4B, //1918
0x74,0x9B,0xC1, //1919
0x04,0x97,0x54, //1920
0x0A,0x4B,0x48, //1921
0x5B,0x25,0xBC, //1922
0x06,0xA5,0x50, //1923
0x06,0xd4,0x45, //1924
0x4A,0xdA,0xB8, //1925
0x02,0xB6,0x4d, //1926
0x09,0x57,0x42, //1927
0x24,0x97,0xB7, //1928
0x04,0x97,0x4A, //1929
0x66,0x4B,0x3e, //1930
0x0d,0x4A,0x51, //1931
0x0e,0xA5,0x46, //1932
0x56,0xd4,0xBA, //1933
0x05,0xAd,0x4e, //1934
0x02,0xB6,0x44, //1935
0x39,0x37,0x38, //1936
0x09,0x2e,0x4B, //1937
0x7C,0x96,0xBf, //1938
0x0C,0x95,0x53, //1939
0x0d,0x4A,0x48, //1940
0x6d,0xA5,0x3B, //1941
0x0B,0x55,0x4f, //1942
0x05,0x6A,0x45, //1943
0x4A,0xAd,0xB9, //1944
0x02,0x5d,0x4d, //1945
0x09,0x2d,0x42, //1946
0x2C,0x95,0xB6, //1947
0x0A,0x95,0x4A, //1948
0x7B,0x4A,0xBd, //1949
0x06,0xCA,0x51, //1950
0x0B,0x55,0x46, //1951
0x55,0x5A,0xBB, //1952
0x04,0xdA,0x4e, //1953
0x0A,0x5B,0x43, //1954
0x35,0x2B,0xB8, //1955
0x05,0x2B,0x4C, //1956
0x8A,0x95,0x3f, //1957
0x0e,0x95,0x52, //1958
0x06,0xAA,0x48, //1959
0x7A,0xd5,0x3C, //1960
0x0A,0xB5,0x4f, //1961
0x04,0xB6,0x45, //1962
0x4A,0x57,0x39, //1963
0x0A,0x57,0x4d, //1964
0x05,0x26,0x42, //1965
0x3e,0x93,0x35, //1966
0x0d,0x95,0x49, //1967
0x75,0xAA,0xBe, //1968
0x05,0x6A,0x51, //1969
0x09,0x6d,0x46, //1970
0x54,0xAe,0xBB, //1971
0x04,0xAd,0x4f, //1972
0x0A,0x4d,0x43, //1973
0x4d,0x26,0xB7, //1974
0x0d,0x25,0x4B, //1975
0x8d,0x52,0xBf, //1976
0x0B,0x54,0x52, //1977
0x0B,0x6A,0x47, //1978
0x69,0x6d,0x3C, //1979
0x09,0x5B,0x50, //1980
0x04,0x9B,0x45, //1981
0x4A,0x4B,0xB9, //1982
0x0A,0x4B,0x4d, //1983
0xAB,0x25,0xC2, //1984
0x06,0xA5,0x54, //1985
0x06,0xd4,0x49, //1986
0x6A,0xdA,0x3d, //1987
0x0A,0xB6,0x51, //1988
0x09,0x37,0x46, //1989
0x54,0x97,0xBB, //1990
0x04,0x97,0x4f, //1991
0x06,0x4B,0x44, //1992
0x36,0xA5,0x37, //1993
0x0e,0xA5,0x4A, //1994
0x86,0xB2,0xBf, //1995
0x05,0xAC,0x53, //1996
0x0A,0xB6,0x47, //1997
0x59,0x36,0xBC, //1998
0x09,0x2e,0x50, //1999 294 */
0x0C,0x96,0x45, //2000 297
0x4d,0x4A,0xB8, //2001
0x0d,0x4A,0x4C, //2002
0x0d,0xA5,0x41, //2003
0x25,0xAA,0xB6, //2004
0x05,0x6A,0x49, //2005
0x7A,0xAd,0xBd, //2006
0x02,0x5d,0x52, //2007
0x09,0x2d,0x47, //2008
0x5C,0x95,0xBA, //2009
0x0A,0x95,0x4e, //2010
0x0B,0x4A,0x43, //2011
0x4B,0x55,0x37, //2012
0x0A,0xd5,0x4A, //2013
0x95,0x5A,0xBf, //2014
0x04,0xBA,0x53, //2015
0x0A,0x5B,0x48, //2016
0x65,0x2B,0xBC, //2017
0x05,0x2B,0x50, //2018
0x0A,0x93,0x45, //2019
0x47,0x4A,0xB9, //2020
0x06,0xAA,0x4C, //2021
0x0A,0xd5,0x41, //2022
0x24,0xdA,0xB6, //2023
0x04,0xB6,0x4A, //2024
0x69,0x57,0x3d, //2025
0x0A,0x4e,0x51, //2026
0x0d,0x26,0x46, //2027
0x5e,0x93,0x3A, //2028
0x0d,0x53,0x4d, //2029
0x05,0xAA,0x43, //2030
0x36,0xB5,0x37, //2031
0x09,0x6d,0x4B, //2032
0xB4,0xAe,0xBf, //2033
0x04,0xAd,0x53, //2034
0x0A,0x4d,0x48, //2035
0x6d,0x25,0xBC, //2036
0x0d,0x25,0x4f, //2037
0x0d,0x52,0x44, //2038
0x5d,0xAA,0x38, //2039
0x0B,0x5A,0x4C, //2040
0x05,0x6d,0x41, //2041
0x24,0xAd,0xB6, //2042
0x04,0x9B,0x4A, //2043
0x7A,0x4B,0xBe, //2044
0x0A,0x4B,0x51, //2045
0x0A,0xA5,0x46, //2046
0x5B,0x52,0xBA, //2047
0x06,0xd2,0x4e, //2048
0x0A,0xdA,0x42, //2049
0x35,0x5B,0x37, //2050
0x09,0x37,0x4B, //2051
0x84,0x97,0xC1, //2052
0x04,0x97,0x53, //2053
0x06,0x4B,0x48, //2054
0x66,0xA5,0x3C, //2055
0x0e,0xA5,0x4f, //2056
0x06,0xB2,0x44, //2057
0x4A,0xB6,0x38, //2058
0x0A,0xAe,0x4C, //2059
0x09,0x2e,0x42, //2060
0x3C,0x97,0x35, //2061
0x0C,0x96,0x49, //2062
0x7d,0x4A,0xBd, //2063
0x0d,0x4A,0x51, //2064
0x0d,0xA5,0x45, //2065
0x55,0xAA,0xBA, //2066
0x05,0x6A,0x4e, //2067
0x0A,0x6d,0x43, //2068
0x45,0x2e,0xB7, //2069
0x05,0x2d,0x4B, //2070
0x8A,0x95,0xBf, //2071
0x0A,0x95,0x53, //2072
0x0B,0x4A,0x47, //2073
0x6B,0x55,0x3B, //2074
0x0A,0xd5,0x4f, //2075
0x05,0x5A,0x45, //2076
0x4A,0x5d,0x38, //2077
0x0A,0x5B,0x4C, //2078
0x05,0x2B,0x42, //2079
0x3A,0x93,0xB6, //2080
0x06,0x93,0x49, //2081
0x77,0x29,0xBd, //2082
0x06,0xAA,0x51, //2083
0x0A,0xd5,0x46, //2084
0x54,0xdA,0xBA, //2085
0x04,0xB6,0x4e, //2086
0x0A,0x57,0x43, //2087
0x45,0x27,0x38, //2088
0x0d,0x26,0x4A, //2089
0x8e,0x93,0x3e, //2090
0x0d,0x52,0x52, //2091
0x0d,0xAA,0x47, //2092
0x66,0xB5,0x3B, //2093
0x05,0x6d,0x4f, //2094
0x04,0xAe,0x45, //2095
0x4A,0x4e,0xB9, //2096
0x0A,0x4d,0x4C, //2097
0x0d,0x15,0x41, //2098
0x2d,0x92,0xB5, //2099
};
/*
函数功能:输入BCD阳历数据,输出BCD阴历数据(只允许1901-2099年)
调用函数示例:Conversion(c_sun,year_sun,month_sun,day_sun)
如:计算2004年10月16日Conversion(0,0x4,0x10,0x16);
c_sun,year_sun,month_sun,day_sun均为BCD数据,c_sun为世纪标志位,c_sun=0为21世
纪,c_sun=1为19世纪
调用函数后,原有数据不变,读c_moon,year_moon,month_moon,day_moon得出阴历BCD数据
*/
/*子函数,用于读取数据表中农历月的大月或小月,如果该月为大返回1,为小返回0*/
bit get_moon_day(uchar month_p,uint table_addr)
{
uchar temp;
switch (month_p)
{
case 1:{temp=year_code[table_addr]&0x08;
if (temp==0)return(0);else return(1);}
case 2:{temp=year_code[table_addr]&0x04;
if (temp==0)return(0);else return(1);}
case 3:{temp=year_code[table_addr]&0x02;
if (temp==0)return(0);else return(1);}
case 4:{temp=year_code[table_addr]&0x01;
if (temp==0)return(0);else return(1);}
case 5:{temp=year_code[table_addr+1]&0x80;
if (temp==0) return(0);else return(1);}
case 6:{temp=year_code[table_addr+1]&0x40;
if (temp==0)return(0);else return(1);}
case 7:{temp=year_code[table_addr+1]&0x20;
if (temp==0)return(0);else return(1);}
case 8:{temp=year_code[table_addr+1]&0x10;
if (temp==0)return(0);else return(1);}
case 9:{temp=year_code[table_addr+1]&0x08;
if (temp==0)return(0);else return(1);}
case 10:{temp=year_code[table_addr+1]&0x04;
if (temp==0)return(0);else return(1);}
case 11:{temp=year_code[table_addr+1]&0x02;
if (temp==0)return(0);else return(1);}
case 12:{temp=year_code[table_addr+1]&0x01;
if (temp==0)return(0);else return(1);}
case 13:{temp=year_code[table_addr+2]&0x80;
if (temp==0)return(0);else return(1);}
}
}
/*
函数功能:输入BCD阳历数据,输出BCD阴历数据(只允许1901-2099年)
调用函数示例:Conversion(c_sun,year_sun,month_sun,day_sun)
如:计算2004年10月16日Conversion(0,0x4,0x10,0x16);
c_sun,year_sun,month_sun,day_sun均为BCD数据,c_sun为世纪标志位,c_sun=0为21世
纪,c_sun=1为19世纪
调用函数后,原有数据不变,读c_moon,year_moon,month_moon,day_moon得出阴历BCD数据 */
void Conversion(bit c,uchar year,uchar month,uchar day)
{ //c=0 为21世纪,c=1 为19世纪 输入输出数据均为BCD数据
uchar temp1,temp2,temp3,month_p;
uint temp4,table_addr;
bit flag2,flag_y;
temp1=year/16; //BCD->hex 先把数据转换为十六进制
temp2=year%16;
year=temp1*10+temp2;
temp1=month/16;
temp2=month%16;
month=temp1*10+temp2;
temp1=day/16;
temp2=day%16;
day=temp1*10+temp2;
/***********************************************************************************************
************************************************************************************************
*****定位数据表地址*****************************************************************************/
//2000年的定位数据表地址
/*-----------------------------*/
if(c==0)
{ table_addr=(year)*0x3; }
else
{ table_addr=(year-1)*0x3; }
/*------------------------------*/
//1901年的定位数据表地址
/*---------------------------------------------------
if(c==0) { table_addr=(year+0x64-1)*0x3; } //0x64 = 100
else { table_addr=(year-1)*0x3; }
-----------------------------------------------------*/
//定位数据表地址完成
//取当年春节所在的公历月份
temp1=year_code[table_addr+2]&0x60;
temp1=_cror_(temp1,5);
//取当年春节所在的公历月份完成
//取当年春节所在的公历日
temp2=year_code[table_addr+2]&0x1f;
//取当年春节所在的公历日完成
// 计算当年春年离当年元旦的天数,春节只会在公历1月或2月
if(temp1==0x1)
{ temp3=temp2-1; }
else
{ temp3=temp2+0x1f-1; }
// 计算当年春年离当年元旦的天数完成
//计算公历日离当年元旦的天数,为了减少运算,用了两个表
//day_code1[9],day_code2[3]
//如果公历月在九月或前,天数会少于0xff,用表day_code1[9],
//在九月后,天数大于0xff,用表day_code2[3]
//如输入公历日为8月10日,则公历日离元旦天数为day_code1[8-1]+10-1
//如输入公历日为11月10日,则公历日离元旦天数为day_code2[11-10]+10-1
if (month<10)
{ temp4=day_code1[month-1]+day-1; }
else
{temp4=day_code2[month-10]+day-1; }
if ((month>0x2)&&(year%0x4==0))
{ temp4+=1;}//如果公历月大于2月并且该年的2月为闰月,天数加1
//计算公历日离当年元旦的天数完成
//判断公历日在春节前还是春节后
if (temp4>=temp3)
{ temp4-=temp3;month=0x1;//公历日在春节后或就是春节当日使用下面代码进行运算
month_p=0x1; //month_p为月份指向,公历日在春节前或就是春节当日month_p指向首月
flag2=get_moon_day(month_p,table_addr);
//检查该农历月为大小还是小月,大月返回1,小月返回0
flag_y=0;
if(flag2==0)temp1=0x1d; //小月29天
else temp1=0x1e; //大小30天
temp2=year_code[table_addr]&0xf0;
temp2=_cror_(temp2,4); //从数据表中取该年的闰月月份,如为0则该年无闰月
while(temp4>=temp1)
{
temp4-=temp1;
month_p+=1;
if(month==temp2)
{
flag_y=~flag_y;
if(flag_y==0)
month+=1;
}
else month+=1;
flag2=get_moon_day(month_p,table_addr);
if(flag2==0)temp1=0x1d;
else temp1=0x1e;
}
day=temp4+1;
}
else
{ //公历日在春节前使用下面代码进行运算
temp3-=temp4;
if (year==0x0)
{
year=0x63;c=1;
}
else year-=1;
table_addr-=0x3;
month=0xc;
temp2=year_code[table_addr]&0xf0;
temp2=_cror_(temp2,4);
if (temp2==0)
month_p=0xc;
else
month_p=0xd; //
/*month_p为月份指向,如果当年有闰月,一年有十三个月,月指向13,无闰月指向12*/
flag_y=0;
flag2=get_moon_day(month_p,table_addr);
if(flag2==0)temp1=0x1d;
else temp1=0x1e;
while(temp3>temp1)
{
temp3-=temp1;
month_p-=1;
if(flag_y==0)month-=1;
if(month==temp2)flag_y=~flag_y;
flag2=get_moon_day(month_p,table_addr);
if(flag2==0)temp1=0x1d;
else temp1=0x1e;
}
day=temp1-temp3+1;
}
c_moon=c; //HEX->BCD ,运算结束后,把数据转换为BCD数据
temp1=year/10;
temp1=_crol_(temp1,4);
temp2=year%10;
year_moon=temp1|temp2;
temp1=month/10;
temp1=_crol_(temp1,4);
temp2=month%10;
month_moon=temp1|temp2;
temp1=day/10;
temp1=_crol_(temp1,4);
temp2=day%10;
day_moon=temp1|temp2;
}
/****************************************************************************
算法:日期+年份+所过闰年数+月较正数之和除7 的余数就是星期但如果是在
闰年又不到3 月份上述之和要减一天再除7
星期数为0
*****************************************************************************
函数功能:输入BCD阳历数据,输出BCD星期数据(只允许1901-2099年)
调用函数示例:Conver_week(c_sun,year_sun,month_sun,day_sun)
如:计算2004年10月16日Conversion(0,0x4,0x10,0x16);
*****************************************************************************/
//void Conver_week(bit c,unsigned char year,unsigned char month,unsigned char day)
void Conver_week(bit c,unsigned char year,unsigned char month,unsigned char day)
{ //c=0 为21世纪,c=1 为19世纪 输入输出数据均为BCD数据
unsigned char temp1,temp2;
temp1=year/16; //BCD->hex 先把数据转换为十六进制
temp2=year%16;
year=temp1*10+temp2;
temp1=month/16;
temp2=month%16;
month=temp1*10+temp2;
temp1=day/16;
temp2=day%16;
day=temp1*10+temp2;
if (c==0){year+=0x64;} //如果为21世纪,年份数加100
temp1=year/0x4; //所过闰年数只算1900年之后的
temp2=year+temp1;
temp2=temp2%0x7; //为节省资源,先进行一次取余,避免数大于0xff,避免使用整型数据
temp2=temp2+day+table_week[month-1];
if (year%0x4==0&&month<3)temp2-=1;
week=temp2%0x7;
}
/*****************************************************************************/
//农历显示
/******************************************************************************/
void lcmnongli()
{uchar yue,ri;
read_clockS();
year_sun=yy;
month_sun=mo;
day_sun=days;
Conversion(c_sun,year_sun,month_sun,day_sun);
yue=(month_moon/16)*10+month_moon%16;
noliyue=yue;
ri=(day_moon/16)*10+day_moon%16;
if(menu==0){
if(KA==0||KA==5) //常规节日模
{lcm_w_test(0,0x8c);} //显示农历月 0X88在屏幕第3行
if(KA==3) //图形温度模式
{lcm_w_test(0,0x9c);} //显示农历月 0X9C在屏幕第3行
//if(KA==5) //日历模式
if(KA==4) //表盘式时钟
{lcm_w_test(0,0x8e);} //显示农历月 0X9E在屏幕第4行
}
if(menu==1){lcm_w_test(0,0x9c);} //显示农历月 0X88在屏幕第3行
if(yue==1){ lcm_w_word("正");}
if(yue==2){ lcm_w_word("二");}
if(yue==3){ lcm_w_word("三");}
if(yue==4){ lcm_w_word("四");}
if(yue==5){ lcm_w_word("五");}
if(yue==6){ lcm_w_word("六");}
if(yue==7){ lcm_w_word("七");}
if(yue==8){ lcm_w_word("八");}
if(yue==9){ lcm_w_word("九");}
if(yue==10){ lcm_w_word("十");}
if(yue==11){ lcm_w_word("冬");}
if(yue==12){ lcm_w_word("腊");}
if(menu==0){
if(KA==0||KA==5) //标准节日时钟和日历式时钟
{lcm_w_test(0,0x8d);} //在屏幕第3行
if(KA==3)
{lcm_w_test(0,0x9D);} //显示农历月 0X9D在屏幕第4行
if(KA==4)
{lcm_w_test(0,0x8f);} } //显示农历月 0X9D在屏幕第4行
if(menu==1){lcm_w_test(0,0x9d);} //显示农历月 0X88在屏幕第3行
lcm_w_word("月");
if(menu==0){
if(KA==0||KA==5)
{lcm_w_test(0,0x8e);} //在屏幕第3行
if(KA==3||KA==4)
{lcm_w_test(0,0x9E);} } //显示农历月 0X9E在屏幕第4行
// if(KA==4) //表盘式时钟
if(menu==1){lcm_w_test(0,0x9e);} //显示农历月 0X88在屏幕第3行
if(ri<=10)
{if(ri==1){ lcm_w_word("初一");}
if(ri==2){ lcm_w_word("初二");}
if(ri==3){ lcm_w_word("初三");}
if(ri==4){ lcm_w_word("初四");}
if(ri==5){ lcm_w_word("初五");}
if(ri==6){ lcm_w_word("初六");}
if(ri==7){ lcm_w_word("初七");}
if(ri==8){ lcm_w_word("初八");}
if(ri==9){ lcm_w_word("初九");}
if(ri==10){ lcm_w_word("初十");}
}
else
{if(ri==11){ lcm_w_word("十一");}
if(ri==12){ lcm_w_word("十二");}
if(ri==13){ lcm_w_word("十三");}
if(ri==14){ lcm_w_word("十四");}
if(ri==15){ lcm_w_word("十五");}
if(ri==16){ lcm_w_word("十六");}
if(ri==17){ lcm_w_word("十七");}
if(ri==18){ lcm_w_word("十八");}
if(ri==19){ lcm_w_word("十九");}
if(ri==20){ lcm_w_word("二十");}
if(ri==21){ lcm_w_word("廿一");}
if(ri==22){ lcm_w_word("廿二");}
if(ri==23){ lcm_w_word("廿三");}
if(ri==24){ lcm_w_word("廿四");}
if(ri==25){ lcm_w_word("廿五");}
if(ri==26){ lcm_w_word("廿六");}
if(ri==27){ lcm_w_word("廿七");}
if(ri==28){ lcm_w_word("廿八");}
if(ri==29){ lcm_w_word("廿九");}
if(ri==30){ lcm_w_word("三十");}
}
}
//十二生肖显示
/******************************************************************************/
void lcmshengxiao()
{
uint y3;
y3=(year_moon/16*10+year_moon%16+2000-1900)%12;
if(noliyear<6 & noliyue>6) y3--;
if(KA==0){ //标准节日时钟界面的生肖显示
lcm_w_test(0,0x88);
switch(y3)
{
case 0: lcm_w_word("△子鼠年");
break;
case 1: lcm_w_word("●丑牛年");
break;
case 2: lcm_w_word("▲寅虎年");
break;
case 3: lcm_w_word("●卯兔年");
break;
case 4: lcm_w_word("△辰龙年");
break;
case 5: lcm_w_word("☆巳蛇年");
break;
case 6: lcm_w_word("△午马年");
break;
case 7: lcm_w_word("☆未羊年");
break;
case 8: lcm_w_word("△申猴年");
break;
case 9: lcm_w_word("☆酉鸡年");
break;
case 10: lcm_w_word("▲戌狗年");
break;
case 11: lcm_w_word("●亥猪年");
break;} }
if(KA==4){ //表盘式时钟界面的生肖显示
switch(y3)
{
case 0: dispS2tring(0,6,"子鼠");break;
case 1: dispS2tring(0,6,"丑牛");break;
case 2: dispS2tring(0,6,"寅虎");break;
case 3: dispS2tring(0,6,"卯兔");break;
case 4: dispS2tring(0,6,"辰龙");break;
case 5: dispS2tring(0,6,"巳蛇");break;
case 6: dispS2tring(0,6,"午马");break;
case 7: dispS2tring(0,6,"未羊");break;
case 8: dispS2tring(0,6,"申猴");break;
case 9: dispS2tring(0,6,"酉鸡");break;
case 10: dispS2tring(0,6,"戌狗");break;
case 11: dispS2tring(0,6,"亥猪");break;
} }
}
/*显示生肖-----------------------------------------------------*/
void lcm_w_nl(void){
unsigned char LunarYearD,ReYear,tiangan,dizhi; //农历年份的十进制数 和取模后的余数
read_clockS();//读时钟的实时数据
year_sun=yy;
month_sun=mo;
day_sun=days;
Conversion(c_sun,year_sun,month_sun,day_sun);
//调用函数后,原有数据不变,读c_moon农历世纪,year_moon农历年,month_moon,day_moon得出阴历BCD数据
LunarYearD=(year_moon/16)*10+year_moon%16; //农历年转换成10进制数
ReYear=LunarYearD%12; //农历年模12,取余运算
tiangan=LunarYearD%10; //计算农历年对应的天干
dizhi=LunarYearD%12; //计算农历年对应的地支
write_12864_cmd(0x30);
write_12864_cmd(0x06);
if(menu==0){
write_12864_cmd(0x86);
lcm_w_word("农历");
write_12864_cmd(0x97);
lcm_w_word("年");
write_12864_cmd(0x94);
}
if(menu==10){
write_12864_cmd(0x8d);
lcm_w_word("年");
write_12864_cmd(0x8a);
}
/*
第一行0X80-0X81-0X82-0X83-0X84-0X85-0X86-0X87
第三行0X88-0X89-0X8A-0X8B-0X8C-0X8D-0X8E-0X8F
第二行0X90-0X91-0X92-0X93-0X94-0X95-0X96-0X97
第四行0X98-0X99-0X9A-0X9B-0X9C-0X9D-0X9E-0X9F*/
switch(tiangan)
{
// case 0: write_com(0x96);lcm_w_word("庚");break; //余0即整除 天干 庚
case 0: {lcm_w_test(1,0xb8);lcm_w_test(1,0xfd);};break; // 庚 字的代码
case 1: lcm_w_word("辛");break; //
case 2: lcm_w_word("壬");break;
case 3: lcm_w_word("癸");break;
case 4: lcm_w_word("甲");break;
case 5: lcm_w_word("乙");break;
case 6: lcm_w_word("丙");break;
case 7: lcm_w_word("丁");break;
case 8: lcm_w_word("戊");break;
case 9: lcm_w_word("已");break;
}
switch(dizhi)
{
case 0: lcm_w_word("辰");break; //余0即整除 地支 辰
case 1: lcm_w_word("巳");break; //
case 2: lcm_w_word("午");break;
case 3: lcm_w_word("未");break;
case 4: lcm_w_word("申");break;
case 5: lcm_w_word("酉");break;
case 6: lcm_w_word("戌");break;
case 7: lcm_w_word("亥");break;
case 8: lcm_w_word("子");break;
case 9: lcm_w_word("丑");break;
case 10:lcm_w_word("寅");break;
case 11:lcm_w_word("卯");break;
}
switch(ReYear)
{
case 0: lcm_w_word("龙");break; //余0即整除 农历 龙年
case 1: lcm_w_word("蛇");break; //蛇年
case 2: lcm_w_word("马");break;
case 3: lcm_w_word("羊");break;
case 4: lcm_w_word("猴");break;
case 5: lcm_w_word("鸡");break;
case 6: lcm_w_word("狗");break;
case 7: lcm_w_word("猪");break;
case 8: lcm_w_word("鼠");break;
case 9: lcm_w_word("牛");break;
case 10:lcm_w_word("虎");break;
case 11:lcm_w_word("兔");break;
}
}
/****************************************************************************************************************************
函数功能: 二十四节气数据库
入口参数: unsigned char(yy,mo,dd) 对应 年月日
出口参数: unsigned char(0-24) 1-24对应二十四节气
作者 : TOTOP
二十四节气数据库(1901--2050)
数据格式说明:
如1901年的节气为
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
[ 6,21][ 4,19][ 6,21][ 5,21][ 6,22][ 6,22][ 8,23][ 8,24][ 8,24][ 8,24][ 8,23][ 8,22]
[ 9, 6][11, 4][ 9, 6][10, 6][ 9, 7][ 9, 7][ 7, 8][ 7, 9][ 7, 9][ 7, 9][ 7, 8][ 7,15]
上面第一行数据为每月节气对应公历日期,15减去每月第一个节气,每月第二个节气减去15得第二
行,这样每月两个节气对应数据都小于16,每月用一个字节存放,高位存放第一个节气数据,低位存
放第二个节气的数据,可得下表
****************************************************************************************************************************/
uchar code jieqi_code[]=
{
0x96,0xB4,0xA5,0xB5,0xA6,0xA6,0x87,0x88,0x88,0x78,0x87,0x86, //2000
0xA5,0xB3,0xA5,0xA5,0xA6,0xA6,0x88,0x88,0x88,0x78,0x87,0x87, //2001
0xA5,0xB4,0x96,0xA5,0x96,0x96,0x88,0x78,0x78,0x78,0x87,0x87, //2002
0x95,0xB4,0x96,0xA5,0x96,0x97,0x88,0x78,0x78,0x69,0x78,0x87, //2003
0x96,0xB4,0xA5,0xB5,0xA6,0xA6,0x87,0x88,0x88,0x78,0x87,0x86, //2004
0xA5,0xB3,0xA5,0xA5,0xA6,0xA6,0x88,0x88,0x88,0x78,0x87,0x87, //2005
0xA5,0xB4,0x96,0xA5,0xA6,0x96,0x88,0x88,0x78,0x78,0x87,0x87, //2006
0x95,0xB4,0x96,0xA5,0x96,0x97,0x88,0x78,0x78,0x69,0x78,0x87, //2007
0x96,0xB4,0xA5,0xB5,0xA6,0xA6,0x87,0x88,0x87,0x78,0x87,0x86, //2008
0xA5,0xB3,0xA5,0xB5,0xA6,0xA6,0x88,0x88,0x88,0x78,0x87,0x87, //2009
0xA5,0xB4,0x96,0xA5,0xA6,0x96,0x88,0x88,0x78,0x78,0x87,0x87, //2010
0x95,0xB4,0x96,0xA5,0x96,0x97,0x88,0x78,0x78,0x79,0x78,0x87, //2011
0x96,0xB4,0xA5,0xB5,0xA5,0xA6,0x87,0x88,0x87,0x78,0x87,0x86, //2012
0xA5,0xB3,0xA5,0xB5,0xA6,0xA6,0x87,0x88,0x88,0x78,0x87,0x87, //2013
0xA5,0xB4,0x96,0xA5,0xA6,0x96,0x88,0x88,0x78,0x78,0x87,0x87, //2014
0x95,0xB4,0x96,0xA5,0x96,0x97,0x88,0x78,0x78,0x79,0x77,0x87, //2015
0x95,0xB4,0xA5,0xB4,0xA5,0xA6,0x87,0x88,0x87,0x78,0x87,0x86, //2016
0xA5,0xC3,0xA5,0xB5,0xA6,0xA6,0x87,0x88,0x88,0x78,0x87,0x87, //2017
0xA5,0xB4,0xA6,0xA5,0xA6,0x96,0x88,0x88,0x78,0x78,0x87,0x87, //2018
0xA5,0xB4,0x96,0xA5,0x96,0x96,0x88,0x78,0x78,0x79,0x77,0x87, //2019
0x95,0xB4,0xA5,0xB4,0xA5,0xA6,0x97,0x87,0x87,0x78,0x87,0x86, //2020
0xA5,0xC3,0xA5,0xB5,0xA6,0xA6,0x87,0x88,0x88,0x78,0x87,0x86, //2021
0xA5,0xB4,0xA5,0xA5,0xA6,0x96,0x88,0x88,0x88,0x78,0x87,0x87, //2022
0xA5,0xB4,0x96,0xA5,0x96,0x96,0x88,0x78,0x78,0x79,0x77,0x87, //2023
0x95,0xB4,0xA5,0xB4,0xA5,0xA6,0x97,0x87,0x87,0x78,0x87,0x96, //2024
0xA5,0xC3,0xA5,0xB5,0xA6,0xA6,0x87,0x88,0x88,0x78,0x87,0x86, //2025
0xA5,0xB3,0xA5,0xA5,0xA6,0xA6,0x88,0x88,0x88,0x78,0x87,0x87, //2026
0xA5,0xB4,0x96,0xA5,0x96,0x96,0x88,0x78,0x78,0x78,0x87,0x87, //2027
0x95,0xB4,0xA5,0xB4,0xA5,0xA6,0x97,0x87,0x87,0x78,0x87,0x96, //2028
0xA5,0xC3,0xA5,0xB5,0xA6,0xA6,0x87,0x88,0x88,0x78,0x87,0x86, //2029
0xA5,0xB3,0xA5,0xA5,0xA6,0xA6,0x88,0x88,0x88,0x78,0x87,0x87, //2030
0xA5,0xB4,0x96,0xA5,0x96,0x96,0x88,0x78,0x78,0x78,0x87,0x87, //2031
0x95,0xB4,0xA5,0xB4,0xA5,0xA6,0x97,0x87,0x87,0x78,0x87,0x96, //2032
0xA5,0xC3,0xA5,0xB5,0xA6,0xA6,0x88,0x88,0x88,0x78,0x87,0x86, //2033
0xA5,0xB3,0xA5,0xA5,0xA6,0xA6,0x88,0x78,0x88,0x78,0x87,0x87, //2034
0xA5,0xB4,0x96,0xA5,0xA6,0x96,0x88,0x88,0x78,0x78,0x87,0x87, //2035
0x95,0xB4,0xA5,0xB4,0xA5,0xA6,0x97,0x87,0x87,0x78,0x87,0x96, //2036
0xA5,0xC3,0xA5,0xB5,0xA6,0xA6,0x87,0x88,0x88,0x78,0x87,0x86, //2037
0xA5,0xB3,0xA5,0xA5,0xA6,0xA6,0x88,0x88,0x88,0x78,0x87,0x87, //2038
0xA5,0xB4,0x96,0xA5,0xA6,0x96,0x88,0x88,0x78,0x78,0x87,0x87, //2039
0x95,0xB4,0xA5,0xB4,0xA5,0xA6,0x97,0x87,0x87,0x78,0x87,0x96, //2040
0xA5,0xC3,0xA5,0xB5,0xA5,0xA6,0x87,0x88,0x87,0x78,0x87,0x86, //2041
0xA5,0xB3,0xA5,0xB5,0xA6,0xA6,0x88,0x88,0x88,0x78,0x87,0x87, //2042
0xA5,0xB4,0x96,0xA5,0xA6,0x96,0x88,0x88,0x78,0x78,0x87,0x87, //2043
0x95,0xB4,0xA5,0xB4,0xA5,0xA6,0x97,0x87,0x87,0x88,0x87,0x96, //2044
0xA5,0xC3,0xA5,0xB4,0xA5,0xA6,0x87,0x88,0x87,0x78,0x87,0x86, //2045
0xA5,0xB3,0xA5,0xB5,0xA6,0xA6,0x87,0x88,0x88,0x78,0x87,0x87, //2046
0xA5,0xB4,0x96,0xA5,0xA6,0x96,0x88,0x88,0x78,0x78,0x87,0x87, //2047
0x95,0xB4,0xA5,0xB4,0xA5,0xA5,0x97,0x87,0x87,0x88,0x86,0x96, //2048
0xA4,0xC3,0xA5,0xA5,0xA5,0xA6,0x97,0x87,0x87,0x78,0x87,0x86, //2049
0xA5,0xC3,0xA5,0xB5,0xA6,0xA6,0x87,0x88,0x78,0x78,0x87,0x87, //2050
};
/*********************************************************************************************
函数名: 节气的判断
调 用: jieqi ()
参 数:无
返回值:无
结 果:
备 注:
/*********************************************************************************************/
uchar jieqi (uchar y2,m2,d2)
{
uchar temp,d,y,y1,m;
uint addr;
d=d2/16*10+d2%16;
m=m2/16*10+m2%16;
y1=y2/16*10+y2%16+2000;
y=y1-2000;
addr=y*12+m-1;
if(d<15)
{
temp=15-d;
if((jieqi_code[addr]>>4)==temp) return (m*2-1);
else return (0);
}
if(d==15) return (0);
if(d>15)
{
temp=d-15;
if((jieqi_code[addr]&0x0f)==temp) return (m*2);
else return (0);
}}
/**************************************************************************************
*计算星期
*基姆拉尔森计算公式简化,计算2001.1.1-2099.12.31
*输入:年(只取后两位,如2001为01)、月 、日
*输出:星期(星期一为0),超出计算范围则返回-1
**************************************************************************************/
uchar convWeek(uchar y,m,d)
{
if(y>99||y<1) return -1;
if(m==1||m==2){m+=12;y--;}
m=m*2+(m+1)*3/5;
y=y+y/4;
return ((y+m+d)%7);
// return ((d+2*m+3*(m+1)/5+y+y/4))%7;
}
/*********************************************************************************************
函数名:公历节日显示
调 用:FUTURE();
参 数:无
返回值:无
结 果:在屏的第二行显示公历节日
备 注:0x90
/*********************************************************************************************/
void FUTURE (void) { //公历节日数据库
/*------节气的判断用的是公历数据----------------------------*/
uchar j;
j=jieqi(yy,mo,days);
shengri_bit=0;
lcm_w_test(0,0x90);//在屏幕第2行
//------ FutureTimer8和公历节日会交替显示---------*/
lcm_w_word(" Future Clock ");
lcm_w_test(0,0x90);//0X90在屏幕第2行
if(t/2%2==0) {
if ( month_moon== 0x08 && day_moon== 0x19 ){ lcm_w_word("菊化生日还有18天"); }
if ( month_moon== 0x08 && day_moon== 0x20 ){ lcm_w_word("菊化生日还有17天"); }
if ( month_moon== 0x08 && day_moon== 0x21 ){ lcm_w_word("菊化生日还有16天"); }
if ( month_moon== 0x08 && day_moon== 0x22 ){ lcm_w_word("菊化生日还有15天"); }
if ( month_moon== 0x08 && day_moon== 0x24 ){ lcm_w_word("菊化生日还有14天"); }
if ( month_moon== 0x08 && day_moon== 0x25 ){ lcm_w_word("菊化生日还有13天"); }
if ( month_moon== 0x09 && day_moon== 0x26 ){ lcm_w_word("菊化生日还有12天"); }
if ( month_moon== 0x08 && day_moon== 0x27 ){ lcm_w_word("菊化生日还有11天"); }
if ( month_moon== 0x08 && day_moon== 0x28 ){ lcm_w_word("菊化生日还有10天"); }
if ( month_moon== 0x08 && day_moon== 0x29 ){ lcm_w_word("菊化生日还有9 天"); }
if ( month_moon== 0x08 && day_moon== 0x30 ){ lcm_w_word("菊化生日还有8 天"); }
if ( month_moon== 0x09 && day_moon== 0x01 ){ lcm_w_word("菊化生日还有7 天"); }
if ( month_moon== 0x09 && day_moon== 0x02 ){ lcm_w_word("菊化生日还有6 天"); }
if ( month_moon== 0x09 && day_moon== 0x03 ){ lcm_w_word("菊化生日还有5 天"); }
if ( month_moon== 0x09 && day_moon== 0x04 ){ lcm_w_word("菊化生日还有4 天"); }
if ( month_moon== 0x09 && day_moon== 0x05 ){ lcm_w_word("菊化生日还有3 天"); }
if ( month_moon== 0x09 && day_moon== 0x06 ){ lcm_w_word("菊化生日还有2 天"); }
if ( month_moon== 0x09 && day_moon== 0x07 ){ lcm_w_word("后天是菊花的生日"); }
if ( month_moon== 0x09 && day_moon== 0x08 ){ lcm_w_word("明天是菊花的生日"); }
if ( month_moon== 0x09 && day_moon== 0x09 ){ shengri_bit=1,lcm_w_word("今天是菊花的生日"); }
/*---------------------------------------------------------------------------*/
if ( month_moon== 0x01 && day_moon== 0x12 ){ lcm_w_word("文杰生日还有18天"); }
if ( month_moon== 0x01 && day_moon== 0x13 ){ lcm_w_word("文杰生日还有17天"); }
if ( month_moon== 0x01 && day_moon== 0x14 ){ lcm_w_word("文杰生日还有16天"); }
if ( month_moon== 0x01 && day_moon== 0x15 ){ lcm_w_word("文杰生日还有15天"); }
if ( month_moon== 0x01 && day_moon== 0x16 ){ lcm_w_word("文杰生日还有14天"); }
if ( month_moon== 0x01 && day_moon== 0x17 ){ lcm_w_word("文杰生日还有13天"); }
if ( month_moon== 0x01 && day_moon== 0x18 ){ lcm_w_word("文杰生日还有12天"); }
if ( month_moon== 0x01 && day_moon== 0x19 ){ lcm_w_word("文杰生日还有11天"); }
if ( month_moon== 0x01 && day_moon== 0x20 ){ lcm_w_word("文杰生日还有10天"); }
if ( month_moon== 0x01 && day_moon== 0x21 ){ lcm_w_word("文杰生日还有8 天"); }
if ( month_moon== 0x01 && day_moon== 0x22 ){ lcm_w_word("文杰生日还有8 天"); }
if ( month_moon== 0x01 && day_moon== 0x23 ){ lcm_w_word("文杰生日还有7 天"); }
if ( month_moon== 0x01 && day_moon== 0x24 ){ lcm_w_word("文杰生日还有6 天"); }
if ( month_moon== 0x01 && day_moon== 0x25 ){ lcm_w_word("文杰生日还有5 天"); }
if ( month_moon== 0x01 && day_moon== 0x26 ){ lcm_w_word("文杰生日还有4 天"); }
if ( month_moon== 0x01 && day_moon== 0x27 ){ lcm_w_word("文杰生日还有3 天"); }
if ( month_moon== 0x01 && day_moon== 0x28 ){ lcm_w_word("文杰生日还有2 天"); }
if ( month_moon== 0x01 && day_moon== 0x29 ){ lcm_w_word("后天是文杰的生日"); }
if ( month_moon== 0x01 && day_moon== 0x30 ){ lcm_w_word("明天是文杰的生日"); }
if ( month_moon== 0x02 && day_moon== 0x01 ){ shengri_bit=1,lcm_w_word("今天是文杰的生日"); }
if ( month_moon== 0x08 && day_moon== 0x01 ){ shengri_bit=1,lcm_w_word("后天是我的生日!"); }
if ( month_moon== 0x08 && day_moon== 0x02 ){ shengri_bit=1,lcm_w_word("明天是我的生日!"); }
if ( month_moon== 0x08 && day_moon== 0x03 ){ shengri_bit=1,lcm_w_word("今天是我的生日!"); }
/*---------------第2行的标尺--- ---- ------ ---|---------------|----------*/
if ( mo == 0x01 && days == 0x01 ){ lcm_w_word(" 今日元旦 "); }//1月
if ( mo == 0x02 && days == 0x02 ){ lcm_w_word(" △世界湿地日 "); }//2月
if ( mo == 0x02 && days == 0x10 ){ lcm_w_word(" △国际气象节 "); }//2月
if ( mo == 0x02 && days == 0x13 ){ lcm_w_word(" 明天情人节了 "); }
if ( mo == 0x02 && days == 0x14 ){ lcm_w_word(" 今天是情人节 "); }
if ( mo == 0x03 && days == 0x01 ){ lcm_w_word(" △国际海豹日 "); }//3月
if ( mo == 0x03 && days == 0x03 ){ lcm_w_word(" △全国爱耳日 "); }
if ( mo == 0x03 && days == 0x08 ){ lcm_w_word(" 3.8妇女节 "); }
if ( mo == 0x03 && days == 0x12 ){ lcm_w_word(" △植树节 "); }
if ( mo == 0x03 && days == 0x14 ){ lcm_w_word(" △国际警察日 "); }
if ( mo == 0x03 && days == 0x15 ){ lcm_w_word(" 消费者权益日 "); }
if ( mo == 0x03 && days == 0x17 ){ lcm_w_word(" ●国际航海日 "); }
if ( mo == 0x03 && days == 0x22 ){ lcm_w_word(" 世界水日 "); }
if ( mo == 0x03 && days == 0x23 ){ lcm_w_word(" ●世界气象日 "); }
if ( mo == 0x03 && days == 0x24 ){ lcm_w_word("世界防治结核病日"); }
if ( mo == 0x04 && days == 0x01 ){ lcm_w_word("愚人节●小心上当"); }//4
if ( mo == 0x04 && days == 0x07 ){ lcm_w_word(" △世界卫生日 "); }
if ( mo == 0x04 && days == 0x08 ){ lcm_w_word(" 今天是复活节 "); }
if ( mo == 0x04 && days == 0x022 ){ lcm_w_word(" ●世界地球日 "); }
if ( mo == 0x05 && days == 0x01 ){ lcm_w_word(" 今天是劳动节 "); }//5
if ( mo == 0x05 && days == 0x04 ){ lcm_w_word(" 今天是青年节 "); }
if ( mo == 0x05 && days == 0x08 ){ lcm_w_word(" 世界红十字日 "); }
if ( mo == 0x05 && days == 0x12 ){ lcm_w_word(" ▲国际护士节 "); }
if ( mo == 0x05 && days == 0x15 ){ lcm_w_word(" ▲国际家庭日 "); }
if ( mo == 0x05 && days == 0x17 ){ lcm_w_word(" ▲世界电信日 "); }
if ( mo == 0x05 && days == 0x18 ){ lcm_w_word(" 国际博物馆日 "); }
if ( mo == 0x05 && days == 0x19 ){ lcm_w_word(" ▲全国助残日 "); }
if ( mo == 0x05 && days == 0x22 ){ lcm_w_word("国际生物多样性日"); }
if ( mo == 0x05 && days == 0x23 ){ lcm_w_word(" ▲国际牛奶日 "); }
if ( mo == 0x05 && days == 0x31 ){ lcm_w_word(" ▲世界无烟日 "); }
if ( mo == 0x06 && days == 0x01 ){ lcm_w_word(" ☆国际儿童节 "); }//6
if ( mo == 0x06 && days == 0x05 ){ lcm_w_word(" ☆世界环境日 "); }//6
if ( mo == 0x06 && days == 0x06 ){ lcm_w_word(" ☆全国爱眼日 "); }
if ( mo == 0x06 && days == 0x25 ){ lcm_w_word(" ☆全国土地日 "); }
if ( mo == 0x06 && days == 0x26 ){ lcm_w_word(" ☆国际禁毒日 "); }
if ( mo == 0x06 && days == 0x23 ){ lcm_w_word("▲国际奥林匹克日"); }
if ( mo == 0x07 && days == 0x01 ){ lcm_w_word("▲香港回归记念日"); }//7
if ( mo == 0x07 && days == 0x11 ){ lcm_w_word(" ●世界人口日 "); }
if ( mo == 0x08 && days == 0x01 ){ lcm_w_word(" ●八一建军节 "); }//8
if ( mo == 0x08 && days == 0x15 ){ lcm_w_word("△抗战胜利记念日"); }
if ( mo == 0x09 && days == 0x16 ){ lcm_w_word("国际臭氧层保护日"); }//9
if ( mo == 0x09 && days == 0x10 ){ lcm_w_word(" ●中国教师节 "); }//9
if ( mo == 0x09 && days == 0x18 ){ lcm_w_word("九·一八事变记念"); }
if ( mo == 0x09 && days == 0x20 ){ lcm_w_word(" ●国际爱牙日 "); }
if ( mo == 0x09 && days == 0x22 ){ lcm_w_word(" ●国际聋人节 "); }
if ( mo == 0x09 && days == 0x27 ){ lcm_w_word(" ●世界旅游日 "); }
/*---------------------------------------------------*/
if ( mo == 0x10 && days == 0x01 ){ lcm_w_word(" ●中国国庆节 "); }//10
if ( mo == 0x10 && days == 0x02 ){ lcm_w_word("△减轻自然灾害日"); }//10
if ( mo == 0x10 && days == 0x04 ){ lcm_w_word(" ●世界动物日 "); }
if ( mo == 0x10 && days == 0x06 ){ lcm_w_word(" ●老人节 "); }
if ( mo == 0x10 && days == 0x07 ){ lcm_w_word(" ●国际住房日 "); }
if ( mo == 0x10 && days == 0x08 ){ lcm_w_word(" 全国高血压日 "); }
if ( mo == 0x10 && days == 0x09 ){ lcm_w_word(" △世界邮政日 "); }
if ( mo == 0x10 && days == 0x12 ){ lcm_w_word("●明天国际教师节"); }
if ( mo == 0x10 && days == 0x13 ){ lcm_w_word(" ●国际教师节 "); }
if ( mo == 0x10 && days == 0x24 ){ lcm_w_word(" 联合国日 "); }
if ( mo == 0x11 && days == 0x10 ){ lcm_w_word(" ●世界青年节 "); }//11
if ( mo == 0x11 && days == 0x17 ){ lcm_w_word(" ●世界学生节 "); }
if ( mo == 0x11 && days == 0x28 ){ lcm_w_word(" ●感恩节 "); }
if ( mo == 0x12 && days == 0x01 ){ lcm_w_word(" 世界艾滋病日 "); }//12
if ( mo == 0x12 && days == 0x09 ){ lcm_w_word(" ●世界足球日 "); }//12
if ( mo == 0x12 && days == 0x23 ){ lcm_w_word(" ●明晚平安夜 "); }
if ( mo == 0x12 && days == 0x24 ){ lcm_w_word(" 今晚平安夜 "); }
if ( mo == 0x12 && days == 0x25 ){ lcm_w_word(" 圣诞快乐 "); }
if ( mo == 0x12 && days == 0x31 ){ lcm_w_word(" 明日新年 "); }
} else
/*------第2行的标尺--- ---|-----------------|----------*/
{if (j==1){ lcm_w_word (" 今天小寒 "); }
if (j==2){ lcm_w_word (" 今天大寒 "); }
if (j==3){ lcm_w_word (" 今天立春 "); }
if (j==4){ lcm_w_word (" 今天雨水 "); }
if (j==5){ lcm_w_word (" 今天惊蛰 "); }
if (j==6){ lcm_w_word (" 今天春分 "); }
if (j==7){ lcm_w_word (" 今天清明 "); }
if (j==8){ lcm_w_word (" 今天谷雨 "); }
if (j==9){ lcm_w_word (" 今天立夏 "); }
if (j==10){ lcm_w_word(" 今天小满 "); }
if (j==11){ lcm_w_word(" 今天芒种 "); }
if (j==12){ lcm_w_word(" 今天夏至 "); }
if (j==13){ lcm_w_word(" 今天小暑 "); }
if (j==14){ lcm_w_word(" 今天大暑 "); }
if (j==15){ lcm_w_word(" 今天立秋 "); }
if (j==16){ lcm_w_word(" 今天处暑 "); }
if (j==17){ lcm_w_word(" 今天白露 "); }
if (j==18){ lcm_w_word(" 今天秋分 "); }
if (j==19){ lcm_w_word(" 今天寒露 "); }
if (j==20){ lcm_w_word(" 今天霜降 "); }
if (j==21){ lcm_w_word(" 今天立冬 "); }
if (j==22){ lcm_w_word(" 今天小雪 "); }
if (j==23){ lcm_w_word(" 今天大雪 "); }
if (j==24){ lcm_w_word(" 今天冬至 "); }
} //节气
} //节日
/*********************************************************************************************/
/*********************************************************************************************
函数名:农历节日显示
调 用:FUTURE2();
参 数:无
返回值:无
结 果:在屏的第二行显示农历节日
备 注:
/*********************************************************************************************/
void FUTURE2 (void) { //农历节日数据库
lcm_w_test(0,0x88);//在屏幕第3行
/*----------|-----------------|------第3行的标尺------*/
//无节日时显示
lcmnongli(); //农历
lcmshengxiao(); //生肖
lcm_w_test(0,0x88); //0X88在屏幕第3行
if(t/2%2==0) {
/*if(yy == 0x10){ //2010年节日OK
if ( mo == 0x05 && days == 0x08 ){ lcm_w_word(" 明天是母亲节 "); }
if ( mo == 0x05 && days == 0x09 ){ lcm_w_word(" 今天是母亲节 "); }
if ( mo == 0x06 && days == 0x19 ){ lcm_w_word(" 明天是父亲节 "); }
if ( mo == 0x06 && days == 0x20 ){ lcm_w_word(" 今天是父亲节 "); }} */
if(yy == 0x11){//2011年节日OK
if ( mo == 0x05 && days == 0x07 ){ lcm_w_word(" 明天是母亲节 "); }
if ( mo == 0x05 && days == 0x08 ){ lcm_w_word(" 今天是母亲节 "); }
if ( mo == 0x06 && days == 0x18 ){ lcm_w_word(" 明天是父亲节 "); }
if ( mo == 0x06 && days == 0x19 ){ lcm_w_word(" 今天是父亲节 "); }
}
if(yy == 0x12){//2012年节日OK
if ( mo == 0x05 && days == 0x12 ){ lcm_w_word(" 明天是母亲节 "); }
if ( mo == 0x05 && days == 0x13 ){ lcm_w_word(" 今天是母亲节 "); }
if ( mo == 0x06 && days == 0x16 ){ lcm_w_word(" 明天是父亲节 "); }
if ( mo == 0x06 && days == 0x17 ){ lcm_w_word(" 今天是父亲节 "); }
}
if(yy == 0x13){//2013年节日OK
if ( mo == 0x05 && days == 0x11 ){ lcm_w_word(" 明天是母亲节 "); }
if ( mo == 0x05 && days == 0x12 ){ lcm_w_word(" 今天是母亲节 "); }
if ( mo == 0x06 && days == 0x15 ){ lcm_w_word(" 明天是父亲节 "); }
if ( mo == 0x06 && days == 0x16 ){ lcm_w_word(" 今天是父亲节 "); }
}
if(yy == 0x14){//2014年节日OK
if ( mo == 0x05 && days == 0x10 ){ lcm_w_word(" 明天是母亲节 "); }
if ( mo == 0x05 && days == 0x11 ){ lcm_w_word(" 今天是母亲节 "); }
if ( mo == 0x06 && days == 0x14 ){ lcm_w_word(" 明天是父亲节 "); }
if ( mo == 0x06 && days == 0x15 ){ lcm_w_word(" 今天是父亲节 "); }
}
if(yy == 0x15){//2015年节日OK
if ( mo == 0x05 && days == 0x09 ){ lcm_w_word(" 明天是母亲节 "); }
if ( mo == 0x05 && days == 0x10 ){ lcm_w_word(" 今天是母亲节 "); }
if ( mo == 0x06 && days == 0x20 ){ lcm_w_word(" 明天是父亲节 "); }
if ( mo == 0x06 && days == 0x21 ){ lcm_w_word(" 今天是父亲节 "); }
}
if(yy == 0x16){//2016年节日OK
if ( mo == 0x05 && days == 0x07 ){ lcm_w_word(" 明天是母亲节 "); }
if ( mo == 0x05 && days == 0x08 ){ lcm_w_word(" 今天是母亲节 "); }
if ( mo == 0x06 && days == 0x18 ){ lcm_w_word(" 明天是父亲节 "); }
if ( mo == 0x06 && days == 0x19 ){ lcm_w_word(" 今天是父亲节 "); }
}
if(yy == 0x17){//2017年节日
if ( mo == 0x05 && days == 0x12 ){ lcm_w_word(" 明天是母亲节 "); }
if ( mo == 0x05 && days == 0x13 ){ lcm_w_word(" 今天是母亲节 "); }
if ( mo == 0x06 && days == 0x16 ){ lcm_w_word(" 明天是父亲节 "); }
if ( mo == 0x06 && days == 0x17 ){ lcm_w_word(" 今天是父亲节 "); }
}
if(yy == 0x18){//2018年节日
if ( mo == 0x05 && days == 0x12 ){ lcm_w_word(" 明天是母亲节 "); }
if ( mo == 0x05 && days == 0x13 ){ lcm_w_word(" 今天是母亲节 "); }
if ( mo == 0x06 && days == 0x16 ){ lcm_w_word(" 明天是父亲节 "); }
if ( mo == 0x06 && days == 0x17 ){ lcm_w_word(" 今天是父亲节 "); }
}
if(yy == 0x19){//2019年节日
if ( mo == 0x05 && days == 0x12 ){ lcm_w_word(" 明天是母亲节 "); }
if ( mo == 0x05 && days == 0x13 ){ lcm_w_word(" 今天是母亲节 "); }
if ( mo == 0x06 && days == 0x16 ){ lcm_w_word(" 明天是父亲节 "); }
if ( mo == 0x06 && days == 0x17 ){ lcm_w_word(" 今天是父亲节 "); }
}
if(yy == 0x20){//2020年节日
if ( mo == 0x05 && days == 0x12 ){ lcm_w_word(" 明天是母亲节 "); }
if ( mo == 0x05 && days == 0x13 ){ lcm_w_word(" 今天是母亲节 "); }
if ( mo == 0x06 && days == 0x16 ){ lcm_w_word(" 明天是父亲节 "); }
if ( mo == 0x06 && days == 0x17 ){ lcm_w_word(" 今天是父亲节 "); }
}
else{
if ( month_moon== 0x12 && day_moon== 0x13 ){ lcm_w_word (" 春节还有17天! "); }
if ( month_moon== 0x12 && day_moon== 0x14 ){ lcm_w_word (" 春节还有16天! "); }
if ( month_moon== 0x12 && day_moon== 0x15 ){ lcm_w_word (" 春节还有15天! "); }
if ( month_moon== 0x12 && day_moon== 0x16 ){ lcm_w_word (" 春节还有14天! "); }
if ( month_moon== 0x12 && day_moon== 0x17 ){ lcm_w_word (" 春节还有13天! "); }
if ( month_moon== 0x12 && day_moon== 0x18 ){ lcm_w_word (" 春节还有12天! "); }
if ( month_moon== 0x12 && day_moon== 0x19 ){ lcm_w_word (" 春节还有11天! "); }
if ( month_moon== 0x12 && day_moon== 0x20 ){ lcm_w_word (" 春节还有10天! "); }
if ( month_moon== 0x12 && day_moon== 0x21 ){ lcm_w_word (" 春节还有 9天! "); }
if ( month_moon== 0x12 && day_moon== 0x22 ){ lcm_w_word (" 春节还有 8天! "); }
if ( month_moon== 0x12 && day_moon== 0x23 ){ lcm_w_word (" 春节还有 7天! "); }
if ( month_moon== 0x12 && day_moon== 0x24 ){ lcm_w_word (" 春节还有 6天! "); }
if ( month_moon== 0x12 && day_moon== 0x25 ){ lcm_w_word (" 春节还有 5天! "); }
if ( month_moon== 0x12 && day_moon== 0x26 ){ lcm_w_word (" 春节还有 4天! "); }
if ( month_moon== 0x12 && day_moon== 0x27 ){ lcm_w_word (" 春节还有 3天! "); }
if ( month_moon== 0x12 && day_moon== 0x28 ){ lcm_w_word (" ●后天大年夜 "); }
if ( month_moon== 0x12 && day_moon== 0x29 ){ lcm_w_word (" ●明天大年夜 "); }
if ( month_moon== 0x12 && day_moon== 0x30 ){ lcm_w_word (" ●今天大年夜 "); }
if ( month_moon== 0x01 && day_moon== 0x01 ){ lcm_w_word (" 春节快乐! "); }
if ( month_moon== 0x05 && day_moon== 0x05 ){ lcm_w_word (" 今天是端午节 "); }
if ( month_moon== 0x08 && day_moon== 0x15 ){ lcm_w_word (" 今天是中秋节 "); }
if ( month_moon== 0x01 && day_moon== 0x15 ){ lcm_w_word (" 今天是元宵节 "); }
if ( month_moon== 0x02 && day_moon== 0x02 ){ lcm_w_word (" 今天是龙抬头 "); }
if ( month_moon== 0x07 && day_moon== 0x07 ){ lcm_w_word (" 今天是七夕节 "); }
if ( month_moon== 0x07 && day_moon== 0x15 ){ lcm_w_word (" ●今天中元节 "); }
if ( month_moon== 0x09 && day_moon== 0x09 ){ lcm_w_word (" 今天是重阳节 "); }
if ( month_moon== 0x12 && day_moon== 0x08 ){ lcm_w_word (" 今天是腊八节 "); }
}}
}
/*--------------------------------------------
第一行0X80-0X81-0X82-0X83-0X84-0X85-0X86-0X87
第三行0X88-0X89-0X8A-0X8B-0X8C-0X8D-0X8E-0X8F
第二行0X90-0X91-0X92-0X93-0X94-0X95-0X96-0X97
第四行0X98-0X99-0X9A-0X9B-0X9C-0X9D-0X9E-0X9F*/
/*********************************************************************************************
函数名:PWM初始化函数(控制背光亮度)
调 用:PWM_init();
参 数:无
返回值:无
结 果:将PCA初始化为PWM模式,初始占空比为0
备 注:需要更多路PWM输出直接插入CCAPnH和CCAPnL即可
/**********************************************************************************************/
void PWM_init (void){
CMOD=0x02; //设置PCA定时器
CL=0x00;
CH=0x00;
CCAPM1=0x42; //PWM1设置PCA工作方式为PWM方式(使用时删除//)
CCAP1L=0x00; //设置PWM1初始值与CCAP0H相同
CCAP1H=0x00; // PWM1初始时为0
CR=1; //启动PCA定时器
}
/*********************************************************************************************
函数名:PWM1占空比设置函数(控制背光亮度)
调 用:PWM1_set();
参 数:0x00~0xFF(亦可用0~255)
返回值:无
结 果:设置PWM模式占空比,为0时全部高电平,为1时全部低电平
备 注:如果需要PWM1的设置函数,只要把CCAP0L和CCAP0H中的0改为1即可
/**********************************************************************************************/
void PWM1_set (unsigned char a){
CCAP1L= a; //设置值直接写入CCAP0L
CCAP1H= a; //设置值直接写入CCAP0H
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:8位A/D转换初始化
调 用:Read_init (?);
参 数:输入的端口(0000 0XXX 其中XXX是设置输入端口号,可用十进制0~7表示,0表示P1.0,7表示P1.7)
返回值:无
结 果:
备 注:适用于STC12C5A60S2单片机
/**********************************************************************************************/
void Read_init (unsigned char CHA){
unsigned char AD_FIN=0; //存储A/D转换标志
CHA &= 0x07; //选择ADC的8个接口中的一个(0000 0111 清0高5位)
ADC_CONTR = 0x40; //ADC转换的速度(0XX0 0000 其中XX控制速度,请根据数据手册设置)
_nop_();
ADC_CONTR |= CHA; //选择A/D当前通道
_nop_();
ADC_CONTR |= 0x80; //启动A/D电源
DELAY_MS(1); } //使输入电压达到稳定(1ms即可)
/*********************************************************************************************
函数名:8位A/D转换函数(采集光敏电阻数据)
调 用:? = Read ();
参 数:无
返回值:8位的ADC数据
结 果:读出指定ADC接口的A/D转换值,并返回数值
备 注:适用于STC12C5A60S2单片机
/**********************************************************************************************/
unsigned char Read (void){
unsigned char AD_FIN=0; //存储A/D转换标志
ADC_CONTR |= 0x08; //启动A/D转换(0000 1000 令ADCS = 1)
_nop_();
_nop_();
_nop_();
_nop_();
while (AD_FIN ==0){ //等待A/D转换结束
AD_FIN = (ADC_CONTR & 0x10); //0001 0000测试A/D转换结束否
}
ADC_CONTR &= 0xE7; //1111 0111 清ADC_FLAG位, 关闭A/D转换,
return (ADC_RES); //返回A/D转换结果(8位)
}
/*********************************************************************************************
函数名:渐亮和渐暗切换显示处理
调 用:CH_H(); CH_L();
参 数:无
返回值:无
结 果:背光渐亮和变暗
备 注:用于显示界面切换的效果(渐暗带清屏涵数)
/**********************************************************************************************/
void CH_H (void){
unsigned char e;
DELAY_MS(500); //显示等留0.5秒
for(e=0;e<(read_clock(0xc5)*0x1C);e=e+2){
PWM1_set(e);
DELAY_MS (5);
}
}
/*****************************************************************************/
void CH_L (void){
unsigned char e;
for(e=(read_clock(0xc5)*0x1C);e>0;e=e-2){
PWM1_set(e);
DELAY_MS (5);
}
PWM1_set(0);
lcm_clr();//清屏
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:自动界面检测程序
调 用:AUTO_B();
参 数:无
返回值:无
结 果:检测环境光并控制背光亮度
备 注:
/**********************************************************************************************/
void AUTO_B (void){ //
unsigned char d,e;
d = Read();
DELAY_MS (500);
e=((d/16*10+d%16)+LCDlightsu);
if(read_clock(0xc1) == 1){//检查自动调光开关
PWM1_set(e);//
}}
/*****************************************************************************/
//根据选择调整的相应项目加1并写入DS1302-调时用加1程序
void Set_time(unsigned char sel,unsigned char a){
signed char address,item;
signed char max,mini;
lcm_w_test(0,0x91);
lcm_w_word("↑调整");
// if(sel==5) {lcm_w_word("秒钟");address=0x80; max=59;mini=0;} //秒7
if(sel==4) {lcm_w_word("分钟↓");address=0x82; max=59;mini=0;} //年1
if(sel==3) {lcm_w_word("小时↓");address=0x84; max=23;mini=0;} //小时5
// if(sel==3) {lcm_w_word("星期");address=0x8a; max=7;mini=1;} //星期4
if(sel==2) {lcm_w_word("日期↓");address=0x86; max=31;mini=1;} //日3
if(sel==1) {lcm_w_word("月份↓");address=0x88; max=12;mini=1;} //月2
if(sel==0) {lcm_w_word("年份↓");address=0x8c; max=99; mini=0;
// lcm_w_test(0,0x88);lcm_w_word("[NEXT ESC]");
} //年1
if(sel==200) {lcm_w_word("方式↓");address=0xc2+a*6; max=6;mini=0;} //MODE c2
if(sel==201) {lcm_w_word("小时↓");address=0xc2+a*6+2; max=23;mini=0;} //小时 c4
if(sel==202) {lcm_w_word("分钟↓");address=0xc2+a*6+4; max=59;mini=0;} //分钟 c6
if(sel==40) {lcm_w_word("报时↓");address=0xc2; max=9;mini=0;} // //整点报时设置
if(sel==50) {lcm_w_word("背光↓");address=0xc4; max=9;mini=0;} //
if(sel==60) {
lcm_w_test(0,0x91);
lcm_w_word(" 调整");
lcm_w_word("界面");address=0XFE; max=5;mini=0;} //
if(sel==61) { lcm_w_test(0,0x91);
lcm_w_word(" 开机LOGO ");address=0XFE; max=25;mini=20;} //
if(sel==230) {
lcm_w_test(0,0x91);
lcm_w_word("调整校时");;address=0xFC; max=20;mini=0;} //校时程序的加减值
//读取1302某地址上的数值转换成10进制赋给item
item=((read_clock(address+1))/16)*10 + (read_clock(address+1))%16;
if(adj==3){
item++;//数值加1
}
if(adj==4){
item--;//数值减1
}
if(item>max) item=mini;//查看数值有效范围
if(item<mini) item=max;
write_clock(0x8e,0x00);//允许写操作
write_clock(address,(item/10)*16+item%10);//转换成16进制写入1302
if(sel==4){//当设置分钟时,秒值自动清0
write_clock(0x80,0x00);//秒
}
write_clock(0x8e,0x80);//写保护,禁止写操作
}
/*********************************************************************************************
函数名:处理显示函数16进制转换10进制(被调用层)
调 用:deal();
参 数:无
返回值:无
结 果:16进制转换10进制
备 注:用于显示
/**********************************************************************************************/
void Dispdeal(uchar sfm)
{
shi=sfm/16;
ge=sfm%16;
}
/*********************************************************************************************
函数名:12864显示时分秒运用绘图程序函数(被调用层)
调 用:display();
参 数:无
返回值:无
结 果:改变6种字体以用于显示
备 注:ZTB字体变量0------6共7种字体可变换
/**********************************************************************************************/
void display(uchar add,uchar dat)
{ uchar i,j=0;
/********列取模*************/
for(i=16;i<32;i++)
{/*------------数码体-----------*/
if (ZTB==0)
{ write_12864_cmd(0x80+i);
write_12864_cmd(0x90+add);
write_data(tabshuma[dat][j++]);
write_data(tabshuma[dat][j++]);}
/*-------汗鼎繁淡古----------*/
if(ZTB==1)
{ write_12864_cmd(0x80+i);
write_12864_cmd(0x90+add);
write_data(tabHDF[dat][j++]);
write_data(tabHDF[dat][j++]);}
/*-------自绘字体----------*/
if (ZTB==2)
{ write_12864_cmd(0x80+i);
write_12864_cmd(0x90+add);
write_data(num1632[dat][j++]);
write_data(num1632[dat][j++]);
}
/*-------毛泽东字体----------*/
if (ZTB==3)
{ write_12864_cmd(0x80+i);
write_12864_cmd(0x90+add);
write_data(maozhedong[dat][j++]);
write_data(maozhedong[dat][j++]);
}
/*-------华康字体----------*/
if (ZTB==4)
{ write_12864_cmd(0x80+i);
write_12864_cmd(0x90+add);
write_data(huakangshonv[dat][j++]);
write_data(huakangshonv[dat][j++]);
}/*-------另一种数码体体----------*/
if (ZTB==5)
{ write_12864_cmd(0x80+i);
write_12864_cmd(0x90+add);
write_data(bignums[dat][j++]);
write_data(bignums[dat][j++]);
} /*-------空心字体----------*/
if (ZTB==6)
{ write_12864_cmd(0x80+i);
write_12864_cmd(0x90+add);
write_data(kongxinga[dat][j++]);
write_data(kongxinga[dat][j++]);
}}
/********行取模*************/
for(i=0;i<16;i++)
{ /*------------数码体-----------*/
if (ZTB==0){
write_12864_cmd(0x80+i);
write_12864_cmd(0x88+add);
write_data(tabshuma[dat][j++]);
write_data(tabshuma[dat][j++]); }
/*-------汗鼎繁淡古----------*/
if(ZTB==1) {
write_12864_cmd(0x80+i);
write_12864_cmd(0x88+add);
write_data(tabHDF[dat][j++]);
write_data(tabHDF[dat][j++]); }
/*-------自绘字体----------*/
if (ZTB==2) {
write_12864_cmd(0x80+i);
write_12864_cmd(0x88+add);
write_data(num1632[dat][j++]);
write_data(num1632[dat][j++]); }
/*-------毛泽东字体----------*/
if (ZTB==3) {
write_12864_cmd(0x80+i);
write_12864_cmd(0x88+add);
write_data(maozhedong[dat][j++]);
write_data(maozhedong[dat][j++]);}
/*-------华康字体----------*/
if (ZTB==4) {
write_12864_cmd(0x80+i);
write_12864_cmd(0x88+add);
write_data(huakangshonv[dat][j++]);
write_data(huakangshonv[dat][j++]);}
/*-------另一种数码体体----------*/
if (ZTB==5) {
write_12864_cmd(0x80+i);
write_12864_cmd(0x88+add);
write_data(bignums[dat][j++]);
write_data(bignums[dat][j++]);}
/*-------空心字体----------*/
if (ZTB==6){
write_12864_cmd(0x80+i);
write_12864_cmd(0x88+add);
write_data(kongxinga[dat][j++]);
write_data(kongxinga[dat][j++]);}
}}
/*********************************************************************************************
函数名:12864显示时分秒运用绘图程序初始化函数(被调用层)
调 用:init_dzshow();
参 数:无
返回值:无
结 果:显示图片时钟
备 注:
/**********************************************************************************************/
void init_dzshow() {
write_12864_cmd(0x36); //启动扩充指令集,启动绘图模式
clear_img(); //清理图片缓冲区
hh = read_clock(0x85); //处理小时,并显示
Dispdeal(hh);
display(0,shi);
display(1,ge);
display(2,10);
mm = read_clock(0x83); //处理分钟,并显示
Dispdeal(mm);
display(3,shi);
display(4,ge);
display(5,10);
ss = read_clock(0x81); //处理秒,并显示
Dispdeal(ss);
display(6,shi);
display(7,ge); }
/*********************************************************************************************
函数名:XinQishow();星期共用函数(被调用层)
调 用:init_dz()
参 数:无
返回值:无
结 果:
备 注:
/**********************************************************************************************/
void XinQishow() { //处理星期,并显示
//xinq = read_clock(0x8b);
//unsigned char seweek;
read_clockS();
Conver_week(0,yy,mo,days);//调用公历换算星期子函数
//seweek=week;//week是公历转换星期子函数的运行结果,结果为0-6,0是星期日
switch(week)
{ case 0:lcm_w_word("日");break;
case 1:lcm_w_word("一");break;
case 2:lcm_w_word("二");break;
case 3:lcm_w_word("三");break;//{write_data(0xc8);write_data(0xfd);} //此指令等于lcm_w_word("三");
case 4:lcm_w_word("四");break;
case 5:lcm_w_word("五");break;
case 6:lcm_w_word("六");break;
default:break;
} }
/*********************************************************************************************
函数名:init_dz();图片时钟和特大时钟的共用函数(被调用层)
调 用:init_dz()
参 数:无
返回值:无
结 果:根据不同的界面初始化两钟时钟界面
备 注:图片时钟和特大时钟的日期和温度的位置是一样的(共享)
/**********************************************************************************************/
void init_dz()
{ write_12864_cmd(0x30); //选择8bit数据流,基本指令集
write_12864_cmd(0x0c); //开显示(无游标、不反白)
write_12864_cmd(0x01); //清除显示,并且设定地址指针为00H
write_12864_cmd(0x82); //设置指针
lcm_w_word("年 月 日");
write_12864_cmd(0x98); //设置指针
lcm_w_word("星期");
write_12864_cmd(0x81); //处理年,并显示
yy = read_clock(0x8d);
Dispdeal(yy);
write_data(shi+0x30);
write_data(ge+0x30);
/*----------------*/
write_12864_cmd(0x83); //设置指针
mo = read_clock(0x89); //处理月,并显示
Dispdeal(mo);
write_data(shi+0x30);
write_data(ge+0x30);
/*----------------*/
write_12864_cmd(0x85); //设置指针
days = read_clock(0x87);//处理日,并显示
Dispdeal(days);
write_data(shi+0x30);
write_data(ge+0x30);
write_12864_cmd(0x9a); //设置指针
XinQishow(); //显示星期
write_12864_cmd(0x9f); //设置指针
lcm_w_word("℃"); //温度标记
if( faceouto==0) { //当开机或调整退出时就读DS1302中的储存界面
if(read_clock(0XFF)%16==1) //读出当前储存的界面 (图片时钟 )
{init_dzshow();} //显示图片数字的时钟
if(read_clock(0XFF)%16==3) { //读出当前储存的界面; ( 特大时钟)
set16162pic(4,4,0,3);}} //在第4列第4行不反白的显示温度标记
else
if( faceouto==1) { //当直接选择界面和自动控制时就不读DS1302中的储存界面
if(KA==1) //图片时钟
{ init_dzshow();} //显示图片数字的时钟
if(KA==3) { //特大时钟按当前界面选择标记
set16162pic(4,4,0,3);} //在第4列第4行不反白的显示温度标记标志T和一个小三角
}}
/*********************************************************************************************
函数名:图片时钟温度处理函数(被调用层)
调 用:Tempuer_sfm();
参 数:无
返回值:无
结 果:温度处理
备 注:显示在第四行
/**********************************************************************************************/
void Tempuer_sfm() {
uint temper;
uchar temper_ge,temper_shi,temper_bai,temper_qai;
temper=DSS()*(10.625);//读取温度
temper_ge=temper%10+0x30;
temper_shi=temper%100/10+0x30;
temper_bai=temper/100+0x30;
temper_qai=temper/1000;
//if(tflag==1)
/**********温度的写入(图片时钟界面)**********************/
//*********小于于0C时的温度处理******************
if(DSS < 0)
{write_12864_cmd(0x9c);
lcm_w_word(" -");
}
else
//*********大于100C时的温度处理******************
{ if(temper_qai==0x01) {
temper_bai=temper%1000/100+0x30; //取除以1000的余数再除100
temper_shi=temper%1000%100/10+0x30;
temper_ge=temper%1000%100%10+0x30;
write_12864_cmd(0x9c);
lcm_w_word("+");
write_data(0x31);
write_data(temper_bai);
write_data(temper_shi);
write_data('.');
write_data(temper_ge);
write_12864_cmd(0x36);}
}
//*********小于于100C时的温度处理******************
if(temper_qai==0x00) {
write_12864_cmd(0x9c);
lcm_w_word(" +");
write_12864_cmd(0x9d);
if(temper_bai==0)
write_data(0x20);
else
write_data(temper_bai);
write_data(temper_shi);
write_data('.');
write_data(temper_ge);
write_12864_cmd(0x36);}
}
/********************************************************************************************************
/*---------12864LCD---------------*/
/*
第一行0X80-0X81-0X82-0X83-0X84-0X85-0X86-0X87
第三行0X88-0X89-0X8A-0X8B-0X8C-0X8D-0X8E-0X8F
第二行0X90-0X91-0X92-0X93-0X94-0X95-0X96-0X97
第四行0X98-0X99-0X9A-0X9B-0X9C-0X9D-0X9E-0X9F
-------1----2----3----4----5----6----7----8--
********************************************************************************************************/
/*********************************************************************************************
函数名:disp_sfm();12864显示时分秒运用绘图程序函数(被调用层)
调 用:disp_sfm()
参 数:无
返回值:无
结 果:图片时钟显示,界面
备 注:温度标记不断变化
/**********************************************************************************************/
void disp_sfm()
{
uchar day_temp,date_temp,month_temp,year_temp;
/********************************************************************/
/**************先用绘图指令写入喇叭标记--如果报时开起---------
为什么不先写会影响第四行后半列-----温度显示部分
现在好了************OK*************************************
//***********整点报时写入一喇叭标记************************/
if(read_clock(0xc3) > 0) //读闹钟状态
{set16162pic(8,1,0,0);} //在第8列第1行不反白的显示喇叭标记
else{lcm_w_test(0,0x9B); //如果闹钟不开在喇叭标志**在LCM上的写入空白
lcm_w_test(1,0x20); //在LCM上的写入空白
lcm_w_test(1,0x20);} //在LCM上的写入空白
write_12864_cmd(0x30); //启动基本指令
if(ZTB==0||ZTB==1) //用字体变量量来判断写入何种样的温度标记
{set16162pic(4,4,0,9);} //在第4列第4行不反白温度标记
if(ZTB==3||ZTB==2)
{set16162pic(4,4,1,9);} //在第4列第4行不反白温度标记
if(ZTB==4)
{set16162pic(4,4,0,3);} //在第4列第4行不反白的T温度标记
if(ZTB==5||ZTB==6)
{set16162pic(4,4,1,3);} //在第4列第4行反白的显T温度标记
/*------------图片时钟秒的处理------------------------*/
ss = read_clock(0x81); //读取秒,
if(sec_temp!=ss) //读取秒,只要有改变液晶显示也改变
{ sec_temp=ss;
Dispdeal(sec_temp); //处理一下秒的个位和十位
display(7,ge); //更新秒的个位
if(secl!=shi)
{ secl=shi;
display(6,secl);} //更新秒的十位
}
/*------------图片时钟分的处理------------------------*/
mm = read_clock(0x83);//读取分,只要有改变液晶显示也改变
if(min_temp!=mm)
{
min_temp=mm;
Dispdeal(mm); //处理一下分的个位和十位
display(3,shi);
display(4,ge);
}
/*------------图片时钟时的处理------------------------*/
hh = read_clock(0x85);//读取小时,只要有改变液晶显示也改变
if(hour_temp!=hh)
{
hour_temp=hh;
Dispdeal(hh); //处理一下时的个位和十位
display(0,shi);
display(1,ge);
}
/*------------图片时钟闪点的处理------------------------*/
if(ge/1%2==0)
{
display(2,10);
display(5,10);
}
else
{
display(2,11);
display(5,11);
}
/*------------图片时钟日月年星期的更新处理------------------------*/
write_12864_cmd(0x30); //恢复基本指令
days = read_clock(0x87); //读取日,只要有改变液晶显示也改变
if(date_temp!=days)
{
date_temp=days;
Dispdeal(days); //处理一下日的个位和十位
write_12864_cmd(0x85);
write_data(shi+0x30);
write_data(ge+0x30);
}
mo = read_clock(0x89); //读取月,只要有改变液晶显示也改变
if(month_temp!=mo)
{
month_temp=mo;
write_12864_cmd(0x83);
Dispdeal(mo); //处理一下月的个位和十位
write_data(shi+0x30);
write_data(ge+0x30);
}
yy = read_clock(0x8d); //读取年,只要有改变液晶显示也改变
if(year_temp!=yy)
{
year_temp=yy;
write_12864_cmd(0x81);
Dispdeal(yy); //处理一下年的个位和十位
write_data(shi+0x30);
write_data(ge+0x30);
}
xinq = read_clock(0x8b);//读取星期,只要有改变液晶显示也改变
if(day_temp!=xinq)
{
day_temp=xinq;
write_12864_cmd(0x9a);
XinQishow();//显示星期
}
/*****************闹钟+自动调光标志**********************/ // if(read_clock(0xc7) == 1)
if(read_clock(0xc1) == 1&&read_clock(0xc7) == 1)//自动调光和闹钟同时存在
{ lcm_w_test(0,0x80); //位置-----( X)
lcm_w_test(1,0x0f); //查表灯的符号是0X0F 做自动调光标记
lcm_w_test(1,0x0d); //闹种标记 半个音乐符号做闹钟标记
}
if(read_clock(0xc1) == 1&&read_clock(0xc7) == 0){ //调光标记
lcm_w_test(0,0x80); //位置-----( X)
lcm_w_test(1,0x0f); //查表灯的符号是0X0F
lcm_w_test(1,0x20); //空白
}
if(read_clock(0xc1) == 0&&read_clock(0xc7) == 1){ //写入闹钟标记
lcm_w_test(0,0x80); //位置-----( X)
lcm_w_test(1,0x0d); //闹铃标记
lcm_w_test(1,0x20); //空白
}
if(read_clock(0xc1) ==0&&read_clock(0xc7) == 0)//自动调光和闹钟同时存不在
{ //清掉标记
lcm_w_test(0,0x80); //位置--第一行第一列
lcm_w_test(1,0x20); // 清除
lcm_w_test(1,0x20); // 清除
}
Tempuer_sfm(); //温度显示
}
/*********************************************************************************************
函数名:验证闹钟时间到
调 用:search_time();
参 数:无
返回值:无
结 果:
备 注:
/**********************************************************************************************/
void search_time(void){
unsigned char i;
write_clock(0x8e,0x00);//允许写操作
for(i=1;i<7;i++){//闹钟改为6组,减少2组留出6个字节RAM
if( read_clock(0xc3+i*6) != 0 && //不为0则表示这项已经设置
read_clock(0xc3+i*6+2) == read_clock(0x85) && //小时对比
read_clock(0xc3+i*6+4) == read_clock(0x83)&& //分值对比
read_clock(0x81) < 0x09 && //这里保证秒值小于8秒动作,防止再操作
v != read_clock(0x83)){ //按键停止防再响
switch (read_clock(0xc3+i*6)){//显示设置项的说明
case 1://只响一次,之后自动关闭[---V4.0即闹一次后把当前闹钟开关给关闭,下次不再闹]
BEEP_bit = 1;
write_clock(0xc2+i*6,0);
break;//
case 2://常开
BEEP_bit = 1;
break;//
case 3://周六、日除外
if(read_clock(0x8b) < 6){
BEEP_bit = 1;
}
break;//
case 4://周日除外
if(read_clock(0x8b) < 7){
BEEP_bit = 1;
}
break;//
case 5://周六、日响
if(read_clock(0x8b) > 5){
BEEP_bit = 1;
}
break;//
case 6://周日响
if(read_clock(0x8b) == 7){
BEEP_bit = 1;
}
break;//
}
v = read_clock(0x83);
}
}
write_clock(0x8e,0x80);//禁止写操作
}
/*********************************************************************************************
函数名:闹钟数据刷新
调 用:al_updata();
参 数:无
返回值:无
结 果:
备 注:
/**********************************************************************************************/
void al_updata (void){//闹钟数据刷新
e = menu%10;
lcm_w_test(0,0x8A);//方式
lcm_w_test(1,e+0x30);//
lcm_w_test(0,0x8D);//时
lcm_w_test(1,read_clock(0xc3+e*6+2)/16+0x30);//小时
lcm_w_test(1,read_clock(0xc3+e*6+2)%16+0x30);
lcm_w_word(":");
lcm_w_test(1,read_clock(0xc3+e*6+4)/16+0x30);//分钟
lcm_w_test(1,read_clock(0xc3+e*6+4)%16+0x30);
lcm_w_test(0,0x98);//
switch (read_clock(0xc3+e*6)){
case 0:
lcm_w_word(" 闹钟始终关闭 ");//
//----------|-------1-------|-----//标尺
break;
case 1:
lcm_w_word(" 响一次后关闭 ");//
//----------|-------1-------|-----//标尺
break;
case 2:
lcm_w_word(" 闹钟始终启动 ");//
//----------|-------1-------|-----//标尺
break;
case 3:
lcm_w_word(" 周一至周五响 ");//
//----------|-------1-------|-----//标尺
break;
case 4:
lcm_w_word(" 周一至周六响 ");//
//----------|-------1-------|-----//标尺
break;
case 5:
lcm_w_word(" 周六和周日响 ");//
//----------|-------1-------|-----//标尺
break;
case 6:
lcm_w_word(" 闹钟仅周日响 ");//
//----------|-------1-------|-----//标尺
break;
default:
//冗余语句
break;
}
}
/*********************************************************************************************
函数名:实时时钟数据刷新
调 用:updata();
参 数:无
返回值:无
结 果:刷新正常界面显示的时钟数据
备 注:
/*********用最笨的办法写实时时钟数据**********************************************************/
void updata (void){ //实时时钟刷新数据
read_clockS();
/**********在屏幕的第一行20XX-XX-XX XX:XX*******************/
lcm_w_test(0,0x80);
lcm_w_word("20");
//--------------------------------
lcm_w_test(1,yy/16+0x30);//
lcm_w_test(1,yy%16+0x30);
//--------------------------------
lcm_w_word("-");
lcm_w_test(1,mo/16+0x30);
lcm_w_test(1,mo%16+0x30);
lcm_w_word("-");
lcm_w_test(1,days/16+0x30);
lcm_w_test(1,days%16+0x30);
lcm_w_word(" ");
lcm_w_test(1,hh/16+0x30);
lcm_w_test(1,hh%16+0x30);
m = read_clock(0x81)&0x01;//冒号":"以秒闪烁
if(m == 1){//秒点闪烁
lcm_w_word(":");
}else{
lcm_w_word(" ");
}
lcm_w_test(1,mm/16+0x30);
lcm_w_test(1,mm%16+0x30);
/******第四行显示:星期X 温度39C************/
lcm_w_test(0,0x98); //在LCM上的写入位置
lcm_w_word("星期");
lcm_w_test(0,0x9A);
XinQishow();//显示星期 //
if(read_clock(0xc7) == 1)
{
lcm_w_test(0,0x9B); //闹钟标志**在LCM上的写入位置
lcm_w_test(1,0x0e);
lcm_w_test(1,0x20);
}
else{
lcm_w_test(0,0x9B); //闹钟标志**秒值在LCM上的写入位置
lcm_w_test(1,0x54);
lcm_w_test(1,0x10);
}
if(menu==0){
tempera= DSS()*10.625/10; //将DSS汇编程序取放大0。625倍得的温度值放入温度寄存器变量
if(tempera < 100){ //小于100C时的显示
lcm_w_test(0,0x9C); //温度在LCM上的写入位置
lcm_w_word("温度"); //显示温度十位
lcm_w_test(1,tempera/10+0x30); //显示温度个位
lcm_w_test(1,tempera%10+0x30); //个位
lcm_w_word("℃");} //C字样
if(tempera > 99){ //读不出温度数据时不显示温度字样
lcm_w_test(0,0x9C); //温度在LCM上的写入位置
lcm_w_word(" +"); //度C
lcm_w_test(1,tempera/100+0x30); //显示温度百位
lcm_w_test(1,tempera%100/10+0x30);//显示温度十位
lcm_w_test(1,tempera%100%10+0x30);//显示温度个位
lcm_w_word(" "); //写入半个空格防止乱显
lcm_w_word("℃");} } //C字样
else
{
lcmnongli();
}
}
/***************电压测量************************************************/
typedef unsigned char INT8U;
typedef unsigned int INT16U;
typedef unsigned long int INT32U;
INT8U channel=1;
INT8U AD_finished=0;
INT8U ADC_result;
INT8U ADC_result1;
#define AD_SPEED 0x60 //0110,0000 1 1 270个时钟周期转换一次, 0x00 //0000,0000 0 0 420 个时钟周期转换一次
void delay23(INT8U delay_time) // 延时函数
{
INT16U n;
while(delay_time--)
{
n = 6000;
while(--n);
}
}
INT8U get_AD_result(INT8U channel) //8位AD
{
INT8U AD_finished=0; //存储 A/D 转换标志
ADC_RES = 0;
ADC_RESL = 0;
channel &= 0x07; //0000,0111 清0高5位
ADC_CONTR = AD_SPEED;
_nop_();
ADC_CONTR |= channel; //选择 A/D 当前通道
_nop_();
ADC_CONTR |= 0x80; //启动 A/D 电源
delay23(1); //使输入电压达到稳定
ADC_CONTR |= 0x08; //0000,1000 令 ADCS = 1, 启动A/D转换,
AD_finished = 0;
while (AD_finished ==0 ) //等待A/D转换结束
{
AD_finished = (ADC_CONTR & 0x10); //0001,0000 测试A/D转换结束否
}
ADC_CONTR &= 0xE7; //1111,0111 清 ADC_FLAG 位, 关闭A/D转换,
return (ADC_RES); //返回 A/D 高 8 位转换结果
}
// INT16U ADC_result2;
// INT16U ADC_result3;
INT32U gg;
INT8U aa,g,s,b;
INT32U gg1;
INT8U aa1,g1,s1,b1;
void Dyanya (void){
dispString(0, 0, 1, "LCD12864工作状态");
write_12864_cmd(0x90);
lcm_w_word("输入电压:");//
ADC_result = get_AD_result(0);//P1.0 为 A/D 当前通道, 接电压源进行测量
/*--------量程设置为15V--------------------*/
gg=(INT32U)((INT32U)ADC_result*1500.00)/255.00; //扩大量程为15V
aa=gg/1000; //取十位
b=(gg%1000)/100; //取个位
s=(gg%100) /10;
g= gg%10;
lcm_w_test(1,aa+0x30);//
lcm_w_test(1,b+0x30);//
lcm_w_test(1,0x2e);//
lcm_w_test(1,s+0x30);
lcm_w_test(1,g+0x30);
lcm_w_word("V");
delay23(1); //使输入电压达到稳定
ADC_result1 = get_AD_result(1);//P1.1 为 A/D 当前通道, 接电压源进行测量
/*--------量程设置为5V--------------------*/
gg1=(INT32U)((INT32U)ADC_result1*1500.00)/255.00; //扩大量程为15V
// gg=(INT32U)((INT32U)ADC_result*500)/256;
aa1=gg1/1000; //取十位
b1=(gg1%1000)/100; //取个位
s1=(gg1%100) /10;
g1= gg1%10;
write_12864_cmd(0x88);
lcm_w_word("电源电流:");//
lcm_w_test(1,aa1/10+0x30);//
lcm_w_test(1,b1+0x30);//
lcm_w_test(1,0x2e);//
lcm_w_test(1,s1+0x30);
lcm_w_test(1,g1+0x30);
lcm_w_word("mA");
delay23(1); //使输入电压达到稳定
ADC_result = get_AD_result(2);//P1.2 为 A/D 当前通道, 接电压源进行测量
/*--------量程设置为9V--------------------*/
gg=(INT32U)((INT32U)ADC_result*900.0)/255.0;
aa=gg/2000;
b=gg/200%10;
s=gg/20%10;
g=gg/2%10;
//lcm_w_test(0,0x98);
write_12864_cmd(0x98);
lcm_w_word("MCU-电压:");//
lcm_w_test(1,aa+0x30);//
lcm_w_test(1,b+0x30);//
lcm_w_test(1,0x2e);//
lcm_w_test(1,s+0x30);
lcm_w_test(1,g+0x30);
lcm_w_word("V");
/* tempera= DSS()*10.625/10; //将DSS汇编程序取放大0。625倍得的温度值放入温度寄存器变量
if(tempera < 100){ //小于100C时的显示
lcm_w_test(0,0x90); //温度在LCM上的写入位置
lcm_w_word("¤"); //显示温度十位
lcm_w_test(1,tempera/10+0x30); //显示温度个位
lcm_w_test(1,tempera%10+0x30); //个位
lcm_w_word("℃");} //C字样
if(tempera > 99){ //读不出温度数据时不显示温度字样
lcm_w_test(0,0x90); //温度在LCM上的写入位置
lcm_w_word(" +"); //度C
lcm_w_test(1,tempera/100+0x30); //显示温度百位
lcm_w_test(1,tempera%100/10+0x30);//显示温度十位
lcm_w_test(1,tempera%100%10+0x30);//显示温度个位
lcm_w_word(" "); //写入半个空格防止乱显
lcm_w_word("℃");} //C字样
tempera= DSS()*10.625/10; //将DSS汇编程序取放大0。625倍得的温度值放入温度寄存器变量
if(tempera < 100){ //小于100C时的显示
lcm_w_test(0,0x88); //温度在LCM上的写入位置
lcm_w_word("¤"); //显示温度十位
lcm_w_test(1,tempera/10+0x30); //显示温度个位
lcm_w_test(1,tempera%10+0x30); //个位
lcm_w_word("℃");} //C字样
if(tempera > 99){ //读不出温度数据时不显示温度字样
lcm_w_test(0,0x88); //温度在LCM上的写入位置
lcm_w_word(" +"); //度C
lcm_w_test(1,tempera/100+0x30); //显示温度百位
lcm_w_test(1,tempera%100/10+0x30);//显示温度十位
lcm_w_test(1,tempera%100%10+0x30);//显示温度个位
lcm_w_word(" "); //写入半个空格防止乱显
lcm_w_word("℃");} //C字样
tempera= DSS()*10.625/10; //将DSS汇编程序取放大0。625倍得的温度值放入温度寄存器变量
if(tempera < 100){ //小于100C时的显示
lcm_w_test(0,0x94); //温度在LCM上的写入位置
lcm_w_word("¤"); //显示温度十位
lcm_w_test(1,tempera/10+0x30); //显示温度个位
lcm_w_test(1,tempera%10+0x30); //个位
lcm_w_word("℃");} //C字样
if(tempera > 99){ //读不出温度数据时不显示温度字样
lcm_w_test(0,0x94); //温度在LCM上的写入位置
lcm_w_word(" +"); //度C
lcm_w_test(1,tempera/100+0x30); //显示温度百位
lcm_w_test(1,tempera%100/10+0x30);//显示温度十位
lcm_w_test(1,tempera%100%10+0x30);//显示温度个位
lcm_w_word(" "); //写入半个空格防止乱显
lcm_w_word("℃");} //C字样
tempera= DSS()*10.625/10; //将DSS汇编程序取放大0。625倍得的温度值放入温度寄存器变量
if(tempera < 100){ //小于100C时的显示
lcm_w_test(0,0x8c); //温度在LCM上的写入位置
lcm_w_word("¤"); //显示温度十位
lcm_w_test(1,tempera/10+0x30); //显示温度个位
lcm_w_test(1,tempera%10+0x30); //个位
lcm_w_word("℃");} //C字样
if(tempera > 99){ //读不出温度数据时不显示温度字样
lcm_w_test(0,0x8c); //温度在LCM上的写入位置
lcm_w_word(" +"); //度C
lcm_w_test(1,tempera/100+0x30); //显示温度百位
lcm_w_test(1,tempera%100/10+0x30);//显示温度十位
lcm_w_test(1,tempera%100%10+0x30);//显示温度个位
lcm_w_word(" "); //写入半个空格防止乱显
lcm_w_word("℃");} //C字样
*/
/*
temp=getdata*1.0/255*500;*/
/*temp=getdata*200.0/255.0*12.0;
dispbuf[0]=temp/2%10;
dispbuf[1]=temp/20%10;
dispbuf[2]=temp/200%10;
dispbuf[3]=temp/2000; */
}
void Baiguang(void){
uint temper;
uchar temper_ge,temper_shi,temper_bai,temper_qai;
temper=DSS()*(10.625);//读取温度
temper_ge=temper%10+0x30;
temper_shi=temper%100/10+0x30;
temper_bai=temper/100+0x30;
temper_qai=temper/1000;
set16162pic(1,2,0,3); //在第1列第2行不反白的显示温度标记标志T和一个小三角
_nop_();
set16162pic(5,2,0,9); //在第5列第2行不反白的显示温度标记标志
_nop_();
//set16162pic(5,3,1,9); //在第5列第3行反白的显示温度标记标志
_nop_();
set16162pic(1,3,1,3); //在第1列第3行反白的显示温度标记标志T和一个小三角
_nop_();
write_12864_cmd(0x30);
if(t/2%2==0) {
dispString(0, 0, 1, "白光烙铁温度控制"); }
else {
dispString(0, 0, 1, "¤加热进程 %..");
write_12864_cmd(0x85);
++th5;
if(th5>100||th5<0)th5=0;
lcm_w_test(1,th5/100+0x30);//
lcm_w_test(1,th5%100/10+0x30);//
lcm_w_test(1,th5%10+0x30);
}
dispString(2, 4, 1, "Tm");
/*--------第二行设定温度的显示————————*/
write_12864_cmd(0x91);
lcm_w_word(" ");
lcm_w_test(1,th/100+0x30);//
lcm_w_test(1,th%100/10+0x30);//
lcm_w_test(1,th%10+0x30);//
lcm_w_word("℃");
/*--------第三行左边烙铁温度的显示————————*/
write_12864_cmd(0x89);
lcm_w_word(" ");
lcm_w_test(1,th1+0x30);//
lcm_w_test(1,th2+0x30);//
lcm_w_test(1,th3+0x30);//
lcm_w_word("℃");
/*--------第三行右边时分的显示————————*/
read_clockS();
write_12864_cmd(0x98);
lcm_w_test(1,mo/16+0x30);
lcm_w_test(1,mo%16+0x30);
lcm_w_word("月");
lcm_w_test(1,days/16+0x30);
lcm_w_test(1,days%16+0x30);
lcm_w_word("日");
lcm_w_test(1,hh/16+0x30);
lcm_w_test(1,hh%16+0x30);
m = read_clock(0x81)&0x01;//冒号":"以秒闪烁
if(m == 1){//秒点闪烁
lcm_w_word(":");
}else{lcm_w_word(" ");}
lcm_w_test(1,mm/16+0x30);
lcm_w_test(1,mm%16+0x30);
if(m == 1){//秒点闪烁
lcm_w_word(":");
}else{lcm_w_word(" ");}
lcm_w_test(1,ss/16+0x30);
lcm_w_test(1,ss%16+0x30);
//*********小于于0C时的温度处理******************
if(DSS < 0)
{write_12864_cmd(0x9c);
lcm_w_word(" -");
}
else
//*********大于100C时的温度处理******************
{ if(temper_qai==0x01) {
temper_bai=temper%1000/100+0x30; //取除以1000的余数再除100
temper_shi=temper%1000%100/10+0x30;
temper_ge=temper%1000%100%10+0x30;
write_12864_cmd(0x95);
write_data(0x31);
write_data(temper_bai);
write_data(temper_shi);
write_data('.');
write_data(temper_ge);
write_data(0x43);
write_12864_cmd(0x36);}
}
//*********小于于100C时的温度处理******************
if(temper_qai==0x00) {
write_12864_cmd(0x95);
write_data(temper_bai);
write_data(temper_shi);
write_data('.');
write_data(temper_ge);
lcm_w_word("℃");
write_12864_cmd(0x36);}
}
/*---------12864LCD---------------*/
/*
第一行0X80-0X81-0X82-0X83-0X84-0X85-0X86-0X87
第三行0X88-0X89-0X8A-0X8B-0X8C-0X8D-0X8E-0X8F
第二行0X90-0X91-0X92-0X93-0X94-0X95-0X96-0X97
第四行0X98-0X99-0X9A-0X9B-0X9C-0X9D-0X9E-0X9F
-------1----2----3----4----5----6----7----8--
/*********************************************************************************************
函数名:校时处理程序
调 用:CK();
参 数:无
返回值:无
结 果:在00时00分30秒时进行时间校准,加/减一定时间作为补偿。
备 注:校时程序用RAM,0xFA用于存放加或减(1/0),0XFC用于存放加减的秒数(0~20秒)
/**********************************************************************************************/
void CK (void){ // write_clock(address,(item/10)*16+item%10);//转换成16进制写入1302
unsigned char cktemp;
cktemp=read_clock(0xfd);
/***********让减秒操作过了时间段才恢复标记,才能始校时不重复操作*****************************/
if((read_clock(0x85)==0)&&(read_clock(0x83)==0x01)&&(read_clock(0x81)==0)){//凌晨0点1分0秒时恢复
CKTIME_1=0; //为下一天校时恢复标记
}
if((read_clock(0x85)==0)&&(read_clock(0x83)==0)&&(read_clock(0x81)==0x30)&&CKTIME_1==0){//凌晨3点0分30秒时校正
if( read_clock(0xFB) == 1){ //减调整
write_clock(0x8e,0x00);//允许写操作
write_clock(0x80,0x30+cktemp);//对秒进行调整。26-temp:让本来+2.+1.+0.-25.-24...变成+2.+1.+0.-1.-2...
write_clock(0x8e,0x80);//禁止写操作
Beep_key();//按键音
CKTIME_1=1;
}
if( read_clock(0xFB) == 0){ //减调整
write_clock(0x8e,0x00);//允许写操作
write_clock(0x80,0x30-cktemp);//对秒进行调整
write_clock(0x8e,0x80);//禁止写操作
CKTIME_1=1;
}
}
}
/*------------------------外部中断0程序-------------------------*/
/*--------- interrupt 0外部中断0
interrupt 1定时器0
interrupt 2外部中断1
interrupt 3定时器1
interrupt 4串口中断 */
void LCDLOGO(void) {
unsigned char InitLine;
Beep(); //扬声器--开机音
lcm_init(); //初始化液晶显示器
CH_L(); //渐暗+清屏
dispString(0, 0, 100, "欢迎使用智能时钟");
dispString(1, 0, 100, " STC12C5A60S2 ");
dispString(2, 1, 100, "请稍等片刻");
dispString(3, 0, 100, "系统启动中......");
CH_H(); //渐亮
for (InitLine = 0; InitLine < 17; InitLine++)
{convertChar(3, 0, InitLine);DELAY_MS(3);} //显示等留3秒
Beep(); //扬声器--开机音
CH_L(); //渐暗+清屏
dispString(0, 0, 100, "●PMW 调光+ 闹钟");
dispString(1, 0, 100, "农历+ 节日+ 生日");
dispString(2, 0, 100, "△整点报时+ 音乐");
dispString(3, 0, 100, "△多种界面切换..");
CH_H(); //渐亮
for (InitLine = 0; InitLine < 17; InitLine++)
{convertChar(0, 0, InitLine);DELAY_MS(230);} //显示等留3秒
/*---------------------------------*/
for (InitLine = 0; InitLine < 17; InitLine++)
{convertChar(1, 0, InitLine);DELAY_MS(230); }//显示等留3秒
/*----------------------------------*/
for (InitLine = 0; InitLine < 17; InitLine++)
{convertChar(2, 0, InitLine);DELAY_MS(230);} //显示等留3秒
/*-----------------------------------*/
for (InitLine = 0; InitLine < 17; InitLine++)
{convertChar(3, 0, InitLine);DELAY_MS(230);} //显示等留3秒
Beep(); //扬声器--开机音
CH_L(); //渐暗+清屏
/*---------1-----------------------------------------*/
dispString(0, 0, 1, "┏━━━━━━┓");
dispString(1, 0, 1, "┃文杰工作室--┃");
dispString(2, 0, 1, "┃ WELL**COME ┃");
dispString(3, 0, 1, "┗━━━━━━┛");
CH_H(); //渐亮
DELAY_MS(300); //显示等留3秒
Beep(); //扬声器--开机音
lcm_clr();//清屏
Disp_Img(TU_TAB1); //显示一幅图片(我的电脑)
CH_H(); //渐亮
DELAY_MS(300); //显示等留3秒
InitialSound(); //唱歌文件初始化
Beep_al(); //扬声器--闹钟
Play(Music_lz,0,3,360);
CH_H(); //渐亮
Beep(); //扬声器--开机音
lcm_clr(); //清屏
Disp_Img(BMP11); //显示一幅图片(龙的图案) buffer
CH_H(); //渐亮
DELAY_MS(300); //显示等留3秒
Beep(); //扬声器--开机音
lcm_clr();//清屏
Disp_Img(tab5); //显示一幅图片(公鸡图案) buffer
CH_H(); //渐亮
DELAY_MS(300); //显示等留3秒
Beep(); //扬声器--开机音
lcm_clr();//清屏
Disp_Img(Photo2); //显示一幅图片(我的QQ图案) buffer
CH_H(); //渐亮
DELAY_MS(500); //显示等留3秒
lcm_clr();//清屏
lcm_w_word("出品于文杰工作室 欢迎使用 FutureTimer4 LiWenJie&&Home ");//
//------|-------1-------|-------------|-----2--------|-------4-------|----//尺
CH_H(); //渐亮
DELAY_MS(200); //显示等留3秒
Beep_set();//扬声器--确定设置
Play(Music_wo,0,3,360);
/*--------------3---------------------------------*/
lcm_clr();//清屏
displayPhoto(powerOnPhoto, 0);
DELAY_MS(300); //显示等留3秒
lcm_clr();//清屏
lcm_w_word(" 精确时钟 分享每一分钟 V8.003 * 按住任意键校时");//
//------|-------1-------|-------3-------|-------2---|-------4-------|-----//标尺
CH_H(); //渐亮
DELAY_MS(200); //显示等留3秒
Beep_key(); //扬声器--按键音
/*-----------------------------------------------*/
// Timer_init(); //中断初始化一下
}
/*显示模式3的界面*/
/*********特大号时钟界面*************************************************/
void dis_mode3int(void)
{
uchar i,j,h,l,x_0=0x80,y_0=0x90;
hh=read_clock(0x85);
h=hh>>4; // 分离十位 个位
l=hh&0x0f;
for(j=0;j<2;j++)
{ for(i=0;i<32;i++) // 十位个位一起读入
{ wr_lcd(0,0x34);
wr_lcd(0,y_0++);
wr_lcd(0,x_0);
wr_lcd(0,0x30);
wr_lcd(1,mode_3num[h][i*3]); // 连续写数据,X坐标自动加1
wr_lcd(1,mode_3num[h][i*3+1]);
wr_lcd(1,mode_3num[h][i*3+2]);
wr_lcd(1,mode_3num[l][i*3]);
wr_lcd(1,mode_3num[l][i*3+1]);
wr_lcd(1,mode_3num[l][i*3+2]);
if(y_0==0xa0){x_0=x_0+8;y_0=0x80;}
}
x_0=0x84,y_0=0x90;
mm=read_clock(0x83);
h=mm>>4; // 分离十位 个位
l=mm&0x0f;}
}
// 模式3向LCM中填写 秒 数据
void disSecond2(void)
{ char second[3];
read_clockS();
write_12864_cmd(0x30);
second[0]=ss/16+0x30;
second[1]=ss%16+0x30;
second[2]='\0';
dispS2tring(2,7,second);
if(read_clock(0xc7) == 1){
set16162pic(8,2,0,0);} //在第8列第2行不反白的显示喇叭标记
else if(read_clock(0xc7) == 0) //没闹钟时在标记处写入空白
dispString(1, 1, 1, " ");
write_12864_cmd(0x36);
if(t/1%2==0)
{display(3,11);}
else
{display(3,10);}
}
/*显示模式3的界面*/
void dis_mode3(void)
{ write_12864_cmd(0x30);
Tempuer_sfm(); //温度显示和图片时钟共用
set16162pic(4,4,0,3);} //在第4列第4行不反白的显示温度标记
/****在界面6LCD12864的第三行写入农历信息**************************************************/
void displcd128D()
{ dispS2tring(3,2,"农历");
lcmnongli();}
void disDate()
{ char dateBuff[9];
read_clockS();
xinq =read_clock(0x8b);
dateBuff[0]=yy/16+0x30;
dateBuff[1]=yy%16+0x30;
dateBuff[2]=0x2f;
dateBuff[3]=mo/16+0x30;
dateBuff[4]=mo%16+0x30;
dateBuff[5]=0x2f;
dateBuff[6]=days/16+0x30;
dateBuff[7]=days%16+0x30;
dateBuff[8]='\0';
dispS2tring(0,2,dateBuff);//写入月日信息
Conver_week(0,yy,mo,days);//调用公历换算星期子函数
//seweek=week;//week是公历转换星期子函数的运行结果,结果为0-6,0是星期日
switch(week) //第一行6--7列写入周几即星期X
{
case 1:dispS2tring(0,6,"周一");break;
case 2:dispS2tring(0,6,"周二");break;
case 3:dispS2tring(0,6,"周三");break;
case 4:dispS2tring(0,6,"周四");break;
case 5:dispS2tring(0,6,"周五");break;
case 6:dispS2tring(0,6,"周六");break;
case 7:dispS2tring(0,6,"周日");break;
}}
// 向LCM中填写 秒 数据
void disSecond(void)
{ char second[3];
second[0]=ss/16+0x30;
second[1]=ss%16+0x30;
second[2]='\0';
dispS2tring(2,7,second);
displcd128D(); //更新农历
disDate(); //更新日期
if(read_clock(0xc7) == 1){
set16162pic(8,2,0,0);}//在第8列第2行不反白的显示喇叭标记
else if(read_clock(0xc7) == 0) //没闹钟时在标记处写入空白
dispString(1, 1, 1, " ");
write_12864_cmd(0x36);
if(t/1%2==0)
{display(4,11);}
else
{display(4,10);}
}
//向LCM中填写 时&分 数据
void disHaMint(void)
{ mm = read_clock(0x83);//读取分,只要有改变液晶显示也改变
if(min_temp!=mm)
{min_temp=mm;
Dispdeal(mm); //处理一下分的个位和十位
display(5,shi);
display(6,ge);}
hh = read_clock(0x85);//读取小时,只要有改变液晶显示也改变
if(hour_temp!=hh)
{hour_temp=hh;
Dispdeal(hh); //处理一下时的个位和十位
display(2,shi);
display(3,ge);
}
}
void disTemint(void)
{
uchar j;
uchar dat1,dat2,dat3,dat4;
//温度柱状显示和横线刻度显示
for(j=0;j<32;j++)
{ dat1=wendu1[j*2];
dat2=wendu1[j*2+1];
if(temperature+j==62) dat1|=0x07;
if(temperature+j >62) dat1|=0x02;
dispLine(0,j,dat1,dat2);
}
for(j=0;j<32;j++)
{ dat1=wendu1[j*2+64];
dat2=wendu1[j*2+65];
if(temperature+j==30) dat1|=0x07;
if(temperature+j >30) dat1|=0x02;
dispLine(8,j,dat1,dat2);}
//数字刻度显示和温度个位显示
if(temperature>=20) //温度为零上
{
for(j=0;j<32;j++)
{
dat3=wendu2[j*2];
dat4=wendu2[j*2+1];
switch(temperature+j)
{
case 60: dat4|=wendu3[temperature%10][0];break;
case 61: dat4|=wendu3[temperature%10][1];break;
case 62: dat4|=wendu3[temperature%10][2];break;
case 63: dat4|=wendu3[temperature%10][3];break;
case 64: dat4|=wendu3[temperature%10][4];break;
}
dispLine(1,j,dat3,dat4);
}
for(j=0;j<32;j++)
{
dat3=wendu2[j*2+64];
dat4=wendu2[j*2+65];
switch(temperature+j)
{
case 30: dat4|=wendu3[temperature%10][0];break;
case 31: dat4|=wendu3[temperature%10][1];break;
case 32: dat4|=wendu3[temperature%10][2];break;
case 33: dat4|=wendu3[temperature%10][3];break;
case 34: dat4|=wendu3[temperature%10][4];break;
}
dispLine(9,j,dat3,dat4);
}
}
else //温度为零下
{
temperature=0x14-temperature;
for(j=0;j<32;j++)
{
dat3=wendu2[j*2];
dat4=wendu2[j*2+1];
dispLine(1,j,dat3,dat4);
}
for(j=0;j<32;j++)
{
dat3=wendu2[j*2+64];
dat4=wendu2[j*2+65];
switch(j-temperature)
{
case 8: dat4|=wendu3[temperature%10][0];break;
case 9: dat4|=wendu3[temperature%10][1];break;
case 10: dat4|=wendu3[temperature%10][2];break;
case 11: dat4|=wendu3[temperature%10][3];break;
case 12: dat4|=wendu3[temperature%10][4];break;
}
dispLine(9,j,dat3,dat4);
}}}
void disTem(void)
{if(temperature == (DSS()*10.625)/10+0x14) return ;
temperature=(( DSS()*10.625)/10+0x14); //实际温度加20°
//温度柱状显示和横线刻度显示
disTemint();
}
void disDate28()
{
char yearw,monthw,dayw,weekw,i;
char dateBuff[6];
if(dayflag2 == read_clock(0x87)) return;
yearw =read_clock(0x8d);
monthw=read_clock(0x89);
dayflag2=read_clock(0x87);
//ds1302读出数据需要转换
yearw =(yearw >>4)*10+(yearw &0x0f);
monthw=(monthw>>4)*10+(monthw&0x0f);
dayw =(dayflag2>>4)*10+(dayflag2&0x0f);
weekw= convWeek(yearw,monthw,dayw);//计算星期
for(i = 0; i < 7; i++)
{
uchar color;
if( weekw < 0 || weekw >6) break;
if(i == weekw) color = 0;
else color = 1;
dispLine23(88 + i, 0, 88 + i, 6, color);//0从上到下取消点6共有黑点
}
/*********显示公历数据XX年XX月XX日******************/
/*在钟盘的右边和下边小数字*/
dateBuff[0]=yearw/10;
dateBuff[1]=yearw%10;
dateBuff[2]=monthw/10;
dateBuff[3]=monthw%10;
dateBuff[4]=dayw/10;
dateBuff[5]=dayw%10;
//三个参数,分别是x,y坐标,显示的数字
//点坐标 X0-127 y0-63
dispMiniNum(33,1,mininums[dateBuff[0]]);
dispMiniNum(37,1,mininums[dateBuff[1]]);
dispMiniNum(33,58,mininums[dateBuff[2]]);
dispMiniNum(37,58,mininums[dateBuff[3]]);
dispMiniNum(88,58,mininums[dateBuff[4]]);
dispMiniNum(92,58,mininums[dateBuff[5]]);
lcmnongli();//显示农历
lcmshengxiao();//显示生肖
}
void disClock()
{
static char ss1,mm1,hh1;
static char sec,min,hou;
if(ss1 == read_clock(0x81)) return;
switch(sec / 15) //清除原秒针
{
case 0: dispLine23(64,31,64 + secHand[sec % 15][0], 31 - secHand[sec % 15][1], 0);break;
case 1: dispLine23(64,32,64 + secHand[sec % 15][1], 32 + secHand[sec % 15][0], 0);break;
case 2: dispLine23(63,32,63 - secHand[sec % 15][0], 32 + secHand[sec % 15][1], 0);break;
case 3: dispLine23(63,31,63 - secHand[sec % 15][1], 31 - secHand[sec % 15][0], 0);break;
default :break;
}
ss1 = read_clock(0x81);
sec = (ss1 / 16)*10 + (ss1 % 16);
switch(sec / 15) //显示新秒针
{
case 0: dispLine23(64,31,64 + secHand[sec % 15][0], 31 - secHand[sec % 15][1], 1);break;
case 1: dispLine23(64,32,64 + secHand[sec % 15][1], 32 + secHand[sec % 15][0], 1);break;
case 2: dispLine23(63,32,63 - secHand[sec % 15][0], 32 + secHand[sec % 15][1], 1);break;
case 3: dispLine23(63,31,63 - secHand[sec % 15][1], 31 - secHand[sec % 15][0], 1);break;
default :break;
}
/******************************************************/
switch(min / 15) //清除原分针
{
case 0: dispLine23(64,31,64 + minHand[min % 15][0], 31 - minHand[min % 15][1], 0);break;
case 1: dispLine23(64,32,64 + minHand[min % 15][1], 32 + minHand[min % 15][0], 0);break;
case 2: dispLine23(63,32,63 - minHand[min % 15][0], 32 + minHand[min % 15][1], 0);break;
case 3: dispLine23(63,31,63 - minHand[min % 15][1], 31 - minHand[min % 15][0], 0);break;
default :break;
}
mm1 = read_clock(0x83);
min = (mm1 / 16)*10 + (mm1 % 16);
switch(min / 15) //显示新分针
{
case 0: dispLine23(64,31,64 + minHand[min % 15][0], 31 - minHand[min % 15][1], 1);break;
case 1: dispLine23(64,32,64 + minHand[min % 15][1], 32 + minHand[min % 15][0], 1);break;
case 2: dispLine23(63,32,63 - minHand[min % 15][0], 32 + minHand[min % 15][1], 1);break;
case 3: dispLine23(63,31,63 - minHand[min % 15][1], 31 - minHand[min % 15][0], 1);break;
default :break;
}
/******************************************************/
switch(hou / 15) //清除原时针
{
case 0: dispLine23(64,31,64 + houHand[hou % 15][0], 31 - houHand[hou % 15][1], 0);break;
case 1: dispLine23(64,32,64 + houHand[hou % 15][1], 32 + houHand[hou % 15][0], 0);break;
case 2: dispLine23(63,32,63 - houHand[hou % 15][0], 32 + houHand[hou % 15][1], 0);break;
case 3: dispLine23(63,31,63 - houHand[hou % 15][1], 31 - houHand[hou % 15][0], 0);break;
default :break;
}
hh1 = read_clock(0x85);
hou = (hh1 / 16)*10 + (hh1 % 16);
if(hou >=12) hou -= 12;
hou = hou * 5 + min / 12;
switch(hou / 15) //显示新时针
{
case 0: dispLine23(64,31,64 + houHand[hou % 15][0], 31 - houHand[hou % 15][1], 1);break;
case 1: dispLine23(64,32,64 + houHand[hou % 15][1], 32 + houHand[hou % 15][0], 1);break;
case 2: dispLine23(63,32,63 - houHand[hou % 15][0], 32 + houHand[hou % 15][1], 1);break;
case 3: dispLine23(63,31,63 - houHand[hou % 15][1], 31 - houHand[hou % 15][0], 1);break;
default :break;
}
}
/*********** 日历式界面*****************************/
/*显示年、月、日、星期-------------------------------------------------------*/
void displaydate(void)
{ uchar date_temp;
/*往液晶屏填写 日 数据-------------------------------------------*/
read_clockS();//读时钟的实时数
// days = read_clock(0x87); //读取日,只要有改变液晶显示也改变
if(date_temp!=days) {
date_temp=days;
write_12864_cmd(0x36); //用绘图指令写当前日期
Dispdeal(date_temp); //处理一下时的个位和十位
if(days/16 !=0){
display(1,shi);
display(2,ge);
display(3,12);}
else
{display(1,ge);
display(2,12);
display(3,11);
}}
write_12864_cmd(0x30); //用基本指令写当前年月
write_12864_cmd(0x06);
/*往液晶屏填写 年 数据-------------------------------------------*/
write_12864_cmd(0x80);
lcm_w_word("20");
//yy=read_clock(0x8d);//调用1302时钟数据中的年数据,从地址0x8d中
write_data(yy/16+0x30);
write_data(yy%16+0x30);
lcm_w_word("年");
/*往液晶屏填写 月 数据-------------------------------------------*/
write_12864_cmd(0x90);
//mo=read_clock(0x89);//调用1302时钟数据中的月数据,从地址0x89中
if(mo/16 != 0){ //十位消隐
write_data((mo/16)+0x30);
write_data((mo%16)+0x30);}
else{
write_data((mo%16)+0x30);
//write_data(0x20);
}
write_12864_cmd(0x88);
lcm_w_word("月");
}
/*往液晶屏填写 星期 数据-----------------------------------------*/
void displayxq(void){
// unsigned char sel;
read_clockS();
// Conver_week(0,yy,mo,days);//调用公历换算星期子函数
// sel=week;//week是公历转换星期子函数的运行结果,结果为0-6,0是星期日
write_12864_cmd(0x30);
write_12864_cmd(0x98);
lcm_w_word("星期");//调用字符显示子函数,显示 星期 两个字
write_12864_cmd(0x9a);//显示位置
XinQishow(); // 星期
}
/*需要绘图显示的:时、分、秒--------------------------------------------------*/
void displaytime(void)
{ write_12864_cmd(0x30); //恢复基本指令写法才能正常 /
read_clockS();//读时钟的实时数
/*往液晶屏填写 小时 数据-----------------------------------------*/
//hh = read_clock(0x85); //读取DS1302的 时
write_12864_cmd(0x9c);
write_data(hh/16+0x30);
write_data(hh%16+0x30);
m = read_clock(0x81)&0x01;//冒号":"以秒闪烁
if(m == 1){//秒点闪烁
lcm_w_word(":");
}else{
lcm_w_word(" ");
}
/*往液晶屏填写 分钟 数据-----------------------------------------*/
//mm = read_clock(0x83); //读取DS1302的 分
write_data(mm/16+0x30);
write_data(mm%16+0x30);
// lcm_w_word(":");//调用字符显示子函数,显示 ":"
if(m == 1){//秒点闪烁
lcm_w_word(":");
}else{
lcm_w_word(" ");
}
/*往液晶屏填写 秒钟 数据-----------------------------------------*/
//ss= read_clock(0x81); //读取DS1302的 秒
write_data(ss/16+0x30);
write_data(ss%16+0x30);
}
/*温度值显示-----------------------------------------------------------------*/
void ds1820disp()
{ tempera= DSS()*10.625;//读取温度
disdata[0]=tempera%1000/100+0x30; //十位数
disdata[1]=tempera%100/10+0x30; //个位数
disdata[2]=tempera%10+0x30; //小数位
if(disdata[0]==0x30) { disdata[0]=0x20; }//如果十位为0,不显示
if(ZTB==0||ZTB==1){
set16162pic(4,1,0,9);} //在第6列第1行不反白的°C图标
else
if(ZTB==3)
{
set16162pic(4,1,1,9);}
else
{write_12864_cmd(0x30);
set16162pic(4,1,0,3); //在第4列第1行不反白的显示温度标记
}
write_12864_cmd(0x30);
write_12864_cmd(0x06);
write_12864_cmd(0x84); //在液晶上显示温度起始位置:"28.8°C"
write_data(disdata[0]); //显示十位
write_data(disdata[1]); //显示个位
// write_data(0x2e); //显示小数点
// write_data(disdata[2]); //显示小数位
if(ZTB==0||ZTB==1){
set16162pic(6,1,0,8);} //在第6列第1行不反白的°C图标
else
if(ZTB==3)
{
set16162pic(6,1,1,8);}
else
{write_12864_cmd(0x30);
write_12864_cmd(0x85);
lcm_w_word("℃");} //C字样}
}
//*********界面显示初始化函数******************************/
//因为LCD用了扩充指令绘图程序从一个界面转换到另外一个截面初始化的要求不一样
//目的是为了个个界面的顺利转换******************************/
void TIMEfaceInit (void)
{
write_12864_cmd(0x34);
write_12864_cmd(0x30);
lcm_clr();
write_12864_cmd(0x06); //设置输入模式
write_12864_cmd(0x0c); //设置开显控制
if( faceouto==0) {
KA=read_clock(0XFF)%16; //读出当前储存的界面
}
/******标准节日时钟********************************/
if(KA==0){
lcm_clr(); //清字符
write_12864_cmd(0x36); //启动扩充指令集,启动绘图模式
clear_img(); //清图片数据
lcm_init(); //LCD初始化一下为节日时钟显示作准备
}
/******图片时钟********************************/
if(KA==1){
lcm_clr(); //清字符
write_12864_cmd(0x36); //启动扩充指令集,启动绘图模式
clear_img(); //清图片数据
lcm_init(); //LCD初始化一下为图片时钟显示作准备
init_dz(); //图片时钟
}
/*******图形温度初始化程序*******************************/
if(KA==2){
temperature=( (DSS()*10.625)/10+0x14); //读一下温度
min_temp=0xff;hour_temp=0xff;
write_12864_cmd(0x36); //启动扩充指令集,启动绘图模式
clear_img(); //清图片数据
disHaMint(); //小时和分钟
disTemint(); //温度显示
lcm_init(); //LCD初始化一下
write_12864_cmd(0x30); //恢复基本指令
disDate(); //显示日月和星期
}
/********特大时钟界面****************************************/
if(KA==3){
lcm_clr(); //清屏
write_12864_cmd(0x36); //启动扩充指令集,启动绘图模式
clear_img(); //清图片数据
lcm_init(); //初始化LCD
init_dz(); //显示标题
dis_mode3int(); //特大界面先显示一下
}
/*******图形温度+表盘时钟***********************/
if(KA==4){
temperature=( (DSS()*10.625)/10+0x14);//读一下温度
lcm_clr(); //清屏
write_12864_cmd(0x36); //启动扩充指令集,启动绘图模式
clear_img(); //清图片数据
dispPic(pic); //显示表盘
disTemint(); //显示温度
dayflag2 = 0xff; //把农历转换一下dayflag2
write_12864_cmd(0x30); //恢复基本指令
disDate28(); //写入农历数据
}
/*******日历时钟***********************/
if(KA==5){
tempera= DSS()*10.625;//读取温度
write_12864_cmd(0x36); //启动扩充指令集,启动绘图模式
clear_img();
lcm_clr();
displaytime(); //显示时间
ds1820disp(); //显示温度
}
}
//------------功能菜单-------------------------
void Gongnengmen (void) {
dispString(0, 0, 1, "功┃1:图①2:图②");
dispString(1, 0, 1, "能┃3:歌㈠4:歌㈡");
dispString(2, 0, 1, "菜┃5:温控6:测量");
dispString(3, 0, 1, "单┃7:自动8:版本");
}
//------------调整菜单-------------------------
void Tiaozhengmen (void) {
lcm_w_word("[ 调整菜单 ]C:报时 D:背光A:时钟 B:闹钟E:校时 F:界面");
}
//------------菜单退出总成-------------------------
void Memuexit (void) {
lcm_clr();
lcm_init(); //初始化LCD
write_12864_cmd(0x36);
clear_img();
faceouto=0; //退出时读储存的界面
menu2 = 0; //退出功能菜单标记
menu = 0; //退出调时
e = 0; //计数器清0
TIMEfaceInit();
}
void Timeface(void){
uchar mmk ;
/**************节日时钟界面以秒速度进行刷新***********************************/
if(KA == 0&&read_clock(0x81) != sb) //显示更新处理,防止重复更新,每秒更新一次
{sb = read_clock(0x81); //读取DS1302中的秒数据
updata (); //更新主界面时间数据
FUTURE(); //节日显示
FUTURE2(); //节日显示
AUTO_B();//自动背光控制,根据光线亮的程度
}
/***************图片时钟界面**************************************************/
if(KA == 1)
{
disp_sfm();/*显示图片时钟 */
AUTO_B();//自动背光控制,根据光线亮的程度
if(read_clock(0x83) != mmk) //显示更新处理,防止重复更新,每秒更新一次
{mmk = read_clock(0x83); //读取DS1302中的秒数据
init_dz(); // 显示年月日和温度
}}
/******************图形温度+图片时钟界面***************************************/
if(KA == 2){
disSecond(); //更新秒钟
AUTO_B();//自动背光控制,根据光线亮的程度
if(read_clock(0x83) != mmk) //显示更新处理,防止重复更新,每分更新一次
{mmk = read_clock(0x83); //读取DS1302中的秒数据
disHaMint(); //只有分钟要更新时才动作可以减少闪烁
disTem();
} }
/****************特大图片时钟界面***********************************************/
if(KA == 3){ disSecond2(); dis_mode3();
AUTO_B();//自动背光控制,根据光线亮的程度
if(read_clock(0x83) != mmk) //显示更新处理,防止重复更新,每秒更新一次
{mmk = read_clock(0x83); //读取DS1302中的秒数据
dis_mode3int();
init_dz();
} }
/****************表盘式时钟+图形温度器*******************************************/
if(KA == 4){ //显示更新处理,防止重复更新,每秒更新一次 &&read_clock(0x81) != sb
// sb = read_clock(0x81); //读取DS1302中的秒数据
disClock(); /*显示钟表 */
disDate28(); /*日期和生宵更新 */
AUTO_B();//自动背光控制,根据光线亮的程度
if(read_clock(0x83) != mmk) { //显示更新处理,防止重复更新,每分更新一次
mmk=read_clock(0x83); //读取DS1302中的秒数据
disTem();} //以分钟级的速度刷新温度
}
/****************日历式时钟*******************************************/
if(KA == 5&&read_clock(0x81) != sb){ //显示更新处理,防止重复更新,每秒更新一次
displaydate(); //显示日期
// displaynl(); //显示农历
lcmnongli();//显示农历
lcm_w_nl(); //显示节气
displaytime(); //显示时间
DSS(); //读取温度
ds1820disp(); //显示温度
displayxq(); //显示星期
AUTO_B();//自动背光控制,根据光线亮的程度
} }
//************************************************************************************************
/*********************************************************************************************
函数名:整点报时检查处理
调 用:search_bs();
参 数:无
返回值:无
结 果:检测整点并报时
备 注:
/**********************************************************************************************/
void search_bs(void){//检查整点报时
unsigned char i;
if(read_clock(0x81)==0 && read_clock(0x83)==0){
i = read_clock(0x85);
switch (read_clock(0xc3)){//检测报时范围
case 1:
if(i >= 0x06 && i <= 0x20){
Beep_bs(); //整点提示音
}
break;
case 2:
if(i >= 0x06 && i <= 0x23&&shengri_bit==1){
Play(Music_lz,0,3,360); //祝你生日快乐
// Timer_init();
}
break;
case 3:
if(i >= 0x07 && i <= 0x20){
Play(Music_wo,0,3,360); //天空之城
// Timer_init();
}
break;
case 4:
if(i >= 0x07 && i <= 0x23){
Play(Music_wo,0,3,360); //天空之城
// Timer_init();
}
break;
case 5:
if(i >= 0x08 && i <= 0x20&&shengri_bit==1){
Play(Music_lz,0,3,360); //祝你生日快乐
// Timer_init();
}
break;
case 6:
if(i >= 0x08 && i <= 0x23){
Play(Music_lz,0,3,360); //祝你生日快乐
// Timer_init();
}
break;
case 7:
if(i >= 0x09 && i <= 0x20){
Play(Music_lz,0,3,360); //祝你生日快乐
// Timer_init();
}
break;
case 8:
if(i >= 0x09 && i <= 0x23){
Beep_bs(); //整点提示音
}
break;
case 9:
if(i >= 0x00 && i <= 0x23){
Beep_bs(); //整点提示音
}
break;
default:
//冗余语句
break;
}
TIMEfaceInit();//刷新显示
}
}
void CLOCKTIME(void) //
{unsigned char du;
if(BEEP_bit == 1 && read_clock(0xc7) == 1){ // 闹钟喇叭标记和闹钟总开关开启
unsigned char a,b,e;
lcm_clr();
write_12864_cmd(0x36);
clear_img();
lcm_init(); //初始化LCD
menu=1; //为了在第三行显示农历
du=KA; //读出当前界面
faceouto=0; //读储存的记忆界面
lcm_w_word(" ALARM CLOCK TIME 闹钟提醒 ");//
/******************- --|-------1------|-----3-------|-------2-------|-------4-----|-----//标尺******////
for(b=0;b<60;b++){ //闹钟的鸣响时间(响一次即为1秒,180为3分钟)
updata ();//更新主界面时间数据
for(e=250;e>0;e=e-2){DELAY_MS (3);}
Beep_al();
for(a=0;a<6;a++){
if(adj==1|| adj==2||adj==3||adj==4){
adj=0;
b = 250;
v = read_clock(0x83);}//按键停止后设置分=V,可防止松开键后再次响
}
IR_con(); KEY_procon(); //等待按键在此循环
}BEEP_bit = 0;
KA=du;
menu=0;
TIMEfaceInit(); //更新主界面时间数据
}}
/*
/*********************************************************************************************
函数名:主函数
调 用:无
参 数:无
返回值:无
结 果:程序开始处,无限循环
备 注:
/**********************************************************************************************/
void main (void){
unsigned char InitLine;
unsigned char autoss;
uchar key1Times=1 ;
AUXR=0X00; //设置单片机12T模式,0X3C为1T模式
P0M1=0x00;
P0M0=0x00; //P0口为传统8051IO口
P3M1=0x00;
P3M0=0x00; //P3口为传统8051IO口
P2M1=0x00;
P2M0=0x00; //P2口为传统8051IO口
P0 = 0xFF;
P2 = 0xFF;
P3 = 0xFF;
th=th1*100+th2*10+th3; //获取设置温度的高位
/*****************
//这两个寄存器用来设置 P1口四种状态,每一位对应一个P1引脚 ,按状态组合操作
P1M0 和P1M1 寄存器位
7 6 5 4 3 2 1 0
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0
同理P3M0 P3M1 也是。因为STC12C2052AD只有两个P口,
所以只有这俩组 STC12C5410AD还多P2M0 P1M0 有三组
P1M0 P1M1 高
0 0 普通I0口 (准双向) P1寄存器位 7 6 5 4 3 2 1 0
0 1 强推挽输出 (20MA电流 )尽量少用 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0
1 0 仅做输入 A/D转换时可用此模式
1 1 开漏 ,A/D转换时可用此模式
例如:
要设置P1.2为 AD 输入口
则 P1M0=0X02 ;
P1M1=0X02; 开漏即可
当不用AD时,最好 关闭ADC电源 ,恢复为IO口状态
//P1M0=0x02;//这两个寄存器用来设置 P1口四种状态,每一位对应一个P1引脚 ,按状态组合操作
//P1M1=0x02;//设置P1.1为开漏状态
********************************/
/*------设置P1.4为AD口--------------------------*/
/*------设置P1.3为口(PMW只能是普通IO口)--------*/
P1M0 = 0x10;// 00010000
P1M1 = 0x10;// 00010000
Read_init (3); //存储A/D转换初始化
PWM_init(); //调光程序初始化
Init_1302(); //时钟芯片初始化
InitialSound(); //唱歌文件初始化
tempera= DSS();//将DSS汇编程序取得的温度值放入温度寄存器变量
if(((read_clock(0xff)/16)*10 )+ (read_clock(0xff)%16)>5)
{LCDLOGO();}
lcm_init();//这是必须的初始化液晶显示器(否则会显示不正常)
Beep_set();//扬声器--确定设置
ZTB=0; //默认字体是0
Autofance=0; //自动切换界面关闭
CH_L(); //渐暗+清屏
faceouto=0; //要读储存的界面
TIMEfaceInit();//读取界面并显示
CH_H(); //渐亮
Timer_init2(); //遥控中断初始化一下(在音乐文件中)
menu = 0; //菜单标志位清0
menu2 = 0; //功能菜单标志位清0
CKTIME_1=0 ; //允许校时标记打开
dayflag2 =0xff; //把农历转换一下
c_sun=0; /*------c_sun=0;既转换21世纪的农历数据表 如不赋初值农历计算会产生错误*/
shengri_bit=0;
BEEP_bit = 0;//闹钟标志位清0
/**********主循环********************************************************************/
while(1){//主循环
CLOCKTIME();//闹钟到时的显示
//***********//正常走时最大的循环处***************************************
if (menu == 0){ //正常走时菜单
search_time();//检测闹钟
search_bs(); //检测整点报时
CK(); //时间校准
autoss=read_clock(0x81);
/********自动控制*******************/
if( Autofance==1&&autoss==0x30){
CH_L(); //渐暗+清屏
Autofance=0;
Beep_key(); //按键音表示成功换
++KA; //界面上加一
if(KA>5){KA =0;}//大于等于6切换到0
++ZTB; //字体上加一
if(ZTB>6){ZTB =0;}//大于等于7切换到0
faceouto=1; //不读储存的记忆界面
CH_H(); //渐亮
lcm_init(); //初始化液晶显示器
lcm_w_test(0,0x83);//
lcm_w_word("--");//
lcm_w_test(1, 0+0X30); //
lcm_w_test(1,KA%16+1+0x30); //读出数据并显示
lcm_w_test(0,0x90); //写入指定区域
lcm_w_word(" 界面样式 ");
lcm_w_test(0,0x88); //写入指定区域
if(KA == 0){//界面1状态
lcm_w_word("标准节日时钟界面"); }
if(KA == 1){//界面2状态
lcm_w_word("数字图片时钟界面"); }
if(KA == 2){//界面3状态
lcm_w_word("图形温度时钟界面"); }
if(KA == 3){//界面4状态
lcm_w_word(" 特大时钟界面 "); }
if(KA == 4){//界面5状态
lcm_w_word("模拟时钟温度界面"); }
if(KA == 5){//界面6状态
lcm_w_word("¤日历式时钟界面"); }
dispString(3, 0, 100, "界面切换中......");
CH_H(); //渐亮
for (InitLine = 0; InitLine < 17; InitLine++)
{convertChar(3, 0, InitLine);
DELAY_MS(200);} //显示等留3秒
DELAY_MS(1500); //必须1秒以上的延时才能打开标记再次判断
autoss=read_clock(0x81);//必须1秒以上的延时才能保证不重复操作
TIMEfaceInit(); //切换界面并显示
CH_H(); //渐亮
Autofance=1; //重新打开标记再次控制
}
/*****************************************************************************/
Timeface();//时钟界面切换总成
//****************在时钟模式下直接选择模式2***********************************/
if (adj==4&& menu == 0) // adj=0;
{ adj=0;
Beep_key(); //按键音
Autofance=0; //关闭自动控制
faceouto=1; //不读储存的记忆界面
KA= KA+1;
if(KA>5){KA =0;}
TIMEfaceInit();
e=0; //计数器清0
menu =0; //退出调时
menu2 = 0; //退出功能菜单标记
}
//****************在时钟模式下直接选择模式1(可以更换不同字体)***********************************/
//************************************************************************************************
if (adj==2&& menu == 0) //
{ Beep_key(); //按键音
faceouto=1; //快捷选择字体时不要再读DS1302RAM的储存界面
Autofance=0; //关闭自动控制
++ZTB; //字体标记取反一次
if(ZTB>=7){ZTB=0;} //只有7种可供选择的字体
CH_L(); //渐暗+清屏
lcm_init(); //初始化液晶显示器
write_12864_cmd(0x36);//启动扩充指令集,启动绘图模式
clear_img(); //清理图片数据
if(KA!=1) //当前储存的界面模式不是不1就立即到1
KA=1; // 当前储存的界面立即到1防止乱显
TIMEfaceInit(); //刷新数据
CH_H(); //渐亮
adj=0; //防止退出
/*------------此后程序在whill中循环了-----------------*/
while(1) //循环
{ CK(); //时间校准
CLOCKTIME(); //闹钟到时的显示
if(BEEP_bit == 0)/*-----------------------------------------*/
{disp_sfm();/*显示大时钟 */
search_time(); /*检测闹钟*/
search_bs();//检测整点报时
}
if(read_clock(0x83) != sb) //显示更新处理,防止重复更新,每秒更新一次
{ sb = read_clock(0x83);init_dz(); } // 显示年月日和图片时钟的初始界面
if (adj==2) /*-----------在whill中变换字体-----------------*/
{Beep_key(); //按键音
++ZTB; //字体标记取反一次
if(ZTB>=7){ZTB=0;}
CH_L(); //渐暗+清屏
lcm_init(); //初始化液晶显示器
write_12864_cmd(0x36); //启动扩充指令集,启动绘图模式
clear_img(); //清理图片数据
init_dz(); // 显示年月日和温度
CH_H(); //渐亮
adj=0; } //防止重复操作
if (adj==4)/*------------退出字体切换恢复储存的界面---------------------*/ // 按键按下
{Beep_key(); //按键音
CH_L(); //渐暗+清屏
faceouto=0; //恢复读取DS1302RAM的储存界面
TIMEfaceInit(); //刷新数据
CH_H(); //渐亮
break;}
if (adj==1)/*------------退出whill循环直接进入调时菜单-------------------*/ // 按键按下
{Beep_key(); //按键音
CH_L(); //渐暗+清屏
write_12864_cmd(0x36); //启动扩充指令集,启动绘图模式
clear_img(); //清理图片数据
lcm_init(); //初始化液晶显示器
Tiaozhengmen();//---------显示调整菜单
convertChar(1, 1, 4);
menu = 1; //标志置调整菜单
menu2 = 0; //功能菜单标志置0
e = 25; //倒记时为25秒
CH_H(); //渐亮
break;}
if (adj==3)/*------------退出whill循环直接进入功能菜单-------------------*/ // 按键按下
{Beep_key(); //按键音
CH_L(); //渐暗+清屏
write_12864_cmd(0x36); //启动扩充指令集,启动绘图模式
clear_img(); //清理图片数据
lcm_init(); //初始化液晶显示器
Gongnengmen(); //显示功能菜单
convertChar(0, 3, 4); //反白第一项
e = 9; //倒记时为9秒
menu2 = 1; //功能菜单标志置1
menu = 1; //功能菜单标志置1
CH_H(); //渐亮
break;}
IR_con(); KEY_procon();}//whill循环
}IR_con(); KEY_procon(); //等待按键在此循环 (还没跳出MINE的循环所以按键在这判断)
}
//--------KEY_1的第一层菜单-----------------------------------------------
if((adj==1||adj==3)&& menu == 0){
Beep_key(); //按键声音
Autofance=0; //关闭自动控制
CH_L(); //渐暗+清屏
lcm_init(); //初始化液晶显示器
if(adj==1){
Tiaozhengmen(); //显示调整菜单
convertChar(1, 1, 4);
menu2 =0;
menu = 1;
CH_H();
e = 25; }
if(adj==3){
CH_L(); //渐暗+清屏
Gongnengmen(); //显示功能菜单
convertChar(0, 3, 4);
CH_H(); //渐亮
menu = 1;
menu2 =1;
e = 9; }
adj=0;}
/*
第一行0X80-0X81-0X82-0X83-0X84-0X85-0X86-0X87
第三行0X88-0X89-0X8A-0X8B-0X8C-0X8D-0X8E-0X8F
第二行0X90-0X91-0X92-0X93-0X94-0X95-0X96-0X97
第四行0X98-0X99-0X9A-0X9B-0X9C-0X9D-0X9E-0X9F*/
/**********************************************************************************************/
if (menu == 1&&menu2 ==0)
{ //设置菜单(自动回归)
if(read_clock(0x81) != ss){
ss = read_clock(0x81);
write_12864_cmd(0x36); //启动绘图指令
display(3,e/10); //0
display(4,e%10); //倒计时
e--;
if(e==0) //等待回归的记器归0后自动回到时钟的显示
{
menu = 0;menu2 = 0;
Beep_key(); //按键声音
write_12864_cmd(0x30); //恢复普通指令
lcm_clr(); //清屏
TIMEfaceInit(); //读取界面并更新
}
IR_con(); KEY_procon(); //e没到0时程序还在这里所以等待按键在此循环
}
if((adj==1|| adj==2 ||adj==3||adj==4) &&menu2 ==0)
{ uchar key1Times=1 ;
lcm_clr();//清屏
Tiaozhengmen();//---------显示调整菜单
convertChar(1, 1, 4);
while(1)
{
if(adj==4||adj==2)
{
/*-----------------------*/
if(adj==4 && menu == 1)
{
Beep_key();//按键音
key1Times--;
if (key1Times==0 ){key1Times = 6;}
}
/*-----------------------*/
if(adj==2 && menu == 1)
{
Beep_key();//按键音
key1Times++;
if (key1Times==7 ){key1Times = 1;}
}
lcm_clr();//清屏
Tiaozhengmen();//---------显示调整菜单
//----------|----------------------------------------------------------------|
switch(key1Times)
{ //第0行----地址3-----字数4个半角2个全角
case 1: convertChar(1, 1, 4);break;
//第0行----地址6-----字数4个半角2个全角
case 2:convertChar(1, 6, 4); break;
case 3: convertChar(2, 1, 4);break;
case 4: convertChar(2, 6, 4);break;
case 5: convertChar(3, 1, 4);break;
case 6: convertChar(3, 6, 4);break;}
}
if (adj==1) //根据不同的选择6个菜单项目的确定按键
{
Beep_set();//确定按键音
/*----------------------------------------------------------------------------------------------------*/
/*-------------------*/
if (key1Times==1 ){
adj=0;//防止年被加了1
menu = 10;
lcm_clr();//清屏
// lcm_w_word("[NEXT 是春山ESC] ");//
lcm_w_word("[-1 +1 NEXT ESC] ");//
//----------|-------1-------|-------3-------|-------2-------|-------4-------|-----//标尺
updata ();//更新主界面时间数据
e = 0;
Set_time(e,0);
break;}
/*-------------------*/
if (key1Times==2 ){
lcm_clr();//清屏
lcm_w_word("[-1 +1 SET ESC]闹钟总开关 ");//
//----------|-------1-------|-------3-------|-------2-------|-------4-------|-----//标尺
lcm_w_test(0,0x8E);//写入指定区域
if(read_clock(0xc7) == 1){
lcm_w_word("开");}
else{lcm_w_word("关");}
menu = 20;
break;}
/*-------------------*/
if (key1Times==3 ){
lcm_clr(); //清屏
lcm_w_word("[-1 +1 ESC] ");//
//----------|-------1-------|-------3-------|-------2-------|-------4-------|-----//标尺
Set_time(40,0);//整点报时
menu = 40;
break;}
/*-------------------*/
if (key1Times==4 ){
lcm_clr();//清屏
lcm_w_word("[-1 +1 AUTO ESC] ");//
//----------|-------1-------|-------3-------|-------2-------|-------4-------|-----//标尺
Set_time(50,0);//调整
menu = 50;
break;}
/*-------------------*/
if (key1Times==5 ){
menu = 230;//进入时间校准菜单
lcm_init();
write_12864_cmd(0x36);
clear_img();
write_12864_cmd(0x30);
lcm_clr();//清屏
lcm_init();
lcm_w_word("[-1 +1 +/- ESC] ");//
//----------|-------1-------|-------3-------|-------2-------|-------4-------|-----//标尺
Set_time(menu,0);//调整
break;}
/*-------------------*/
if (key1Times==6 ){
write_12864_cmd(0x36);
clear_img();
write_12864_cmd(0x30);
lcm_clr();//清屏
lcm_w_word("[-1 +1 AUTO ESC] ");//
//----------|-------1-------|-------3-------|-------2-------|-------4-------|-----//标尺
menu = 60;
Set_time(60,0);//调整
break;}
}/*ifif (adj==1)*/ IR_con(); KEY_procon(); //等待按键在此循环调节
}//if(adj==4||adj==2)
}/*while(1)*/ IR_con(); KEY_procon(); //等待按键在此循环
}
if (menu == 1&&menu2 ==1)
{ //设置菜单(自动回归)
if(read_clock(0x81) != ss){
ss = read_clock(0x81);
write_12864_cmd(0x30); //启动绘图指令
lcm_w_test(0,0x89); //
lcm_w_test(1,e+0x30); //倒计时
e--;
if(e==0) //等待回归的记器归0后自动回到时钟的显示
{
menu = 0;menu2 = 0;
Beep_key(); //按键声音
write_12864_cmd(0x30); //恢复普通指令
lcm_clr(); //清屏
TIMEfaceInit(); //读取界面并更新
}
IR_con(); KEY_procon(); //e没到0时程序还在这里所以等待按键在此循环
}
if((adj==1|| adj==2 ||adj==3||adj==4) &&menu2 ==1){
uchar key2Times=1 ;
lcm_clr();//清屏
Gongnengmen(); //显示功能菜单
convertChar(0, 3, 4);
while(1) //循环
{
if(adj==4||adj==2)
{
if(adj==4 && menu == 1)
{
Beep_key();//按键音
key2Times--;
if (key2Times==0 ){key2Times = 8;}
}
if(adj==2 && menu == 1)
{
Beep_key();//按键音
key2Times++;
if (key2Times==9 ){key2Times = 1;}
}
lcm_clr();//清屏
Gongnengmen(); //显示功能菜单
//----------|----------------------------------------------------------------|
switch(key2Times)
{
case 1: convertChar(0, 3, 4); //第0行----地址3-----字数4个半角2个全角
break;
case 2:convertChar (0, 6, 4); //第0行----地址6-----字数4个半角2个全角
break;
case 3: convertChar(1, 3, 4);
break;
case 4: convertChar(1, 6, 4);
break;
case 5: convertChar(2, 3, 4);
break;
case 6: convertChar(2, 6, 4);
break;
case 7: convertChar(3, 3, 4);
break;
case 8: convertChar(3, 6, 4);
break;
}
}
if (adj==3) //
{ Beep_set();//确定按键音
adj=0; //防止重复操作
if (key2Times==1 ){
CH_L(); //渐暗+清屏
//--------显示我的QQ图案------任意键退出-------adj=0//防止重复操作
while(1){
Disp_Img(Photo2); //显示一幅图片(我的QQ图案)
CH_H(); //渐亮
if(adj==1 || adj==2 ||adj==3 ||adj==4){ //任意键退出
Beep_set(); //确定按键音
Memuexit(); //退出本项
break;
}IR_con(); KEY_procon(); //等待按键在此循环
}
break;}
//-------显示龙的图案--------任意键退出--------------adj=0//防止重复操作 Baiguang
if (key2Times==2 ){
CH_L(); //渐暗+清屏
while(1){
Disp_Img(BMP11); //显示一幅图片(龙的图案)
CH_H(); //渐亮
if(adj==1 || adj==2 ||adj==3 ||adj==4){ //任意键退出
Beep_set(); //确定按键音
Memuexit(); //退出本项
break;
}IR_con(); KEY_procon(); //等待按键在此循环
}
break;}
//-------我的电脑图案--------任意键退出--------------adj=0//防止重复操作
if (key2Times==3 ){
CH_L(); //渐暗+清屏
while(1){
Disp_Img(TU_TAB1); //显示一幅图片(我的电脑)
CH_H(); //渐亮
if(adj==1 || adj==2 ||adj==3 ||adj==4){
Beep_set(); //确定按键音
Memuexit(); //退出本项
break;
}IR_con(); KEY_procon(); //等待按键在此循环
}
break;}
//-------公鸡图案图案--------任意键退出--------------adj=0//防止重复操作
if (key2Times==4 ){
CH_L(); //渐暗+清屏
while(1){
Disp_Img(tab5); //显示一幅图片(公鸡图案)
CH_H(); //渐亮
if(adj==1 || adj==2 ||adj==3 ||adj==4){
Beep_set(); //确定按键音
Memuexit(); //退出本项
break;
}IR_con(); KEY_procon(); //等待按键在此循环
}
break;}
//********************温度控制*****************************adj=0//防止重复操作
if (key2Times==5){
write_12864_cmd(0x36); //启动扩充指令集,启动绘图模式
clear_img(); //清理图片数据
lcm_init();
CH_L(); //渐暗+清屏
while(1){
Baiguang(); //显示温度控制
AUTO_B();//自动背光控制,根据光线亮的程度
if(adj==1 ){
Beep_set(); //确定按键音
//th=th1*100+th2*10+th3; //获取设置温度的高位
th=th-12;
if(th<0)
th=999;
adj=0;
}
if(adj==2){
Beep_set(); //确定按键音
//th=th1*100+th2*10+th3; //获取设置温度的高位
th=th+11;
if(th>999)
th=0;
adj=0;
}
//-------电源和MCU的测量--------任意键退出--------------adj=0//防止重复操作
if(adj==3 ||adj==4){
Beep_set(); //确定按键音
Memuexit(); //退出本项
break;
}IR_con(); KEY_procon(); //等待按键在此循环
}
break;}
//-------电源和MCU的测量------------------------------------adj=0//防止重复操作
if (key2Times==6 ){
CH_L(); //渐暗+清屏
while(1){
Dyanya(); //显示电源和MCU的测量
AUTO_B();//自动背光控制,根据光线亮的程度
//-------电源和MCU的测量--------任意键退出--------------adj=0//防止重复操作
if(adj==1 || adj==2 ||adj==3 ||adj==4){
Beep_set(); //确定按键音
Memuexit(); //退出本项
break;
}IR_con(); KEY_procon(); //等待按键在此循环
}
break;}
//-------再设计一个自动控制项目能自动切换界面--------------adj=0//防止重复操作
if (key2Times==7 ){
Autofance=1;
CH_L(); //渐暗+清屏
lcm_init(); //初始化液晶显示器
lcm_w_test(0,0x80); //写入指定区域
lcm_w_word(" 6种界面 ");
lcm_w_test(0,0x90); //写入指定区域
lcm_w_word("开始自动切换界面");
lcm_w_test(0,0x88); //写入指定区域
lcm_w_word("每分种切换一次!");
dispString(3, 0, 100, "程序启动中......");
CH_H(); //渐亮
for (InitLine = 0; InitLine < 17; InitLine++)
{convertChar(3, 0, InitLine);
DELAY_MS(180);} //显示等留3秒
faceouto=1; //退出时不读储存的界面
menu2 = 0; //退出功能菜单标记
menu = 0; //退出调时
e = 0; //计数器清0
++KA;
if(KA>5){KA =0;}//大于等于6切换到0
TIMEfaceInit();
break;}
//-------LOGO图案-------完后自动退出--------------adj=0//防止重复操作
if (key2Times==8 ){
lcm_clr();
LCDLOGO();
Memuexit(); //退出本项
break;}
IR_con(); KEY_procon();
}/*ifif (adj==1)*/ IR_con(); KEY_procon(); //等待按键在此循环调节
}
}/*while(1)*/ IR_con(); KEY_procon(); //等待按键在此循环
}
/*************储存界面和LOGO的设置*****************************************************/
if (menu == 60||menu==61){ //设置
lcm_w_test(0,0x88); //第2行显示
lcm_w_word(" 当前使用 ");//
lcm_w_test(0,0x98); //第2行显示
lcm_w_word(" ");// 清除反白
lcm_w_test(0,0x98); //写入指定区域
if (menu == 60){
if(read_clock(0xff) == 0){//界面1状态
lcm_w_word("标准节日时钟界面"); }
if(read_clock(0xff) == 1){//界面2状态
lcm_w_word("数字图片时钟界面"); }
if(read_clock(0xff) == 2){//界面3状态
lcm_w_word("图形温度时钟界面"); }
if(read_clock(0xff) == 3){//界面4状态
lcm_w_word(" 特大时钟界面 "); }
if(read_clock(0xff) == 4){//界面6状态
lcm_w_word("模拟时钟温度界面"); }
if(read_clock(0xff) == 5){//界面6状态
lcm_w_word("¤日历式时钟界面"); } }
if (menu == 61){
if(((read_clock(0xff)/16)*10 )+ (read_clock(0xff)%16)>5) {
lcm_w_word("开机使用LOGO界面"); } }
write_12864_cmd(0x36); //启动绘图指令;
display(6,read_clock(0xFF)/16); //LCD上显示写入的校时十位RAM30
display(7,read_clock(0xFF)%16+1); //LCD上显示写入的校时个位RAM30
write_12864_cmd(0x30); //恢复基本指令
if(adj==1 || adj==2 ||adj==3 ||adj==4){
if(adj==2){ //当是调时状态 本键用于调整下一项
Beep_key(); //按键音
menu++;
if (menu >= 62 ){ //在年月日星期时分之间切换
menu = 60;}
Set_time(menu,0);//调整
}
/*------------退出-----------------------*/
if(adj==1){
Beep_set(); //确定按键音
Memuexit(); //退出本项
}
if(adj==3){
Set_time(menu,0);//调整
Beep_key();}//按键音
if(adj==4){
Set_time(menu,0);//调整
Beep_key();}//按键音
}
IR_con(); KEY_procon(); //等待按键在此循环
}
/*********************************************************************************************/
/*******************实时时钟设置**************************************************************/
if (menu == 10){ //实时时钟设置
updata (); //更新主界面时间数据
lcm_w_nl();
if(adj==1 || adj==2 ||adj==3 ||adj==4){
if(adj==2){ //当是调时状态 本键用于调整下一项
Beep_key(); //按键音
e++;
if (e >= 5 ){ //在年月日星期时分之间切换
e = 0;}
Set_time(e,0);
lcm_w_nl();
}//调整
if(adj==1){
Beep_set();//确定按键音
Memuexit(); //退出本项
} //读取界面并更新
if(adj==4){
Set_time(e,0);//调整
lcm_w_nl();
Beep_key();}//按键音
if(adj==3){
Set_time(e,0);//调整
lcm_w_nl();
Beep_key();}//按键音
}
IR_con(); KEY_procon(); //等待按键在此循环
}
/**********************************************************************************************/
/*0XC7*RAM4写入是否闹钟控制的标记*如果是1就控制,0无控制
0XC7*RAM4写入控制量0----1*/
if (menu == 20){ //闹钟设置
if(adj==1 || adj==2 ||adj==3 ||adj==4){
if(adj==1){ //当是调时状态 本键用于调整下一项
Beep_set(); //确定按键音
menu = 0; //退出调时
lcm_clr(); //清屏
TIMEfaceInit();} //读取界面并更新
if(adj==2){ //当是调时状态
Beep_set(); //调时提示音
write_clock(0x8e,0x00); //允许写操作
if(read_clock(0xc7) == 1)
{write_clock(0xc6,0);}
else
{write_clock(0xc6,1);}
write_clock(0x8e,0x80);//禁止写操作
lcm_w_test(0,0x8E); //写入指定区域
if(read_clock(0xc7) == 1)
{lcm_w_word("开");}
else
{lcm_w_word("关");}
}
if(adj==3){
Beep_key(); //确定按键音
menu = 21; //进入闹钟1设置
lcm_clr(); //清屏
lcm_w_word("[-1 +1 SET ESC]闹钟 : ");}//
//----------|-------1-------|-------3-------|-------2-------|-------4-------|-----//标尺
if(adj==4){
Beep_key(); //确定按键音
menu = 26; //进入闹钟1设置
lcm_clr(); //清屏
lcm_w_word("[-1 +1 SET ESC]闹钟 : ");}//
//----------|-------1-------|-------3-------|-------2-------|-------4-------|-----//标尺
} IR_con(); KEY_procon(); //等待按键在此循环
}
/**********************************************************************************************/
if (menu >20 && menu <27){ //闹钟细节察看
al_updata();
if(adj==1 || adj==2||adj==3 ||adj==4){
if(adj==1){ //当是调时状态 本键用于退出调时
Beep_set(); //确定按键音
menu = 0; //退出调时
lcm_clr(); //清屏
TIMEfaceInit();} //读取界面并更新
if(adj==2){ //
Beep_set(); //确定按键音
menu=menu+10; //进入闹钟1设置
r = 200;
lcm_clr(); //清屏
lcm_w_word("[-1 +1 NEXT ESC]闹钟 : ");//
//----------|-------1-------|-------3-------|-------2-------|-------4-------|-----//标尺
Set_time(r,menu%10);//调整
}
if(adj==3){ //当是调时状态 本键用于调整下一项
Beep_key(); //确定按键音
menu++; //进入闹钟1设置
if(menu >26){
menu = 21;}}
if(adj==4){ //当是调时状态 本键用于调整下一项
Beep_key(); //确定按键音
menu--; //进入闹钟1设置
if(menu <21){menu = 26;}}
} IR_con(); KEY_procon(); //等待按键在此循环调节
}
/**********************************************************************************************/
if (menu >30 && menu <37){ //闹钟细节察看
al_updata();
if(adj==1 || adj==2||adj==3 ||adj==4){
if(adj==1){ //当是调时状态 本键用于调整下一项
Beep_set(); //确定按键音
menu = 0; //退出调时
lcm_clr(); //清屏
TIMEfaceInit();} //读取界面并更新
if(adj==2){ //当是调时状态 本键用于调整下一项
Beep_set(); //确定按键音
r++;
if (r > 202){
r = 200;
}
Set_time(r,menu%10);//调整
}
if(adj==3){ //当是调时状态 本键用于调整下一项
Set_time(r,menu%10);//调整
Beep_key(); //确定按键音
}
if(adj==4){ //当是调时状态 本键用于调整下一项
Set_time(r,menu%10);//调整
Beep_key(); //确定按键音
}
} IR_con(); KEY_procon(); //等待按键在此循环调节
}
/***********0XC3RAM用于钟整点报时******0---9共10种*********************************************/
if (menu == 40){ //整点报时设置
lcm_w_test(0,0x98);//
switch (read_clock(0xc3)){
case 0:
lcm_w_word(" 整点报时关闭 ");//
//----------|-------1-------|-----//标尺
lcm_w_test(0,0x88); //显示 0X88在屏幕第3行
lcm_w_word(" ");//
break;
case 1:
lcm_w_word(" 06:00--20:00 ");//
//----------|-------1-------|-----//标尺
lcm_w_test(0,0x88); //显示 0X88在屏幕第3行
lcm_w_word(" 整点提示音 ");//
break;
case 2:
lcm_w_word(" 06:00--23:00 ");//
lcm_w_test(0,0x88); //显示 0X88在屏幕第3行
lcm_w_word("整点+ 生日+ 歌曲");//
//----------|-------1-------|-----//标尺
break;
case 3:
lcm_w_word(" 07:00--20:00 ");//
//----------|-------1-------|-----//标尺
lcm_w_test(0,0x88); //显示 0X88在屏幕第3行
lcm_w_word("整点时唱天空之城");//
break;
case 4:
lcm_w_word(" 07:00--23:00 ");//
//----------|-------1-------|-----//标尺
lcm_w_test(0,0x88); //显示 0X88在屏幕第3行
lcm_w_word("整点时唱天空之城");//
break;
case 5:
lcm_w_word(" 08:00--20:00 ");//
lcm_w_test(0,0x88); //显示 0X88在屏幕第3行
lcm_w_word("整点+ 生日+ 歌曲");//
//----------|-------1-------|-----//标尺
break;
case 6:
lcm_w_word(" 08:00--23:00 ");//
//----------|-------1-------|-----//标尺
lcm_w_test(0,0x88); //显示 0X88在屏幕第3行
lcm_w_word("整点时唱生日歌曲");//
break;
case 7:
lcm_w_word(" 09:00--20:00 ");//
//----------|-------1-------|-----//标尺
lcm_w_test(0,0x88); //显示 0X88在屏幕第3行
lcm_w_word("整点时唱生日歌曲");//
break;
case 8:
lcm_w_word(" 09:00--23:00 ");//
//----------|-------1-------|-----//标尺
lcm_w_test(0,0x88); //显示 0X88在屏幕第3行
lcm_w_word(" 整点提示音 ");//
break;
case 9:
lcm_w_word(" 00:00--23:00 ");//
//----------|-------1-------|-----//标尺
lcm_w_test(0,0x88); //显示 0X88在屏幕第3行
lcm_w_word(" 整点提示音 ");//
break;
default:
//冗余语句
break;
}
if(adj==1 || adj==3||adj==4)
{ if(adj==1) //当是调时状态 退出本项
{Beep_set(); //确定按键音
lcm_clr(); //清屏
Memuexit(); //退出本项
}
if(adj==3) //
{Set_time(menu,0); //调整
Beep_key();} //确定按键音
if(adj==4) //
{Set_time(menu,0);//调整
Beep_key(); } //确定按键音
} IR_con(); KEY_procon(); //等待按键在此循环调节 程序在 (menu == 40)下循环的
}
/***********背光设置+自动调光控制***********************************************************************************/
/*0XC1*RAM1写入是否自动亮度控制的标记*如果是1就自动,0按照设置的亮度进行控制
0XC5*RAM5写入自动亮度控制量0-----9级*/
if (menu == 50){ //背光设置
lcm_w_test(0,0x88);//
lcm_w_word(" 自动亮度 ");//
//----------|-------1-------|-----//标尺
lcm_w_test(0,0x8F);//写入指定区域
if(read_clock(0xc1) == 1){//自动背光开关状态
lcm_w_word("开");
}else{
lcm_w_word("关");
}
lcm_w_test(0,0x98);//
lcm_w_word(" 当前亮度 ");//
//----------|-------1-------|-----//标尺
lcm_w_test(0,0x9E); //LCD写入位置
lcm_w_test(1,read_clock(0xc5)+0x30); //读出数据并显示
lcm_w_word("/9 ");//
if(adj==1 || adj==2 || adj==3 ||adj==4){
if(adj==1){ //当是调时状态 本键用于退出本项
Beep_set();//确定按键音
Memuexit(); //退出本项
}
if(adj==2){ //设计自动亮度控制
write_clock(0x8e,0x00);//允许写操作
if(read_clock(0xc1) == 1){
write_clock(0xc0,0);
}else{
write_clock(0xc0,1);
}
write_clock(0x8e,0x80);//禁止写操作
Beep_set();//确定按键音
}
if(adj==3){ //
Set_time(menu,0);//调整
Beep_key();//确定按键音
}
if(adj==4){ //
Set_time(menu,0);//调整
Beep_key();}//确定按键音
} IR_con(); KEY_procon(); //等待按键在此循环调节 程序在 (menu == 50)下循环的
PWM1_set(read_clock(0xc5)*0x1C);//
}
/*************menu == 230**0xFB**RAM29*************************************************/
/*0XFB*RAM29写入是否校时的标记*如果是1就校时,0不校时
0XFD*RAM30写入校时的时间量0-----20秒*/
if (menu == 230){ //时间校准设置
lcm_w_test(0,0x88);//
lcm_w_word(" 时间每天 秒");//
//--------|-------1-------|-----//标尺
lcm_w_test(0,0x9b);//写入指定区域
if(read_clock(0xFB) == 1){//校时加/减显示
lcm_w_word("加+");
write_12864_cmd(0x36); //启动绘图指令;
display(5,read_clock(0xFD)/16); //LCD上显示写入的校时十位
display(6,read_clock(0xFD)%16); //LCD上显示写入的校时个位
write_12864_cmd(0x30);} //恢复基本指令
else
if(read_clock(0xFB) == 0)
{lcm_w_test(0,0x9b);//写入指定区域
lcm_w_word("减-");}
write_12864_cmd(0x36); //启动绘图指令;
display(5,read_clock(0xFD)/16); //LCD上显示写入的校时十位RAM30
display(6,read_clock(0xFD)%16); //LCD上显示写入的校时个位RAM30
write_12864_cmd(0x30); //恢复基本指令
if(adj == 1 || adj == 2|| adj == 3 ||adj == 4){
if(adj == 1){ //当是调时状态 本键用于立即退出
lcm_clr(); //清屏
Beep_set(); //确定按键音
Memuexit(); //退出本项
}
if(adj == 2){ //设计自动校时控制 (加减的控制)
Beep_set(); //按键音
write_clock(0x8e,0x00); //允许写操作
if(read_clock(0xFB) == 1){//RAM29
write_clock(0xFA,0);
}else{
write_clock(0xFA,1);}
write_clock(0x8e,0x80);//禁止写操作
}
if(adj == 3){ //
Set_time(menu,0);//调整
Beep_key(); //按键音
}
if(adj == 4){ //
Set_time(menu,0);//调整
Beep_key();} //按键音
}PWM1_set(read_clock(0xc5)*0x1C); IR_con(); KEY_procon();
}
} IR_con(); KEY_procon(); //等待按键在此循环调节 //while
}//main}