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

下载本文档

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

文档简介

/课程设计说明书设计题目:基于STM32的智能万年历专业:电气工程及其自动化班级:2013-3设计人:张作栋〔201303201329山东科技大学2016年7月8日课程设计任务书学院电气信息系专业电气工程及其自动化班级2013-3姓名张作栋课程设计题目:基于STM32的智能万年历专题名称:最小应用系统课程设计主要参考资料刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社.2013.5ADS7943中文参考资料[M/CD].ILI9320控制器中文参考资料[M/CD].课程设计应解决主要问题最小应用系统:包括MCU、复位、启动、晶振、电源等。日历的显示和设置;万年历的算法和实现;定时闹钟功能;无线设置功能。课程设计相关附件〔如:图纸、软件等软件:KeilμVision4开发平台:神州Ⅱ号STM32嵌入式技术开发板任务发出日期:2016.6.27课程设计完成日期:2016.7.8指导教师签字:系主任签字:指导教师对课程设计的评语指导教师〔签章:日期:摘要单片机应用技术飞速发展.从导弹的导航装置.到飞机上各种仪表的控制.从计算机的网络通讯与数据传输.到工业自动化过程的实时控制和数据处理.以及生活中广泛使用的各种智能IC卡、电子宠物等.从大到国家防卫.小到日常生活.方方面面都离不开单片机。单片机是集CPU.RAM.ROM.定时.计数和多种接口于一体的微控制器。它体积小.成本低.功能强.广泛应用于智能产业和工业自动化上。二十一世纪的今天科技与经济迅速发展.人们的生活节奏变得越来越快.生活水平越来越高.对于生活的品味和质量的要求也更高。人们不再满足于只能提供简单计时功能的时钟.希望在能保证计时精确的基础上能多添加一些其他功能.诸如日历、定时等。本文主要介绍了以STM32F103VCT6开发板为核心部件来设计的一款万年历.以其内部的RTC时钟模块作为时钟.用TFTLCD液晶显示器作为显示模块.时钟电路能准确提供24小时制时间、平年闰年的判断以及定时。采用KeiluVision4进行编写调试程序.以神州二号嵌入式技术开发板为硬件平台进行设计.最终实现在显示屏上显示时间、日期、以及进行定时等功能。以基于STM32的智能万年历作为设计的课题.因为它有很好的开放性和可发挥性.不仅考察了对单片机的掌握能力而且强调了对单片机扩展的应用。另外液晶显示的万年历已经越来越流行.特别适合在家庭居室、办公室、大厅、会议室、车站和广场等地方使用.它具有显示清晰直观、走时准确、可以进行夜视等功能.并且还可以扩展出其它多种功能。所以.电子万年历作为设计课题很有价值。经过两周的课程设计.我们完成了按键和触摸两种方式对万年历的控制.实现了基本的万年历功能和闹钟功能。本次课程设计让我对万年历有了深刻理解.更让我对stm32有了更进一步的学习。关键词:STM32F103VCT6;最小应用系统;万年历目录96521.课程设计任务1247011.1课程设计目的126771.2设计要求184551.3技术要求1300981.4解决的主要问题2281861.5两周时间安排295332总体方案设计3215222.1整体方案设计3265002.2模块工作原理3141552.2.1最小应用系统模块3112222.2.2基础配置模块3235582.2.3时间运行模块3137462.2.4触摸屏显示模块4283922.2.5触摸屏触摸模块486472.2.6闹钟设置模块466792.3硬件模块简介4146032.3.1最小应用系统5216222.3.2TFTLCD显示屏5106433硬件设计6173003.1STM32硬件系统原理图6151593.1.1MCU616063.1.2复位电路7115563.1.3启动电路894213.1.4晶振电路8284033.1.5电源电路9233733.1.6蜂鸣器电路10233763.2触摸屏模块电路设计11234953.2.1TFTLCD简介11107073.2.2显示设置1278183.2.3触摸设置13318093.2.4驱动设置13261633.3硬件系统模块电路13151163.3.1专题硬件选型依据及简介13288403.3.2专题主芯片的内部逻辑结构14119793.3.3外部管脚特性1516983.3.4与MCU的硬件接口连接16294064软件设计19224774.1万年历定时设计思路1976934.2主程序模块19306724.3TFT-LCD触摸屏模块204964.4专题设计2016704.4.1.针对专题的信息传输2052024.4.2.芯片的工作方式21191924.4.3.时序图22119934.4.4.流程图23132895调试与结果24312475.1测试任务24126175.2测试目的目标2444885.3测试软硬件环境25138785.4测试的过程及其步骤25128895.5测试结果2541236总结2736517致谢2825516参考文献291.课程设计任务1.1课程设计目的学习万年历的原理.学会定时器、触摸屏在万年历中的应用。通过万年历的制作使学生熟练掌握所学的相关知识内容.并培养学生工程设计的一般方法和技巧。1.2设计要求:独立思考、共同合作、保质保量、按时完成。1.3技术要求:系统组成系统选用STM32F103单片机为微处理器.使用开发板上具有的按键、指示灯、触摸屏和串口等实现万年历的功能。实现功能:日历、时间的调整.通过按键切换实现对年月日时分秒的调整控制.可以设置每一部分的初始值。具备闰年的自动调整功能具有定时闹钟功能:通过按键/触摸屏设置定时时间。定时时间到.蜂鸣器发出鸣叫声.维持5S。上位机功能:可以把单片机的时间数据通过串口或者USB传送至上位机。无线设置功能:通过远程设置万年历。模块组成:STM32单片机最小应用系统;设置显示模块;闹钟模块;时间运行模块等;1.4解决的主要问题:最小应用系统设计:设计STM32的最小应用系统.包括MCU、复位、启动、晶振、电源等。日历的显示和设置;万年历的算法和实现;定时闹钟功能;无线设置功能。1.5两周时间安排〔1第一周:星期一:布置设计任务.收集相关资料。星期二:确定设计方案星期三:软、硬件的总体设计星期四、五、六、日:上机调试〔2第二周星期一、二、三:上机调试星期四:完成设计报告。星期五:17:00之前上交课程设计报告。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驱动电路都整合在单一芯片上.形成芯片级的计算机.为不同的应用场合做不同组合控制。复位电路:就是利用它把电路恢复到起始状态。就像计算器的清零按钮的作用一样.以便回到原始状态.重新进行计算。和计算器清零按钮有所不同的是.复位电路启动的手段有所不同。晶振电路:驱动整个系统中的各个时钟进行工作。启动电路:启动整个系统。电源:给整个系统供电。TFTLCD显示屏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.可有效地克服非选通时的串扰.使显示液晶屏的静态特性与扫描线数无关.因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。模块原理图如下图所示:其中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。当我们要在某个指定点写入一个颜色的时候.先通过这两个命令设置到该点.然后写入颜色值就可以了。3.2.3触摸设置对触摸屏的控制有专用的控制芯片。触摸屏的控制芯片主要完成两个任务:一是完成电极电压的切换.二是采集接触点处的电压值并实现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开发的.其内部的资源主要有: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芯片.充分满足企业和广大爱好者的评估开发需求。同时也符合我们这次课程设计的要求.所以我们选择了它作为我们的主芯片。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封装.其外部管脚图如下:其外部管脚应用于本实验主要有以下几个体现:触摸TFT彩屏接口:PF8、PF10、PB2、PF9和PB1。蜂鸣器电路:PB8。复位电路:RC加按键实现手动复位和上电复位。按键输入:神州二号开发板共有8个功能按键.分别是WAKEUP按键〔PD0和TAMPER按键<PD1>及上<PD3>下<PD4>左<PA8>右<PC13>确定和一个用于自定义功能的按键<PD2>。RTC实时时钟电路:RTC时钟在系统正常运行时使用系统的3.3V电源.而在系统断电时则用电池供电保证正常工作。电源电路:供电方式主要有三种.分别是USB接口供电.最大500mA;外部直流DC5V供电;JLINKV8供电.包括5V或3.3V。3.3.4与MCU的硬件接口连接蜂鸣器蜂鸣器在硬件上是直接连接好了的.不需要经过任何设置.直接编写代码就可以了。蜂鸣器的驱动信号连接在STM32的PB8上。蜂鸣器与STM32连接图图中我们用到一个NPN三极管〔S8050来驱动蜂鸣器.R60主要用于防止蜂鸣器的误发声。当PB8输出高电平的时候.蜂鸣器将发声.当PB8输出低电平的时候.蜂鸣器停止发声。触摸屏神州二号开发板自带的触摸屏属于电阻式触摸屏.电阻屏的特点有:1是一种对外界完全隔离的工作环境.不怕灰尘、水汽和油污。2可以用任何物体来触摸.可以用来写字画画.这是它们比较大的优势。3电阻触摸屏的精度只取决于A/D转换的精度.因此都能轻松达到4096*4096。TFTLCD模块的触摸屏总共有5跟线与STM32连接.连接电路图如下图所示:从图中可以看出,T_MISO、T_PEN、T_CS、T_MOSI和T_SCK分别连接在STM32的PF8、PF10、PB2、PF9和PB1上。显示屏TFT-LCD的液晶显示屏的每一个像素上都设置有一个薄膜晶体管〔TFT.可有效地克服非选通时的串扰.使显示液晶屏的静态特性与扫描线数无关.大大提高了图像质量。它的管脚图如下:从上图可以看出.TFTLCD模块采用16位的并行方式与外部连接.之所以不采用8位的方式.是因为彩屏的数据量比较大.尤其在显示图片的时候.如果用8位数据线.就会比16位方式慢一倍以上.我们当然希望速度越快越好.所以我们选择16位的接口。4软件设计4.1万年历定时设计思路神州Ⅱ号的处理器集成了RTC实时时钟.在处理器复位或系统掉电但有实时时钟电池的情况下.能维持系统当前的时间和日期的准确性。实时时钟是一个独立的定时器。在相应软件配置下.可提供时钟日历的功能.修改计数器的值可以重新设置系统当前的时间和日期。4.2主程序模块主要函数为各初始化函数、中断函数、定时函数和主函数.另外还有显示屏显示与触摸的相应配置。在主函数中.先对各项配置进行初始化.然后设定年月日等变量初始值.最后对LCD屏进行相应设置.对数据进行处理并调用.使其显示于触摸屏上.另外还可对字体颜色.字号或者背景颜色进行设置。主程序流程图如下:4.3TFT-LCD触摸屏模块TFT-LCD触摸屏是电阻式触摸屏.电阻式触摸屏利用压力感应进行控制。电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏.这是一种多层的复合薄膜.它以一层玻璃或硬塑料平板作为基层.表面涂有一层透明氧化金属〔透明的导电电阻导电层.上面再盖有一层外表面硬化处理、光滑防擦的塑料层、它的内表面也涂有一层涂层、在他们之间有许多细小的〔小于1/1000英寸的透明隔离点把两层导电层隔开绝缘。当手指触摸屏幕时.两层导电层在触摸点位置就有了接触.电阻发生变化.在X和Y两个方向上产生信号.然后送触摸屏控制器。控制器侦测到这一接触并计算出〔X.Y的位置.再根据获得的位置模拟鼠标的方式运作。这就是电阻技术触摸屏的最基本的原理。对触摸屏的控制有专用的控制芯片。触摸屏的控制芯片主要完成两个任务:一是完成电极电压的切换.二是采集接触点处的电压值并实现A/D转换。

触摸屏控制芯片主要由触摸检测部件和触摸屏控制器组成。触摸检测部件安装在显示器屏幕前面.用于检测用户触摸位置.接受位置信号后送至触摸屏控制器;而触摸屏控制器的主要作用是从触摸点检测装置上接收触摸信息.并将它转换成触点坐标.再送给MPU.同时它能接收MPU发来的命令并加以执行。4.4专题设计4.4.1.针对专题的信息传输USART通用同步异步收发器.全双工数据交换.利用分数波特率发生器提供宽范围的波特率选择.支持同步单向通信和半双工单线通信.也支持LIN〔局部互联网.智能卡协议和irDA〔红外数据组织SIRENDEC规范.以及调制解调器〔CTX/RTS操作。它还允许多处理器通信。用多缓冲器配置的DMA方式.可以实现高速数据通信。STM32的USART串口.采用分数波特率发生器.最高速率=72M/16=4.5Mb/S。任何USART通信.需要用到2个对外连接的引脚:RxD、TxD。Rx:接收数据串行输入。通过过采样技术来区别数据和噪音.从而恢复数据。Tx:发送数据输出。当发送器被禁止时.输出引脚恢复到它的I/O端口配置。当发送器被激活.并且不发送数据时.Tx引脚处于高电平。在单线和智能卡模式里.此I/O口被同时用于数据的发送和接收。传输的内容格式是以字符串和ASCII码的形式传送。〔1OSI协议OSI七层参考模型不是通讯标准.它只给出一个不会由于技术发展而必须修改的稳定模型.使有关标准和协议能在模型定义的范围内开发和相互配合。一般的通讯协议只符合OSI七层模型的某几层。〔2TCP/IP协议实现了五层协议:1物理层:对应OSI的物理层。2网络接口层:类似于OSI的数据链路层。3Internet层:OSI模型在Internet网使用前提出.未考虑网间连接。4传输层:对应OSI的传输层。5应用层:对应OSI的表示层和应用层。4.4.2.芯片的工作方式STM32三种启动模式对应的存储介质均是芯片内置的.它们是:1.FLASH启动模式:芯片内置的Flash。2.SRAM启动模式:芯片内置的RAM区.就是内存。3.系统存储器:芯片内部一块特定的区域.芯片出厂时在这个区域预置了一段Bootloader.就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除.即它是一个ROM区。在每个STM32的芯片上都有两个管脚BOOT0和BOOT1.这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。BOOT1=xBOOT0=0从用户闪存启动.这是正常的工作模式。BOOT1=0BOOT0=1从系统存储器启动.这种模式启动的程序功能由厂家设置。BOOT1=1BOOT0=1从内置SRAM启动.这种模式可以用于调试。要注意的是.一般不使用内置SRAM启动<BOOT1=1BOOT0=1>.因为SRAM掉电后数据就丢失。多数情况下SRAM只是在调试时使用.也可以做其他一些用途。如做故障的局部诊断.写一段小程序加载到SRAM中诊断板上的其他电路.或用此方法读写板上的Flash或EEPROM等。还可以通过这种方法解除内部Flash的读写保护.当然解除读写保护的同时Flash的内容也被自动清除.以防止恶意的软件拷贝。TFTLCD的控制器为ILI9320它采用26万色的TFT屏.分辨率为320×240.采用16位的80并口与外部连接。

该模块的80并口有如下一些信号线:CS/PC9:TFTLCD片选信号。片选拉低时.表示选中。RS/PC8:命令/数据标志〔0.读写命令;1.读写数据。WR/PC7:向TFTLCD写入数据。在WR的上升沿.使数据写入到LCD芯片里。RD/PC6:从TFTLCD读取数据。在RD的上升沿.使数据锁存到数据线上。D[15:0]:16位双向数据线。RST:硬复位TFTLCD。

RST信号线.是直接接到STM32的复位脚上.并不由软件控制.这样可以省下来一个IO端口。另外.还需要一个背光控制线来控制TFTLCD的背光。所以.总共需要的IO口数目为21个。控制器自带显存.其显存总大小为172820〔240*320*18/8.即18位模式〔26万色下的显存量。4.4.3.时序图定时的时序图显示的时序图4.4.4.流程图定时的流程图:TFTLCD显示流程图:5调试与结果5.1测试任务主要对我们设计的智能万年历进行三个方面的测试:〔1屏幕显示模块测试〔2时间设置模块测试〔3定时闹钟模块测试5.2测试目的目标测试是为了检验我们设计是否达标.测试软件编程是否能通过编译和测试软硬件是否能协调工作。打开万年历之后检查其是否可以显示时间.是否可以通过按键或触摸来修改数据.是否可以实现万年历的算法及是否可以根据判断闰年来显示调整时间.是否可以实现定时闹钟的功能。测试能以最少的人力和时间发现潜在的各种错误和缺陷.保证设计的质量和可靠性.发现方案中的不足并改进.在实现设计目标的同时优化设计结果.尽量实现低功耗。5.3测试软硬件环境硬件环境:J-Link—ARMV8仿真器一套;STM103F103VCT6的神舟二号开发板一套。软件环境:装有RVMDK仿真软件的Pentium以上的计算机一台。5.4测试的过程及其步骤1接通电源.打开开发板.下载电脑中的程序。2观察TFTLCD显示屏上显示的数据是否与我们在电脑上输入的配置相同。3设定倒计时.观察倒计时

温馨提示

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

评论

0/150

提交评论