基于STM32的智能万年历Word格式.doc

上传人:wj 文档编号:3656456 上传时间:2023-05-02 格式:DOC 页数:35 大小:6.78MB
下载 相关 举报
基于STM32的智能万年历Word格式.doc_第1页
第1页 / 共35页
基于STM32的智能万年历Word格式.doc_第2页
第2页 / 共35页
基于STM32的智能万年历Word格式.doc_第3页
第3页 / 共35页
基于STM32的智能万年历Word格式.doc_第4页
第4页 / 共35页
基于STM32的智能万年历Word格式.doc_第5页
第5页 / 共35页
基于STM32的智能万年历Word格式.doc_第6页
第6页 / 共35页
基于STM32的智能万年历Word格式.doc_第7页
第7页 / 共35页
基于STM32的智能万年历Word格式.doc_第8页
第8页 / 共35页
基于STM32的智能万年历Word格式.doc_第9页
第9页 / 共35页
基于STM32的智能万年历Word格式.doc_第10页
第10页 / 共35页
基于STM32的智能万年历Word格式.doc_第11页
第11页 / 共35页
基于STM32的智能万年历Word格式.doc_第12页
第12页 / 共35页
基于STM32的智能万年历Word格式.doc_第13页
第13页 / 共35页
基于STM32的智能万年历Word格式.doc_第14页
第14页 / 共35页
基于STM32的智能万年历Word格式.doc_第15页
第15页 / 共35页
基于STM32的智能万年历Word格式.doc_第16页
第16页 / 共35页
基于STM32的智能万年历Word格式.doc_第17页
第17页 / 共35页
基于STM32的智能万年历Word格式.doc_第18页
第18页 / 共35页
基于STM32的智能万年历Word格式.doc_第19页
第19页 / 共35页
基于STM32的智能万年历Word格式.doc_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于STM32的智能万年历Word格式.doc

《基于STM32的智能万年历Word格式.doc》由会员分享,可在线阅读,更多相关《基于STM32的智能万年历Word格式.doc(35页珍藏版)》请在冰点文库上搜索。

基于STM32的智能万年历Word格式.doc

(2)开发平台:

神州Ⅱ号STM32嵌入式技术开发板

五、任务发出日期:

2016.6.27课程设计完成日期:

2016.7.8

指导教师签字:

系主任签字:

指导教师对课程设计的评语

指导教师(签章):

日期:

山东科技大学学生课程设计

摘要

单片机应用技术飞速发展,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及生活中广泛使用的各种智能IC卡、电子宠物等,从大到国家防卫,小到日常生活,方方面面都离不开单片机。

单片机是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。

它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。

二十一世纪的今天科技与经济迅速发展,人们的生活节奏变得越来越快,生活水平越来越高,对于生活的品味和质量的要求也更高。

人们不再满足于只能提供简单计时功能的时钟,希望在能保证计时精确的基础上能多添加一些其他功能,诸如日历、定时等。

本文主要介绍了以STM32F103VCT6开发板为核心部件来设计的一款万年历,以其内部的RTC时钟模块作为时钟,用TFTLCD液晶显示器作为显示模块,时钟电路能准确提供24小时制时间、平年闰年的判断以及定时。

采用KeiluVision4进行编写调试程序,以神州二号嵌入式技术开发板为硬件平台进行设计,最终实现在显示屏上显示时间、日期、以及进行定时等功能。

以基于STM32的智能万年历作为设计的课题,因为它有很好的开放性和可发挥性,不仅考察了对单片机的掌握能力而且强调了对单片机扩展的应用。

另外液晶显示的万年历已经越来越流行,特别适合在家庭居室、办公室、大厅、会议室、车站和广场等地方使用,它具有显示清晰直观、走时准确、可以进行夜视等功能,并且还可以扩展出其它多种功能。

所以,电子万年历作为设计课题很有价值。

经过两周的课程设计,我们完成了按键和触摸两种方式对万年历的控制,实现了基本的万年历功能和闹钟功能。

本次课程设计让我对万年历有了深刻理解,更让我对stm32有了更进一步的学习。

关键词:

STM32F103VCT6;

最小应用系统;

万年历

目录

1.课程设计任务 1

1.1课程设计目的 1

1.2设计要求 1

1.3技术要求 1

1.4解决的主要问题 2

1.5两周时间安排 2

2总体方案设计 3

2.1整体方案设计 3

2.2模块工作原理 3

2.2.1最小应用系统模块 3

2.2.2基础配置模块 3

2.2.3时间运行模块 3

2.2.4触摸屏显示模块 4

2.2.5触摸屏触摸模块 4

2.2.6闹钟设置模块 4

2.3硬件模块简介 4

2.3.1最小应用系统 5

2.3.2TFTLCD显示屏 5

3硬件设计 6

3.1STM32硬件系统原理图 6

3.1.1MCU 6

3.1.2复位电路 7

3.1.3启动电路 8

3.1.4晶振电路 8

3.1.5电源电路 9

3.1.6蜂鸣器电路 10

3.2触摸屏模块电路设计 11

3.2.1TFTLCD简介 11

3.2.2显示设置 12

3.2.3触摸设置 

13

3.2.4驱动设置 13

3.3硬件系统模块电路 13

3.3.1专题硬件选型依据及简介 13

3.3.2专题主芯片的内部逻辑结构 14

3.3.3外部管脚特性 15

3.3.4与MCU的硬件接口连接 16

4软件设计 19

4.1万年历定时设计思路 19

4.2主程序模块 19

4.3TFT-LCD触摸屏模块 20

4.4专题设计 20

4.4.1.针对专题的信息传输 20

4.4.2.芯片的工作方式 21

4.4.3.时序图 22

4.4.4.流程图 23

5调试与结果 24

5.1测试任务 24

5.2测试目的目标 24

5.3测试软硬件环境 25

5.4测试的过程及其步骤 25

5.5测试结果 25

6总结 27

7致谢 28

参考文献 29

V

1.课程设计任务

1.1课程设计目的

(1)学习万年历的原理,学会定时器、触摸屏在万年历中的应用。

(2)通过万年历的制作使学生熟练掌握所学的相关知识内容,并培养学生工程设计的一般方法和技巧。

1.2设计要求:

独立思考、共同合作、保质保量、按时完成。

1.3技术要求:

(1)系统组成系统选用STM32F103单片机为微处理器,使用开发板上具有的按键、指示灯、触摸屏和串口等实现万年历的功能。

(2)实现功能:

1)日历、时间的调整,通过按键切换实现对年月日时分秒的调整控制,可以设置每一部分的初始值。

2)具备闰年的自动调整功能

3)具有定时闹钟功能:

通过按键/触摸屏设置定时时间。

定时时间到,蜂鸣器发出鸣叫声,维持5S。

4)上位机功能:

可以把单片机的时间数据通过串口或者USB传送至上位机。

5)无线设置功能:

通过远程设置万年历。

(3)模块组成:

STM32单片机最小应用系统;

设置显示模块;

闹钟模块;

时间运行模块等;

1.4解决的主要问题:

(1)最小应用系统设计:

设计STM32的最小应用系统,包括MCU、复位、启动、晶振、电源等。

1.5两周时间安排

(1)第一周:

星期一:

布置设计任务,收集相关资料。

星期二:

确定设计方案

星期三:

软、硬件的总体设计

星期四、五、六、日:

上机调试

(2)第二周

星期一、二、三:

星期四:

完成设计报告。

星期五:

17:

00之前上交课程设计报告。

28

2总体方案设计

2.1整体方案设计

2.2模块工作原理

2.2.1最小应用系统模块

最小应用系统包括MCU和电源、复位、晶振、启动等,该系统可以接收数据传给上位机,通过上位机将数据传输到显示屏上显示数据,也可以通过改变数据让其调整显示屏上的数据。

另外它能使蜂鸣器发声。

2.2.2基础配置模块

基础配置模块实现对SysClock、RCC、GPIO、EXTI、NVIC、Timer、USART等功能模块进行基础配置,设置其输入输出方式、速度及其它专属配置,并使能需要的管脚及外设,设置中断。

2.2.3时间运行模块

时间运行模块是用来对时间运行的算法进行编程,通过算法编程实现对年、月、日、时、分、秒的处理,实现秒满60清零并进1,分满60清零并进1,时满24清零并进1,日满28或29或30或31清零并进1,月满12清零并进1的功能。

2.2.4触摸屏显示模块

触摸屏显示模块使用TFT-LCD即薄膜晶体管液晶显示器,使用TFTLCD模块驱动芯片中的ILI9320芯片,实现触摸屏的显示。

TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管 

(TFT),可以有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。

 

TFT-LCD也被叫做真彩液晶显示器。

2.2.5触摸屏触摸模块

触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,当手指触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发生变化,在X和Y两个方向上产生信号,然后送到触摸屏控制器。

控制器侦测到这一接触并计算出X,Y的位置,再根据获得的位置模拟鼠标的方式运行。

2.2.6闹钟设置模块

定时闹钟模块是利用Timer函数进行操作,通过设置闹钟时间,倒计时使其到达指定时间触发蜂鸣器,从而实现闹钟提示的功能。

2.3硬件模块简介

在智能万年历项目中,我们采用的硬件主要是基于STM32F103VCT6的神州二号开发板,它的主要性能如下表所示:

2.3.1最小应用系统

最小应用系统是完成此项目所有功能的基础,它主要包含MCU和电源、复位、晶振、启动等,我们通过程序使能这些硬件,让它完成相应的功能。

MCU:

微控制单元,是把中央处理器的频率与规格做适当缩减,并将内存、计数器、USB、A/D转换、UART、PLC、DMA等周边接口,LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。

复位电路:

就是利用它把电路恢复到起始状态。

就像计算器的清零按钮的作用一样,以便回到原始状态,重新进行计算。

和计算器清零按钮有所不同的是,复位电路启动的手段有所不同。

晶振电路:

驱动整个系统中的各个时钟进行工作。

启动电路:

启动整个系统。

电源:

给整个系统供电。

2.3.2TFTLCD显示屏

TFT(ThinFilmTransistor)即薄膜场效应晶体管。

所谓薄膜晶体管,是指液晶显示器上的每一液晶像素点都是由集成在其后的薄膜晶体管来驱动。

从而可以做到高速度、高亮度、高对比度显示屏幕信息。

3硬件设计

3.1stm32硬件系统原理图

我们组选用神州二号开发板来完成我们的任务目标,它是基于STM32F103VCT6开发的,面向企业和广大爱好者,开发板功能强大,外围资源丰富,例程丰富,如下图所示:

此章主要介绍最小应用系统(MCU、复位、启动、晶振、电源等)和此设计相关硬件。

3.1.1MCU

神州二号STM32开发板选择的是STM32F103VCT6作为MCU,该芯片是STM32F103系列里面配置非常强大的了,它拥有的资源包括:

48KBRAM、256KBFLASH、2个基本定时器、4个通用定时器、2个高级定时器、3个SPI、2个IIC、5个串口、1个USB、1个CAN、3个ADC、1个DAC、1个SDIO接口、以及80个通用IO口。

神州二号开发板选用的是外设资源和管脚资源最丰富的100脚LQFP封装的STM32F103VCT6芯片,充分满足企业和广大爱好者的评估开发需求。

所以我们选择了它作为我们的主芯片。

MCU部分原理图如下图所示

3.1.2复位电路

图中所示是开发板板载的复位按键(RESET),用于复位STM32,还具有复位液晶显示屏的功能,因为液晶模块的复位引脚和STM32的复位引脚是连接在一起的,当按下该键的时候,STM32和液晶一并被复位。

因为STM32是低电平复位的,所以我们设计的电路也是低电平复位的,这里的R和C构成了上电复位电路。

同时,开发板把TFT_LCD的复位引脚也接在RESET上,这样这个复位按钮不仅可以用来复位MCU,还可以复位LCD。

3.1.3启动电路

在STM32F103VCT6里,可以通过BOOT[1:

0]引脚选择三种不同启动模式。

启动模式如下:

在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。

用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。

在从待机模式退出时,BOOT引脚的值将被被重新锁存,因此,在待机模式下BOOT引脚应保持为需要的启动配置。

在启动延迟之后,CPU从地址0x00000000获取堆栈顶的地址,并从启动存储器的0x00000004指示的地址开始执行代码。

因为固定的存储器映像,代码区始终从地址0x00000000开始(通过ICode和DCode总线访问),而数据区(SRAM)始终从地址0x20000000开始(通过系统总线访问)。

Cortex-M3的CPU始终从ICode总线获取复位向量,即启动仅适合于从代码区开始(典型地从Flash启动)。

STM32F103VCT6微控制器实现了一个特殊的机制,系统可以不仅仅从Flash存储器或系统存储器启动,还可以从内置SRAM启动。

3.1.4晶振电路

STM32F103内部已经包含了8MHz高速内部RC震荡电路,但是其精度不是很高,为此,我们在外部增加了25MHz的晶振电路,为系统的可靠动作提供时序基准。

STM32F103内部已经包含了40KHZ低速内部RC震荡电路LSE,但是其精度不是很高,为此我们在外设部分增加了32.768KHZ的晶振电路,可以用于驱动独立看门狗和通过程序选择驱动RTC实时时钟。

晶振电路图如下:

3.1.5电源电路

VDDA与VREF是STM32处理器数字|模拟转换(ADC)电路需要使用到的模拟参考电源和模拟电源输入。

其相关管脚定义如下:

在神州二号开发板上,VREF和VDDA电源相关电路如下图所示,为保障其稳定性需要隔离并增强独立的滤波储能电容。

3.1.6蜂鸣器电路

神州二号STM32开发板板载了一个有源蜂鸣器,其原理图如图所示:

有源蜂鸣器是指自带了震荡电路的蜂鸣器,这种蜂鸣器一接上电就会自己震荡发声。

而如果是无源蜂鸣器,则需要外加一定频率(2~5KHz)的驱动信号才会发声。

这里我们选择使用有源蜂鸣器,方便大家使用。

图中Q1是用来扩流,R60则是一个下拉电阻,避免MCU复位的时候,蜂鸣器可能发声的现象。

BEEP信号直接连接在MCU的PB8上面,PB8可以做PWM输出,所以大家如果想玩高级点(如:

控制蜂鸣器“唱歌”),就可以使用PWM来控制蜂鸣器。

3.1.7实时时钟电路

神州二号开发的STM32处理器内部带有RTC实时时钟,使用我们的代码可以实现年月日时分秒及星期等计算与输出功能。

内部的RTC实时时钟在系统正常运行时使用系统的3.3V电源,而在系统断电时则电池供电保证时间信息持续不丢失。

其供电VBAT采用CR1220纽扣电池,相关电路如下:

3.2触摸屏模块电路设计

3.2.1TFTLCD简介

TFT-LCD即薄膜晶体管液晶显示器。

其英文全称为:

ThinFilmTransistor-LiquidCrystalDisplay。

TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。

模块原理图如下图所示:

其中CS:

TFTLCD片选信号。

WR:

向TFTLCD写入数据。

RD:

从TFTLCD读取数据。

D[15:

0]:

16位双向数据线。

RST:

硬复位TFTLCD。

RS:

命令/数据标志(0,读写命令;

1,读写数据)。

需要说明的是,TFTLCD模块的RST信号线是直接接到STM32的复位脚上,并不由软件控制,这样可以省下来一个IO口。

另外我们还需要一个背光控制线来控制TFTLCD的背光。

所以,我们总共需要的IO口数目为21个。

3.2.2显示设置

神州二号开发板提供的TFTLCD模块,其驱动芯片有很多种类型,我们这里用ILI9320控制器。

ILI9320液晶控制器自带显存,其显存总大小为172820(240*320*18/8),即18位模式(26万色)下的显存量。

模块的16位数据线与显存的对应关系为565方式,如图所示:

最低5位代表蓝色,中间6位为绿色,最高5位为红色。

数值越大,表示该颜色越深。

下表是ILI9320的几个重要命令:

其中,R32,R33是设置GRAM的行地址和列地址。

R32用于设置列地址(X坐标,0~239),R33用于设置行地址(Y坐标,0~319)。

当我们要在某个指定点写入一个颜色的时候,先通过这两个命令设置到该点,然后写入颜色值就可以了。

对触摸屏的控制有专用的控制芯片。

触摸屏的控制芯片主要完成两个任务:

一是完成电极电压的切换,二是采集接触点处的电压值并实现A/D转换。

触摸屏控制芯片主要由触摸检测部件和触摸屏控制器组成。

触摸检测部件安装在显示器屏幕前面,用于检测用户触摸位置,接受位置信号后送至触摸屏控制器;

而触摸屏控制器的主要作用是从触摸点检测装置上接收触摸信息,并将它转换成触点坐标,再送给MPU,同时它能接收MPU发来的命令并加以执行。

3.2.4驱动设置

TFTLCD显示需要的相关设置步骤如下:

1)设置STM32与TFTLCD模块相连接的IO。

这一步,我们先将与TFTLCD模块相连的IO口进行初始化,以便驱动LCD。

这里我们用到的是FSMC。

2)初始化TFTLCD模块。

通过向TFTLCD写入一系列的设置,来启动TFTLCD的显示。

为后续显示字符和数字做准备。

3)通过函数将字符和数字显示到TFTLCD模块上。

3.3硬件系统模块电路

3.3.1专题硬件选型依据及简介

神州二号开发板是基于STM32F103VCT6开发的,其内部的资源主要有:

神州二号开发板的特点有:

供电灵活、下载方便、外观大气、设计灵活、资源丰富、调试方便、触摸彩屏等。

同时也符合我们这次课程设计的要求,所以我们选择了它作为我们的主芯片。

3.3.2专题主芯片的内部逻辑结构

STM32F103VCT6的主系统由以下部分构成:

●四个驱动单元:

─Cortex™M3内核DCode总线(D-bus),和系统总线(S-bus)

─通用DMA1和通用DMA2

●四个被动单元

─内部SRAM

─内部闪存存储器

─FSMC

─AHB到APB的桥(AHB2APBx),它连接所有的APB设备,这些都是通过一个多级的AHB总线构架相互连接的,如下图所示:

ICode总线

该总线将Cortex™M3内核的指令总线与闪存指令接口相连接。

指令预取在此总线上完成。

DCode总线

该总线将Cortex™M3内核的DCode总线与闪存存储器的数据接口相连接(常量加载和调试访问)。

系统总线

此总线连接Cortex™M3内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA间的访问。

DMA总线

此总线将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode和DMA到SRAM、闪存和外设的访问。

总线矩阵

总线矩阵协调内核系统总线和DMA主控总线之间的访问仲裁,仲裁利用轮换算法。

包含4个驱动部件(CPU的DCode、系统总线、DMA1总线和DMA2总线)和4个被动部件(闪存存储器接口(FLITF)、SRAM、FSMC和AHB2APB桥)。

AHB外设通过总线矩阵与系统总线相连,允许DMA访问。

AHB/APB桥(APB)

两个AHB/APB桥在AHB和2个APB总线间提供同步连接。

APB1操作速度限于36MHz,APB2操作于全速(最高72MHz)。

3.3.3外部管脚特性

STM32F103VCT6使用LQFP100封装,其外部管脚图如下:

其外部管脚应用于本实验主要有以下几个体现:

(1)触摸TFT彩屏接口:

PF8、PF10、PB2、PF9和PB1。

(2)蜂鸣器电路:

PB8。

(3)复位电路:

RC加按键实现手动复位和上电复位。

(4)按键输入:

神州二号开发板共有8个功能按键,分别是WAKEUP按键(PD0)和TAMPER按键(PD1)及上(PD3)下(PD4)左(PA8)右(PC13)确定和一个用于自定义功能的按键(PD2)。

(5)RTC实时时钟电路:

RTC时钟在系统正常运行时使用系统的3.3V电源,而在系统断电时则用电池供电保证正常工作。

(6)电源电路:

供电方式主要有三种,分别是USB接口供电,最大500mA;

外部直流DC5V供电;

JLINKV8供电,包括5V或3.3V。

3.3.4与MCU的硬件接口连接

蜂鸣器

蜂鸣器在硬件上是直接连接好了的,不需要经过任何设置,直接编写代码就可以了。

蜂鸣器的驱动信号连接在STM32的PB8上。

蜂鸣器与STM32连接图

图中我们用到一个NPN三极管(S8050)来驱动蜂鸣器,R60主要用于防止蜂鸣器的误发声。

当PB8输出高电平的时候,蜂鸣器将发声,当PB8输出低电平的时候,蜂鸣器停止发声。

触摸屏

神州二号开发板自带的触摸屏属于电阻式触摸屏,电阻屏的特点有:

1)是一种对外界完全隔离的工作环境,不怕灰尘、水汽和油污。

2)可以用任何物体来触摸,可以用来写字画画

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2