• 大小: 10KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-15
  • 语言: 其他
  • 标签: arduino  lcd12864  ds1302  

资源简介

arduino和ds1302的基于lcd12864闹钟,按键可调时间,可设定闹钟,闹钟可通过按键更改,可掉电保存

资源截图

代码片段和文件信息

/*
LCD12864R
www.DFRobot.com
*/

#if defined(ARDUINO) && ARDUINO >= 100
#include “Arduino.h“
#else
#include “WProgram.h“
#endif

#include “LCD12864R.h“
//#include “LCDSprite.h“

extern “C“ {
#include 
#include 
#include 
}

void LCD12864R::setPins(uint8_t tRS uint8_t tRW uint8_t tD7 uint8_t tD6 uint8_t tD5 uint8_t tD4 uint8_t tD3 uint8_t tD2 uint8_t tD1 uint8_t tD0) 
{
  digitalWrite(EN1);  
  delayns();
  digitalWrite(RS tRS);   
  digitalWrite(RW tRW);   
  digitalWrite(D7 tD7);   
  digitalWrite(D6 tD6);   
  digitalWrite(D5 tD5);   
  digitalWrite(D4 tD4);   
  digitalWrite(D3 tD3);   
  digitalWrite(D2 tD2);   
  digitalWrite(D1 tD1);   
  digitalWrite(D0 tD0);   
  delayns();
  digitalWrite(EN 0);   
  delayns();

}


//*********************��ʱ����************************//
void LCD12864R::delayns(void)
{   
delayMicroseconds(300);
 }



void LCD12864R::VectorConverter(int vector) 
{
int result = vector;
for (int i = 7; i >= 0; i--) 
{
this->temp[i] = result % 2;
result = result/2;
}

}


void LCD12864R::WriteCommand(int CMD)

   delayns();
   delayns();
   VectorConverter(CMD); // lets get the binary from the dec
   setPins(00this->temp[0]this->temp[1]this->temp[2]this->temp[3]this->temp[4]this->temp[5]this->temp[6]this->temp[7]); //WriteCommand

}



void LCD12864R::WriteData(int CMD)
{  
   delayns();
   delayns();
   VectorConverter(CMD); // lets get the binary from the dec
   setPins(10this->temp[0]this->temp[1]this->temp[2]this->temp[3]this->temp[4]this->temp[5]this->temp[6]this->temp[7]); //WriteData
}


void LCD12864R::Initialise(void) 
{

   pinMode(RS OUTPUT);     
   pinMode(RW OUTPUT);    
   pinMode(EN OUTPUT);     
   pinMode(D0 OUTPUT);      
   pinMode(D1 OUTPUT);    
   pinMode(D2 OUTPUT);   
   pinMode(D3 OUTPUT);      
   pinMode(D4 OUTPUT);      
   pinMode(D5 OUTPUT);      
   pinMode(D6 OUTPUT);      
   pinMode(D7 OUTPUT);
   delayns();

   WriteCommand(0x30);        //�����趨������
   WriteCommand(0x0c);        //��ʾ���ؿ�����
   WriteCommand(0x01);        //�����Ļ������
   WriteCommand(0x06);        //�����趨�������
}



void LCD12864R::CLEAR(void)
{  
    WriteCommand(0x30);//
    WriteCommand(0x01);//�����ʾ
}


//12341234
void LCD12864R::DisplayString(int Xint Yconst uchar *ptrint dat)
{
  int i;

  switch(X)
   {
     case 0:  Y|=0x80;break;

     case 1:  Y|=0x90;break;

     case 2:  Y|=0x88;break;

     case 3:  Y|=0x98;break;

     default: break;
   }
  WriteCommand(Y); // ��λ��ʾ��ʼ��ַ

  for(i=0;i    { 
      WriteData(ptr[i]);//��ʾ����ʱע����ֵ�������������ʾһ������
    }
}

LCD12864R LCDA;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        7968  2020-11-11 14:13  DS1302_Simple.ino
     文件        3023  2020-11-09 22:20  LCD12864R.cpp
     文件        1155  2020-11-09 22:38  LCD12864R.h
     文件        5175  2020-11-09 22:20  RtcDateTime.cpp
     文件        4315  2020-11-09 22:20  RtcDateTime.h
     文件        7282  2020-11-09 22:20  RtcDS1302.h
     文件         582  2020-11-09 22:20  RtcUtility.cpp
     文件         471  2020-11-09 22:20  RtcUtility.h
     文件        2779  2020-11-09 22:20  ThreeWire.h

评论

共有 条评论