版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《嵌入式系統(tǒng)綜合實踐》課程設計(報告)嵌入式系統(tǒng)綜合實踐課程設計(報告)題目:基于STM32的萬年歷摘要電子萬年歷是實現(xiàn)對年、月、日、時、分、秒數(shù)字顯示的計時裝置,廣泛用于個人家庭,車站,碼頭,辦公室,銀行大廳等場所,成為人們日常生活中的必需品。數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用,使得數(shù)字鐘的精度遠遠超過老式鐘表。鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,在此基礎上完成的萬年歷精度高,功能易于擴展??蓴U展成為諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關烘箱、通斷動力設備、甚至各種定時電氣的自動啟用等電路。所有這些,都是以鐘表數(shù)字化為基礎的。因此,研究數(shù)字時鐘及擴大其應用有著非常現(xiàn)實的意義。本設計就是數(shù)字時鐘簡單的擴展應用。關鍵詞:萬年歷STM32溫度傳感器LCD顯示目錄TOC\o"1-3"\h\u19310第1章概述 第2章總體設計方案2.1設計任務本課題所研究的電子萬年歷是嵌入式控制技術的一個具體應用,主要研究內容包括以下幾個方面:(1)選用電子萬年歷芯片時,應重點考慮功能實在、使用方便、低功耗、抗斷電的器件。(2)根據(jù)選用的電子萬年歷芯片設計外圍電路和單片機的接口電路。(3)在硬件設計時,結構要盡量簡單實用、易于實現(xiàn),使系統(tǒng)電路盡量簡單。(4)根據(jù)硬件電路圖,在開發(fā)板上完成器件的焊接。(5)根據(jù)設計的硬件電路,編寫控制STM32芯片的程序。(6)通過編程、編譯、調試,把程序下載到單片機上運行,并實現(xiàn)本設計的功能。(7)在硬件電路和軟件程序設計時,主要考慮提高人機界面的友好性,方便用戶操作等因素。主要功能:可以顯示時、分、秒,倒計時,溫度測量功能,顯示器可選(數(shù)碼管或LCD液晶屏);實現(xiàn)按鍵調整時間。擴展功能:用按鍵或觸屏查詢萬年歷;有倒計時或秒表等功能。2.2方案論證方案一:采用AT89S52芯片片內ROM全都采用FlashROM;能以3V的超底壓工作;同時也與MCS-51系列單片機完全該芯片內部存儲器為8KBROM存儲空間,同樣具有89C51的功能,且具有在線編程可擦除技術,當在對電路進行調試時,由于程序的錯誤修改或對程序的新增功能需要燒入程序時,不需要對芯片多次拔插,所以不會對芯片造成損壞。不使用時鐘芯片,而直接用AT89S52單片機來實現(xiàn)電子萬年歷設計。AT89S52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦寫1000余次。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89S52是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。若采用單片機計時,利用它的一個16位定時器/計數(shù)器每50ms產(chǎn)生一個中斷信號,中斷20次后產(chǎn)生一個秒信號,然后根據(jù)時間進制關系依次向分、時、日、星期、月、年進位。這樣就實現(xiàn)了直接用單片機來實現(xiàn)電子萬年歷設計。方案二:采用STM32單片機STM32是一個低功耗,高性能32位單片機,片內含4kBytesISP(In-systemprogrammable)的可反復擦寫1000次的Flash只讀程序存儲器。主要性能有:與MCS-51單片機產(chǎn)品兼容、全靜態(tài)操作:0Hz~33Hz、三級加密程序存儲器、32個可編程I/O口線、三個16位定時器/計數(shù)器、八個中斷源、全雙工UART串行通道、掉電后中斷可喚醒、看門狗定時器、雙數(shù)據(jù)指針、掉電標識符、易編程。從單片機芯片主要性能角度出發(fā),本數(shù)字電子鐘單片機芯片選擇設計采用方案采用STM32F103VE。2.3系統(tǒng)組成嵌入式電子萬年歷的制作有多種方法,可供選擇的器件和運用的技術也有很多種。所以,系統(tǒng)的總體設計方案應在滿足系統(tǒng)功能的前提下,充分考慮系統(tǒng)使用的環(huán)境,所選的結構要簡單使用、易于實現(xiàn),器件的選用著眼于合適的參數(shù)、穩(wěn)定的性能、較低的功耗以及低廉的成本。本設計采用主控芯片STM32作為主控制器,溫度采集采用DS18B20,時間采集通過內部的RTC模塊,通過軟件計算可以獲取各種時間信息。顯示采用LCD12864,大屏清楚,可以顯示圖片等,電路系統(tǒng)構成框圖如圖2.1所示。圖2.1系統(tǒng)總圖第3章硬件設計3.1嵌入式系統(tǒng)介紹下面是STM32最小系統(tǒng)。包括晶振電路和rtc晶振。復位電路和對外接口圖3.1stm32最小系統(tǒng)圖3.2晶振電路和rtc晶振3.2主要單元電路設計3.3.1溫度傳感器電路設計DS18B20是數(shù)字式的溫度傳感器,其將溫度值直接轉換為數(shù)字量輸出。數(shù)字式的溫度傳感器可以簡化電路的設計,增加系統(tǒng)的穩(wěn)定性,也就是說在不同的溫度環(huán)境下使用,抗干擾能力較高。直接數(shù)字量輸出,省去AD轉換電路,降低系統(tǒng)的復雜程度。對于DS18B20的應用十分廣泛,現(xiàn)在的高?;蚵殬I(yè)技術教學,都是以其為教學的材料DS18B20的性能特點如下:(1).單總線接口,節(jié)省I/O口[8];(2).可通過數(shù)據(jù)線供電,電壓范圍為3.3~5.0V;(3).溫度測量范圍為-55℃~+125℃;(4).測溫分辨率可達0.0625℃;(5).溫度以9位或12位A/D轉換;DS18B20的外形和內部結構:DS18B20內部結構主要由四部分組成,64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器[17,18]。DS18B20的外形及管腳排列如下圖3.3所示圖3.3DS18B20外形及引腳排列圖3.3.2顯示模塊
2.2
12864的特點:
12864液晶具有功耗低、體積小、重量輕、超薄等許多其他顯示器無法比擬的優(yōu)點,近幾年來被廣泛用于單片機控制的只能儀器、儀表和低功耗電子產(chǎn)品中。帶中文字庫的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軟件總體設計軟件主流程的主要思路就是系統(tǒng)初始化,然后顯示界面和時間,溫度,檢查串口是否有下發(fā)的時間設置之類,如果有更新時間。正常情況下1秒更新一次屏幕。流程圖如圖4.1所示圖4.1系統(tǒng)流程圖4.2各功能模塊的軟件設計4.2.1DS18B20軟件設計溫度采集程序主要是對DS18B20的控制程序。由微控制器STM32F103ZET6嚴格按照DS18B20的時序控制它,進行溫度的采集和轉換并輸出到TFTLCD,使我們能夠清楚地看到當前溫度值。對DS18B20的設定在主程序已經(jīng)完成,在這幾只是其轉化的程序,不在需要不停地對其設置,減輕了系統(tǒng)的壓力,使系統(tǒng)的運行速度提高。溫度采集程序流程圖如下:開始開始提示錯誤檢測DS18B20是否存在提示錯誤檢測DS18B20是否存在復位DS18B20復位DS18B20初始化DS18B20IO端口初始化DS18B20IO端口開始溫度轉換開始溫度轉換得到溫度值得到溫度值LCD顯示溫度值LCD顯示溫度值圖4.2溫度采集模塊程序流程圖4.2.2RTC時鐘軟件設計具體講一下RTC模塊:主要是通過中斷查詢時間的開始初始化RTC模塊。RTC_Init();配置中斷及其優(yōu)先級,然后開始工作。秒定時器中斷就更新時間。就是不斷增加秒計數(shù)。然后程序處理這個數(shù)據(jù),根據(jù)一個參考計算當前的時間,星期和日期。具體看一下幾個函數(shù):u8RTC_Get(void)通過與參考時間比較秒計數(shù),然后通過計算得到現(xiàn)在的年月日時分秒。還有就是通過一個時間與星期的算法來計算出當天的星期。RTC_Get_Week(timer.w_year,timer.w_month,timer.w_date);//獲取星期
第5章系統(tǒng)調試本設計仿真軟件采用keiluvision5軟件。Keil5是一款兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。硬件仿真圖采用Proteus
Pro
8.9,這是一款嵌入式系統(tǒng)仿真開發(fā)軟件,同時也是英國Lab
Center
Electronics公司研發(fā)推出的最新的版本。該軟件經(jīng)實現(xiàn)了從原理圖設計、單片機編程、系統(tǒng)仿真到PCB設計,真正實現(xiàn)了從概念到產(chǎn)品的完整設計,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,能夠幫助用戶進行模擬電路運行以及電路設計:通過仿真調試,LCD顯示屏成功顯示年、月、日、時、分、秒、還有溫度,功能成功實現(xiàn)。萬年歷仿真結果如圖5.1所示:圖5.1萬年歷仿真圖總結紙上得來終覺淺,遺憾當年付出少。大學四年就將結束,我就快交上我的畢業(yè)設計,長時間辛苦過后,我很沉重的寫下我的總結。在整個系統(tǒng)的構架上,我通過查找資料,借助互聯(lián)網(wǎng),最終完成了系統(tǒng)的設計,但是系統(tǒng)的問題任然存在。在早期準備時,本計劃是要將采集到的溫度進行存儲,以便于使用者查詢??墒怯捎跁r間、精力的原因,存儲功能還是沒有實現(xiàn),這也是一種遺憾。在元器件的原理與使用方法上,不是很了解,同在互聯(lián)網(wǎng)上查找資料后,能夠勉強的應用,完成了本次設計。這也說明我在大學學習的四年里,付出的精力還是不夠的,學習的內容不夠充實,掌握的只是不夠扎實,理論上的還沒有與電子技術完美結合。
參考文獻[1]文化.嵌入式系統(tǒng)的開發(fā)與應用分析[J].電腦編程技巧與維護,2020,(12):53-55.[2]劉軍.精通STM32F4[M].北京:北京航空航天大學出版社,2015.[3]曾文兵.基于STM32F407的視頻采集與傳輸系統(tǒng)設計[D].武漢:華中師范大學,2016.[4]楊宸,王智超,徐浩然,李天宇,王嘯岳.基于STM32的智能萬年歷的定時鬧鐘設計[J].中外企業(yè)家,2019,(25):56-57.[5]鄺愛華.基于STM32的智能家居系統(tǒng)基本實現(xiàn)[J].微型電腦應用,2019,35(04):136-140.[6]張路瑩,許亞迪,鄭文青,周麟坤.基于STM32的智能萬年歷設計[J].現(xiàn)代工業(yè)經(jīng)濟和信息化,2018,8(13):40-41.[7]劉磊.基于STM32的電子萬年歷系統(tǒng)設計[J].科技資訊,2015,13(01):20.[8]焦江麗,李鳳蓮.以ARMCortex-M3為基礎的STM32開發(fā)板的設計與實現(xiàn)[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);//系統(tǒng)時鐘設置 //delay_init(72); //延時初始化 //uart_init(72,9600); //串口1初始化 LCD12864_init();//初始化LCD12864 RTC_Init(); //初始化RTC DS18B20_Init(); welcome(); lcm_clr();//清屏函數(shù) Clean_12864_GDRAM(); while(1) { if(t!=timer.sec) //1秒時間到 { t=timer.sec; displaydate(); //顯示日期 displayxq();//顯示星期 displaytime(); //顯示時間 disptemp();//顯示溫度 displaynl(); //顯示農歷 } if(USART_RX_STA&0X8000)//串口1收到數(shù)據(jù)了 { rxlen=USART_RX_STA&0X7FFF; //得到數(shù)據(jù)長度 if(rxlen==16)//接收到的數(shù)據(jù)為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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年井下波速測量儀合作協(xié)議書
- 2025年陽光私募合作協(xié)議書
- 2025年鋁塑復合材料項目建議書
- 2025年戊二酮苯合作協(xié)議書
- 肺心病護理新進展與技術應用
- 護理職業(yè)發(fā)展中的機遇與挑戰(zhàn)
- 中風鼻飼患者的口腔護理
- 電燒傷與化學燒傷的護理特點
- 中醫(yī)基礎護理知識體系
- 吸脂案例課件
- 2025年低空經(jīng)濟「無人機農業(yè)」應用場景與解決方案報告
- 球團化驗知識培訓課件
- 施工項目質量管理提升方案
- 養(yǎng)殖蛋雞的技術知識培訓課件
- 校車駕駛員考試題及答案
- GB/T 4995-2025平托盤性能要求和試驗選擇
- 2025年國家開放大學行管專科《監(jiān)督學》期末考試試題及答案
- 現(xiàn)場管理提升PP丅培訓課件
- 口腔科手衛(wèi)生PDCA改進案例
- 后組顱神經(jīng)損傷的護理措施
- GB/T 27612.2-2025農業(yè)灌溉設備噴頭第2部分:結構和運行要求
評論
0/150
提交評論