基于STM32的万年历设计基于STM32的万年历设计班级:姓名:学号:成绩:电子通信工程系题目:基于STM32的万年历设计前言:随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS12C887。
它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS12C887的使用寿命长,误差小。
对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。
该电路采用AT89S52单片机作为核心,采用数字式温度传感器DS18B20提取外界温度,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
进入新世纪LCD显示屏的技术和产业都取得了长足的发展,作为重要的现代信息发布媒体之一,LCD显示屏在证券交易、金融、交通、体育、广告等领域被广泛的应用。
伴随社会信息化进程的推进,LCD显示屏技术也在不断的推陈出新,应用领域愈加广阔。
基于STM32的LCD显示可以更好的满足各种需求,也更便于操作和实现。
现基于STM32在液晶显示屏幕上显示文本及图形。
目前,显示技术和显示工业的发展迅速。
显示技术是传递视觉的信息技术。
液晶显示器件LCD是当今最有发展前途的一种平板显示器件,它具有很多独到的优异特性。
它具有显示信息多、易于多彩化、体积小、重量轻、功耗低、寿命长、价格低、无辐射、无污染、接口控制方便等优点。
截至目前,我国在液晶显示取得较大进步,我国LCD产业已经走过了近30年的历程.经历几次大的投资浪潮之后,我国内地已经成为世界最大的TN-LCD(扭曲液晶显示器)生产基地和主要的STN-LCD(超扭曲液晶显示器)生产基地,并且从2003年开始,涉足TFT-LCD(薄膜晶体管液晶显示器)领域.本课题设计采用STM32F103VE开发板,实现在LCD显示屏上显示由按键可操控的万年历功能。
本实验用到的硬件部分主要有STM32开发板、USB线、LCD液晶模块,在LCD显示屏上显示相关内容。
综上所述万年历应具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
本课题利用 STM32 的 RTC 实现一个简易的电子时钟,在液晶显示屏中显示时间值。
显示时间格式为XX:XX:XX(时:分:秒),当时间计数为: 23: 59: 59 时将刷新为: 00: 00: 00。
1.功能描述1.1设计要求1.具有数字时钟功能。
2.具有简单日历功能。
3.具有手动校准时间功能。
4.具有闰年识别功能。
1.2 RTC(实时时钟)简介实时时钟是一个独立的定时器。
RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。
修改计数器的值可以重新设置系统当前的时间和日期。
RTC 模块和时钟配置系统(RCC_BDCR 寄存器)是在后备区域,即在系统复位或从待机模式唤醒后 RTC 的设置和时间维持不变。
系统复位后,禁止访问后备寄存器和 RTC,防止对后备区域(BKP)的意外写操作。
执行以下操作使能对后备寄存器和 RTC 的访问:1.设置寄存器 RCC_APB1ENR 的 PWREN 和 BKPEN 位来使能电源和后备接口时钟。
2.设置寄存器 PWR_CR 的 DBP 位使能对后备寄存器和 RTC 的访问。
当我们需要在掉电之后,又需要 RTC 时钟正常运行的话,单片机的 VBAT脚需外接3.3V 的锂电池。
当我们重新上电的时候,主电源给 VBAT 供电,当系统掉电之后 VBAT 给 RTC 时钟工作, RTC 中的数据都会保持在后备寄存器当中。
野火STM32 开发板的 VBAT 引脚接了 3.3V 的锂电。
3.STM32自带了RTC时钟计数器,从0开始计数到232。
每一个计数代表秒计数,每六十个计数代表分计数,以此类推。
24(小时)*60(分钟)*60(秒钟)=86400代表一天的计数时间。
假设当前计数为count,count/86400得到计数的天数,根据这个得到年月日。
Count%86400得到时分秒。
4.根据1中得到的年月日时分秒,进行计算的程序有:闰年判断,星期几计算,当前月有多少天等等。
另外,秒表为RTC一秒钟定时计数1.3设计方案的选择1.3.1可选择的芯片方案整个系统用STM32F103VE单片机作为中央控制器,由单片机执行采集内部RTC值,时钟信号通过单片机I/O口传给LCD12864,单片机模块控制驱动模块驱动显示模块,通过显示模块来实现信号的输出、LCD12864的显示及相关的控制功能。
系统设有按键模块用于对时间进行调整及扩展多个小键盘。
方案一:采用89C51芯片采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
方案二:采用AT89S52芯片片内ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。
不使用时钟芯片,而直接用AT89S52单片机来实现电子万年历设计。
AT89S52是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦写1000余次。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
若采用单片机计时,利用它的一个16位定时器/计数器每50ms产生一个中断信号,中断20次后产生一个秒信号,然后根据时间进制关系依次向分、时、日、星期、月、年进位。
这样就实现了直接用单片机来实现电子万年历设计。
方案三:采用STM32单片机STM32是一个低功耗,高性能32位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器。
主要性能有:与MCS-51单片机产品兼容、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符、易编程。
从单片机芯片主要性能角度出发,本数字电子钟单片机芯片选择设计采用方案采用STM32F103VE。
1.3.2 显示模块选择方案和论证:方案一:采用ILI9341LED液晶显示屏采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,显示质量高,没有电磁辐射,可视面积大,应用范围广,画面效果好,数字式接口,匀称小巧,功耗小。
方案二:采用点阵式数码管显示动态显示,即各位数码管轮流点亮,对于显示器各位数码管,每隔一段延时时间循环点亮一次。
利用人的视觉暂留功能可以看到整个显示,但须保证扫描速度足够快,人的视觉暂留功能才可察觉不到字符闪烁。
显示器的亮度与导通电流、点亮时间及间隔时间的比例有关。
调整参数可以实现较高稳定度的显示。
动态显示节省了I/O口,降低了能耗。
点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示.方案三:采用LED数码管动态扫描LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。
从节省单片机芯片I/O口和降低能耗角度出发,本数字电子钟数码管显示选择设计采用方案一,既ILI9341LED显示。
1.3.3时钟芯片的选择方案和论证:方案一:直接采用单片机定时计数器直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。
所以不采用此方案。
方案二:采用DS1302时钟芯片实现时钟采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.方案三:采用STM32的RTC定时器由于STM32自带了实现计时功能的RTC时钟计数器,可以直接使用。
1.3.4电路设计最终方案综上各方案所述,对本课题方案选定: 采用STM32F103VE作为主控制芯片; STM32自带的RTC提供时钟;LCD液晶显示作为显示。
1.4电源电路本设计所需电源电压为直流、电压值大小5V的电压源。
从硬件实物设计简易程度与经费方面考虑,用两节电压值大小2.5V干电池与电路电压源引脚相连接即可达到硬件设计要求。
即本设计可采用两节电压值大小2.5V干电池做硬件电路电压源。
为了方便改写程序,本次实验采用USB线连接电脑进行操作。
1.5按键电路本设计所需按键用于进行显示时间的调整与设置扩展的小键盘。
单片机芯片4个I/O口可与按键直接相连,通过编程,单片机芯片即可控制按键接口电平的高低,即按键的开与关,以达到用按键进行显示时间的调整与设置扩展的小键盘的设计要求。
2.硬件设计2.1设计组成框图电脑USB线图 设计的组成框图 2.2 STM32F103VE 实验板STM32F103系列属于中低端的32位ARM 微控制器,该系列芯片是意法半导体(ST )公司出品,其内核是Cortex-M3。
该系列芯片按片内Flash 的大小可分为三大类:小容量(16K 和32K )、中容量(64K 和128K )、大容量(256K 、384K 和512K )。
芯片集成定时器,CAN ,ADC ,SPI ,I2C ,USB ,UART ,等多种功能。
分为三大类: LD(小于64K), MD (小于256K ), HD (大于256K ), STM32F103VET6类属第三类。
STM32F103ZET6芯片介绍:●基于ARM Cortex-M3核心的32 位微控制器,LQFP-144封装.●512K 片内FLASH (相当于硬盘),64K 片内RAM (相当于内存) ,片内FLASH 支持在线编程(IAP).●高达72M 的频率,数据,指令分别走不同的流水线,以确保 CPU 运行速度达到最大化 .●通过片内BOOT 区,可实现串口下载程序(ISP).●片内双RC 晶振,提供8M 和32K 的频率.●支持片外高速晶振(8M),和片外低速晶振(32K).其中片外低速晶振可用于 CPU 的实时时钟,带后备电源引脚,用于掉电后的时钟行走.●42个16位的后备寄存器(可以理解为电池保存的RAM),利用外置的纽扣电池,和实现掉电数据保存功能.●支持 JTAG,SWD 调试.配合廉价的J-LINK,实现高速低成本的开发调试方STM32开发板LCD 液晶模块按键 区案。