极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9298|回复: 1

12864显示问题

[复制链接]
发表于 2014-9-16 18:24:01 | 显示全部楼层 |阅读模式
qc12864b和ds1307做了一个时钟,在显示年上存在问题,之前能正确显示2014,后面就显示就变成了1414,不知道问题出在哪,各位帮我看下吧
#include <LCD12864RSPI.h>
#include <Wire.h>
#include <DS1307A.h>
#define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )
DS1307A ds = DS1307A(2000);
DS1307A_RAM ram;

unsigned char hu_year[]={0xC4,0xEA};
unsigned char hu_month[]={0xD4,0xC2};
unsigned char hu_day[]={0xC8,0xD5};
void setup()
{     
    Serial.begin(9600);                //init serial
    LCDA.Initialise(); // 屏幕初始化
    delay(100);
    ds.setDate(2014,9,16);
    ds.setTime(18,14,30);
    ds.setWeek(2);
     LCDA.CLEAR();//清屏
delay(100);
}  
void loop()   
{
    Time t = ds.getTime();

char hum_date[10];
char hum_time[8];
char hum_year[4];
char hum_month[2];
char hum_day[2];
//char hum_week[10];

sprintf(hum_date,"%s",ds.getDateString("YMD",'-'));
sprintf(hum_time,"%s",ds.getTimeString("HMS",':'));

char hum_week1[2]={0xd2,0xbb};
char hum_week2[2]={0xB6,0xFE};
char hum_week3[2]={0xC8,0xFD};
char hum_week4[2]={0xCB,0xC4};
char hum_week5[2]={0xCE,0xE5};
char hum_week6[2]={0xC1,0xF9};
char hum_week7[2]={0xC8,0xD5};
char hum_week8[4]={0xD0,0xC7,0xC6,0xDA,};
char hum_week[2];
switch (t.week)
        {
        case MONDAY:
              for(int i=0;i<2;i++)
            {
            hum_week[i]=hum_week1[i];
            }
              break;
        case TUESDAY:
          for(int i=0;i<2;i++)
          {
          hum_week[i]=hum_week2[i];
          }
          break;
        case WEDNESDAY:
                for(int i=0;i<2;i++)
        {
        hum_week[i]=hum_week3[i];
        }
                break;
        case THURSDAY:
                for(int i=0;i<2;i++)
        {
        hum_week[i]=hum_week4[i];
        }
                break;
                case FRIDAY:
                 for(int i=0;i<2;i++)
        {
        hum_week[i]=hum_week5[i];
        }
                break;
                case SATURDAY:
                for(int i=0;i<2;i++)
        {
        hum_week[i]=hum_week6[i];
        }
                break;
                case SUNDAY:
                for(int i=0;i<2;i++)
        {
        hum_week[i]=hum_week7[i];
        }
                break;
}


LCDA.DisplayString(0,0,(unsigned char*)hum_date,AR_SIZE(hum_date));

LCDA.DisplayString(1,0,(unsigned char*)hum_time,AR_SIZE(hum_time));

LCDA.DisplayString(2,0,(unsigned char*)hum_week8,AR_SIZE(hum_week8));
LCDA.DisplayString(2,2,(unsigned char*)hum_week,AR_SIZE(hum_week));

    delay(100);
  
}

回复

使用道具 举报

 楼主| 发表于 2014-9-16 18:29:39 | 显示全部楼层
各位大哥提提改进意见 尤其是代码
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 17:44 , Processed in 0.042538 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表