《手把手教你学51单片机-C语言版》之十五----实时时钟DS1302

发布者:CreativeMind最新更新时间:2016-06-12 来源: eefocus关键字:51单片机  C语言  实时时钟  DS1302 手机看文章 扫描二维码
随时随地手机看文章
      在前面的课程中我们已经了解到了不少关于时钟的概念,比如我们用的单片机的主时钟是11.0592M、I2C总线有一条时钟信号线SCL等,这些时钟本质上都是一个某一频率的方波信号。那么除了这些在前面新学到的时钟概念外,还有一个我们早已熟悉的不能再熟悉的时钟概念——“年-月-日 时:分:秒”,就是我们的钟表和日历给出的时间,它的重要程度我想就不需要多说了吧,在单片机系统里我们把它称作实时时钟,以区别于前面提到的几种方波时钟信号。实时时钟,有时也被称作墙上时钟,很形象的一个名词,对吧,大家知道它们讲的一回事就行了。本章,我们将学习实时时钟的应用,有了它,你的单片机系统就能在漫漫历史长河中找到自己的时间定位啦,可以在指定时间干某件事,或者记录下某事发生的具体时间,等等。除此之外,本章还会学习到C语言的结构体,它也是C语言的精华部分,我们通过本章先来了解它的基础,后面再逐渐达到熟练、灵活运用它,你的编程水平会提高一个档次哦。

 

1.1 BCD码的概念

      在日常生产生活中用的最多的数字是十进制数字,而单片机系统的所有数据本质上都是二进制的,所以聪明的前辈们就给我们创造了BCD码。

 

      BCD码(Binary-Coded Decimal)亦称二进码十进制数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数字。是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。我们前边讲过十六进制和二进制本质上是一回事,十六进制仅仅是二进制的一种缩写形式而已。而十进制的一位数字,从0到9,最大的数字就是9,再加1就要进位,所以用4位二进制表示十进制,就是从0b0000到0b1001,不存在0b1010、0b1011、0b1100、0b1101、0b1110、0b1111这6个数字。BCD码如果到了0b1001,再加1的话,数字就变成0b00010000这样了,相当于用了8位的二进制数字表示了2位的十进制数字。

 

      BCD码的应用还是非常广泛的,比如我们这节课要学的实时时钟,日期时间在时钟芯片中的存储格式就是BCD码,当我们需要把它记录的时间转换成可以直观显示的ASCII码时(比如在液晶上显示),就可以省去一步由二进制的整型数到ASCII的转换过程,而直接取出表示十进制1位数字的4个二进制位然后再加上0x30就可组成一个ASCII码字节了,这样就会方便的多,在后面的实际例程中将看到这个简单的转换。

 

1.2 SPI时序初步认识

      UART、I2C和SPI是单片机系统中最常用的三种通信协议。前边我们已经学了UART和I2C通信协议,这节课我们来学习剩下的SPI通信协议。

 

      SPI是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI是一种高速的、全双工、同步通信总线,标准的SPI也仅仅使用4个引脚,常用于单片机和EEPROM、FLASH、实时时钟、数字信号处理器等器件的通信。SPI通信原理比I2C要简单,它主要是主从方式通信,这种模式通常只有一个主机和一个或者多个从机,标准的SPI是4根线,分别是SSEL(片选,也写作SCS)、SCLK(时钟,也写作SCK)、MOSI(主机输出从机输入Master Output/Slave Input)和MISO(主机输入从机输出Master Input/Slave Output)。

 

SSEL:从设备片选使能信号。如果从设备是低电平使能的话,当拉低这个引脚后,从设备就会被选中,主机和这个被选中的从机进行通信。

SCLK:时钟信号,由主机产生,和I2C通信的SCL有点类似。

MOSI:主机给从机发送指令或者数据的通道。

MISO:主机读取从机的状态或者数据的通道。

 

      在某些情况下,我们也可以用3根线的SPI或者2根线的SPI进行通信。比如主机只给从机发送命令,从机不需要回复数据的时候,那么MISO就可以不要;而在主机只读取从机的数据,不需要给从机发送指令的时候,那MOSI就可以不要;当一个主机一个从机的时候,从机的片选有时可以固定为有效电平而一直处于使能状态,那么SSEL就可以不要;此时如果再加上主机只给从机发送数据,那么SSEL和MISO都可以不要;如果主机只读取从机送来的数据,SSEL和MOSI都可以不要。

 

      3线和2线的SPI大家要知道怎么回事,实际使用也是有应用的,但是当我们提及SPI的时候,一般都是指标准SPI,都是指4根线的这种形式。

     

      SPI通信的主机也是我们的单片机,在读写数据时序的过程中,有四种模式,要了解这四种模式,首先我们得学习以下两个名词。

       

       CPOL: Clock Polarity,就是时钟的极性。时钟的极性是什么概念呢?通信的整个过程分为空闲时刻和通信时刻,如果SCLK在数据发送之前和之后的空闲状态是高电平,那么就是CPOL=1,如果空闲状态SCLK是低电平,那么就是CPOL=0。

 

       CPHA: Clock Phase,就是时钟的相位。

主机和从机要交换数据,就牵涉到一个问题,即主机在什么时刻输出数据到MOSI上而从机在什么时刻采样这个数据,或者从机在什么时刻输出数据到MISO上而主机什么时刻采样这个数据。同步通信的一个特点就是所有数据的变化和采样都是伴随着时钟沿进行的,也就是说数据总是在时钟的边沿附近变化或被采样。而一个时钟周期必定包含了一个上升沿和一个下降沿,这是周期的定义所决定的,只是这两个沿的先后并无规定。又因为数据从产生的时刻到它的稳定是需要一定时间的,那么,如果主机在上升沿输出数据到MOSI上,从机就只能在下降沿去采样这个数据了。反之如果一方在下降沿输出数据,那么另一方就必须在上升沿采样这个数据。

 

       CPHA=1,就表示数据的输出是在一个时钟周期的第一个沿上,至于这个沿是上升沿还是下降沿,这要视CPOL的值而定,CPOL=1那就是下降沿,反之就是上升沿。那么数据的采样自然就是在第二个沿上了。

       CPHA=0,就表示数据的采样是在一个时钟周期的第一个沿上,同样它是什么沿由CPOL决定。那么数据的输出自然就在第二个沿上了。仔细想一下,这里会有一个问题:就是当一帧数据开始传输第一个bit时,在第一个时钟沿上就采样该数据了,那么它是在什么时候输出来的呢?有两种情况:一是SSEL使能的边沿,二是上一帧数据的最后一个时钟沿,有时两种情况还会同时生效。

 

      我们以CPOL=1/CPHA=1为例,把时序图画出来给大家看一下,如图15-1所示。

 

《手把手教你学51单片机-C语言版》之十五----实时时钟DS1302

15-1  SPI通信时序图(一)

 

      大家看图15-1所示,当数据未发送时以及发送完毕后,SCK都是高电平,因此CPOL=1。可以看出,在SCK第一个沿的时候,MOSI和MISO会发生变化,同时SCK第二个沿的时候,数据是稳定的,此刻采样数据是合适的,也就是上升沿即一个时钟周期的后沿锁存读取数据,即CPHA=1。注意最后最隐蔽的SSEL片选,这个引脚通常用来决定是哪个从机和主机进行通信。剩余的三种模式,我们把图画出来,简化起见把MOSI和MISO合在一起了,大家仔细对照看看研究一下,把所有的理论过程都弄清楚,有利于你对SPI通信的深刻理解,如图15-2所示。

《手把手教你学51单片机-C语言版》之十五----实时时钟DS1302

15-2  SPI通信时序图(二)

       

      在时序上,SPI是不是比I2C要简单的多?没有了起始、停止和应答,UART和SPI在通信的时候,只负责通信,不管是否通信成功,而I2C却要通过应答信息来获取通信成功失败的信息,所以相对来说,UART和SPI的时序都要比I2C简单一些。

1.3 实时时钟芯片DS1302

      DS1302是个实时时钟芯片,我们可以用单片机写入时间或者读取当前的时间数据,下面带着大家通过阅读这个芯片的数据手册来学习和掌握这个器件。

 

      由于IT技术国际化比较强,因此数据手册绝大多数都是英文的,导致很多英语基础不好的同学看到英文手册头就大了。这里我要告诉大家的是,只要精神不退缩,方法总比困难多,很多英语水平不高的,看数据手册照样完全没问题,因为我们用到的专业词汇也就那么几个,多看几次就认识了。我们现在不是考试,因此大家可以充分利用一些英文翻译软件,翻译过来的中文意思有时候可能不是那么准确,那你就把翻译的内容和英文手册里的一些图表比较参考学习。此外数据手册除了介绍性的说明外,一般还会配相关的图形或者表格,结合起来看也有利于理解手册所表达的意思。这节课我会把DS1302的英文资料尽可能的用比较便于理解的方式给大家表达出来,同学们可以把我的表达和英文手册多做一下对比,尽可能快的开始学会了解英文手册。

 

1.3.1 DS1302的特点

      DS1302是DALLAS(达拉斯)公司推出的一款涓流充电时钟芯片,2001年DALLAS被MAXIM(美信)收购,因此我们看到的DS1302的数据手册既有DALLAS的标志,又有MAXIM的标志,大家了解即可。

 

      DS1302实时时钟芯片广泛应用于电话、传真、便携式仪器等产品领域,它的主要性能指标如下:

1、DS1302是一个实时时钟芯片,可以提供秒、分、小时、日期、月、年等信息,并且还有软件自动调整的能力,可以通过配置AM/PM来决定采用24小时格式还是12小时格式。

2、拥有31字节数据存储RAM。

3、串行I/O通信方式,相对并行来说比较节省IO口的使用。

4、DS1302的工作电压比较宽,在2.0~5.5V的范围内都可以正常工作。

5、DS1302这种时钟芯片功耗一般都很低,它在工作电压2.0V的时候,工作电流小于300nA。

6、DS1302共有8个引脚,有两种封装形式,一种是DIP-8封装,芯片宽度(不含引脚)是300mil,一种是SOP-8封装,有两种宽度,一种是150mil,一种是208mil。我们看一下DS1302的引脚封装图,如图15-3所示。

《手把手教你学51单片机-C语言版》之十五----实时时钟DS1302

图15-3  DS1302封装图

 

      所谓的DIP(Dual In-line Package)封装,就是双列直插式封装技术,就如同我们开发板上的STC89C52单片机,就是个典型的DIP封装,当然这个STC89C52还有其它的封装样式,为了方便学习使用,我们采用的是DIP封装。而74HC245、74HC138、24C02、DS1302我们用的都是SOP(Small Out-Line Package)封装,是一种芯片两侧引出L形引脚的封装技术,大家可以看看开发板上的芯片,了解一下这些常识性知识。

7、当供电电压是5V的时候,兼容标准的TTL电平标准,这里的意思是,可以完美的和单片机进行通信。

8、由于DS1302是DS1202的升级版本,所以所有的功能都兼容DS1202。此外DS1302有两个电源输入,一个是主电源,另外一个是备用电源,比如可以用电池或者大电容,这样做是为了在系统掉电的情况下,我们的时钟还会继续走。如果使用的是充电电池,还可以在正常工作时,设置充电功能,给我们的备用电池进行充电。

 

      DS1302的特点第二条“拥有31字节数据存储RAM”,这是DS1302额外存在的资源。这31字节的RAM相当于一个存储器一样,我们编写单片机程序的时候,可以把我们想存储的数据存储在DS1302里边,需要的时候读出来,这块功能和EEPROM有点类似,相当于一个掉电丢失数据的“EEPROM”,如果我们的时钟电路加上备用电池,那么这31个字节的RAM就可以替代EEPROM的功能了。这31字节的RAM功能使用很少,所以在这里我们就不讲了,大家了解即可。

 

1.3.2 DS1302的硬件信息

      我们平时所用的不管是单片机,还是其它一些电子器件,根据使用条件的约束,可以分为商业级和工业级,主要是工作温度范围的不同,DS1302的购买信息如下图15-4所示。

《手把手教你学51单片机-C语言版》之十五----实时时钟DS1302

图15-4  DS1302订购信息

 

      我们在订购DS1302的时候,就可以根据图15-4所标识的来跟销售厂家沟通,商业级的工作温度范围略窄,是0~70摄氏度,而工业级可以工作在零下40~85摄氏度。TOP MARK就是指在芯片上印的字。

DS1302一共有8个引脚,下边要根据引脚分布图和典型电路图来介绍一下每个引脚的功能,如图15-5和图15-6所示。

《手把手教你学51单片机-C语言版》之十五----实时时钟DS1302   《手把手教你学51单片机-C语言版》之十五----实时时钟DS1302

                                     图15-5  DS1302引脚图                                                                          图15-6  DS1302典型电路

 

      1脚VCC2是主电源正极的引脚,2脚X1和3脚X2是晶振输入和输出引脚,4脚GND是负极,5脚CE是使能引脚,接单片机的IO口,6脚I/O是数据传输引脚,接单片机的IO口,7脚SCLK是通信时钟引脚,接单片机的IO口,8脚VCC1是备用电源引脚。考虑到KST-51开发板是一套以学习为目的的板子,加上备用电池对航空运输和携带不方便,所以8脚没有接备用电池,而是接了一个10uF的电容,这个电容就相当于一个电量很小的电池,经过试验测量得出其可以在系统掉电后仍维持DS1302运行1分钟左右,如果大家想运行时间再长,可以加大电容的容量或者换成备用电池,如果掉电后不需要它再维持运行,也可以干脆悬空,如图15-7和图15-8所示。

 

《手把手教你学51单片机-C语言版》之十五----实时时钟DS1302 《手把手教你学51单片机-C语言版》之十五----实时时钟DS1302

                            图15-7  DS1302电容作备用电源                                                          图15-8  DS1302无备用电源

 

      涓流充电功能,基本也用不到,因为实际应用中很少会选择可充电电池作为备用电源,成本太高,本课程也不讲了,大家作为选学即可。我们使用的时候直接用5V电源接一个二极管,在主电源上电的情况下给电容充电,在主电源掉电的情况下,二极管可以防止电容向主电路放电,而仅用来维持DS1302的供电,这种电路的最大用处是在电池供电系统中更换主电池的时候保持实时时钟的运行不中断,1分钟的时间对于更换电池足够了。此外,通过我们的使用经验,在DS1302的主电源引脚串联一个1K电阻可以有效的防止电源对DS1302的冲击,R6就是这个电阻,而R9、R26、R32都是上拉电阻。

 

      我们把8个引脚功能分别介绍,如表15-1所示。

 

                                                                               表15-1  DS1302引脚功能图

引脚编号

引脚名称

引脚功能

1

Vcc2

主电源引脚,当Vcc2比Vcc1高0.2V以上时,DS1302由Vcc2供电,当Vcc2低于Vcc1时,由Vcc1供电。

2

X1

这两个引脚需要接一个32.768K的晶振,给DS1302提供一个基准。特别注意,要求这个晶振的引脚负载电容必须是6pF,而不是要加6pF的电容。如果使用有源晶振的话,接到X1上即可,X2悬空。

3

X2

4

GND

接地。

5

CE

DS1302的使能输入引脚。当读写DS1302的时候,这个引脚必须是高电平,DS1302这个引脚内部有一个40k的下拉电阻。

6

I/O

这个引脚是一个双向通信引脚,读写数据都是通过这个引脚完成。DS1302这个引脚的内部含有一个40k的下拉电阻。

7

SCLK

输入引脚。SCLK是用来作为通信的时钟信号。DS1302这个引脚的内部含有一个40k的下拉电阻。

8

Vcc1

备用电源引脚。

 

      DS1302电路的一个重点就是晶振电路,它所使用的晶振是一个32.768k的晶振,晶振外部也不需要额外添加其它的电容或者电阻了。时钟的精度,首先取决于晶振的精度以及晶振的引脚负载电容。如果晶振不准或者负载电容过大或过小,都会导致时钟误差过大。在这一切都搞定后,最终一个考虑因素是晶振的温漂。随着温度的变化,晶振的精度也会发生变化,因此,在实际的系统中,其中一种方法就是经常校对。比如我们所用的电脑的时钟,通常我们会设置一个选项“将计算机设置与internet时间同步”。选中这个选项后,一般过一段时间,我们的计算机就会和internet时间校准同步一次。

 

1.3.3 DS1302寄存器介绍

      DS1302的一条指令一个字节共8位,其中第7位(即最高位)固定为1,这一位如果是0的话,那写进去也是无效的。第6位是选择RAM还是CLOCK的,我前边说过,我们这里主要讲CLOCK时钟的使用,它的RAM功能我们不用,所以如果选择CLOCK功能,第6位是0,如果要用RAM,那第6位就是1。从第5到第1位,决定了寄存器的5位地址,而第0位是读写位,如果要写,这一位就是0,如果要读,这一位就是1。指令字节直观位分配如图15-9所示。

 

《手把手教你学51单片机-C语言版》之十五----实时时钟DS1302

图15-9  DS1302命令字节

 

      DS1302时钟的寄存器,其中8个和时钟有关的,5位地址分别是0b00000~0b00111,还有一个寄存器的地址是01000,这是涓流充电所用的寄存器,我们这里不讲。在DS1302的数据手册里的地址,直接把第7位、第6位和第0位值给出来了,所以指令就成了0x80、0x81那些了,最低位是1,那么表示读,最低位是0表示写,如图15-10所示。

《手把手教你学51单片机-C语言版》之十五----实时时钟DS1302

图15-10  DS1302的时钟寄存器

 

      寄存器0:最高位CH是一个时钟停止标志位。如果时钟电路有备用电源,上电后,我们要先检测一下这一位,如果这一位是0,那说明时钟芯片在系统掉电后,由于备用电源的供给,时钟是持续正常运行的;如果这一位是1,那么说明时钟芯片在系统掉电后,时钟部分不工作了。如果Vcc1悬空或者是电池没电了,当我们下次重新上电时,读取这一位,那这一位就是1,我们可以通过这一位判断时钟在单片机系统掉电后是否还正常运行。剩下的7位高3位是秒的十位,低4位是秒的个位,这里再提请注意一次,DS1302内部是BCD码,而秒的十位最大是5,所以3个二进制位就够了。

 

寄存器1:最高位未使用,剩下的7位中高3位是分钟的十位,低4位是分钟的个位。

寄存器2:bit7是1的话代表是12小时制,0代表是24小时制;bit6固定是0,bit5在12小时制下0代表的是上午,1代表的是下午,在24小时制下和bit4一起代表了小时的十位,低4位代表的是小时的个位。

寄存器3:高2位固定是0,bit5和bit4是日期的十位,低4位是日期的个位。

寄存器4:高3位固定是0,bit4是月的十位,低4位是月的个位。

寄存器5:高5位固定是0,低3位代表了星期。

寄存器6:高4位代表了年的十位,低4位代表了年的个位。请特别注意,这里的00~99指的是2000年~2099年。

寄存器7:最高位一个写保护位,如果这一位是1,那么是禁止给任何其它寄存器或者那31个字节的RAM写数据的。因此在写数据之前,这一位必须先写成0。

 

关键字:51单片机  C语言  实时时钟  DS1302 引用地址:《手把手教你学51单片机-C语言版》之十五----实时时钟DS1302

上一篇:51 单片机 sprintf 数字格式问题
下一篇:双单片机的电机系统设计

推荐阅读最新更新时间:2024-03-16 14:56

51单片机-UART口发送一个字符
UART口,又叫做通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是单片机常用功能的一部分,也是早期台式电脑必备的一个硬件接口。 当年我调试UART口的时候,用的还是超级终端,现在都用串口助手了,比我们当时方便多了。 UART口按位发送和接收字节,虽然相比于并口,慢了很多,但是在有限的IO资源面前,这种方式是非常可取的。 UART口主要用于ASCII码的传输,传输过程遵循ANSI/EIA-232标准。ASCII码是啥?看下表: 就是说,当我想发送字符“A”的时候,我要向串口发送十进制数65,或者十六进制数41。 驱动电
[单片机]
学<font color='red'>51单片机</font>-UART口发送一个字符
什么是单片机寻址方式?寻址方式有哪些?
寻找操作数地址的方式称为寻址方式。 1. 寄存器寻址 寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。例如,指令MOV R1,A的操作是把累加器A中的数据传送到寄存器R1中,其操作数存放在累加器A中,所以寻址方式为寄存器寻址。 如果程序状态寄存器PSW的RS1RS0=01(选中第二组工作寄存器,对应地址为08H~0FH),设累加器A的内容为20H,则执行MOV R1,A指令后,内部RAM 09H单元的值就变为20H。 2. 直接寻址 直接寻址是指把存放操作数的内存单元的地址直接写在指令中。在MCS-51单片机中,可以直接寻址的存储器主要有内部RAM区和特
[单片机]
【单片机】【学习日志】51单片机学习日志[Day3、2022.1.11]
第一部分_定时器 一、定时器的介绍 51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 作用: (1、用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作; (2、替代长时间的Delay,提高CPU的运算效率和处理速度。 … 二、STC89C52定时器资源 定时器个数:3个(T0、T1、T2)T0和T1与传统的51单片机兼容,T2是此型号单片机增加的资源; 注意:定时器的资源和单片机的型号是关联在一起的,不同的型号可能会有不同的定时器个数和操作方式,但一般来说,TO和 T1的操作方式是所有51单片机所共有的。 三、计时器框图 定时器在单片机内部就像一个小闹钟一样,根
[单片机]
【单片机】【学习日志】<font color='red'>51单片机</font>学习日志[Day3、2022.1.11]
protues仿真实现DHT11以及51单片机源程序
protues仿真DHT11显示温湿度 仿真原理图如下 DHT11单片机源程序如下: #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit Data=P3^6; //定义数据线 uchar rec_dat ; //用于显示的接收数据数组 sbit lcdrs=P3^0; sbit lcdrw=P3^1; sbit lcden=P3^2; void delay(uint n) { uint x,y; for(x=n;x 0;x--) for(y=110;y 0
[单片机]
protues仿真实现DHT11以及<font color='red'>51单片机</font>源程序
8051单片机DPTR的扩展设计
  单片机的出现是计算机技术发展史上的一个里程碑,它使计算机从海量数值计算进入到控制领域。在单片机中,以8051系列最为经典,至今仍是最普及、广泛使用的8位MCU架构。业界许多技术人员在其基础上不断进行性能扩展,使得8051系列芯片不断完善,从而形成一个庞大的体系。在传统的8051系列单片机中,设置了一组双字节寄存器(数据指针DPTR),用于访问外接的64 KB数据存储器和I/O接口电路;但在现今的8051单片机应用中,特别是在嵌入式系统中,往往涉及大规模的数据转移操作,而传统8051的一组数据指针使用起来则显得捉襟见肘,因此若在8051设计中将数据指针设计为两组或多组,则在执行大规模数据转移操作时会相当简便、迅速。在这种背景下,
[单片机]
80<font color='red'>51单片机</font>DPTR的扩展设计
51单片机查表指令的说明和应用举例
与ROM之间的数据传送。 MOVC A,@A + DPTR MOVC A, @A + PC 执行后会使/PSEN有效。 以DPTR 为基地址的 指令 ,可在ROM 的64KB范围内查表;而以PC为基地址的指令只能在(PC)+ 1为中心上、下256B范围内查表。 例、设(A)= 一个BCD码常数,试用查表法获得其相应的ASCII码。 解法I: MOV DPTR,#TAB MOVC A,@.A+DPTR ••• TAB:DB 30H DB 31H DB 32H,33H,34H,35H 解法II: MOVC A,@A+PC TAB;
[单片机]
51单片机开发中一些常用代码块
数码管中的16个字符 uchar code table ={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; 延时函数(使用之前先声明一遍) void delay(uint); void delay(uint z) { uint x,y; for(x=z;x 0;x--) for(y=110;y 0;y--); } 点亮第一个二级管 #include reg52.h //点亮第一个发光二级管 sbit D1=P1^0;//P1是P1口,P1^0代表D1,D1为自己命名的变量 m
[单片机]
STM32 RTC实时时钟(二)
上次实验完成了对实时时钟的基本功能——计时的实验,这次在计时的基础上对RTC的可编程闹钟的功能进行测试。 RTC 单元提供两个可编程闹钟,即闹钟 A 和闹钟 B。 可通过将 RTC_CR 寄存器中的 ALRAE 和 ALRBE 位置 1 来使能可编程闹钟功能。如果日历亚秒、秒、分钟、小时、日期或日分别与闹钟寄存器RTC_ALRMASSR/RTC_ALRMAR 和RTC_ALRMBSSR/RTC_ALRMBR 中编程的值相匹配,则 ALRAF 和 ALRBF 标志会被置为1。可通过 RTC_ALRMAR 和 RTC_ALRMBR 寄存器的 MSKx 位以及 RTC_ALRMASSR 和RTC_ALRMBSSR 寄
[单片机]
STM32 RTC<font color='red'>实时时钟</font>(二)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved