我的程序总是点不亮点阵屏,用的是138和595及4953芯片,谁能帮忙指导一下
#include <reg52.H>
#include <intrins.h>
#include <nongli.h> //农历函数用的头文件,请把该头文件放在主程序相同目录中。
#define uchar unsigned char
#define uint unsigned int
#define SPEED 2 //定义速度
#define light 3 //定义亮度
sbit SCLK = P0^4; //DS1302时钟口P1.0
sbit IO = P0^3; //DS1302数据口P1.1
sbit RST = P0^2; //DS1302片选口P1.2
//DS1302初始数据 秒 分 时 日 月 星期 年
uchar code settime[] ={0x00, 0x00, 0x12, 0x22, 0x12, 0x04, 0x10};
uchar now[7]; //DS1302读出值
void DS1302_Initial();
void DS1302_SetTime(uchar *p);
void DS1302_GetTime(uchar *p);
sbit KEYS=P2^0; //调整键,按一次设置状态位加1,轮流切换到设置年,月,日,时,分,秒,星期,正常状态.
sbit KEYA=P2^1; //加一键,在设置状态时按一次相应设置位加1
sbit KEYD=P2^2; //减一键,在设置状态时按一次相应设置位减1
bit KEYS_S,KEYA_S,KEYD_S,KEYZ_S; //相应按键按下状态指示
uchar KCODE,set_S; //键盘代码,设置状态位置指示
bit SHAN,dip_flag; //闪烁标志位,分时显示公农历
uchar con; //秒计数器,用于4秒轮显公农历日期
uchar tempsec; //用于作秒闪用.
uint word;
uchar col,disrow; //col为位移变量,disrow为行变量
uchar code tab1[];
uchar BUFF[12];
uchar code tab[][16]; //时间及公历日期显示用的数字字模
uchar code NLmonth_tab[][32]; //农历月份字模
uchar code NLday_S[][32]; //农历月10位字模
uchar code WEEK_S[][32]; //用于星期显示字模
uchar BUFF2[17]; //下半屏缓冲
sbit R1=P3^3; //LED屏接口与单片机硬件接法。
sbit G1=P3^4;
sbit CLK1=P3^5;
sbit R2=P3^0;
sbit G2=P3^2;
sbit CLK2=P3^1;
sbit STB=P1^7;
void loadoneline1(void); //装上半屏时间数据
void loadoneline2(void); //装下半屏公历数据
void loadoneline3(void); //装下半屏农历数据
void loadoneline4(void); //装下半屏星期数据
void writehanzi(void);
void sendoneline2(void); //发送下半屏
void sendoneline3(void);
/**************************************
延时X微秒(STC12C5A60S2@12M)
不同的工作环境,需要调整此函数
此延时函数是使用1T的指令周期进行计算,与传统的12T的MCU不同
*************************************
void DelayDs1302()
{
_nop_();
_nop_();
}
*/
/**************************************
从DS1302读1字节数据
**************************************/
uchar DS1302_Readuchar()
{
uchar i;
uchar dat = 0;
for (i=0; i<8; i++) //8位计数器
{
SCLK = 0; //时钟线拉低
//DelayDs1302(); //延时等待
dat >>= 1; //数据右移一位
if (IO) dat |= 0x80; //读取数据
SCLK = 1; //时钟线拉高
//DelayDs1302(); //延时等待
}
return dat;
}
/**************************************
向DS1302写1字节数据
**************************************/
void DS1302_Writeuchar(uchar dat)
{
char i;
for (i=0; i<8; i++) //8位计数器
{
SCLK = 0; //时钟线拉低
//DelayDs1302(); //延时等待
dat >>= 1; //移出数据
IO = CY; //送出到端口
SCLK = 1; //时钟线拉高
// DelayDs1302(); //延时等待
}
}
/**************************************
读DS1302某地址的的数据
**************************************/
uchar DS1302_ReadData(uchar addr)
{
uchar dat;
RST = 0;
//DelayDs1302();
SCLK = 0;
//DelayDs1302();
RST = 1;
//DelayDs1302();
DS1302_Writeuchar(addr); //写地址
dat = DS1302_Readuchar(); //读数据
SCLK = 1;
RST = 0;
return dat;
}
/**************************************
往DS1302的某个地址写入数据
**************************************/
void DS1302_WriteData(uchar addr, uchar dat)
{
RST = 0;
//DelayDs1302();
SCLK = 0;
//DelayDs1302();
RST = 1;
//DelayDs1302();
DS1302_Writeuchar(addr); //写地址
DS1302_Writeuchar(dat); //写数据
SCLK = 1;
RST = 0;
}
/**************************************
写入初始时间
**************************************/
void DS1302_SetTime(uchar *p)
{
uchar addr = 0x80;
uchar n = 7;
DS1302_WriteData(0x8e, 0x00); //允许写操作
while (n--)
{
DS1302_WriteData(addr, *p++);
addr += 2;
}
DS1302_WriteData(0x8e, 0x80); //写保护
}
/**************************************
读取当前时间
**************************************/
void DS1302_GetTime(uchar *p)
{
uchar addr = 0x81;
uchar n = 7;
while (n--)
{
*p++ = DS1302_ReadData(addr);
addr += 2;
}
}
/**************************************
初始化DS1302并设初始时间
**************************************/
void DS1302_Initial()
{ if(DS1302_ReadData(0xc1) != 0xcc) //如RAM C1标志不是原来的,测初始时钟
{
RST = 0;
SCLK = 0;
DS1302_WriteData(0x8e, 0x00); //允许写操作
DS1302_WriteData(0x80, 0x00); //时钟启动
DS1302_WriteData(0x90, 0xab); //2个二极管+8K电阻充电
DS1302_WriteData(0xc0,0xcc);//写入初始化标志RAM(第00个RAM位置)
DS1302_WriteData(0x8e, 0x80); //写保护
DS1302_SetTime(settime); //设置初始时间
}
}
//根据选择调整相应项目并写入DS1302
void Set(uchar sel,uchar sel_1)
{
uchar address;
char item;
uchar max,min;
if(sel==1) {address=0x8c; max=99;min=0;} //年
if(sel==2) {address=0x88; max=12;min=1;} //月
if(sel==3) {address=0x86; max=31;min=1;} //日
if(sel==4) {address=0x84; max=23;min=0;} //小时
if(sel==5) {address=0x82; max=59;min=0;} //分钟
if(sel==6) {address=0x80; max=59;min=0;} //秒
if(sel==7) {address=0x8a; max=7; min=1;} //星期
if(sel==10) {address=0xc0; max=59;min=0;} //背光时间,最长1分钟
if(sel==12) {address=0xc2; max=1;min=0;} //闹铃开关寄存器
if(sel==13) {address=0xc4; max=23;min=0;} //闹铃时寄存器
if(sel==14) {address=0xc6; max=59;min=0;} //闹铃分寄存器
item=DS1302_ReadData(address+1)/16*10+DS1302_ReadData(address+1)%16;
if (sel_1==1) item++; else item--;
if(item>max) item=min;
if(item<min) item=max;
DS1302_WriteData(0x8e,0x00); //允许写操作
DS1302_WriteData(address,item/10*16+item%10); //写入DS1302 //转成BCD码
DS1302_WriteData(0x8e,0x80); //写保护,禁止写操作
}
/***************************************
函 数 名:init
功 能:初始化函数
说 明:初始化定时器及中断
入口参数:无
返 回 值:无
***************************************/
void init()
{
TMOD=1;TH0=0X3C;TL0=0XB0;
//定时器0模式1,50毫秒,12M晶振,用的是STC12C5A60S2,1T单片机,要是89C52的,晶振要24M以上。相应初值要调整。
ET0=1;TR0=1;EA=1; //开定时器0中断、启动定时器0、开总中断
}
/*******根据列指针,由双字节合并为单字节的子程序模块12MHZ************/
uchar two_onebyte(uchar h1,uchar h2)
{
uchar temp,tempcol;
if(col<8) tempcol=col;
else tempcol=col-8;
temp=(h1>>tempcol)|(h2<<(8-tempcol));
return temp;
}
/*******************外部中断0*****************************************/
void int0() interrupt 0
{
KEYZ_S=!KEYZ_S;
}
/*********************************************主函数******************/
void main(void)
{
R1=0;
//R2=0; //用串口方式时,不能对P3.0口赋值
G1=0;
G2=0;
set_S=0;
DS1302_Initial(); //根据DS1302状态是否进行初始化
init();
while(1)
{ EA=0;
DS1302_GetTime(now); //读取当前时间
Tim[0]=now[6]/16*10+now[6]%16; Tim[1]=now[4]/16*10+now[4]%16; Tim[2]=now[3]/16*10+now[3]%16;
Conversion( );
EA=1;
EX0=1;
IT0=1;
col=0;word=0;
if(KEYS==0) KEYS_S=1; //调按键按下,
if(KEYS==1&KEYS_S==1) { KCODE=0x01;KEYS_S=0;} //加键按下后放开,键代码为1
if(KEYA==0) KEYA_S=1; //+按键按下,
if(KEYA==1&KEYA_S==1) { KCODE=0x02;KEYA_S=0;} //减键按下后放开,键代码为2
if(KEYD==0) KEYD_S=1; //-按键按下,
if(KEYD==1&KEYD_S==1) { KCODE=0x03;KEYD_S=0;} //减键按下后放开,键代码为2
//以下的键值调时间处理
//以下的键值调时间处理
if(KCODE==0x01) { set_S++; if(set_S==8) set_S=0;KCODE=0;} // 按一次,键值设置位进1.
if(KCODE==0x02) {
switch(set_S)
{
case 1:
Set(1,1);
break;
case 2:
Set(2,1);
break;
case 3:
Set(3,1);
break;
case 4:
Set(4,1);
break;
case 5:
Set(5,1);
break;
case 6:
Set(6,1);
break;
case 7:
Set(7,1);
break;
}
KCODE=0;
}
//-------------------------------------
if(KCODE==0x03) {
switch(set_S)
{
case 1:
Set(1,0);
break;
case 2:
Set(2,0);
break;
case 3:
Set(3,0);
break;
case 4:
Set(4,0);
break;
case 5:
Set(5,0);
break;
case 6:
Set(6,0);
break;
case 7:
Set(7,0);
break;
}
KCODE=0;
}
//--------------------键处理结束-------------------------------
if(KEYZ_S==0)
{
while(1)
{
while(col<16)// 循环16次,点亮并移动一个汉字
{
uchar i;
for(i=0;i<SPEED;i++)//汉字在屏幕上的停留时间(即移动速度快慢)
{
for(disrow=0;disrow<16;disrow++)//扫描16行
{
writehanzi();//装载一线点阵数据
sendoneline3();//发送一线点阵数据
P1=(0x10+disrow)^0x60;// 点亮屏幕
P1=(0x20+disrow)^0x60;
STB= 1; // 点亮屏幕
CLK1=1; //(CLK=P3_1)上升沿595输出
}
}
col++; //列指针递增
}
col=0;word=word+32;// 一个汉字移动后,指向下一个汉字
if(word>=1024)word=0;// 移动28个汉字后,重新开始
}
}
else{
for(disrow=0;disrow<16;disrow++)//扫描16行
{
loadoneline1();//装载一线点阵数据
if(con==0)loadoneline2();
if(con==1) loadoneline3();
if (con==2) loadoneline4();
sendoneline2();//发送下半屏一线点阵数据
P1=disrow;// 扫描行
STB= 1; // 点亮屏幕
}
}
}
}
/**************装载上半屏一线点阵时间数据****************/
void loadoneline1(void)
{
BUFF2[0]=tab[now[2]>>4&0x0f][disrow];//~
if(SHAN&set_S==4) BUFF2[1]=tab[15][disrow]; else BUFF2[1]=tab[now[2]&0x0f][disrow];//调时状态时字闪.
BUFF2[2]=tab[10][disrow];//~
BUFF2[3]=tab[now[1]>>4&0x0f][disrow];//~
if(SHAN&set_S==5) BUFF2[4]=tab[15][disrow]; else BUFF2[4]=tab[now[1]&0x0f][disrow];//调时状态分字闪.
BUFF2[5]=tab[10][disrow];//~
BUFF2[6]=tab[now[0]>>4&0x0f][disrow];//~
if(SHAN&set_S==6) BUFF2[7]=tab[15][disrow]; else BUFF2[7]=tab[now[0]&0x0f][disrow];//调秒状态秒字闪.
}
/**************装载下半屏一线点阵数据公历****************/
void loadoneline2(void)
{
{
BUFF2[8]=tab[now[6]>>4&0x0f][disrow];//~
if(SHAN&set_S==1) BUFF2[9]=tab[15][disrow]; else BUFF2[9]=tab[now[6]&0x0f][disrow];//调年状态时年闪
BUFF2[10]=tab[13][disrow];//~
BUFF2[11]=tab[now[4]>>4&0x0f][disrow];//~
if(SHAN&set_S==2) BUFF2[12]=tab[15][disrow]; else BUFF2[12]=tab[now[4]&0x0f][disrow];//调月状态时月闪
BUFF2[13]=tab[14][disrow];//~
BUFF2[14]=tab[now[3]>>4&0x0f][disrow];//~
if(SHAN&set_S==3) BUFF2[15]=tab[15][disrow]; else BUFF2[15]=tab[now[3]&0x0f][disrow];//调日状态时日闪
}
}
/**************装载下半屏一线点阵数据农历****************/
void loadoneline3(void)
{
{
BUFF2[8]=NLmonth_tab[Tim[8]][disrow*2];//~
BUFF2[9]=NLmonth_tab[Tim[8]][disrow*2+1];
BUFF2[10]=NLmonth_tab[13][disrow*2];
BUFF2[11]=NLmonth_tab[13][disrow*2+1];
if(Tim[9]==10) { //如农历日为10,显示"初十",不显"十十"
BUFF2[12]=NLday_S[0][disrow*2];
BUFF2[13]=NLday_S[0][disrow*2+1];
BUFF2[14]=NLday_S[1][disrow*2];
BUFF2[15]=NLday_S[1][disrow*2+1];
} else if(Tim[9]==20) { //如农历日为20,显示为"二十",不显"廿十"
BUFF2[12]=NLmonth_tab[2][disrow*2];
BUFF2[13]=NLmonth_tab[2][disrow*2+1];
BUFF2[14]=NLday_S[1][disrow*2];
BUFF2[15]=NLday_S[1][disrow*2+1];
} else
{
BUFF2[12]=NLday_S[Tim[9]/10][disrow*2]; //其它日期显示: "初一,十一,廿一"等农历习惯.
BUFF2[13]=NLday_S[Tim[9]/10][disrow*2+1];
BUFF2[14]=NLmonth_tab[Tim[9]%10][disrow*2];
BUFF2[15]=NLmonth_tab[Tim[9]%10][disrow*2+1];
}
}
}
/**************装载下半屏一线点阵星期数据****************/
void loadoneline4(void)
{
{
BUFF2[8]=tab[15][disrow];
BUFF2[9]=WEEK_S[8][disrow*2];//~
BUFF2[10]=WEEK_S[8][disrow*2+1];//~
BUFF2[11]=WEEK_S[9][disrow*2];//~
BUFF2[12]=WEEK_S[9][disrow*2+1];//~
if(SHAN&set_S==7) BUFF2[13]=tab[15][disrow]; else BUFF2[13]=WEEK_S[now[5]][disrow*2];//调周状态周字闪.
if(SHAN&set_S==7) BUFF2[14]=tab[15][disrow]; else BUFF2[14]=WEEK_S[now[5]][disrow*2+1];//调周状态周字闪.
BUFF2[15]=tab[15][disrow];//~
}
}
/**************装载一线点阵数据****************/
void writehanzi(void)
{
uchar s;
for(s=0;s<6;s++) //s为要显示的数字+1
{
BUFF[2*s]=tab[word+1+32*s+2*disrow];//~
BUFF[2*s+1]=tab[word+32*s+2*disrow];//~
}
}
/***************发送上下半屏一线点阵数据*******************/
void sendoneline2(void)
{
char s;
for(s=0;s<16;s++)
{
SBUF=BUFF2[s];
while(!TI);TI=0;
}
}
/***************发送一线点阵数据*******************/
void sendoneline3(void)
{
char s;uchar inc;
if(col<8)inc=0;else inc=1;
for(s=0+inc;s<=9+inc;s++)
{
SBUF=two_onebyte(BUFF[s],BUFF[s+1]);
while(!TI);TI=0;
}
}
/***************************************
函 数 名:timer0
功 能:定时器0中断函数
说 明:
入口参数:无
返 回 值:无
***************************************/
void timer0() interrupt 1 //定时器0(中断1)
{
uchar tim1,tim2; //定义临时变量
TL0=TL0+0XB0;TH0=0X3C; //重装定时器初值,这里要根据单片机晶振频频率及分频系数调整数据.
tim1++; //每中断一次tim1加1
if(tim1==10) //中断10(0.5秒)
{
SHAN=!SHAN; //闪烁标志取反
tim1=0;tim2++; //tim1清零,tim2加1
if(tim2==10) //到了1秒
{
tim2=0; con++; //tim2清零,秒加1,显示计数加1.
if(con==3) {dip_flag=~dip_flag; con=0;} //7秒公农历星期期轮流显示.
}
}
}
/***********************汉字点阵码*************************/
uchar code tab1[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//=============================================================================
//*同济物业质量方针:**/
/*-- 同 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x00,0x00,0x3F,0xFE,0x20,0x02,0x20,0x02,0x2F,0xFA,0x20,0x02,0x20,0x02,0x27,0xF2,
0x24,0x12,0x24,0x12,0x24,0x12,0x27,0xF2,0x24,0x12,0x20,0x02,0x28,0x02,0x10,0x02,
/*-- 济 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x01,0x02,0x02,0x04,0x7F,0xE4,0x08,0x80,0x05,0x11,0x02,0x12,0x0D,0x8A,0x70,0x68,
0x08,0x88,0x08,0x84,0x08,0x87,0x08,0x84,0x08,0x44,0x08,0x44,0x08,0x24,0x08,0x14,
/*-- 物 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x01,0x08,0x01,0x08,0x01,0x0A,0x3F,0x8A,0x2A,0xBE,0x2A,0x4A,0x29,0x29,0x29,0x28,
0x24,0x98,0x24,0x4C,0x22,0x2B,0x21,0x08,0x20,0x88,0x20,0x48,0x14,0x28,0x08,0x00,
/*-- 业 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x02,0x20,0x02,0x20,0x02,0x20,0x22,0x20,0x62,0x22,0x32,0x24,0x12,0x24,0x0A,0x28,
0x0A,0x38,0x06,0x28,0x02,0x20,0x02,0x20,0x22,0x20,0x7F,0xFF,0x00,0x00,0x00,0x00,
/*-- 质 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x3E,0x00,0x01,0xFC,0x01,0x04,0x1F,0xF4,0x01,0x04,0x00,0x84,0x0F,0xE4,0x08,0x24,
0x09,0x24,0x09,0x24,0x09,0x24,0x09,0x24,0x02,0x84,0x0C,0x42,0x18,0x22,0x08,0x11,
/*-- 量 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x0F,0xF8,0x08,0x08,0x0F,0xF8,0x08,0x08,0x0F,0xF8,0x00,0x00,0x7F,0xFF,0x08,0x88,
0x0F,0xF8,0x08,0x88,0x0F,0xF8,0x00,0x80,0x1F,0xF8,0x00,0x80,0x7F,0xFF,0x00,0x00,
/*-- 方 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x00,0x40,0x00,0x80,0x01,0x00,0x7F,0xFF,0x00,0x40,0x00,0x40,0x0F,0xC0,0x08,0x40,
0x08,0x20,0x08,0x20,0x08,0x10,0x08,0x10,0x08,0x08,0x09,0x04,0x06,0x03,0x00,0x00,
/*-- 针 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x04,0x08,0x04,0x08,0x04,0x04,0x04,0x7C,0x04,0x02,0x04,0x3E,0x7F,0x89,0x04,0x08,
0x04,0x7F,0x04,0x08,0x04,0x08,0x04,0x48,0x04,0x28,0x04,0x18,0x04,0x08,0x04,0x00,
/*-- : -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,
//*规范服务**/
/*-- 规 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x00,0x08,0x3F,0x88,0x20,0x88,0x24,0xBE,0x24,0x88,0x24,0x88,0x24,0x88,0x24,0xFF,
0x24,0x88,0x0A,0x14,0x0A,0x24,0x49,0x64,0x49,0x22,0x48,0x82,0x70,0x41,0x00,0x20,
/*-- 范 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x04,0x20,0x04,0x20,0x7F,0xFF,0x06,0x20,0x00,0x02,0x1F,0x8C,0x10,0x89,0x10,0x86,
0x10,0x92,0x1C,0x90,0x08,0x88,0x00,0x87,0x20,0x84,0x20,0x84,0x3F,0x04,0x00,0x04,
/*-- 服 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x3F,0x3C,0x21,0x24,0x21,0x24,0x29,0x24,0x11,0x3C,0x01,0x24,0x3F,0x24,0x23,0x3C,
0x23,0x24,0x15,0x24,0x15,0x24,0x09,0x24,0x15,0x22,0x73,0x2A,0x21,0x11,0x00,0x00,
/*-- 务 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x00,0x20,0x0F,0xE0,0x08,0x30,0x04,0x28,0x02,0x46,0x01,0x81,0x06,0x60,0x78,0x98,
0x20,0x86,0x0F,0xF8,0x08,0x40,0x08,0x40,0x08,0x20,0x08,0x10,0x0A,0x0C,0x04,0x03,
/*-- 空格 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16**/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//*有呼必应**/
/*-- 有 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x00,0x80,0x00,0x80,0x7F,0xFE,0x00,0x40,0x00,0x20,0x0F,0xF0,0x08,0x18,0x08,0x14,
0x0F,0xF2,0x08,0x11,0x08,0x10,0x0F,0xF0,0x08,0x10,0x09,0x10,0x0E,0x10,0x04,0x10,
/*-- 呼 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x00,0x00,0x3C,0x00,0x03,0xFF,0x12,0x11,0x32,0x51,0x12,0x91,0x0A,0x91,0x02,0x11,
0x7F,0xF1,0x02,0x1F,0x02,0x11,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x80,0x01,0x00,
/*-- 必 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x00,0x20,0x08,0x40,0x19,0x80,0x08,0x80,0x04,0x30,0x04,0x10,0x0A,0x14,0x12,0x14,
0x21,0x14,0x60,0x92,0x20,0x52,0x10,0x30,0x10,0x18,0x1F,0xF4,0x00,0x03,0x00,0x00,
/*-- 应 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x00,0x80,0x01,0x00,0x3F,0xFC,0x00,0x04,0x00,0x44,0x10,0x84,0x31,0x0C,0x13,0x14,
0x09,0x24,0x09,0x24,0x04,0x64,0x04,0x22,0x02,0x02,0x7F,0xFA,0x00,0x01,0x00,0x00,
/*-- 空格 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16**/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//*风格亲和**/
/*-- 风 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x00,0x00,0x1F,0xF8,0x10,0x08,0x12,0x08,0x16,0x28,0x12,0x48,0x12,0x88,0x11,0x08,
0x11,0x08,0x12,0x88,0x56,0x48,0x54,0x24,0x64,0x14,0x60,0x02,0x40,0x01,0x00,0x00,
/*-- 格 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x01,0x08,0x01,0x08,0x1F,0x88,0x10,0xBF,0x09,0x48,0x0A,0x2C,0x04,0x1C,0x1B,0x2A,
0x60,0xEA,0x1F,0x89,0x10,0x88,0x10,0x88,0x10,0x88,0x10,0x88,0x1F,0x88,0x10,0x88,
/*-- 亲 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x00,0x40,0x00,0x80,0x3F,0xFC,0x04,0x10,0x0C,0x20,0x02,0x20,0x7F,0xFE,0x00,0x80,
0x00,0x80,0x3F,0xFC,0x00,0x80,0x04,0x88,0x18,0x98,0x30,0x84,0x10,0xA2,0x00,0x40,
/*-- 和 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x00,0x00,0x00,0xE0,0x00,0x1E,0x3E,0x10,0x22,0x10,0x22,0xFE,0x22,0x10,0x22,0x18,
0x22,0x38,0x22,0x54,0x22,0xD4,0x22,0x52,0x3E,0x11,0x22,0x10,0x00,0x10,0x00,0x10,
/*-- 空格 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16**/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//**讲究诚信**/
/*-- 讲 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x08,0x82,0x08,0x84,0x08,0x8C,0x08,0x84,0x3F,0xE0,0x08,0x80,0x08,0x87,0x08,0x84,
0x7F,0xF4,0x08,0x84,0x08,0x84,0x08,0x84,0x08,0x54,0x08,0x4C,0x08,0x24,0x08,0x10,
/*-- 究 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x00,0x40,0x00,0x80,0x7F,0xFE,0x20,0x02,0x04,0x48,0x08,0x44,0x10,0x42,0x03,0xF8,
0x02,0x40,0x02,0x40,0x02,0x20,0x42,0x20,0x42,0x10,0x42,0x08,0x7C,0x04,0x00,0x00,
/*-- 诚 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x04,0x02,0x14,0x0C,0x24,0x04,0x7F,0xF0,0x04,0x20,0x04,0x27,0x24,0x24,0x65,0xE4,
0x29,0x24,0x29,0x24,0x19,0x24,0x49,0x34,0x55,0x2C,0x63,0x54,0x40,0x90,0x00,0x08,
/*-- 信 -- ** 宋体, 12 **/
/* 当前所选字体下一个汉字对应的点阵为: 宽度x高度=16x16, 调整后为: 16x16*/
0x01,0x10,0x06,0x30,0x02,0x18,0x7F,0xE8,0x00,0x0C,0x1F,0xCC,0x00,0x0A,0x1F,0xC9,
0x00,0x08,0x1F,0xC8,0x10,0x48,0x10,0x48,0x10,0x48,0x1F,0xC8,0x10,0x48,0x00,0x00,
//============================================================================
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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 tab[][16]=
{
//========================用于时钟和公历日期显示的数字字模===========================
0x00,0x00,0x00,0x38,0x6C,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x6C,0x38,0x00,0x00,//"0",0
/* (8 X 16 , 宋体, 加粗 )*/
0x00,0x00,0x00,0x18,0x1E,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,0x00,//"1",1
/* (8 X 16 , 宋体, 加粗 )*/
0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0x60,0x60,0x30,0x18,0x0C,0xC6,0xFE,0x00,0x00,//"2",2
/* (8 X 16 , 宋体, 加粗 )*/
0x00,0x00,0x00,0x7C,0xC6,0xC6,0x60,0x38,0x60,0xC0,0xC0,0xC6,0x66,0x3C,0x00,0x00,//"3",3
/* (8 X 16 , 宋体, 加粗 )*/
0x00,0x00,0x00,0x60,0x70,0x78,0x6C,0x6C,0x66,0x66,0xFE,0x60,0x60,0xF8,0x00,0x00,//"4",4
/* (8 X 16 , 宋体, 加粗 )*/
0x00,0x00,0x00,0xFE,0x06,0x06,0x06,0x3E,0x6E,0xC0,0xC0,0xC6,0x66,0x3C,0x00,0x00,//"5",5
/* (8 X 16 , 宋体, 加粗 )*/
0x00,0x00,0x00,0x78,0x6C,0x06,0x06,0x3E,0x6E,0xC6,0xC6,0xC6,0x6C,0x38,0x00,0x00,//"6",6
/* (8 X 16 , 宋体, 加粗 )*/
0x00,0x00,0x00,0xFE,0x66,0x66,0x30,0x30,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,//"7",7
/* (8 X 16 , 宋体, 加粗 )*/
0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0x6C,0x38,0x6C,0xC6,0xC6,0xC6,0x7C,0x00,0x00,//"8",8
/* (8 X 16 , 宋体, 加粗 )*/
0x00,0x00,0x00,0x38,0x6C,0xC6,0xC6,0xC6,0xEC,0xF8,0xC0,0xC0,0x6C,0x3C,0x00,0x00,//"9",9
/* (8 X 16 , 宋体, 加粗 )*/
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,//"冒号:",10, 作时:分:秒间隔
0x00,0x00,0x20,0x27,0xFD,0x25,0x25,0x2D,0x37,0x25,0x25,0x35,0x27,0x00,0x00,0x00,//"时",11
0x00,0x10,0x18,0x34,0x66,0x42,0x00,0x78,0x46,0x50,0x48,0x44,0x42,0x60,0x00,0x00,//"分",12
0x00,0x00,0x00,0x08,0x7C,0x12,0x10,0x7C,0x14,0x14,0x7E,0x10,0x10,0x10,0x00,0x00,/*"年",13*/
0x00,0x00,0x00,0x7C,0x44,0x44,0x7C,0x44,0x44,0x7C,0x44,0x44,0x62,0x40,0x00,0x00,/*"月",14*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//"空白" 15,作调整状态时数字闪烁用
};
//====================用于农历日期月份显示的汉字字模===============================
uchar code NLmonth_tab[][32]=
{
0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xFF,0xFF,0x80,0x01,
0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,/*"十",0*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xFE,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"一",1*/
0x00,0x00,0x00,0x18,0xFC,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xFE,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,/*"二",2*/
0x00,0x00,0x00,0x00,0xFE,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x3F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0x00,0x00,0x00,0x00,/*"三",2*/
0x00,0x00,0xFE,0x7F,0x66,0x63,0x66,0x63,0x66,0x63,0x66,0x63,0x66,0x63,0x66,0x63,
0x36,0x63,0x36,0x7E,0x1E,0x60,0x0E,0x60,0x06,0x60,0xFE,0x7F,0x06,0x60,0x00,0x00,/*"四",4*/
0x00,0x00,0xFE,0x3F,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x0C,0xFC,0x1F,
0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x6C,0xFF,0xFF,0x00,0x00,0x00,0x00,/*"五",5*/
0x60,0x00,0xC0,0x01,0x80,0x03,0x80,0x01,0xFF,0xFF,0x00,0x00,0x00,0x00,0x60,0x03,
0xE0,0x06,0x60,0x0C,0x30,0x18,0x30,0x38,0x18,0x70,0x0C,0x70,0x06,0x30,0x00,0x00,/*"六",6*/
0x00,0x00,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0xFF,0xFE,0x01,0x80,0x01,
0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x61,0x80,0x61,0x80,0x61,0x00,0x3F,0x00,0x00,/*"七",7*/
0x00,0x00,0x00,0x06,0x60,0x0E,0xE0,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x30,0x0C,
0x30,0x0C,0x18,0x18,0x18,0x18,0x0C,0x30,0x06,0xF0,0x03,0x60,0x00,0x00,0x00,0x00,/*"八",7*/
0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x0C,0xFE,0x1F,0xC0,0x0C,0xC0,0x0C,0x60,0x0C,
0x60,0x0C,0x60,0x0C,0x30,0x0C,0x30,0x6C,0x18,0x6C,0x0C,0xEC,0x06,0x7C,0x00,0x00,/*"九",9*/
0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xFF,0xFF,0x80,0x01,
0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,/*"十",10*/
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0xFF,0xFE,
0xFF,0xFE,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"十一",0*/
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x18,0xFE,0x18,0xFE,0xFF,0x00,
0xFF,0x00,0x18,0x00,0x18,0x00,0x18,0xFE,0x18,0xFE,0x18,0x00,0x00,0x00,0x00,0x00,/*"十二",0*/
0xE0,0x1F,0x60,0x18,0x60,0x18,0x60,0x18,0xE0,0x1F,0x60,0x18,0x60,0x18,0x60,0x18,
0xE0,0x1F,0x60,0x18,0x30,0x18,0x30,0x18,0x18,0x18,0x0C,0x1E,0x06,0x0C,0x00,0x00,/*"月",13*/
};
//====================================用于农历日期"日"中十位显示的汉字字模====================
uchar code NLday_S[][32]=
{
0x18,0x00,0x30,0x00,0x30,0x60,0xFE,0xFF,0x60,0x6C,0x30,0x6C,0xD8,0x6C,0x7C,0x6C,
0x3E,0x6C,0x7B,0x6C,0xD8,0x66,0x18,0x66,0x18,0x63,0x98,0x79,0xD8,0x30,0x00,0x00,/*"初",0*/
0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xFF,0xFF,0x80,0x01,
0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,/*"十",1*/
0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0xFF,0xFF,0x30,0x0C,0x30,0x0C,
0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0xF0,0x0F,0x30,0x0C,0x00,0x00,/*"廿",2*/
0x00,0x00,0x00,0x00,0xFE,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x3F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0x00,0x00,0x00,0x00,/*"三",3*/
};
//====================================用于星期显示的汉字字模====================
uchar code WEEK_S[][32]=
{
0x00,0x00,0xF8,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x1F,0x18,0x18,
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x1F,0x18,0x18,0x00,0x00,0x00,0x00,/*"日",0*/
0x00,0x00,0xF8,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x1F,0x18,0x18,
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF8,0x1F,0x18,0x18,0x00,0x00,0x00,0x00,/*"日",0*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xFE,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"一",1*/
0x00,0x00,0x00,0x18,0xFC,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xFE,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,/*"二",2*/
0x00,0x00,0x00,0x00,0xFE,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x3F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0x00,0x00,0x00,0x00,/*"三",3*/
0x00,0x00,0xFE,0x7F,0x66,0x63,0x66,0x63,0x66,0x63,0x66,0x63,0x66,0x63,0x66,0x63,
0x36,0x63,0x36,0x7E,0x1E,0x60,0x0E,0x60,0x06,0x60,0xFE,0x7F,0x06,0x60,0x00,0x00,/*"四",4*/
0x00,0x00,0xFE,0x3F,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x0C,0xFC,0x1F,
0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x6C,0xFF,0xFF,0x00,0x00,0x00,0x00,/*"五",5*/
0x60,0x00,0xC0,0x01,0x80,0x03,0x80,0x01,0xFF,0xFF,0x00,0x00,0x00,0x00,0x60,0x03,
0xE0,0x06,0x60,0x0C,0x30,0x18,0x30,0x38,0x18,0x70,0x0C,0x70,0x06,0x30,0x00,0x00,/*"六",6*/
0x00,0x00,0xF8,0x3F,0x18,0x30,0xF8,0x3F,0x18,0x30,0xF8,0x3F,0x80,0x01,0x98,0x01,
0xF8,0x7F,0x8C,0x01,0x8C,0x01,0xF6,0x3F,0x80,0x01,0x80,0x01,0xFE,0xFF,0x00,0x00,/*"星",7*/
0xCC,0x00,0xCC,0x7E,0xFE,0x67,0xCC,0x66,0xFC,0x66,0xCC,0x7E,0xFC,0x66,0xCC,0x66,
0xCC,0x66,0xFF,0x7F,0x00,0x66,0x6C,0x63,0xCC,0x63,0xC6,0x79,0x83,0x31,0x00,0x00,/*"期",8*/
}; |