版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《嵌入式系统综合实践》课程设计(报告)嵌入式系统综合实践课程设计(报告)题目:基于STM32的万年历摘要电子万年历是实现对年、月、日、时、分、秒数字显示的计时装置,广泛用于个人家庭,车站,码头,办公室,银行大厅等场所,成为人们日常生活中的必需品。数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。钟表的数字化给人们生产生活带来了极大的方便,在此基础上完成的万年历精度高,功能易于扩展。可扩展成为诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等电路。所有这些,都是以钟表数字化为基础的。因此,研究数字时钟及扩大其应用有着非常现实的意义。本设计就是数字时钟简单的扩展应用。关键词:万年历STM32温度传感器LCD显示目录TOC\o"1-3"\h\u19310第1章概述 第2章总体设计方案2.1设计任务本课题所研究的电子万年历是嵌入式控制技术的一个具体应用,主要研究内容包括以下几个方面:(1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、低功耗、抗断电的器件。(2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。(3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。(4)根据硬件电路图,在开发板上完成器件的焊接。(5)根据设计的硬件电路,编写控制STM32芯片的程序。(6)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。(7)在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。主要功能:可以显示时、分、秒,倒计时,温度测量功能,显示器可选(数码管或LCD液晶屏);实现按键调整时间。扩展功能:用按键或触屏查询万年历;有倒计时或秒表等功能。2.2方案论证方案一:采用AT89S52芯片片内ROM全都采用FlashROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。不使用时钟芯片,而直接用AT89S52单片机来实现电子万年历设计。AT89S52是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦写1000余次。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。若采用单片机计时,利用它的一个16位定时器/计数器每50ms产生一个中断信号,中断20次后产生一个秒信号,然后根据时间进制关系依次向分、时、日、星期、月、年进位。这样就实现了直接用单片机来实现电子万年历设计。方案二:采用STM32单片机STM32是一个低功耗,高性能32位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器。主要性能有:与MCS-51单片机产品兼容、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符、易编程。从单片机芯片主要性能角度出发,本数字电子钟单片机芯片选择设计采用方案采用STM32F103VE。2.3系统组成嵌入式电子万年历的制作有多种方法,可供选择的器件和运用的技术也有很多种。所以,系统的总体设计方案应在满足系统功能的前提下,充分考虑系统使用的环境,所选的结构要简单使用、易于实现,器件的选用着眼于合适的参数、稳定的性能、较低的功耗以及低廉的成本。本设计采用主控芯片STM32作为主控制器,温度采集采用DS18B20,时间采集通过内部的RTC模块,通过软件计算可以获取各种时间信息。显示采用LCD12864,大屏清楚,可以显示图片等,电路系统构成框图如图2.1所示。图2.1系统总图第3章硬件设计3.1嵌入式系统介绍下面是STM32最小系统。包括晶振电路和rtc晶振。复位电路和对外接口图3.1stm32最小系统图3.2晶振电路和rtc晶振3.2主要单元电路设计3.3.1温度传感器电路设计DS18B20是数字式的温度传感器,其将温度值直接转换为数字量输出。数字式的温度传感器可以简化电路的设计,增加系统的稳定性,也就是说在不同的温度环境下使用,抗干扰能力较高。直接数字量输出,省去AD转换电路,降低系统的复杂程度。对于DS18B20的应用十分广泛,现在的高校或职业技术教学,都是以其为教学的材料DS18B20的性能特点如下:(1).单总线接口,节省I/O口[8];(2).可通过数据线供电,电压范围为3.3~5.0V;(3).温度测量范围为-55℃~+125℃;(4).测温分辨率可达0.0625℃;(5).温度以9位或12位A/D转换;DS18B20的外形和内部结构:DS18B20内部结构主要由四部分组成,64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器[17,18]。DS18B20的外形及管脚排列如下图3.3所示图3.3DS18B20外形及引脚排列图3.3.2显示模块
2.2
12864的特点:
12864液晶具有功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,近几年来被广泛用于单片机控制的只能仪器、仪表和低功耗电子产品中。带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。如下所示图3.4液晶LCD12864显示器图3.4液晶LCD12864显示器图3.5LCD显示电路万年历原理图如图:图3.6万年历原理图第4章软件设计4.1软件总体设计软件主流程的主要思路就是系统初始化,然后显示界面和时间,温度,检查串口是否有下发的时间设置之类,如果有更新时间。正常情况下1秒更新一次屏幕。流程图如图4.1所示图4.1系统流程图4.2各功能模块的软件设计4.2.1DS18B20软件设计温度采集程序主要是对DS18B20的控制程序。由微控制器STM32F103ZET6严格按照DS18B20的时序控制它,进行温度的采集和转换并输出到TFTLCD,使我们能够清楚地看到当前温度值。对DS18B20的设定在主程序已经完成,在这几只是其转化的程序,不在需要不停地对其设置,减轻了系统的压力,使系统的运行速度提高。温度采集程序流程图如下:开始开始提示错误检测DS18B20是否存在提示错误检测DS18B20是否存在复位DS18B20复位DS18B20初始化DS18B20IO端口初始化DS18B20IO端口开始温度转换开始温度转换得到温度值得到温度值LCD显示温度值LCD显示温度值图4.2温度采集模块程序流程图4.2.2RTC时钟软件设计具体讲一下RTC模块:主要是通过中断查询时间的开始初始化RTC模块。RTC_Init();配置中断及其优先级,然后开始工作。秒定时器中断就更新时间。就是不断增加秒计数。然后程序处理这个数据,根据一个参考计算当前的时间,星期和日期。具体看一下几个函数:u8RTC_Get(void)通过与参考时间比较秒计数,然后通过计算得到现在的年月日时分秒。还有就是通过一个时间与星期的算法来计算出当天的星期。RTC_Get_Week(timer.w_year,timer.w_month,timer.w_date);//获取星期
第5章系统调试本设计仿真软件采用keiluvision5软件。Keil5是一款兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。硬件仿真图采用Proteus
Pro
8.9,这是一款嵌入式系统仿真开发软件,同时也是英国Lab
Center
Electronics公司研发推出的最新的版本。该软件经实现了从原理图设计、单片机编程、系统仿真到PCB设计,真正实现了从概念到产品的完整设计,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,能够帮助用户进行模拟电路运行以及电路设计:通过仿真调试,LCD显示屏成功显示年、月、日、时、分、秒、还有温度,功能成功实现。万年历仿真结果如图5.1所示:图5.1万年历仿真图总结纸上得来终觉浅,遗憾当年付出少。大学四年就将结束,我就快交上我的毕业设计,长时间辛苦过后,我很沉重的写下我的总结。在整个系统的构架上,我通过查找资料,借助互联网,最终完成了系统的设计,但是系统的问题任然存在。在早期准备时,本计划是要将采集到的温度进行存储,以便于使用者查询。可是由于时间、精力的原因,存储功能还是没有实现,这也是一种遗憾。在元器件的原理与使用方法上,不是很了解,同在互联网上查找资料后,能够勉强的应用,完成了本次设计。这也说明我在大学学习的四年里,付出的精力还是不够的,学习的内容不够充实,掌握的只是不够扎实,理论上的还没有与电子技术完美结合。
参考文献[1]文化.嵌入式系统的开发与应用分析[J].电脑编程技巧与维护,2020,(12):53-55.[2]刘军.精通STM32F4[M].北京:北京航空航天大学出版社,2015.[3]曾文兵.基于STM32F407的视频采集与传输系统设计[D].武汉:华中师范大学,2016.[4]杨宸,王智超,徐浩然,李天宇,王啸岳.基于STM32的智能万年历的定时闹钟设计[J].中外企业家,2019,(25):56-57.[5]邝爱华.基于STM32的智能家居系统基本实现[J].微型电脑应用,2019,35(04):136-140.[6]张路莹,许亚迪,郑文青,周麟坤.基于STM32的智能万年历设计[J].现代工业经济和信息化,2018,8(13):40-41.[7]刘磊.基于STM32的电子万年历系统设计[J].科技资讯,2015,13(01):20.[8]焦江丽,李凤莲.以ARMCortex-M3为基础的STM32开发板的设计与实现[J].中国新通信,2013,15(09):94-96.[10]\o"Showauthordetails"ZhuW\o"Showauthordetails"Ruan.Designandresearchofsolarphotovoltaicpowergenerationcontrollerbasedonstm32microcontroller[J].AdvancedMaterialsResearch,2017(34):66-69.
附录主程序#include"led.h"#include"delay.h"#include"sys.h"#include"key.h"#include"usart.h"#include"exti.h"#include"wdg.h"#include"timer.h"#include"pwm.h"#include"lcd.h"#include"rtc.h"#include"dht11.h"#include"delay.h"#include"sys.h"#include"rtc.h"#include"usart.h"#include"usart2.h"#include"LCD12864.h"#include"Display.h"#include"ds18b20.h"#defineucharunsignedchar#defineuintunsignedint constu8*COMPILED_DATE=__DATE__;//获得编译日期constu8*COMPILED_TIME=__TIME__;//获得编译时间constu8*Week[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};intmain(){ u8t=0; u8rxlen=0; u16syear; u8smon,sday,hour,min,sec; SystemInit(); delay_init(72); //延时初始化 NVIC_Configuration(); uart_init(9600);// Stm32_Clock_Init(9);//系统时钟设置 //delay_init(72); //延时初始化 //uart_init(72,9600); //串口1初始化 LCD12864_init();//初始化LCD12864 RTC_Init(); //初始化RTC DS18B20_Init(); welcome(); lcm_clr();//清屏函数 Clean_12864_GDRAM(); while(1) { if(t!=timer.sec) //1秒时间到 { t=timer.sec; displaydate(); //显示日期 displayxq();//显示星期 displaytime(); //显示时间 disptemp();//显示温度 displaynl(); //显示农历 } if(USART_RX_STA&0X8000)//串口1收到数据了 { rxlen=USART_RX_STA&0X7FFF; //得到数据长度 if(rxlen==16)//接收到的数据为16位 { rxlen=0; syear=(USART_RX_BUF[0]-'0')*1000+(USART_RX_BUF[1]-'0')*100+(USART_RX_BUF[2]-'0')*10+(USART_RX_BUF[3]-'0'); smon=(USART_RX_BUF[4]-'0')*10+(USART_RX_BUF[5]-'0'); sday=(USART_RX_BUF[6]-'0')*10+(USART_RX_BUF[7]-'0'); hour=(USART_RX_BUF[8]-'0')*10+(USART_RX_BUF[9]-'0'); min=(USART_RX_BUF[10]-'0')*10+(USART_RX_BUF[11]-'0'); sec=(USART_RX_BUF[12]-'0')*10+(USART_RX_BUF[13]-'0'); RTC_Set(syear,smon,sday,hour,min,sec); } USART_RX_STA=0;//启动下一次接收 } } }分程序/*********************************************************************************@fileGPIO/IOToggle/stm32f10x_conf.h*@authorMCDApplicationTeam*@versionV3.5.0*@date08-April-2011*@briefLibraryconfigurationfile.*******************************************************************************@attention**THEPRESENTFIRMWAREWHICHISFORGUIDANCEONLYAIMSATPROVIDINGCUSTOMERS*WITHCODINGINFORMATIONREGARDINGTHEIRPRODUCTSINORDERFORTHEMTOSAVE*TIME.ASARESULT,STMICROELECTRONICSSHALLNOTBEHELDLIABLEFORANY*DIRECT,INDIRECTORCONSEQUENTIALDAMAGESWITHRESPECTTOANYCLAIMSARISING*FROMTHECONTENTOFSUCHFIRMWAREAND/ORTHEUSEMADEBYCUSTOMERSOFTHE*CODINGINFORMATIONCONTAINEDHEREININCONNECTIONWITHTHEIRPRODUCTS.**<h2><center>©COPYRIGHT2011STMicroelectronics</center></h2>*******************************************************************************//*Definetopreventrecursiveinclusion*/#ifndef__STM32F10x_CONF_H#define__STM32F10x_CONF_H/*Includes*//*Uncomment/Commentthelinebelowtoenable/disableperipheralheaderfileinclusion*/#include"stm32f10x_adc.h"#include"stm32f10x_bkp.h"#include"stm32f10x_can.h"#include"stm32f10x_cec.h"#include"stm32f10x_crc.h"#include"stm32f10x_dac.h"#include"stm32f10x_dbgmcu.h"#include"stm32f10x_dma.h"#include"stm32f10x_exti.h"#include"stm32f10x_flash.h"#include"stm32f10x_fsmc.h"#include"stm32f10x_gpio.h"#include"stm32f10x_i2c.h"#include"stm32f10x_iwdg.h"#include"stm32f10x_pwr.h"#include"stm32f10x_rcc.h"#include"stm32f10x_rtc.h"#include"stm32f10x_sdio.h"#include"stm32f10x_spi.h"#include"stm32f10x_tim.h"#include"stm32f10x_usart.h"#include"stm32f10x_wwdg.h"#include"misc.h"/*HighlevelfunctionsforNVICandSysTick(add-ontoCMSISfunctions)*//*Exportedtypes*//*Exportedconstants*//*Uncommentthelinebelowtoexpansethe"assert_param"macrointheStandardPeripheralLibrarydriverscode*//*#defineUSE_FULL_ASSERT1*//*Exportedmacro*/#ifdefUSE_FULL_ASSERT/***@briefTheassert_parammacroisusedforfunction'sparameterscheck.*@paramexpr:Ifexprisfalse,itcallsassert_failedfunctionwhichreports*thenameofthesourcefileandthesourcelinenumberofthecall*thatfailed.Ifexpristrue,itreturnsnovalue.*@retvalNone*/#defineassert_param(expr)((expr)?(void)0:assert_failed((uint8_t*)__FILE__,__LINE__))/*Exportedfunctions*/voidassert_failed(uint8_t*file,uint32_tline);#else#defineassert_param(expr)((void)0)#endif/*USE_FULL_ASSERT*/#endif/*__STM32F10x_CONF_H*//*******************(C)COPYRIGHT2011STMicroelectronics*****ENDOFFILE****/分程序*******************************************************************************@filesystem_stm32f10x.h*@authorMCDApplicationTeam*@versionV3.5.0*@date11-March-2011*@briefCMSISCortex-M3DevicePeripheralAccessLayerSystemHeaderFile.*******************************************************************************@attention**THEPRESENTFIRMWAREWHICHISFORGUIDANCEONLYAIMSATPROVIDINGCUSTOMERS*WITHCODINGINFORMATIONREGARDINGTHEIRPRODUCTSINORDERFORTHEMTOSAVE*TIME.ASARESULT,STMICROELECTRONICSSHALLNOTBEHELDLIABLEFORANY*DIRECT,INDIRECTORCONSEQUENTIALDAMAGESWITHRESPECTTOANYCLAIMSARISING*FROMTHECONTENTOFSUCHFIRMWAREAND/ORTHEUSEMADEBYCUSTOMERSOFTHE*CODINGINF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 永州市双牌县2025-2026学年第二学期四年级语文第八单元测试卷(部编版含答案)
- 嘉峪关市市辖区2025-2026学年第二学期二年级语文第七单元测试卷部编版含答案
- 阿里地区革吉县2025-2026学年第二学期三年级语文第七单元测试卷(部编版含答案)
- 加气混凝土钢筋工班组协作水平考核试卷含答案
- 粉末冶金烧结工岗前能力评估考核试卷含答案
- 润滑油调合操作工岗前工作合规化考核试卷含答案
- 溶剂发酵工安全文化知识考核试卷含答案
- 大地测量员变革管理强化考核试卷含答案
- 肇庆市高要市2025-2026学年第二学期二年级语文第八单元测试卷部编版含答案
- 遂宁市大英县2025-2026学年第二学期二年级语文期末考试卷部编版含答案
- 2026年儿童发育行为中心理论考核试题
- 2025至2030中国研学旅行行业运营态势与投资前景调查研究报告
- 北京理工大学本科生毕业设计(论文)书写规范及打印装订要求
- 2025年杭州辅警协警招聘考试备考题库及答案详解(历年真题)
- 小学生科普地理
- 2025年特种设备安全管理A证考试题库(含答案)
- 江盐集团盐品事业部2025-2026年第一批次招聘考试参考试题及答案解析
- 2025原油供应协议(中石油、中石化、原油买卖合同)空白版
- 高校信息化建设五年规划方案(2024-2028)
- 接管分公司方案公告(3篇)
- 支农惠农政策课件
评论
0/150
提交评论