基于STM32的智能万年历---张作栋_第1页
基于STM32的智能万年历---张作栋_第2页
基于STM32的智能万年历---张作栋_第3页
基于STM32的智能万年历---张作栋_第4页
基于STM32的智能万年历---张作栋_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计说明书课程设计说明书设计题目: 基于STM32的智能万年历 专 业: 电气工程及其自动化 班 级: 2013-3 设 计 人: 张作栋(201303201329) 山 东 科 技 大 学2016 年 7 月 8 日课程设计任务书课程设计任务书学院 电气信息系 专业 电气工程及其自动化 班级 2013-3 姓名 张作栋 一、课程设计题目: 基于 STM32 的智能万年历 专题名称:最小应用系统 二、课程设计主要参考资料(1) 刘火良,杨森.STM32 库开发实战指南M.北京:机械工业出版社.2013.5(2) ADS7943 中文参考资料M/CD. (3) ILI9320 控制器中文参考

2、资料M/CD. 三、课程设计应解决主要问题(1)最小应用系统:包括 MCU、复位、启动、晶振、电源等。 (2)日历的显示和设置; (3)万年历的算法和实现; (4)定时闹钟功能; (5)无线设置功能。 四、课程设计相关附件(如:图纸、软件等)(1)软件:Keil Vision4 (2)开发平台:神州号 STM32 嵌入式技术开发板 五、任务发出日期: 2016.6.27 课程设计完成日期: 2016.7.8 指导教师签字: 系主任签字: 指导教师对课程设计的评语指导教师对课程设计的评语 指导教师(签章): 日期: 山东科技大学学生课程设计山东科技大学学生课程设计II摘要摘要 单片机应用技术飞速

3、发展,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及生活中广泛使用的各种智能IC卡、电子宠物等,从大到国家防卫,小到日常生活,方方面面都离不开单片机。单片机是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。 二十一世纪的今天科技与经济迅速发展,人们的生活节奏变得越来越快,生活水平越来越高,对于生活的品味和质量的要求也更高。人们不再满足于只能提供简单计时功能的时钟,希望在能保证计时精确的基础上能多添加一些其他功能,诸如日历、定时等。本文主要介绍了以STM

4、32F103VCT6开发板为核心部件来设计的一款万年历,以其内部的RTC时钟模块作为时钟,用TFTLCD液晶显示器作为显示模块,时钟电路能准确提供24小时制时间、平年闰年的判断以及定时。采用Keil uVision4进行编写调试程序,以神州二号嵌入式技术开发板为硬件平台进行设计,最终实现在显示屏上显示时间、日期、以及进行定时等功能。 以基于 STM32 的智能万年历作为设计的课题,因为它有很好的开放性和可发挥性,不仅考察了对单片机的掌握能力而且强调了对单片机扩展的应用。另外液晶显示的万年历已经越来越流行,特别适合在家庭居室、办公室、大厅、会议室、车站和广场等地方使用,它具有显示清晰直观、走时准

5、确、可以进行夜视等功能,并且还可以扩展出其它多种功能。所以,电子万年历作为设计课题很有价值。经过两周的课程设计,我们完成了按键和触摸两种方式对万年历的控制,实现了基本的万年历功能和闹钟功能。本次课程设计让我对万年历有了深刻理解,更让我对 stm32 有了更进一步的学习。关键词:STM32F103VCT6;最小应用系统;万年历 山东科技大学学生课程设计山东科技大学学生课程设计III目录1.1.课程设计任务课程设计任务 .1 11.1 课程设计目的 .11.2 设计要求 .11.3 技术要求 .11.4 解决的主要问题 .21.5 两周时间安排 .22 2 总体方案设计总体方案设计 .3 32.1

6、 整体方案设计 .32.2 模块工作原理 .32.2.1 最小应用系统模块.32.2.2 基础配置模块.32.2.3 时间运行模块.32.2.4 触摸屏显示模块.42.2.5 触摸屏触摸模块.42.2.6 闹钟设置模块.42.3 硬件模块简介 .42.3.1 最小应用系统.52.3.2 TFTLCD 显示屏 .53 3 硬件设计硬件设计 .6 63.1 STM32 硬件系统原理图.63.1.1 MCU.63.1.2 复位电路.73.1.3 启动电路.83.1.4 晶振电路.83.1.5 电源电路.93.1.6 蜂鸣器电路.103.2 触摸屏模块电路设计 .113.2.1 TFTLCD 简介 .

7、113.2.2 显示设置.123.2.3 触摸设置 .133.2.4 驱动设置.133.3 硬件系统模块电路 .133.3.1 专题硬件选型依据及简介 .133.3.2 专题主芯片的内部逻辑结构.143.3.3 外部管脚特性.15 3.3.4 与 MCU 的硬件接口连接 .164 4 软件设计软件设计 .19194.1 万年历定时设计思路 .194.2 主程序模块 .19山东科技大学学生课程设计山东科技大学学生课程设计IV4.3 TFT-LCD 触摸屏模块.204.4 专题设计 .204.4.1.针对专题的信息传输.204.4.2.芯片的工作方式.214.4.3.时序图.224.4.4.流程图

8、.235 5 调试与结果调试与结果 .24245.1 测试任务 .245.2 测试目的目标 .245.3 测试软硬件环境 .255.4 测试的过程及其步骤 .255.5 测试结果 .256 6 总结总结 .27277 7 致谢致谢 .2828参考文献参考文献 .2929山东科技大学学生课程设计山东科技大学学生课程设计01.1.课程设计任务课程设计任务1.11.1 课程设计目的课程设计目的 (1) 学习万年历的原理,学会定时器、触摸屏在万年历中的应用。 (2) 通过万年历的制作使学生熟练掌握所学的相关知识内容,并培养学生工程设计的一般方法和技巧。 1.21.2 设计要求:设计要求: 独立思考、共

9、同合作、保质保量、按时完成。1.31.3 技术要求:技术要求: (1) 系统组成 系统选用STM32F103单片机为微处理器,使用开发板上具有的按键、指示灯、触摸屏和串口等实现万年历的功能。 (2) 实现功能: 1) 日历、时间的调整,通过按键切换实现对年月日时分秒的调整控制,可以设置每一部分的初始值。2) 具备闰年的自动调整功能 3) 具有定时闹钟功能:通过按键/触摸屏设置定时时间。定时时间到,蜂鸣器发出鸣叫声,维持5S。 4) 上位机功能:可以把单片机的时间数据通过串口或者USB传送至上位机。5) 无线设置功能:通过远程设置万年历。(3) 模块组成:STM32 单片机最小应用系统;设置显示

10、模块;闹钟模块;时间运行模块等;山东科技大学学生课程设计山东科技大学学生课程设计11.41.4 解决的主要问题:解决的主要问题:(1) 最小应用系统设计:设计 STM32 的最小应用系统,包括 MCU、复位、启动、晶振、电源等。(2) 日历的显示和设置;(3) 万年历的算法和实现;(4) 定时闹钟功能;(5) 无线设置功能。1.51.5 两周时间安排两周时间安排(1)第一周:星期一:布置设计任务,收集相关资料。星期二:确定设计方案星期三:软、硬件的总体设计星期四、五、六、日:上机调试(2)第二周星期一、二、三:上机调试星期四:完成设计报告。星期五:17:00 之前上交课程设计报告。山东科技大学

11、学生课程设计山东科技大学学生课程设计22 2 总体方案设计总体方案设计2.12.1 整体方案设计整体方案设计MCU启动蜂鸣器电源LCD显示屏复位晶振实时时钟2.22.2 模块工作原理模块工作原理2.2.1 最小应用系统模块最小应用系统模块 最小应用系统包括 MCU 和电源、复位、晶振、启动等,该系统可以接收数据传给上位机,通过上位机将数据传输到显示屏上显示数据,也可以通过改变数据让其调整显示屏上的数据。另外它能使蜂鸣器发声。2.2.2 基础配置模块基础配置模块 基础配置模块实现对 SysClock、RCC、GPIO、EXTI、NVIC、Timer、USART等功能模块进行基础配置,设置其输入输

12、出方式、速度及其它专属配置,并使能需要的管脚及外设,设置中断。2.2.3 时间运行模块时间运行模块 时间运行模块是用来对时间运行的算法进行编程,通过算法编程实现对年、月、日、时、分、秒的处理,实现秒满 60 清零并进 1,分满 60 清零并进 1,时满 24 清零并进 1,日满 28 或 29 或 30 或 31 清零并进 1,月满 12 清零并进山东科技大学学生课程设计山东科技大学学生课程设计31 的功能。2.2.4 触摸屏显示模块触摸屏显示模块 触摸屏显示模块使用 TFT-LCD 即薄膜晶体管液晶显示器,使用 TFTLCD 模块驱动芯片中的 ILI9320 芯片,实现触摸屏的显示。TFT-

13、LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管 (TFT),可以有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。 TFT-LCD 也被叫做真彩液晶显示器。2.2.5 触摸屏触摸模块触摸屏触摸模块 触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,当手指触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发生变化,在 X 和 Y两个方向上产生信号,然后送到触摸屏控制器。控制器侦测到这一接触并计算出 X,Y 的位置,再根据获得的位置模拟鼠标的方式运行。2.2.6 闹钟设置模块闹钟设置模块

14、定时闹钟模块是利用 Timer 函数进行操作,通过设置闹钟时间,倒计时使其到达指定时间触发蜂鸣器,从而实现闹钟提示的功能。2.32.3 硬件模块简介硬件模块简介 在智能万年历项目中,我们采用的硬件主要是基于 STM32F103VCT6 的神州二号开发板,它的主要性能如下表所示:山东科技大学学生课程设计山东科技大学学生课程设计42.3.1 最小应用系统最小应用系统 最小应用系统是完成此项目所有功能的基础,它主要包含 MCU 和电源、复位、晶振、启动等,我们通过程序使能这些硬件,让它完成相应的功能。 MCU:微控制单元,是把中央处理器的频率与规格做适当缩减,并将内存、计数器、USB、A/D 转换、

15、UART、PLC、DMA 等周边接口, LCD 驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。 复位电路:就是利用它把电路恢复到起始状态。就像计算器的清零按钮的作用一样,以便回到原始状态,重新进行计算。和计算器清零按钮有所不同的是,复位电路启动的手段有所不同。 晶振电路:驱动整个系统中的各个时钟进行工作。 启动电路:启动整个系统。 电源:给整个系统供电。 2.3.2 TFTLCD 显示屏显示屏 TFT(Thin Film Transistor)即薄膜场效应晶体管。所谓薄膜晶体管,是指液晶显示器上的每一液晶像素点都是由集成在其后的薄膜晶体管来驱动。从而可以做到高

16、速度、高亮度、高对比度显示屏幕信息。山东科技大学学生课程设计山东科技大学学生课程设计53 3 硬件设计硬件设计3.13.1 stm32stm32 硬件系统原理图硬件系统原理图我们组选用神州二号开发板来完成我们的任务目标,它是基于 STM32F103VCT6 开发的,面向企业和广大爱好者,开发板功能强大,外围资源丰富,例程丰富,如下图所示:此章主要介绍最小应用系统(MCU、复位、启动、晶振、电源等)和此设计相关硬件。3.1.1 MCU神州二号 STM32 开发板选择的是 STM32F103VCT6 作为 MCU,该芯片是 STM32F103系列里面配置非常强大的了,它拥有的资源包括:48KB R

17、AM、256KB FLASH、2 个基本定时器、4 个通用定时器、2 个高级定时器、3 个 SPI、2 个 IIC、5 个串口、1 个USB、1 个 CAN、3 个 ADC、1 个 DAC、1 个 SDIO 接口、以及 80 个通用 IO 口。神州二号开发板选用的是外设资源和管脚资源最丰富的 100 脚 LQFP 封装的STM32F103VCT6 芯片,充分满足企业和广大爱好者的评估开发需求。所以我们选择了它作为我们的主芯片。山东科技大学学生课程设计山东科技大学学生课程设计6MCU 部分原理图如下图所示3.1.2 复位电路复位电路 图中所示是开发板板载的复位按键(RESET),用于复位 STM

18、32,还具有复位液晶显示屏的功能,因为液晶模块的复位引脚和 STM32 的复位引脚是连接在一起的,当按下该键的时候,STM32 和液晶一并被复位。因为 STM32 是低电平复位的,所以我们设计的电路也是低电平复位的,这里的 R 和 C 构成了上电复位电路。同时,开发板把TFT_LCD 的复位引脚也接在 RESET 上,这样这个复位按钮不仅可以用来复位 MCU,还可以复位 LCD。山东科技大学学生课程设计山东科技大学学生课程设计73.1.3 启动电路启动电路 在 STM32F103VCT6 里,可以通过 BOOT1:0引脚选择三种不同启动模式。启动模式如下: 在系统复位后,SYSCLK 的第 4

19、 个上升沿,BOOT 引脚的值将被锁存。用户可以通过设置 BOOT1 和 BOOT0 引脚的状态,来选择在复位后的启动模式。 在从待机模式退出时,BOOT 引脚的值将被被重新锁存,因此,在待机模式下 BOOT 引脚应保持为需要的启动配置。在启动延迟之后,CPU 从地址 0 x0000 0000 获取堆栈顶的地址,并从启动存储器的 0 x0000 0004 指示的地址开始执行代码。 因为固定的存储器映像,代码区始终从地址 0 x0000 0000 开始(通过 ICode 和 DCode总线访问),而数据区(SRAM)始终从地址 0 x2000 0000 开始(通过系统总线访问)。Cortex-M

20、3 的 CPU 始终从 ICode 总线获取复位向量,即启动仅适合于从代码区开始(典型地从 Flash 启动)。STM32F103VCT6 微控制器实现了一个特殊的机制,系统可以不仅仅从 Flash 存储器或系统存储器启动,还可以从内置 SRAM 启动。 3.1.4 晶振电路晶振电路 STM32F103 内部已经包含了 8MHz 高速内部 RC 震荡电路,但是其精度不是很高,为此,我们在外部增加了 25MHz 的晶振电路,为系统的可靠动作提供时序基准。 STM32F103 内部已经包含了 40KHZ 低速内部 RC 震荡电路 LSE,但是其精度不是很高,为此我们在外设部分增加了 32.768K

21、HZ 的晶振电路,可以用于驱动独立看门狗和通过程序选择驱动 RTC 实时时钟。晶振电路图如下:山东科技大学学生课程设计山东科技大学学生课程设计83.1.5 电源电路电源电路 VDDA 与 VREF 是 STM32 处理器数字|模拟转换(ADC)电路需要使用到的模拟参考电源和模拟电源输入。其相关管脚定义如下: 在神州二号开发板上,VREF 和 VDDA 电源相关电路如下图所示,为保障其稳定性需要隔离并增强独立的滤波储能电容。3.1.6 蜂鸣器电路蜂鸣器电路 神州二号 STM32 开发板板载了一个有源蜂鸣器,其原理图如图所示:山东科技大学学生课程设计山东科技大学学生课程设计9 有源蜂鸣器是指自带了

22、震荡电路的蜂鸣器,这种蜂鸣器一接上电就会自己震荡发声。而如果是无源蜂鸣器,则需要外加一定频率(25KHz)的驱动信号才会发声。这里我们选择使用有源蜂鸣器,方便大家使用。 图中 Q1 是用来扩流,R60 则是一个下拉电阻,避免 MCU 复位的时候,蜂鸣器可能发声的现象。BEEP 信号直接连接在 MCU 的 PB8 上面,PB8 可以做 PWM 输出,所以大家如果想玩高级点(如:控制蜂鸣器“唱歌”),就可以使用 PWM 来控制蜂鸣器。3.1.7 实时时钟电路实时时钟电路 神州二号开发的 STM32 处理器内部带有 RTC 实时时钟,使用我们的代码可以实现年月日时分秒及星期等计算与输出功能。 内部的

23、 RTC 实时时钟在系统正常运行时使用系统的 3.3V 电源,而在系统断电时则电池供电保证时间信息持续不丢失。其供电 VBAT 采用 CR1220 纽扣电池,相关电路如下:山东科技大学学生课程设计山东科技大学学生课程设计103.23.2 触摸屏模块电路设计触摸屏模块电路设计3.2.1 TFTLCD 简介简介 TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),可有效地克服非选

24、通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。模块原理图如下图所示:其中 CS:TFTLCD 片选信号。 WR:向 TFTLCD 写入数据。 RD:从 TFTLCD 读取数据。 D15:0:16 位双向数据线。 RST:硬复位 TFTLCD。 RS:命令/数据标志(0,读写命令;1,读写数据)。需要说明的是,TFTLCD 模块的 RST 信号线是直接接到 STM32 的复位脚上,并不由软件控制,这样可以省下来一个 IO 口。另外我们还需要一个背光控制线来控制 TFTLCD的背光。所以,我们总共需要的 IO 口数目为 21 个。

25、3.2.2 显示设置显示设置 神州二号开发板提供的 TFTLCD 模块,其驱动芯片有很多种类型,我们这里用ILI9320 控制器。 ILI9320 液晶控制器自带显存,其显存总大小为 172820(240*320*18/8),即 18 位模山东科技大学学生课程设计山东科技大学学生课程设计11式(26 万色)下的显存量。模块的 16 位数据线与显存的对应关系为 565 方式,如图所示:最低 5 位代表蓝色,中间 6 位为绿色,最高 5 位为红色。数值越大,表示该颜色越深。下表是 ILI9320 的几个重要命令: 其中,R32,R33 是设置 GRAM 的行地址和列地址。R32 用于设置列地址(X

26、 坐标,0239),R33 用于设置行地址(Y 坐标,0319)。当我们要在某个指定点写入一个颜色的时候,先通过这两个命令设置到该点,然后写入颜色值就可以了。3.2.3 触摸触摸设置设置 对触摸屏的控制有专用的控制芯片。触摸屏的控制芯片主要完成两个任务:一是完成电极电压的切换,二是采集接触点处的电压值并实现 A/D 转换。 触摸屏控制芯片主要由触摸检测部件和触摸屏控制器组成。触摸检测部件安装在显示器屏幕前面,用于检测用户触摸位置,接受位置信号后送至触摸屏控制器;而触摸屏控制器的主要作用是从触摸点检测装置上接收触摸信息,并将它转换成触点坐标,再送给MPU,同时它能接收 MPU 发来的命令并加以执

27、行。3.2.4 驱动设置驱动设置TFTLCD 显示需要的相关设置步骤如下:1)设置 STM32 与 TFTLCD 模块相连接的 IO。这一步,我们先将与 TFTLCD 模块相连的 IO 口进行初始化,以便驱动 LCD。这里我们用到的是 FSMC。2)初始化 TFTLCD 模块。通过向 TFTLCD 写入一系列的设置,来启动 TFTLCD 的显示。为后续显示字符和数字做准备。3)通过函数将字符和数字显示到 TFTLCD 模块上。山东科技大学学生课程设计山东科技大学学生课程设计123.33.3 硬件系统模块电路硬件系统模块电路3.3.1 专题硬件选型依据及简介专题硬件选型依据及简介 神州二号开发板

28、是基于 STM32F103VCT6 开发的,其内部的资源主要有:48KB RAM、256KB FLASH、2 个基本定时器、4 个通用定时器、2 个高级定时器、3 个SPI、2 个 IIC、5 个串口、1 个 USB、1 个 CAN、3 个 ADC、1 个 DAC、1 个 SDIO 接口、以及 80 个通用 IO 口。神州二号开发板的特点有:供电灵活、下载方便、外观大气、设计灵活、资源丰富、调试方便、触摸彩屏等。神州二号开发板选用的是外设资源和管脚资源最丰富的 100 脚 LQFP 封装的 STM32F103VCT6 芯片,充分满足企业和广大爱好者的评估开发需求。同时也符合我们这次课程设计的要

29、求,所以我们选择了它作为我们的主芯片。 3.3.2 专题主芯片的内部逻辑结构专题主芯片的内部逻辑结构STM32F103VCT6 的主系统由以下部分构成: 四个驱动单元: CortexM3 内核 DCode 总线(D-bus),和系统总线(S-bus) 通用 DMA1 和通用 DMA2 四个被动单元 内部 SRAM 内部闪存存储器 FSMC AHB 到 APB 的桥(AHB2APBx),它连接所有的 APB 设备,这些都是通过一个多级的 AHB 总线构架相互连接的,如下图所示:山东科技大学学生课程设计山东科技大学学生课程设计13 ICode 总线该总线将 CortexM3 内核的指令总线与闪存指

30、令接口相连接。指令预取在此总线上完成。 DCode 总线该总线将 CortexM3 内核的 DCode 总线与闪存存储器的数据接口相连接(常量加载和调试访问)。 系统总线系统总线此总线连接 CortexM3 内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA 间的访问。 DMA 总线此总线将 DMA 的 AHB 主控接口与总线矩阵相联,总线矩阵协调着 CPU 的 DCode 和DMA 到 SRAM、闪存和外设的访问。 总线矩阵总线矩阵总线矩阵协调内核系统总线和 DMA 主控总线之间的访问仲裁,仲裁利用轮换算法。包含 4 个驱动部件(CPU 的 DCode、系统总线、DMA1 总线

31、和 DMA2 总线)和 4 个被动部件(闪存存储器接口(FLITF)、SRAM、FSMC 和 AHB2APB 桥)。 AHB 外设通过总线矩阵与系统总线相连,允许 DMA 访问。AHB/APB 桥(APB) 两个 AHB/APB 桥在 AHB 和 2 个 APB 总线间提供同步连接。APB1 操作速度限于36MHz,APB2 操作于全速(最高 72MHz)。 山东科技大学学生课程设计山东科技大学学生课程设计143.3.3 外部管脚特性外部管脚特性STM32F103VCT6 使用 LQFP100 封装,其外部管脚图如下:其外部管脚应用于本实验主要有以下几个体现:(1)触摸 TFT 彩屏接口:PF

32、8、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 供电;JLINK V8 供电,包括 5V 或

33、3.3V。3.3.4 与与 MCU 的硬件接口连接的硬件接口连接蜂鸣器蜂鸣器蜂鸣器在硬件上是直接连接好了的,不需要经过任何设置,直接编写代码就可以了。蜂鸣器的驱动信号连接在 STM32 的 PB8 上。山东科技大学学生课程设计山东科技大学学生课程设计15蜂鸣器与 STM32 连接图图中我们用到一个 NPN 三极管(S8050)来驱动蜂鸣器,R60 主要用于防止蜂鸣器的误发声。当 PB8 输出高电平的时候,蜂鸣器将发声,当 PB8 输出低电平的时候,蜂鸣器停止发声。触摸屏触摸屏神州二号开发板自带的触摸屏属于电阻式触摸屏,电阻屏的特点有:1)是一种对外界完全隔离的工作环境,不怕灰尘、水汽和油污。2

34、)可以用任何物体来触摸,可以用来写字画画,这是它们比较大的优势。3)电阻触摸屏的精度只取决于 A/D 转换的精度,因此都能轻松达到 4096*4096。TFTLCD 模块的触摸屏总共有 5 跟线与 STM32 连接,连接电路图如下图所示: 从图中可以看出,T_MISO、T_PEN、T_CS、T_MOSI 和 T_SCK 分别连接在 STM32 的PF8、PF10、PB2、PF9 和 PB1 上。 山东科技大学学生课程设计山东科技大学学生课程设计16显示屏显示屏TFT-LCD 的液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数

35、无关,大大提高了图像质量。它的管脚图如下:从上图可以看出,TFTLCD 模块采用 16 位的并行方式与外部连接,之所以不采用 8 位的方式,是因为彩屏的数据量比较大,尤其在显示图片的时候,如果用 8 位数据线,就会比 16 位方式慢一倍以上,我们当然希望速度越快越好,所以我们选择 16 位的接口。山东科技大学学生课程设计山东科技大学学生课程设计174 4 软件设计软件设计4.14.1 万年历定时设计思路万年历定时设计思路神州号的处理器集成了 RTC 实时时钟,在处理器复位或系统掉电但有实时时钟电池的情况下,能维持系统当前的时间和日期的准确性。实时时钟是一个独立的定时器。在相应软件配置下,可提供

36、时钟日历的功能,修改计数器的值可以重新设置系统当前的时间和日期。4.24.2 主程序模块主程序模块主要函数为各初始化函数、中断函数、定时函数和主函数,另外还有显示屏显示与触摸的相应配置。在主函数中,先对各项配置进行初始化,然后设定年月日等变量初始值,最后对 LCD 屏进行相应设置,对数据进行处理并调用,使其显示于触摸屏上,另外还可对字体颜色,字号或者背景颜色进行设置。主程序流程图如下: 开始设定各变量初始值初始化系统时钟配置GPIO,EXTI,NVIC,TIMER,LCDUSART1发送字节,字符串配置主函数 处理年、月、日、时、分、秒、定时器是否调整时间日期否是显示设定时间和日期显示已配置的

37、时间和日期山东科技大学学生课程设计山东科技大学学生课程设计184.34.3 TFT-LCDTFT-LCD 触摸屏触摸屏模块模块 TFT-LCD 触摸屏是电阻式触摸屏,电阻式触摸屏利用压力感应进行控制。电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理、光滑防擦的塑料层、它的内表面也涂有一层涂层、在他们之间有许多细小的(小于 1/1000 英寸)的透明隔离点把两层导电层隔开绝缘。当手指触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发生变化,在 X和

38、 Y 两个方向上产生信号,然后送触摸屏控制器。控制器侦测到这一接触并计算出(X,Y)的位置,再根据获得的位置模拟鼠标的方式运作。这就是电阻技术触摸屏的最基本的原理。 对触摸屏的控制有专用的控制芯片。触摸屏的控制芯片主要完成两个任务:一是完成电极电压的切换,二是采集接触点处的电压值并实现 A/D 转换。 触摸屏控制芯片主要由触摸检测部件和触摸屏控制器组成。触摸检测部件安装在显示器屏幕前面,用于检测用户触摸位置,接受位置信号后送至触摸屏控制器;而触摸屏控制器的主要作用是从触摸点检测装置上接收触摸信息,并将它转换成触点坐标,再送给MPU,同时它能接收 MPU 发来的命令并加以执行。 4.44.4 专

39、题设计专题设计4.4.1.针对专题的信息传输针对专题的信息传输USART通用同步异步收发器,全双工数据交换,利用分数波特率发生器提供宽范围的波特率选择,支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和irDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTX/RTS)操作。它还允许多处理器通信。用多缓冲器配置的DMA方式,可以实现高速数据通信。STM32的USART串口,采用分数波特率发生器,最高速率=72M/16=4.5Mb/S。任何USART通信,需要用到2个对外连接的引脚:RxD、TxD。Rx:接收数据串行输入。通过过采样技术来区别数据和噪音,从而恢

40、复数据。 Tx:发送数据输出。当发送器被禁止时,输出引脚恢复到它的I/O端口配置。当发送器被激活,并且不发送数据时,Tx引脚处于高电平。在单线和智能卡模式里,此I/O口被同时用于数据的发送和接收。山东科技大学学生课程设计山东科技大学学生课程设计19传输的内容格式是以字符串和 ASCII 码的形式传送。(1)OSI 协议OSI 七层参考模型不是通讯标准,它只给出一个不会由于技术发展而必须修改的稳定模型,使有关标准和协议能在模型定义的范围内开发和相互配合。一般的通讯协议只符合OSI 七层模型的某几层。(2)TCP/IP 协议实现了五层协议: 1)物理层:对应 OSI 的物理层。2)网络接口层:类似

41、于 OSI 的数据链路层。3)Internet 层:OSI 模型在 Internet 网使用前提出,未考虑网间连接。4)传输层:对应 OSI 的传输层。5)应用层:对应 OSI 的表示层和应用层。4.4.2.芯片的工作方式芯片的工作方式(1)STM32 三种启动模式对应的存储介质均是芯片内置的,它们是:1. FLASH 启动模式:芯片内置的 Flash。2. SRAM 启动模式:芯片内置的 RAM 区,就是内存。3. 系统存储器:芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的 ISP 程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个 R

42、OM 区。在每个 STM32 的芯片上都有两个管脚 BOOT0 和 BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。 BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。BOOT1=1 BOOT0=1 从内置 SRAM 启动,这种模式可以用于调试。要注意的是,一般不使用内置 SRAM 启动(BOOT1=1 BOOT0=1),因为 SRAM 掉电后数据就山东科技大学学生课程设计山东科技大学学生课程设计20丢失。多数情况下 SRAM 只是在调试时使用,也可以做其他

43、一些用途。如做故障的局部诊断,写一段小程序加载到 SRAM 中诊断板上的其他电路,或用此方法读写板上的Flash 或 EEPROM 等。还可以通过这种方法解除内部 Flash 的读写保护,当然解除读写保护的同时 Flash 的内容也被自动清除,以防止恶意的软件拷贝。(2)TFTLCD 的控制器为 ILI9320它采用 26 万色的 TFT 屏,分辨率为 320240,采用 16 位的 80 并口与外部连接。 该模块的 80 并口有如下一些信号线:CS/PC9:TFTLCD 片选信号。 片选拉低时,表示选中。RS/PC8:命令/数据标志(0,读写命令;1,读写数据)。WR/PC7:向 TFTLC

44、D 写入数据。在 WR 的上升沿,使数据写入到 LCD 芯片里。RD/PC6:从 TFTLCD 读取数据。 在 RD 的上升沿,使数据锁存到数据线上。D15:0:16 位双向数据线。RST:硬复位 TFTLCD。 RST 信号线,是直接接到 STM32 的复位脚上,并不由软件控制,这样可以省下来一个 IO端口。另外,还需要一个背光控制线来控制 TFTLCD 的背光。所以,总共需要的 IO 口数目为 21个。控制器自带显存,其显存总大小为 172820(240*320*18/8),即 18 位模式(26 万色)下的显存量。4.4.3.时序图时序图定时的时序图显示的时序图山东科技大学学生课程设计山

45、东科技大学学生课程设计214.4.4.流程图流程图定时的流程图:开始进入TIM3中断服务函数秒-1如果秒0是否如果分0是分-1秒=59否如果时0是时-1分=59秒=59js=1使能TIM4TIM3清除中断标志位进入TIM4中断服务函数蜂鸣器响TIM4清除中断标志位结束山东科技大学学生课程设计山东科技大学学生课程设计22TFTLCD 显示流程图:开始设置STM32与TFTLCD相连的IO口初始化TFTLCD通过设计的程序将要显示的汉字、数字等显示在屏幕合适的位置上结束5 5 调试与结果调试与结果5.15.1 测试任务测试任务主要对我们设计的智能万年历进行三个方面的测试:(1)屏幕显示模块测试(2

46、)时间设置模块测试(3)定时闹钟模块测试山东科技大学学生课程设计山东科技大学学生课程设计235.25.2 测试目的目标测试目的目标 测试是为了检验我们设计是否达标,测试软件编程是否能通过编译和测试软硬件是否能协调工作。打开万年历之后检查其是否可以显示时间,是否可以通过按键或触摸来修改数据,是否可以实现万年历的算法及是否可以根据判断闰年来显示调整时间,是否可以实现定时闹钟的功能。测试能以最少的人力和时间发现潜在的各种错误和缺陷,保证设计的质量和可靠性,发现方案中的不足并改进,在实现设计目标的同时优化设计结果,尽量实现低功耗。5.35.3 测试软硬件环境测试软硬件环境硬件环境:JLinkARM V

47、8 仿真器一套;STM103F103VCT6 的神舟二号开发板一套。软件环境:装有 RV MDK 仿真软件的 Pentium 以上的计算机一台。5.45.4 测试的过程及其步骤测试的过程及其步骤1)接通电源,打开开发板,下载电脑中的程序。2)观察 TFTLCD 显示屏上显示的数据是否与我们在电脑上输入的配置相同。3)设定倒计时,观察倒计时的数到达指定状态以后蜂鸣器是否发出响声。4)测试万年历的算法能否实现。5)测试万年历的设置能否实现。5.55.5 测试结果测试结果定时闹钟模块测试:可以发出响声,持续 5s。日历的显示模块测试:万年历可以正确的显示数据。日历的设置模块测试:万年历可以触摸式调整数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论