1、 1 嵌入式系统课程设计报告 基于 ARM 的时钟系统 院 系: 学生姓名: 专 业: 应用电子技术 班 级: 指导教师: 完成时间: 2 目 录 1 引言 . 错误 !未定义书签。 2 STM32 单片机 RTC 介绍 . 错误 !未定义书签。 3 总体设计框图 . 错误 !未定义书签。 4 硬件电路 . 2 4.1 STM32 芯片管脚介绍 . 2 4.2 STM32 复位和时钟电路设计 . 3 4.3 闹钟提醒电路 . 4 5 程 序流程图 . 4 5.1 主程序流程图 . 4 5.2 中断程序流程图 . 6 6 总结与体会 . 6 参考文献: . 7 附录 : . 8 3 基于 ARM
2、 的时钟系统 摘要:本设计选 择 STM32 为核心控制元件,设计了用 RTC 定时器实现时钟的控制与设计,本设计 能作为普通时钟用,而且能设置闹钟。程序 使用 C 语言进行编程,能动态显示当前时间,包括时、分、秒,并且用串口助手显示。 关键词: STM32 ARM 时钟 闹钟 1 引言 随着科技的发展,嵌入式系统广泛应用于工业控制和商业管理领域,在多媒体手机、袖珍电脑,掌上电脑,车载导航器等方面的应用,更是极大地促进了嵌入式技术深入到生活和工作各个方面。嵌入式系统主要由嵌入式处理器、相关支撑硬件及嵌入式软件系统组成。本文介绍基于 STM32F103R6T6 的嵌入式微处理器的电子时钟设计,并
3、且在液晶上显示。 2 STM32 单片机 RTC 介绍 STM32 的实时时钟( RTC)是一个独立的定时器。 RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可以提供时钟日历的功能,修改计数器的值可以重新设置系统当前的时间和日期。 STM32F10x 系列微控制器片上内置的RTC 模块,主要特性如下: ( 1) 可编程的预分频系数,分频系数最高位 220。 ( 2) 32 位的可编程计数器,可用于长程时间段的测量。 ( 3) 两个单独的时钟:用于 APB1 接口的 PLCK1 和 RTC 时钟(此时 RTC时钟 的频率必须小于 PCLK1 时钟的四分之一以上)。 ( 4) 可以选择一
4、下三种 RTC 的时钟源: HSE( high speed external)时钟除以 128,即高速外部时钟,接石英 /陶瓷谐振器,或者接外部时钟源,频率范围为 416MHz。 LSI( low speed internal)振荡器时钟,即低速内部时钟,频率为 40kHz。 LSE( low speed external)振荡器时钟,即低速外部时钟,接石英晶体,频率为 32.768kHz。 ( 5) 2 钟独立的复位类型: APB1 接口由系统复位。 RTC 核(预分频器、闹钟、计数器和分频器)只能由备份域复位。 ( 6) 3 个专门的可屏蔽中断: 4 闹钟中断,用来产生一个软件可编程的闹钟
5、中断。 秒中断,用来产生一个可编程的周期性中断信号(最长可达 1s)。 溢出中断,检测内部可编程计数器溢出并回转为 0 的状态。 3 总体设计框图 本电路主要由 3 大部分电路组成: ARM 最小系统电路、 时钟显示电路和闹钟警报电路(本设计用 LED 灯指示) 。其中 ATM 最小系统主要由复位电路和时钟电路组成。在该设计中,闹钟提醒由 LED 灯代替, 当闹钟时间到的话, LED 灯亮,延时设定的时间后自动关闭。总体设计方框图,如图 1 所示。 图 1 总体设计方框图 4 硬件电路 该设计分为软件设计和硬件设计两大模块,硬件电路由 ARM 最小系统电路、时钟显示电路和闹钟提醒电路组成。 4
6、.1 STM32 芯片管脚介绍 STM32F103R6T6 管脚示意图,如图 2 所示。 STM32 液晶显示电路 时钟电路 复位电路 闹铃提醒电路 5 PA014PA115PA216PA317PA420PA521PA622PA723PA841PA942PA1043PA1144PA1245PA13/JTMS/SWDIO46PA14/JTCK/SWCLK49PA15/JTDI50OSC_IN/PD05OSC_OUT/PD16PD254BOOT060NRST7VBAT1VDD_132VDD_248VDD_364VDD_419VDDA13STM32F103R6T6PB026PB127PB2/BOOT
7、128PB3/JTDO55PB4/JNTRST56PB557PB658PB759PB861PB962PB1029PB1130PB1233PB1334PB1435PB1536PC08PC19PC210PC311PC424PC525PC637PC738PC839PC940PC1051PC1152PC1253PC13_TAMPER_RTC2PC14_OSC32_IN3PC15_OSC32_OUT4VSS_131VSS_238VSS_363VSS_418VSSA12STM32图 2 STM32F103R6T6 管脚示意图 4.2 STM32 复位和时钟电路设计 此电路主要是复位电路和时钟电路两部分,其
8、中复位电路采用按键手动复位和上电 自动复位组合,电路如图 2(右)所示:其中 7 脚为 STM32 的复位端。时钟电路如图 2(左)所示:晶振采用的是 8MHz 和 32.786KHz, 8MKz 分别接 STM32的 5 脚和 6 脚, 32.786KHz 分别接 STM32 的 3 脚和 4 脚。 22pFC1422pFC1812Y38MGND10KR14104pFC12K5CHM1GNDVCCNRSTSOC_INOSC_OUT22pFC2322pFC2412Y432.768KGNDPC14PC15复位电路时钟电路图 3 STM32 复位和时钟电路 6 4.3 闹钟提醒电路 本设计的闹钟提
9、醒电路没有采用蜂鸣器,为了调试方便用实验板上的发光二极管 LED1 LED4 指示,其与实验板对应接口为 PC0 PC3。电路如图 4 所示。 330R3330R6330R7330R9LED1LED2LED3LED4VCCPC0PC1PC2PC3图 4 闹钟提醒电路 5 程序流程图 5.1 主程序流程图 主程序流程图,如 图 5 所示。 7 图 5 主程序流程图 8 5.2 中断程序流程图 中断程序流程图,如图 6 所示。 图 6 中断程序流程图 6 总结与体会 通过这次时钟的设计,使我对 ARM 有了更深的理解。刚开始拿到题提目,我先是查找相关资料,从图书馆和网上找到相关的课题,参考借鉴别人
10、的设计,从而理清我们设计的思路。此次作业设计大致可以分为两部分,电路图部分和程序编程部分,其中最有难度的是程序的编写与调试。在编写程序的过程中,我遇到了各种各样的问题,工程之间的结合,对于其中的错误怎样解决, 需要配置什么,更改哪里等等。对于 ARM 我学的很浅,编程遇到问题不知道如何解决,我知道这个是我的弱点,但在这两周的课程设计中,用 Keil uVision4 在 ARM 开发板上进行程序调试,遇到问题解决问题,在这个过程中我收获了不少。 9 参考文献 1 彭刚、秦志强等 .基于 ARM Cortex-M3 的 STM32 系列嵌入式微控制器应用实践 M.北京 :电子工业出版社 2 李
11、宁 .基于 MDK 的 STM32 处理器开发应用 M.北京航空航天大学出版社,2008. 3 王永红、徐炜、赫立平 .STM32 系列 ARM Cortex-M3 微控制器原理与实践 M.北京航空航天大学出版社, 2008. 4 ARM Limited.Cortex-M3 Technical Reference Manual(r2p0). ARM DDI 0037G 2008. 5 10 附录 1 总体电路图 PA014PA115PA216PA317PA420PA521PA622PA723PA841PA942PA1043PA1144PA1245PA13/JTMS/SWDIO46PA14/J
12、TCK/SWCLK49PA15/JTDI50OSC_IN/PD05OSC_OUT/PD16PD254BOOT060NRST7VBAT1VDD_132VDD_248VDD_364VDD_419VDDA13STM32F103R6T6PB026PB127PB2/BOOT128PB3/JTDO55PB4/JNTRST56PB557PB658PB759PB861PB962PB1029PB1130PB1233PB1334PB1435PB1536PC08PC19PC210PC311PC424PC525PC637PC738PC839PC940PC1051PC1152PC1253PC13_TAMPER_RTC2
13、PC14_OSC32_IN3PC15_OSC32_OUT4VSS_131VSS_238VSS_363VSS_418VSSA12STM3222pFC1422pFC1822pFC2322pFC2412Y38M12Y432.768KGNDGND10KR14104pFC12K5CHM1GNDVCCNRSTNRSTD4D3PowerVCCGNDVBATVBATOSC_INOSC_OUTSOC_INOSC_OUTVCCVCC104pFC25GNDGNDGNDPC14PC15PC14PC15330R3330R6330R7330R9LED1LED2LED3LED4VCCPC0PC1PC2PC4PC0PC1PC2PC3