DS3231时钟模块
DS3231时钟模块使用I2C通信协议,因此与Arduino开发板的连接很简单。I2C协议是双向双线串行总线,提供集成电路之间的通信链路。
允许主设备与同一双线总线上的其他外围设备进行通信只用于数据传输,一条用于数据传输,另一条用于时钟信号。
Arduino Uno DS3231
GND --- GND
5V --- VCC
a4 (sda-----sda
A5) SCL----SCL
加载DS3231库#包括DS3231
ds 3231时钟;
RTC日期滴滴涕;
//clock.setdatetime (_日期_,_时间_ );
第一次运行时取消注释,让DS3231获取计算机系统的时间
dt=时钟. getdate时间(; 获取//时间,在4位数字管道上只显示时间和分钟
int hour _ a=日本石油公司/10; //数字管的第1位表示、时间
int hour _ b=迪特. hour; //
int min _ a=日本石油公司/10;
int min _ b=迪米尼ute;
例如,9:12,作为运算的结果,hour_a=0、hour_b=9、min_a=1、min_b=2
C语言除法运算符“/”和取模运算符“%”
除法运算符'/'。 具有左结合性的二元运算符。 如果所有参与运算的量都是整数,结果将是整数,小数将被截断。例如,5/2=2,1/2=0
类型运算符为“%”,是二元运算符,具有左键性。 运算所涉及的量都是整数。 模运算的结果等于除以两个数的余数。
例如,5 %2=1,1 %2=1
如果是ab的话,这样的商是0,剩下的是a
代码是共阴极数字管,可以正常显示时间,但很多缺点没有得到解决。
如果设定时间过长,Dlay(3)在4位数字数码管中只显示1个数字,依次显示1、2、3、4位数字。 缩短delay(3)时间间隔,欺骗眼睛,4位数字同时显示数字,无法实现2个小数点的闪烁。
# #包括ds 3231.h
# #定义序列a 2
# #定义seg _ b 3
# #定义seg _ c 4
# #定义序列d 5
# #定义序列6
# #定义序列f 7
# #定义序列8
# #定义序列h 13
# #定义com19
#define COM2 10
#define COM3 11
#define COM4 12
ds 3231时钟;
RTC日期滴滴涕;
无符号字符表[ 10 ] [7]=
{ 1,1,1,1,1,1,1,0 },/0
{ 0,1,1,0,0,0 },/1
{ 1,1,0,1,1,0,1 },/2
{ 1,1,1,1,0,0,1 },/3
{ 0,1,1,0,0,1,1 },/4
{ 1,0,1,1,0,1,1 },/5
{ 1,0,1,1,1,1 },/6
{ 1,1,1,0,0,0 },/7
{ 1,1,1,1,1,1,1 },/8
{ 1,1,1,1,0,1,1 }/9
(;
void设定() )
{
Serial.Begin(9600;
输入模式(输出); //设为输出端子
输入模式(seg _ b,输出;
输入模式(秒,输出;
输入模式(seg _ d,输出;
输入模式(输出);
输入模式(秒,输出;
输入模式(输出);
输入模式(秒、输出);
输入模式(逗号1,输出);
输入模式(com 2、输出);
输入模式(com 3,输出);
输入模式(com 4、输出);
时钟. begin (;
//clock.setdatetime (_日期_,_时间_ );
//第一次运行时取消注释,让DS3231获取计算机的时间
}
void loop () )
{
dt=时钟. getdate时间(;
int hour _ a=日本石油公司/10;
int hour _ b=迪特. hour;
int min _ a=日本石油公司/10;
int min _ b=迪米尼ute;
显示(1,hour_a );//第1位显示
dlay(3;
显示(2,hour_b );//第2位显示
dlay(3;
显示(3,min_a );//第3位显示
dlay(3;
显示器(4,min_b;//第4位的显示
dlay(3;
}
void显示器(统一字符编号)。
//显示函数、com选项数值范围1-4、num选项数值范围0-9
{
数字写入(seg _ a,低); /
数字写入(seg _ b,低);
数字写入(seg _ c,低;
数字写入(seg _ d,低);
数字写入(seg _ e,低);
数字写入(seg _ f,低);
数字写入(seg _ g,低);
数字写入(seg _ h,高);
是sitch(com )。
{
case 1:
数字写入(com1,高);
数字写入(com 2,高);
数字写入(com 3,高);
数字写入(com 4,低);
布莱克;
case 2:
数字写入(com1,高);
数字写入(com 2,高);
数字写入(com 3,低);
数字写入(com 4,高);
布莱克;
case 3:
数字写入(com1,高);
数字写入(com 2,LOW );
数字写入(com 3,高);
数字写入(com 4,高);
布莱克;
case 4:
数字写入(com1,LOW );
数字写入(com 2,高);
数字写入(com 3,高);
数字写入(com 4,高);
布莱克;
默认:
布莱克;
}
数字写入(seg _ a,表编号);
数字写入(seg _ b,表编号);
数字写入(seg _ c,表编号);
数字写入(seg _ d,表编号);
数字写入(seg _ e,表编号);
数字写入(seg _ f,表编号);
数字写入(seg _ g,表编号);
}