資源簡介
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
評論
共有 條評論