我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1128|回复: 2

点阵多模式显示时间程序(上半部分)代码过长分部发

[复制链接]

该用户从未签到

18

主题

114

回帖

111

积分

二级逆天

积分
111

社区居民终身成就奖贴图大师奖金点子奖宣传大使奖灌水天才奖幽默大师奖新人进步奖

QQ
发表于 2014-7-6 16:16:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
*
                 
[程序开始处的程序说明]

/*********************************************************************************************
程序名:   
编写人:     
编写时间:  年 月 日
硬件支持:  
接口说明:    
修改日志:  
NO.1-                                
/*********************************************************************************************
说明:

/*********************************************************************************************/
/*


[单片机SFR定义的头文件]

#include <REG51.h> //通用89C51头文件
#include <REG52.h> //通用89C52头文件
#include <STC11Fxx.H> //STC11Fxx或STC11Lxx系列单片机头文件
#include <STC12C2052AD.H> //STC12Cx052或STC12Cx052AD系列单片机头文件
#include <STC12C5A60S2.H> //STC12C5A60S2系列单片机头文件

[更多库函数头定义]

#include <assert.h>    //设定插入点
#include <ctype.h>     //字符处理
#include <errno.h>     //定义错误码
#include <float.h>     //浮点数处理
#include <fstream.h>    //文件输入/输出
#include <iomanip.h>    //参数化输入/输出
#include <iostream.h>   //数据流输入/输出
#include <limits.h>    //定义各种数据类型最值常量
#include <locale.h>    //定义本地化函数
#include <math.h>     //定义数学函数
#include <stdio.h>     //定义输入/输出函数
#include <stdlib.h>    //定义杂项函数及内存分配函数
#include <string.h>    //字符串处理
#include <strstrea.h>   //基于数组的输入/输出
#include <time.h>     //定义关于时间的函数
#include <wchar.h>     //宽字符处理及输入/输出
#include <wctype.h>    //宽字符分类
#include <intrins.h>    //51基本运算(包括_nop_空函数)



[常用定义声明]

sfr  [自定义名] = [SFR地址] ; //按字节定义SFR中的存储器名。例:sfr P1 = 0x90;
sbit  [自定义名] = [系统位名] ; //按位定义SFR中的存储器名。例:sbit Add_Key = P3 ^ 1;
bit [自定义名] ; //定义一个位(位的值只能是0或1)例:bit LED;
#define [代替名]  [原名]  //用代替名代替原名。例:#define LED P1 / #define TA 0x25

unsigned char [自定义名] ; //定义一个0~255的无符号字符型变量。例:unsigned char a;
unsigned int [自定义名] ; //定义一个0~65535的无符号整型变量。例:unsigned int a;



[定义常量和变量的存放位置的关键字]

data    字节寻址片内RAM,片内RAM的128字节(例:data unsigned char a;)
bdata    可位寻址片内RAM,16字节,从0x20到0x2F(例:bdata unsigned char a;)
idata    所有片内RAM,256字节,从0x00到0xFF(例:idata unsigned char a;)
pdata    片外RAM,256字节,从0x00到0xFF(例:pdata unsigned char a;)
xdata    片外RAM,64K字节,从0x00到0xFFFF(例:xdata unsigned char a;)
code    ROM存储器,64K字节,从0x00到0xFFFF(例:code unsigned char a;)




[选择、循环语句]

if(1){

//为真时语句

}else{

//否则时语句

}

--------------------------

while(1){

//为真时内容

}

--------------------------

do{

//先执行内容

}while(1);

--------------------------

switch (a){
    case 0x01:
        //为真时语句
        break;
    case 0x02:
        //为真时语句
        break;
    default:
        //冗余语句
        break;
}

--------------------------

for(;;){

//循环语句

}

--------------------------


[主函数模板]

/*********************************************************************************************
函数名:主函数
调  用:无
参  数:无
返回值:无
结  果:程序开始处,无限循环
备  注:
/**********************************************************************************************/
/*void main (void){

    //初始程序

    while(1){

        //无限循环程序

    }
}
/**********************************************************************************************/
/*

[中断处理函数模板]
/*********************************************************************************************
函数名:中断处理函数
调  用:无
参  数:无
返回值:无
结  果:
备  注:
/**********************************************************************************************/
/*void name (void) interrupt 1 using 1{

    //处理内容
}
/**********************************************************************************************/
/*
[中断入口说明]

interrupt 0 外部中断0(ROM入口地址:0x03)
interrupt 1 定时/计数器中断0(ROM入口地址:0x0B)
interrupt 2 外部中断1(ROM入口地址:0x13)
interrupt 3 定时/计数器中断1(ROM入口地址:0x1B)
interrupt 4 UART串口中断(ROM入口地址:0x23)
(更多的中断依单片机型号而定,ROM中断入口均相差8个字节)

using 0 使用寄存器组0
using 1 使用寄存器组1
using 2 使用寄存器组2
using 3 使用寄存器组3




[普通函数框架]

/*********************************************************************************************
函数名:
调  用:
参  数:无
返回值:无
结  果:
备  注:
/**********************************************************************************************/
/*void name (void){

//函数内容

}
/**********************************************************************************************/



/*********************************************************************************************
函数名:
调  用:
参  数:0~65535 / 0~255
返回值:0~65535 / 0~255
结  果:
备  注:
/**********************************************************************************************/
/*unsigned int name (unsigned char a,unsigned int b){

//函数内容

return a; //返回值
}
/**********************************************************************************************/











/*************************************************************************************
/*------------------------------------------------------------------*/
/* --- STC MCU International Limited -------------------------------*/
/* --- STC 1T Series MCU RC Demo -----------------------------------*/
/* --- Mobile: (86)13922805190 -------------------------------------*/
/* --- Fax: 86-0519-86580166 ---------------------------------------*/
/* --- Tel: 86-0755-86580166 ---------------------------------------*/
/* --- Emill: liwenjiefa@163.com -----------------------------------*/
/* --- QQ: 391456722 -----------------------------------------------*/
/* If you want to use the program or the program referenced in the  */
/* article, please specify in which data and procedures from LWJ    */
/*------------------------------------------------------------------*/
/*16X64双色LED屏控制程序--------------------------------------------*/
/*单片机STC12C5A40S2   24MH-----------------------------------------*/
/*文杰  12.2.19-20   基本功能实现-----------------------------------*/
/*2.3.23-24    特效制作.添加注释.整理优化---------------------------*/
/*2.3.23-25    制作日历基本显示功能,加入DS1302/DS18B20驱动---------*/
/*2.3.23-26    制作流动边框  程序英文化-----------------------------*/
/*2.4.1        增加农历,星期自动转换--------------------------------*/
/*3.4.7-       倒置程序基本完成-------------------------------------*/
/*3.4.7-       HT11程序基本完成-------------------------------------*/
/*3.15.7-      遥控学习完成-----------------------------------------*/
/*3.18.7-      音乐频谱完成-----------------------------------------*/
/*3.19.7-      图片显示程序完成-------------------------------------*/
/*3.20.7-      动画显示程序完成-------------------------------------*/
/*3.20.7-      时间修整程序完成-------------------------------------*/
/*3.20.7-      温度修整程序完成-------------------------------------*/
/*3.20.7-      闹钟功能基本完成-------------------------------------*/
/*3.20.7-      启用5路闹钟,七种模式---------------------------------*/
/*3.20.7-      加入贪睡和遥控止闹功能-------------------------------*/
/*3.20.7-      5路闹钟贪睡和遥控止闹功能验证成功--------------------*/
/*3.20.7-      下步弄菜单和其他功能---------------------------------*/
/*3.20.7-      亮度程序程序完成-------------------------------------*/
/*3.20.7-      用中断来扫描的亮度控制不是太爽-----------------------*/
/*3.20.7-      MCU摆工了只好以后再说--------------------------------*/
/*************************************************************************************/
#include "Type.H"
#define  KG 0                          //定义空格数
#define  RI 10                          //定义日数
#define  JI 25                          //定义节数
#define  GT 163                          //定!   数
#define  XI 109                          //定★  数
/*******键盘***********************************************************************/
sbit     KEY1    = P2^0;
sbit     KEY2    = P2^1;
sbit     KEY3    = P2^2;
sbit     KEY4    = P2^3;
sbit     ADCIO   =P1^5;  //AD
/*************************************************************************************/
#define H_PORT P0 //行138信号      scan
sbit CK  =P1^6;  //时钟OUT
sbit STR =P1^7;  //锁存上升沿输出锁存
sbit R1  =P0^4;  //屏红数据
sbit G1  =P0^5;  //屏绿数据
sbit OE  =P1^0;  //全屏使能
sbit IA  =P0^0;  //行控制线A
sbit IB  =P0^1;  //行控制线B
sbit IC  =P0^2;  //行控制线C
sbit ID  =P0^3;  //行控制线D
/*********************************************************************************/
#define  scan0    {IA=0;IB=0;IC=0;ID=0;}
#define  scan1    {IA=1;IB=0;IC=0;ID=0;}
#define  scan2    {IA=0;IB=1;IC=0;ID=0;}
#define  scan3    {IA=1;IB=1;IC=0;ID=0;}
#define  scan4    {IA=0;IB=0;IC=1;ID=0;}
#define  scan5    {IA=1;IB=0;IC=1;ID=0;}
#define  scan6    {IA=0;IB=1;IC=1;ID=0;}
#define  scan7    {IA=1;IB=1;IC=1;ID=0;}
#define  scan8    {IA=0;IB=0;IC=0;ID=1;}
#define  scan9    {IA=1;IB=0;IC=0;ID=1;}
#define scan10    {IA=0;IB=1;IC=0;ID=1;}
#define scan11    {IA=1;IB=1;IC=0;ID=1;}
#define scan12    {IA=0;IB=0;IC=1;ID=1;}
#define scan13    {IA=1;IB=0;IC=1;ID=1;}
#define scan14    {IA=0;IB=1;IC=1;ID=1;}
#define scan15    {IA=1;IB=1;IC=1;ID=1;}
/*定义接口****************************************************************************/
#define HC595_LOCK_H    {STR  =1;}
#define HC595_LOCK_L    {STR  =0;}
#define HC595_CLK_H     {CK   =1;}
#define HC595_CLK_L     {CK   =0;}
#define LS138_A_H       {IA   =1;}
#define LS138_A_L       {IA   =0;}
#define LS138_B_H       {IB   =1;}
#define LS138_B_L       {IB   =0;}
#define LS138_C_H       {IC   =1;}
#define LS138_C_L       {IC   =0;}
#define LS138_D_H       {ID   =1;}
#define LS138_D_L       {ID   =0;}
#define LS138_OE_H      {OE   =1;}
#define LS138_OE_L      {OE   =0;}
#define HC595_G_H       {G1   =1;}
#define HC595_G_L       {G1   =0;}
#define HC595_R_H       {R1   =1;}
#define HC595_R_L       {R1   =0;}
#define FESTIVAL_MAX 69                        //定义阳历节日数(0----68)
uchar  Be=0;                  //滚动
uchar  disp_mode=0xFF;
uchar xdata  T=0xff;                                //节日计数
uint   Cou;                                            //显示记数
/************************************************************
//DS1302时钟定义全局变量
/**********公历年,月,日,星期,小时,分钟,秒********************************/
uchar xdata  yy, mo, dd, week,  hh,  mm,   ss;
/*************农历年,      月,      日,*************************************/
uchar xdata  year_moon,month_moon,day_moon;
/*************************************************************************************/
/*涵数声明****************************************************************************/
void LEDinit();                  /*************************************清屏*/
void DELAY_US(int num);          /*************************************延时函数*/
void Beep_key(void);             /*************************************喇叭函数*/
void DS1302_TimeStop(bit flag);  /*************************************喇叭函数*/
void PWM_LIGHT(uint p);              /*************************************亮度控制*/
void intmcu( );          /*************************************中断和定时器初始化*/
void Lintmcu(void);              /*************************************广告一*/
void Lintmcu2(void);              /*************************************广告一*/
void LED16X64_write(uchar  *str,uchar yanse,bit color);/*******************直写汉字*/
void LED_rectangle_erasure(uchar x1,uchar y1,uchar x2,uchar y2,uchar model);/*搽除距形*/
void Conver_week(void);          /***************************************星计算*/
void Conversion(void);        /******************************************历计算*/
BYTE  ManageButton(BYTE  Vale);      /**************************************按键处理*/
uchar xdata LED_RAM[LED_byte];    /**************************************显示缓冲区*/
//*********************************************************************************
INxdata naozhongtime;          //闹钟记时
Uxdata MOVingDAT[]= {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,12,12,12,12,12,12,12,12,12,12,12};   //(游动的字)时段设置
Uxdata ShowDAT[6];              //固定显示
//Uxdata SHENGRI_DATA[18];      //六组生日数据
Uxdata shengRi;               //生日
Uxdata CLOUR_F[3];            //翻页钟颜色
//***************************************
uint xdata HalfCount;              //半秒记数
uint xdata b;                      //闪烁控制
uint xdata Light;                  //亮度
uchar FANpingf_TXT;           //翻屏字体
uchar offset=0;               //流动显示变量
uchar disrow=0 ;              //当前扫描行
uchar r;                      //调整变量
uchar Colour;                  //颜色
uchar SPEED=1;                //定义移动速度
uchar speead=2;               //移动速度变量
uchar  e;                     //操作变量
uchar ADJ;                    //按键变量
uchar switc;                  //画面切换变量
uchar windw;                  //显示允许变量
uchar flow;                   //边框流动变量
uchar menu;                   //当前菜单0自动1调年月日2调时分秒星期
uchar LED_X,LED_Y;            //LED横竖坐标变量(用于颠倒显示)
uchar Menmu;                  //显示控制
uchar Tansui=0;               //贪睡计数
//***************************************
BIT   LEDup_dow;              //LED颠倒显示标记1正显示0倒显示
BIT   twinkle;                 //调整闪烁标记
BIT   Run_flay;                  //润年标记
BIT   IR_OK=0;                  //红外线接收标记
BIT   Set_bit=0;              //设置时间标记
BIT   GUn_bit=0;              //滚动标记
BIT   half_sec_flag;          // 0.5s(半秒标志位)
BIT   writ_bit;                  //EEPROM写入标记
BIT   Sleep=0;                //贪睡标记
BIT   ALM_bit=0;               //闹钟检查标记
BIT   CKTIME_1=0;              //校时标记
BIT   jieqi_bit=0;             //有无节气标记
BIT   BEEP_bit =0;               //闹钟标记
BIT   RUNB=1;                   //整点报时标记
BIT   STOP_flag;               // 停留显示
BIT   NO_flow;                 // 取消边框
uchar   ZHSmode=0;                  //综合模式
uchar xdata Buffnum;
bit   gundong_bit=0;                //流动结束标记
uint xdata  stop_counter=0;               //流动静止计时器、
uint xdata  stop_time=0;                //静止时间变量、
bit   stop_bit=0;                 // (流动停止标志)
uchar xdata mode_show;                        //显示模式
#define NESTIVAL_MAX 10                        //定义农历节日数(0----9)
BIT  NLjirig_bit=1;
/**********定义翻页钟映射全局变量**********************************************/
uchar xdata  f1=18,f2=18,f3=18,f4=18,f5=18,f6=18;  //18就不会出现刚开始全部翻页的情况了.
#define  RED_clour      1         //定义红色
#define  GREEN_clour    2         //定义绿色
#define  ORGEN_clour    3         //定义橙色
uint   ADC_Count;
/**********自定义头文件*****************************/
#include "LED_drive.h"        //加载LED扫描驱动
#include "ASCII.h"            //加载自定义字模
#include "DS1302.h"           //加载DS1302驱动
#include "DHT11.h"            //温湿度传感器
#include "nongli.h"           //加载农历计算程序
#include "LED_display.h"      //加载显示控制程序
#include "NEC+RC5_IR.h"       //遥控头文件(HT6621或TC9012)
#include "key_adjust.h"       //加载按键输入调节程序
//#include "DS18B20.h"    //加载DS18B20驱动
/*****不影响其他端口的扫描*************************/
/*void scan(unsigned char Value)
{switch(Value)
        {case  0: scan0;break;
          case  1: scan1;break;
           case  2: scan2;break;
            case  3: scan3;break;
             case  4: scan4;break;
              case  5: scan5;break;
               case  6: scan6;break;
                case  7: scan7;break;
                 case  8: scan8;break;
               case  9: scan9;break;
              case 10:scan10;break;
             case 11:scan11;break;
            case 12:scan12;break;
          case 13:scan13;break;
         case 14:scan14;break;
        case 15:scan15;break;
       default:break;
        }
} */
//***********************************************************************
void write_sec(void)
{
    uchar aa;
    read_clockS();//读出DS1302所有时间数据
    if((Menmu>=  0)&&(Menmu<= 50))
    switc=0;    //0-50显示//年月
    if((Menmu>= 50)&&(Menmu<= 60))
    switc=1;    //50-60显示月日
    if((Menmu>= 60)&&(Menmu<= 70))
    switc=2;    //60-70显示时分秒
    if((Menmu>= 70)&&(Menmu<= 80))
    switc=3;    //70-80显示星期
    if((Menmu>= 80)&&(Menmu<= 90))
    switc=4;    //40-59显示农历
    if((Menmu>= 90)&&(Menmu<=100))
    switc=5;    //40-59显示生宵
    if((Menmu>=110)&&(Menmu<=120))
    switc=6;    //40-59显示温度
    if((Menmu>=120)&&(Menmu<=130))
    switc=7;    //40-59显示湿度
    if((Menmu>=130)&&(Menmu<=140))
    switc=8;    //40-59显示生日滚动
    if((Menmu>=140)&&(Menmu<=160))
    switc=9;    //40-59显示//温度
    if((aa!=ss)&&(switc==0))//在时分秒星期界面时每秒显示刷新一次秒值
    {
        aa=ss;
      //  if(LEDup_dow)   //***************************正向显示
      //  {
            LED_8X16_write(17,16,ss/10+48,Orgen,1);//刷新秒十位显示
            LED_8X16_write( 9,16,ss%10+48,Orgen,1);//刷新秒个位显示
            LED_write_english_string(47,16,":" ,Red,Noml);//写8X16字符冒号
            LED_write_english_string(24,16,":", Red,Noml);//写8X16字符冒号
       // }
       // else
       // {
        //    LED_8X16_write(47,1,ss/10+48,Orgen,1);//刷新秒十位显示
        //    LED_8X16_write(55,1,ss%10+48,Orgen,1);//刷新秒个位显示
       // }
    }
    if((ss=59)&&(switc==0))//在时分秒星期界面时每秒显示刷新一次秒值
    {
       // if(LEDup_dow)
        //{
            LED_8X16_write(40,16,mm/10+48,    Green,Noml);//写8X16字符分钟十位
            LED_8X16_write(32,16,mm%10+48,    Green,Noml);//写8X16字符分钟个位
            LED_8X16_write(63,16,hh/10+48,    Red,Noml);//写8X16字符小时十位
            LED_8X16_write(55,16,hh%10+48,    Red,Noml);//写8X16字符小时个位
       // }
       // else
       // {
        //    LED_8X16_write(24,1,mm/10+48,     Green,Noml);//写8X16字符分钟十位
        //    LED_8X16_write(32,1,mm%10+48,     Green,Noml);//写8X16字符分钟个位
        //    LED_8X16_write(1, 1,hh/10+48,     Red,Noml);//写8X16字符小时十位
        //    LED_8X16_write(9, 1,hh%10+48,     Red,Noml);//写8X16字符小时个位
       // }
    }
}
/*;*******************************************************************************
;程序名称:sendRXbyte(uchar wdata,uchar c,uchar n)
;功能:选择将要送入首地址的值.
;输入:R2. sendRXbyte(hanzi[hour/10],3,8)橙色数据8位
;输出:无. sendRXbyte(hanzi[hour/10],2,8)红色数据8位
;影响:无. sendRXbyte(hanzi[hour/10],1,8)绿色数据8位
;修改日期:2010.05.15----b 字模数据,c颜色,n 发送位数(0-8)
;*********************************************************************************/
void sendRXbyte(unsigned char wdata,unsigned char c,unsigned char n)
{   unsigned char i;
    for(i=0; i<n; i++)           //字符位数8位
    {   switch(c)
        {
         /*--------------------------------------------------------*/
        case 1:G1=1;R1=(bit)(~wdata&0x80);break;
        /*--------------------------------------------------------*/
        case 2:R1=1;G1=(bit)(~wdata&0x80);break;
        /*--------------------------------------------------------*/
        case 3:R1=G1=(bit)  (~wdata&0x80);break;
        /*--------------------------------------------------------*/
        default:break;
        }
        CK=0;           //时钟拉高,产生上升沿
        CK=1;           //时钟拉低
        wdata <<=1;    //左移一位
    }
}
/*********************************************************************************************
函数名:shutter_clock()
调  用:翻页钟数据处理和发送
备  注:
/**********************************************************************************************/
void shutter_clock(void)                        //翻页钟
{
    unsigned char temp_time[6];          //翻页钟用到6个变量
    temp_time[0]=ShowDAT[0];
     temp_time[1]=ShowDAT[1];
      temp_time[2]=ShowDAT[2];
       temp_time[3]=ShowDAT[3];
        temp_time[4]=ShowDAT[4];
         temp_time[5]=ShowDAT[5];              //
          read_clockS();                       //读时钟数据
    if(hh/10==0)
    ShowDAT[36]=NL;
    else
    ShowDAT[0]=hh/10;    //位
    ShowDAT[1]=ANL(hh);//hh%10;                      //小时个位
    ShowDAT[2]=Div(mm);//mm/10;                      //分钟
    ShowDAT[3]=ANL(mm);//mm%10;                      //分钟
    ShowDAT[4]=Div(ss);//ss/10;                      //秒十位
    ShowDAT[5]=ANL(ss);//ss%10;                      //秒个位
    if(hh/10==0)                                                  //小时为0时把屏向左移4位
    sendRXbyte(hanzi[NL][disrow],ORGEN_clour,4);          //8位数据分两次显示显示
    else
    {
        /*----------------时---------------------------------------------------------------------*/
        if(ShowDAT[0]!=temp_time[0])                                //先判断时十位有没变化
        f1=0;
        if(f1<17)
        {
            if(ShowDAT[0]==0)                                             //十位是0,从0开始翻
            {if(FANpingf_TXT==0)
             sendRXbyte(han20i[0][disrow+f1],CLOUR_F[0],8);    //2,0
             if(FANpingf_TXT==1)
             sendRXbyte(hanzi320[0][disrow+f1],CLOUR_F[0],8);    //2,0
             if(FANpingf_TXT==2)
             sendRXbyte(hanzi520[0][disrow+f1],CLOUR_F[0],8);    //2,0
            }
            else
            {if(FANpingf_TXT==0)
             sendRXbyte(hanzi[ShowDAT[0]-1][disrow+f1],CLOUR_F[0],8);    //从显示的数字开始翻
             if(FANpingf_TXT==1)
             sendRXbyte(hanzi3[ShowDAT[0]-1][disrow+f1],CLOUR_F[0],8);    //从显示的数字开始翻
             if(FANpingf_TXT==2)
             sendRXbyte(hanzi5[ShowDAT[0]-1][disrow+f1],CLOUR_F[0],8);    //从显示的数字开始翻
            }
        }
        else
        {if(FANpingf_TXT==0)
         sendRXbyte(hanzi[ShowDAT[0]][disrow],CLOUR_F[0],8);    //保持原来固定显示
         if(FANpingf_TXT==1)
         sendRXbyte(hanzi3[ShowDAT[0]][disrow],CLOUR_F[0],8);    //保持原来固定显示
         if(FANpingf_TXT==2)
         sendRXbyte(hanzi5[ShowDAT[0]][disrow],CLOUR_F[0],8);    //保持原来固定显示
        }
    }
    /*--------------------------*/
    if(ShowDAT[1]!=temp_time[1])                                  //时个位有没变化
    f2=0;    //
    if(f2<17)                                                     //23翻到0
    {
        if(ShowDAT[1]==0)
        {
            if(ShowDAT[1]==0&&ShowDAT[36]!=0)                             //如果小时个位是0(19--20,9---10)
            {if(FANpingf_TXT==0)
             sendRXbyte(hanzi[9][disrow+f2],CLOUR_F[0],8);    //从9开始翻0(因为9后面加了个0)
             if(FANpingf_TXT==1)
             sendRXbyte(hanzi3[9][disrow+f2],CLOUR_F[0],8);    //从9开始翻0(因为9后面加了个0)
             if(FANpingf_TXT==2)
            sendRXbyte(hanzi5[9][disrow+f2],CLOUR_F[0],8);    //从9开始翻0(因为9后面加了个0)
            }
            else
            {   if(FANpingf_TXT==0)
                sendRXbyte(han30i[0][disrow+f2],CLOUR_F[0],8);    //应该是从3翻到0即23时---0时
                if(FANpingf_TXT==1)
                sendRXbyte(hanzi330[0][disrow+f2],CLOUR_F[0],8);    //应该是从3翻到0即23时---0时
                if(FANpingf_TXT==2)
                sendRXbyte(hanzi530[0][disrow+f2],CLOUR_F[0],8);    //应该是从3翻到0即23时---0时
            }
        }
        else
        {   if(FANpingf_TXT==0)
            sendRXbyte(hanzi[ShowDAT[1]-1][disrow+f2],CLOUR_F[0],8);
            if(FANpingf_TXT==1)
            sendRXbyte(hanzi3[ShowDAT[1]-1][disrow+f2],CLOUR_F[0],8);
            if(FANpingf_TXT==2)
            sendRXbyte(hanzi5[ShowDAT[1]-1][disrow+f2],CLOUR_F[0],8);
        }
    }
    else
    {   if(FANpingf_TXT==0)
        sendRXbyte(hanzi[ShowDAT[1]][disrow],CLOUR_F[0],8);    //时个位
        if(FANpingf_TXT==1)
        sendRXbyte(hanzi3[ShowDAT[1]][disrow],CLOUR_F[0],8);    //时个位
        if(FANpingf_TXT==2)
        sendRXbyte(hanzi5[ShowDAT[1]][disrow],CLOUR_F[0],8);    //时个位
    }
    if(half_sec_flag==1 )
    {   if(FANpingf_TXT==0)
        sendRXbyte(hanzi[11][disrow],CLOUR_F[1],8);    //冒号
        if(FANpingf_TXT==1)
        sendRXbyte(hanzi3[11][disrow],CLOUR_F[1],8);    //冒号
        if(FANpingf_TXT==2)
        sendRXbyte(hanzi5[11][disrow],CLOUR_F[1],8);    //冒号
    }
    else
    sendRXbyte(hanzi[NL][disrow],CLOUR_F[1],8);    //空白
   
    /*---------分------------------------------------------------------------------*/
    if(ShowDAT[2]!=temp_time[2])                                  //判断分十位有没变化
    f3=0;    //有变化
    if(f3<17)
    {
        if(ShowDAT[2]==0)                                             //分十位变为0,说明分到了59
        {   if(FANpingf_TXT==0)
            sendRXbyte(han50i[0][disrow+f3],CLOUR_F[2],8);    //分十位由5开始翻页0
            if(FANpingf_TXT==1)
            sendRXbyte(hanzi350[0][disrow+f3],CLOUR_F[2],8);    //分十位由5开始翻页0
            if(FANpingf_TXT==2)
            sendRXbyte(hanzi550[0][disrow+f3],CLOUR_F[2],8);    //分十位由5开始翻页0
            
        }
        else
        {  if(FANpingf_TXT==0)
            sendRXbyte(hanzi[ShowDAT[2]-1][disrow+f3],CLOUR_F[2],8);    //不满59分十位由先前的数字开始翻页到更新的数字
            if(FANpingf_TXT==1)
            sendRXbyte(hanzi3[ShowDAT[2]-1][disrow+f3],CLOUR_F[2],8);    //不满59分十位由先前的数字开始翻页到更新的数字
            if(FANpingf_TXT==2)
            sendRXbyte(hanzi5[ShowDAT[2]-1][disrow+f3],CLOUR_F[2],8);    //不满59分十位由先前的数字开始翻页到更新的数字
        }
    }
    else
    {   if(FANpingf_TXT==0)
        sendRXbyte(hanzi[ShowDAT[2]][disrow],CLOUR_F[2],8);    //没变化显示当前的数字
        if(FANpingf_TXT==1)
        sendRXbyte(hanzi3[ShowDAT[2]][disrow],CLOUR_F[2],8);    //没变化显示当前的数字
        if(FANpingf_TXT==2)
        sendRXbyte(hanzi5[ShowDAT[2]][disrow],CLOUR_F[2],8);    //没变化显示当前的数字
    }
    /*-------------------------------*/
    if(ShowDAT[3]!=temp_time[3])
    f4=0;    //分个位
  
    if(f4<17)
    {
        if(ShowDAT[3]==0)
        {   if(FANpingf_TXT==0)
            sendRXbyte(hanzi[9][disrow+f4],CLOUR_F[2],8);    //9,0
            if(FANpingf_TXT==1)
            sendRXbyte(hanzi3[9][disrow+f4],CLOUR_F[2],8);    //9,0
            if(FANpingf_TXT==2)
            sendRXbyte(hanzi5[9][disrow+f4],CLOUR_F[2],8);    //9,0
        }
        else
        {   if(FANpingf_TXT==0)
            sendRXbyte(hanzi[ShowDAT[3]-1][disrow+f4],CLOUR_F[2],8);
            if(FANpingf_TXT==1)
            sendRXbyte(hanzi3[ShowDAT[3]-1][disrow+f4],CLOUR_F[2],8);
            if(FANpingf_TXT==2)
            sendRXbyte(hanzi5[ShowDAT[3]-1][disrow+f4],CLOUR_F[2],8);
        }
    }
    else
    {   if(FANpingf_TXT==0)
        sendRXbyte(hanzi[ShowDAT[3]][disrow],CLOUR_F[2],8);
        if(FANpingf_TXT==1)
        sendRXbyte(hanzi3[ShowDAT[3]][disrow],CLOUR_F[2],8);
        if(FANpingf_TXT==2)
        sendRXbyte(hanzi5[ShowDAT[3]][disrow],CLOUR_F[2],8);
    }
    if(half_sec_flag==1 )
    {   if(FANpingf_TXT==0)
        sendRXbyte(hanzi3[11][disrow],CLOUR_F[2],8);    //冒号
        if(FANpingf_TXT==1)
        sendRXbyte(hanzi[11][disrow],CLOUR_F[2],8);    //冒号
        if(FANpingf_TXT==2)
        sendRXbyte(hanzi5[11][disrow],CLOUR_F[2],8);    //冒号
    }
    else
    sendRXbyte(hanzi[NL][disrow],CLOUR_F[2],8);    //空白
    /*---------秒-------------------------------------------------------------------*/
    if(ShowDAT[4]!=temp_time[4])                               //如果不相等秒十位
    f5=0;
    if(f5<17)
    {
        if(ShowDAT[4]==0)                                           //秒十位
        {   if(FANpingf_TXT==0)
            sendRXbyte(han50i[0][disrow+f5],CLOUR_F[1],8);    //由59开始翻页0
            if(FANpingf_TXT==1)
            sendRXbyte(hanzi350[0][disrow+f5],CLOUR_F[1],8);
            if(FANpingf_TXT==2)
            sendRXbyte(hanzi550[0][disrow+f5],CLOUR_F[1],8);
        }
        else
        {   if(FANpingf_TXT==0)
            sendRXbyte(hanzi[ShowDAT[4]-1][disrow+f5],CLOUR_F[1],8);
            if(FANpingf_TXT==1)
            sendRXbyte(hanzi3[ShowDAT[4]-1][disrow+f5],CLOUR_F[1],8);
            if(FANpingf_TXT==2)
            sendRXbyte(hanzi5[ShowDAT[4]-1][disrow+f5],CLOUR_F[1],8);
        }
    }
    else
    {   if(FANpingf_TXT==0)
        sendRXbyte(hanzi[ShowDAT[4]][disrow],CLOUR_F[1],8);
        if(FANpingf_TXT==1)
        sendRXbyte(hanzi3[ShowDAT[4]][disrow],CLOUR_F[1],8);
        if(FANpingf_TXT==2)
        sendRXbyte(hanzi5[ShowDAT[4]][disrow],CLOUR_F[1],8);
    }
    /*--------------------------*/
    if(ShowDAT[5]!=temp_time[5])                              //如果不相等 //秒个位
    f6=0;    //归零翻页
  
    if(f6<17)                                                   //翻叶
    {
        if(ShowDAT[5]==0)                                           //秒个位等于0
        {   if(FANpingf_TXT==0)
            sendRXbyte(hanzi[9][disrow+f6],CLOUR_F[1],8);    //从9开始翻0(因为9后面加了个0)
            if(FANpingf_TXT==1)
            sendRXbyte(hanzi3[9][disrow+f6],CLOUR_F[1],8);
            if(FANpingf_TXT==2)
            sendRXbyte(hanzi5[9][disrow+f6],CLOUR_F[1],8);
        }
        else
        {if(FANpingf_TXT==0)                                                     //否则
         sendRXbyte(hanzi[ShowDAT[5]-1][disrow+f6],CLOUR_F[1],8);
         if(FANpingf_TXT==1)                                                     //否则
         sendRXbyte(hanzi3[ShowDAT[5]-1][disrow+f6],CLOUR_F[1],8);
         if(FANpingf_TXT==2)                                                     //否则
         sendRXbyte(hanzi5[ShowDAT[5]-1][disrow+f6],CLOUR_F[1],8);
        }
    }  //
    else
    {if(FANpingf_TXT==0)
     sendRXbyte(hanzi[ShowDAT[5]][disrow],CLOUR_F[1],8);    //显示停留
     if(FANpingf_TXT==1)
     sendRXbyte(hanzi3[ShowDAT[5]][disrow],CLOUR_F[1],8);    //显示停留
     if(FANpingf_TXT==2)
     sendRXbyte(hanzi5[ShowDAT[5]][disrow],CLOUR_F[1],8);    //显示停留
    }
    if(hh/10==0)
    sendRXbyte(hanzi[NL][disrow],CLOUR_F[0],4);         //(小时为0时把屏向左移4位发空白数据
回复

使用道具 举报

  • TA的每日心情
    开心
    2024-10-7 21:17
  • 签到天数: 103 天

    [LV.6]常住居民II

    49

    主题

    1万

    回帖

    7万

    积分

    三级逆天

    积分
    73138

    终身成就奖特殊贡献奖原创先锋奖社区居民忠实会员社区劳模最爱沙发社区明星原创达人优秀斑竹奖宣传大使奖

    QQ
    发表于 2014-7-6 18:17:10 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    7

    主题

    689

    回帖

    703

    积分

    二级逆天

    像美国牛人造火箭

    积分
    703

    终身成就奖社区居民社区明星宣传大使奖

    QQ
    发表于 2015-8-13 09:45:48 | 显示全部楼层
    做个标记 仔细看 谢谢分享
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    每日签到,有金币领取。


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    ( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表