嵌入式系統(tǒng)設(shè)計(jì) 基于STM32的數(shù)字式萬年歷_第1頁
嵌入式系統(tǒng)設(shè)計(jì) 基于STM32的數(shù)字式萬年歷_第2頁
嵌入式系統(tǒng)設(shè)計(jì) 基于STM32的數(shù)字式萬年歷_第3頁
嵌入式系統(tǒng)設(shè)計(jì) 基于STM32的數(shù)字式萬年歷_第4頁
嵌入式系統(tǒng)設(shè)計(jì) 基于STM32的數(shù)字式萬年歷_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

《嵌入式系統(tǒng)綜合實(shí)踐》課程設(shè)計(jì)(報(bào)告)嵌入式系統(tǒng)綜合實(shí)踐課程設(shè)計(jì)(報(bào)告)題目:基于STM32的數(shù)字式萬年歷摘要本文介紹了基于STM32數(shù)字式電子萬年歷的硬件結(jié)構(gòu)和軟硬件設(shè)計(jì)方法。本設(shè)計(jì)由數(shù)據(jù)顯示模塊、時(shí)間處理模塊和調(diào)整設(shè)置模塊四個(gè)模塊組成。系統(tǒng)以STM32制器,以串行時(shí)鐘日歷芯片DS1302記錄日歷和時(shí)間,它可以對年、月、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能。萬年歷采用直觀的數(shù)字顯示,數(shù)據(jù)顯示采用TFT-LCD液晶顯示模塊,可以在TFT-LCD上同時(shí)顯示年、月、日、周日、時(shí)、分、秒,還具有時(shí)間校準(zhǔn)整點(diǎn)燈光提醒等功能。此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點(diǎn),具有廣闊的市場前景。關(guān)鍵詞:STM32時(shí)鐘芯片液晶顯示目錄TOC\o"1-3"\h\u第1章概述 11.1課題目的與意義 11.2國內(nèi)外研究現(xiàn)狀 11.3完成功能 2第2章總體設(shè)計(jì)方案 32.1設(shè)計(jì)要求 32.2方案論證 3第3章硬件設(shè)計(jì) 43.1嵌入式系統(tǒng)介紹 43.2ARM硬件系統(tǒng) 43.3主要單元電路設(shè)計(jì) 53.3.1ARM核心模塊 53.3.2顯示模塊 63.3.3按鍵電路模塊 6第4章軟件設(shè)計(jì) 74.1程序設(shè)計(jì) 74.2時(shí)鐘程序設(shè)計(jì) 84.3按鍵功能程序 94.4漢字顯示程序 9第5章系統(tǒng)調(diào)試 115.1調(diào)試方法 115.2調(diào)試結(jié)果與分析 12總結(jié) 14參考文獻(xiàn) 15附錄 16第1章概述1.1課題目的與意義對于時(shí)間這個(gè)概念一開始在長達(dá)幾千年的時(shí)間里,根本就沒有任何測定時(shí)間的精確方法。人類得知時(shí)間是通過太陽在天空的位置,或者是通過日暑或沙漏這樣的儀器來大致的判斷一下時(shí)間。在中國歷史上就出現(xiàn)日唇、沙漏、機(jī)械鐘、石英鐘,這幾種計(jì)時(shí)裝置。二十一世紀(jì)的今天科技與經(jīng)濟(jì)迅速發(fā)展,人們的生活節(jié)奏變得越來越快,生活水平越來越高,對于生活的品味和質(zhì)量的要求也更高。人們不再滿足于只能提供簡單計(jì)時(shí)功能的時(shí)鐘,希望在能保證計(jì)時(shí)精確的基礎(chǔ)上能多添加一些其它功能,諸如日歷、星期的顯示,使其界面能夠更加的美麗.目前電子萬年歷成了現(xiàn)代社會(huì)中的主要計(jì)時(shí)工具之一,廣泛應(yīng)用于社會(huì)生活需要的各個(gè)方面。它集時(shí)鐘、日期、星期等功能于一體,具有顯示直觀、讀取方便、界面簡潔、功能多樣等優(yōu)點(diǎn),符合目前電子計(jì)時(shí)儀器的發(fā)展趨勢。電子萬年歷不僅在市場上占據(jù)重要的位置,在學(xué)習(xí)中嘗試制作一款功能新穎的萬年歷也是一個(gè)熱門的課題。此課題具有很好的開放性和發(fā)揮性,在制作過程中既鞏固了單片機(jī)方面的知識,也開放了思維,將自身的想法實(shí)現(xiàn)于多彩功能的萬年歷中,這是對制作者本身能力的一種培養(yǎng)和鍛煉。1.2國內(nèi)外研究現(xiàn)狀由于大規(guī)模的電子集成電路的應(yīng)用,電子萬年歷在當(dāng)今社會(huì)鐘表界中獨(dú)占鰲頭。我國生產(chǎn)的電子萬年歷有很多種,總體上來說以研究多功能電子萬年歷為主,所以在生產(chǎn)的電子萬年歷上除了具有基本的顯示時(shí)間、日期功能外,增添其它的一些附屬功能如鬧鈴、報(bào)警等功能后,生產(chǎn)商在其質(zhì)量、價(jià)格、外觀、實(shí)用上做功課。不斷的改進(jìn)萬年歷產(chǎn)品,使其更具有市場需求。就目前市場上出現(xiàn)的各種萬年歷,第一種是純硬件電路系統(tǒng),采用分離式硬件電路分別實(shí)現(xiàn)各種功能,時(shí)鐘的功能通過時(shí)序邏輯電路來實(shí)現(xiàn),這將導(dǎo)致電路復(fù)雜化、整體可靠性變差、不靈活。很難實(shí)現(xiàn)對系統(tǒng)的擴(kuò)展。第二種是通過可編程邏輯器件來實(shí)現(xiàn)的,與前者相比在可靠性和實(shí)現(xiàn)時(shí)鐘的功能方面要有所提升,但這顯示功能只能通過數(shù)碼管來實(shí)現(xiàn),使其顯示的效果不明顯。同時(shí)在靈活性方面還是不行,很難對其進(jìn)行擴(kuò)展功能的實(shí)現(xiàn)。第三種相比前兩種而言在各個(gè)方面都有所提高.這也是現(xiàn)在商家們致力發(fā)展的方法,使用單片機(jī)作為核心控制系統(tǒng),這樣整個(gè)系統(tǒng)就可編程了,大大增加了靈活性,智能化的液晶顯示使其顯示界更加清楚、簡潔。而目前來說以精科/JK為引領(lǐng)者,國外以maxhome為主,這兩家公司價(jià)格低廉且實(shí)用,所以深受國內(nèi)外人民的喜歡。同時(shí),可以實(shí)現(xiàn)其它的一些額外功能如遙控調(diào)試、語音報(bào)時(shí)等功能。1.3主要涉設(shè)計(jì)功能(1)顯示年、月、日和時(shí)間,支持LED和LCD兩種方式顯示;(2)能通過小鍵盤調(diào)節(jié)萬年歷的年、月、日、時(shí)、分、秒;(3)顯示當(dāng)月日歷,顯示當(dāng)天星期功能;(4)掉電后無需重新設(shè)置時(shí)間和日期。第2章總體設(shè)計(jì)方案2.1設(shè)計(jì)要求對于科技發(fā)展日新月異的現(xiàn)代社會(huì)來說,傳統(tǒng)式的萬年歷已經(jīng)無法達(dá)到人們所要使用的要求,而且不太美觀。取而代之可是被科技推動(dòng)出來的產(chǎn)物,數(shù)字式萬年歷登上了歷史的舞臺(tái)。它有著普通萬年歷所有的優(yōu)點(diǎn),并將它的缺點(diǎn)也改善了過來,比如說,方便便利,漂亮美觀。它已經(jīng)成為了人們準(zhǔn)確,快速獲取信息的重要工具之一。所以應(yīng)這次課程設(shè)計(jì)的要求,我也選擇設(shè)計(jì)了這款數(shù)字式萬年歷,能夠?qū)崿F(xiàn)顯示時(shí)、分、秒,倒計(jì)時(shí),秒表等功能,顯示器可選(數(shù)碼管或LCD液晶屏);實(shí)現(xiàn)按鍵調(diào)整時(shí)間。并且可以用按鍵或觸屏查詢?nèi)f年歷;有倒計(jì)時(shí)或秒表等功能。2.2方案論證方案一:使用了STM32位主要芯片以及DS1302記錄日歷和時(shí)間,它可以對年、月、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能。萬年歷采用直觀的數(shù)字顯示,數(shù)據(jù)顯示采用TFT-LCD液晶顯示模塊,可以在TFT-LCD上同時(shí)顯示年、月、日、周日、時(shí)、分、秒,還具有時(shí)間校準(zhǔn)整點(diǎn)燈光提醒等功能。方案二:使用了AT89C52單片機(jī)以及采用數(shù)字式溫度傳感器DS18B20,它能直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9-12位的數(shù)字值讀數(shù)方式,但準(zhǔn)確度不高,誤差最大達(dá)2度。采用動(dòng)態(tài)顯示方法,動(dòng)態(tài)顯示模塊的硬件制作簡單,段掃描和位打描各占用一個(gè)端口,總需占用單片機(jī)14個(gè)端口,采用間斷1描法功耗小、硬件成本低及整個(gè)硬件系統(tǒng)體積相對減小。但是顯示信息太少并且AT89C52單片機(jī)的運(yùn)算速度比STM32慢。STM32可以直接用開發(fā)板實(shí)現(xiàn)全部功能,操作簡單方便。綜上分析所述所以我選擇方案一。第3章硬件設(shè)計(jì)3.1嵌入式系統(tǒng)介紹嵌入式系統(tǒng)(Embedded

System),是一種嵌入機(jī)械或電氣系統(tǒng)內(nèi)部、具有專一功能和實(shí)時(shí)計(jì)算性能的計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)常被用于高效控制許多常見設(shè)備,被嵌入的系統(tǒng)通常是包含數(shù)字硬件和機(jī)械部件的完整設(shè)備,例如汽車的防鎖死剎車系統(tǒng)。相反,通用計(jì)算機(jī)如個(gè)人電腦則設(shè)計(jì)靈活,可以智能處理各式各樣的運(yùn)算情況,以滿足廣大終端用戶不同的需要?,F(xiàn)代嵌入式系統(tǒng)通常是基于微控制器(如含集成內(nèi)存和/或外設(shè)接口的中央處理單元)的,但在較復(fù)雜的系統(tǒng)中普通微處理器(使用外部存儲(chǔ)芯片和外設(shè)接口電路)也很常見。通用型處理器、專門進(jìn)行某類計(jì)算的處理器、為手持應(yīng)用訂制設(shè)計(jì)的處理器等,都可能應(yīng)用到嵌入式系統(tǒng)。常見的專用處理器有數(shù)字信號處理器。由于嵌入式系統(tǒng)專用于特定的任務(wù),設(shè)計(jì)工程師可以對其進(jìn)行優(yōu)化,以減小產(chǎn)品的尺寸和成本,并提高可靠性和性能。一些嵌入式系統(tǒng)是批量生產(chǎn)的,受益于規(guī)模經(jīng)濟(jì)。嵌入式系統(tǒng)應(yīng)用于從數(shù)字手表和MP3播放器等便攜式設(shè)備,到交通燈、工廠控制器等大型固定設(shè)備,以及混合動(dòng)力汽車、磁共振成像和航空電子設(shè)備等復(fù)雜系統(tǒng)。其復(fù)雜性范圍廣泛,從低復(fù)雜性的單個(gè)微控制器芯片到高復(fù)雜性的安裝在大型機(jī)箱或機(jī)箱內(nèi)的多個(gè)單元、外圍設(shè)備和網(wǎng)絡(luò)。3.2ARM硬件系統(tǒng)萬年歷系統(tǒng)硬件系統(tǒng)由以下六個(gè)模塊組成:

ARM核心模塊、

LCD顯示頻模塊、電源模塊、鍵盤模塊、RS232通訊模塊、觸摸屏模塊。ARM核心模塊采用STM32芯片,鍵盤模塊采用小鍵盤,用于調(diào)整時(shí)間,顯示模塊采用LCD顯示頻,實(shí)現(xiàn)對時(shí)間,日期的顯示。ARM核心模塊STM32ARM核心模塊STM32復(fù)位電路晶振電路RS232通訊模塊鍵盤模塊LCD顯示模塊圖3.1硬件系統(tǒng)原理圖3.3主要單元電路設(shè)計(jì)3.3.1ARM核心模塊本設(shè)計(jì)采用的核心芯片型號為:STM32F103ZET6。該芯片具有

64KB

SRAM、512KB

FLASH、2

個(gè)基本定時(shí)器、4

個(gè)通用定時(shí)器、2

個(gè)高級定時(shí)器、2

個(gè)

DMA

控制器(共

12

個(gè)通道)、3

個(gè)

SPI、2

個(gè)

IIC、5

個(gè)串口、1

個(gè)

USB、1

個(gè)

CAN、3

個(gè)

12

ADC、1

個(gè)

12

DAC、1

個(gè)SDIO

接口、1

個(gè)

FSMC

接口以及

112

個(gè)通用

IO

口。如圖3.1所示。圖3.2核心模塊原理圖3.3.2顯示模塊顯示電路采用TFT-LCD液晶顯示,圖中只畫出了其相應(yīng)的接口。3

腳用于調(diào)節(jié)TFT-LCD的背光,4、5、6為TFT-LCD的控制口,用于控制其寫入或是讀出指令,7至14腳為TFT-LCD的數(shù)據(jù)口,將數(shù)傳送到TFT-LCD中。圖3.3LCD顯示頻模塊圖3.3.3按鍵電路模塊通過3個(gè)按鍵控制控制時(shí)間的加減。圖3.5按鍵電路模塊圖第4章軟件設(shè)計(jì)4.1程序設(shè)計(jì)主程序是通過調(diào)用LCD子程序、RTC時(shí)鐘子程序、漢字顯示子程序、按鍵功能子程序以及圖片顯示子程序等來實(shí)現(xiàn)顯示開機(jī)動(dòng)畫、漢字、機(jī)械鐘表、時(shí)間、日期、星期于一體的功能。顯示部分程序:計(jì)步少用,先的爐口化TFT-LCD即向內(nèi)寫入一系列的設(shè)置程序,來啟動(dòng)TFT-LCD的顯示;之后對顯示部位進(jìn)行相關(guān)的配置;最后進(jìn)行顯示并可以配置相關(guān)的背景程序流程圖如圖4.1所示。圖4.1背景程序流程圖4.2時(shí)鐘程序設(shè)計(jì)基于ARMCortex-M3內(nèi)核的STM32其本身包含一個(gè)獨(dú)立的定時(shí)——實(shí)時(shí)時(shí)鐘(RTC),由于其擁有一組連續(xù)的計(jì)數(shù)器這一特性,我們就可以通過在相應(yīng)軟件的配置下,來實(shí)現(xiàn)時(shí)鐘日歷的功能。若想重新設(shè)置系統(tǒng)當(dāng)前的時(shí)間和日期,則可通過修改計(jì)數(shù)器值的方法來實(shí)現(xiàn)。該款單片機(jī)的RTC模塊和時(shí)鐘配置系(RCC_BDCR寄存器)處于后備區(qū)域(BKP),這將導(dǎo)致系統(tǒng)復(fù)位或從待機(jī)模式中喚醒后,對后備寄存器和RTC的訪問被禁止匕之前對RTC模塊的設(shè)置和時(shí)間會(huì)不會(huì)出現(xiàn)變化。其優(yōu)點(diǎn)在于防止對于后備區(qū)域意外的寫操作UIRTC的組成包含兩個(gè)部分,第一部分是APBI接口,除了用于和APB1總線相連,還包含一組16位的寄存器,是通過APB1總線來對其進(jìn)行讀寫操作。這一部分是由APB1總線時(shí)鐘驅(qū)動(dòng)來與APB1總線接口的。第二部分是RTC核心,由一組可編程計(jì)數(shù)器組成,主要分為兩個(gè)模塊:RTC預(yù)分頻模塊和一個(gè)32位的可編程計(jì)數(shù)器。其中RTC預(yù)分頻模塊包含一個(gè)20位的可編程分頻器被稱作為RTC預(yù)分頻器,如果在RTC_CR寄存器中將相應(yīng)的位設(shè)置為允許位,就會(huì)在每個(gè)TR_CLK周期RTc產(chǎn)生一個(gè)秒中斷。模塊二可以被初始化為當(dāng)前的系統(tǒng)時(shí)間,將系統(tǒng)的時(shí)間按TR_CLK周期累加并與存儲(chǔ)在RTC.ALR寄存器中的可編程時(shí)間進(jìn)行比較,如果RTC_CR控制寄存器相應(yīng)位設(shè)置成允許位,在比較匹配時(shí)就會(huì)產(chǎn)生一個(gè)鬧鐘中斷。4.3按鍵功能程序根據(jù)STM32開發(fā)板中所要用到的兩個(gè)按鍵的硬件電路連接方式,進(jìn)行編寫程序。在編寫程序時(shí)應(yīng)注意按鍵的消抖。在進(jìn)行掃描某個(gè)按鍵時(shí),該按鍵按下后進(jìn)行按下的時(shí)間長短判斷,然后根據(jù)按鍵按下的時(shí)間長短來實(shí)現(xiàn)同一個(gè)按鍵的不同功能,此種方法的優(yōu)點(diǎn)是可以節(jié)省所需按鍵的數(shù)量和10口.此次使用的兩個(gè)按鍵(KEYO、KEY1)功能分別是,當(dāng)按鍵按下時(shí)長未超過3秒,兩個(gè)接鍵分別執(zhí)行的功能是進(jìn)行時(shí)和分加一,超過3秒則執(zhí)行時(shí)和分減一,因秒的修改無多大實(shí)際用途程序中就沒有進(jìn)行判斷了。圖4.2按鍵功能流程圖4.4漢字顯示程序在液晶屏上顯示漢字的原理顯示字符大致是一樣的在液晶屏上顯示的漢字其實(shí)就是由點(diǎn)亮的點(diǎn)組成的。這就類似于我們在紙上書寫漢字一樣,所寫字都是由沾在紙上的墨汁組成的,所以當(dāng)我們知道所要顯示漢字的點(diǎn)陣數(shù)據(jù)后就可以知道該漢字的生成方法,再通過相應(yīng)的程序即可在屏幕上顯示出該漢字了。本次設(shè)計(jì)中顯示漢字的點(diǎn)陣數(shù)據(jù)是通過一款名為PCtoLCD2002的軟件生成的,再通過相關(guān)顯示程序顯示的。所要顯示的漢字為點(diǎn)陣16x16。

第5章系統(tǒng)調(diào)試本設(shè)計(jì)仿真軟件采用keiluvision8以及ISIS8Professional軟件。KeilSoftware公司推出的Uision3是一款可用于多種8051MCU的集成開發(fā)環(huán)境(IDE),該IDE同時(shí)也是PK51及其它開發(fā)套件的一個(gè)重要組件。除增加了源代碼、功能導(dǎo)航器、模板編輯以及改進(jìn)的搜索功能外,Uvision3還提供了一個(gè)配置向?qū)Чδ埽铀倭藛?dòng)代碼和配置文件的生成。此外其內(nèi)置的仿真器可模擬目標(biāo)MCU,包括指令集、片上外圍設(shè)備及外部信號等。Uvision3提供邏輯分析器,可監(jiān)控基于MCUI/O引腳和外設(shè)狀態(tài)變化下的程序變量。Uvision3提供對多種最新的8051類微處理器的支持,包括AnalogDevices的ADUC83x和ADUC84x,以及Infineon的XC866等。系統(tǒng)調(diào)試如下:5.1調(diào)試方法本圖為系統(tǒng)總體仿真圖,總體闡述了系統(tǒng)主要使用了什么元器件,以及運(yùn)用ISIS8Professional仿真軟件實(shí)現(xiàn)通過總圖完成仿真所需要的幾個(gè)功能。圖5.1電路總體仿真圖5.2調(diào)試結(jié)果與分析當(dāng)系統(tǒng)通電時(shí),仿真圖開始通電調(diào)試,電路總體調(diào)試圖如圖5.2所示:圖5.2系統(tǒng)通電調(diào)試圖當(dāng)用戶想要調(diào)節(jié)時(shí)間時(shí),需要先按下時(shí)間調(diào)解按鍵,然后再按下加減鍵。圖5.3為系統(tǒng)通電按下時(shí)間加鍵程序圖。圖5.3按下時(shí)間加調(diào)試圖圖5.4為系統(tǒng)按下時(shí)間減鍵電路圖,具體如下圖所示。5.4按下時(shí)間減調(diào)試圖

總結(jié)本次設(shè)計(jì)的萬年歷系統(tǒng)采用了模塊化設(shè)計(jì)方式,以單片機(jī)STM32F103RBT6作為主控制模塊、TFT-LCD作為液晶顯示模塊、內(nèi)部的RTC時(shí)鐘作為實(shí)時(shí)時(shí)鐘模塊。整體程序的開發(fā)方式是基于按鍵的,每一個(gè)模塊的程序邏輯清晰、目的明確、結(jié)構(gòu)簡單、易于編寫、調(diào)試和修改程序可讀性強(qiáng),可以很方便對程序在保持主體不動(dòng)的前提下進(jìn)行局部修改以達(dá)到更好的顯示效果.通過本次設(shè)計(jì)可知采用STM32F103RBT6作為主控器件、TFT-LCD作為液晶顯示、內(nèi)部的RTC時(shí)鐘作為實(shí)時(shí)時(shí)鐘的方式是可行.而且該萬年歷具有計(jì)時(shí)準(zhǔn)確、功耗低、反應(yīng)快、等特點(diǎn).同時(shí)用TFT-LCD作為液晶顯示模塊使時(shí)間與圖片等可以的直觀清晰顯示。但由于課程設(shè)計(jì)時(shí)間有限,本設(shè)計(jì)還存在很多不足之處.比如:整點(diǎn)報(bào)時(shí)、音樂鬧鈴等。

參考文獻(xiàn)[1]文化.嵌入式系統(tǒng)的開發(fā)與應(yīng)用分析[J].電腦編程技巧與維護(hù),2020,(12):53-55.[2]劉軍.精通STM32F4[M].北京:北京航空航天大學(xué)出版社,2015.[3]曾文兵.基于STM32F407的視頻采集與傳輸系統(tǒng)設(shè)計(jì)[D].武漢:華中師范大學(xué),2016.[4]楊宸,王智超,徐浩然,李天宇,王嘯岳.基于STM32的智能萬年歷的定時(shí)鬧鐘設(shè)計(jì)[J].中外企業(yè)家,2019,(25):56-57.[5]鄺愛華.基于STM32的智能家居系統(tǒng)基本實(shí)現(xiàn)[J].微型電腦應(yīng)用,2019,35(04):136-140.[6]張路瑩,許亞迪,鄭文青,周麟坤.基于STM32的智能萬年歷設(shè)計(jì)[J].現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化,2018,8(13):40-41.[7]劉磊.基于STM32的電子萬年歷系統(tǒng)設(shè)計(jì)[J].科技資訊,2015,13(01):20.[8]焦江麗,李鳳蓮.以ARMCortex-M3為基礎(chǔ)的STM32開發(fā)板的設(shè)計(jì)與實(shí)現(xiàn)[J].中國新通信,2013,15(09):94-96.[10]\o"Showauthordetails"ZhuW\o"Showauthordetails"Ruan.Designandresearchofsolarphotovoltaicpowergenerationcontrollerbasedonstm32microcontroller[J].AdvancedMaterialsResearch,2017(34):66-69.

附錄#include"stm32f10x.h"#include"bsp-lcd1602.h"#include"delay.h"#include"sys.h"#include"adc.h"voidDisplay_Time(void);unsignedintnian=2019;charyue=12;charri=1;charshi=12;charfen=30;charmiao=30;charmiao1=30;unsignedcharzhou=3;unsignedchartanble[8]="nyrzsfm";charTimes=0;unsignedcharKEY_num=0;voidKey_GPIO_Config(void){ GPIO_InitTypeDefGPIO_InitStructure; /*開啟按鍵端口(PA)的時(shí)鐘*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0; //IO口做輸入口時(shí),不用設(shè)置輸出頻率 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; GPIO_Init(GPIOA,&GPIO_InitStructure);}voidKEY_Scan(void){ if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==1) { /*等待按鍵釋放*/ while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==1); while(1) { if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==1) { while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==1); KEY_num++; if(KEY_num>7) { KEY_num=0; break; } } if(Get_ADC(ADC_Channel_1)>1000) { if(KEY_num==1) { nian++; if(nian>2999) { nian=0; } } if(KEY_num==2) { yue++; if(yue>12) { yue=1; } } if(KEY_num==3) { ri++; if(ri>30) { ri=1; } } if(KEY_num==4) { zhou++; if(zhou>7) { zhou=0; } } if(KEY_num==5) { shi++; if(shi>23) { shi=0; } } if(KEY_num==6) { fen++; if(fen>59) { fen=0; } } if(KEY_num==7) { miao++; if(miao>59) { miao=0; } } Display_Time(); } if(Get_ADC(ADC_Channel_2)>1000) { if(KEY_num==1) { nian--; if(nian<2000) { nian=2999; } } if(KEY_num==2) { yue--; if(yue<=0) { yue=12; } } if(KEY_num==3) { ri--; if(ri<=0) { ri=30; } } if(KEY_num==4) { zhou--; if(zhou<=0) { zhou=7; } } if(KEY_num==5) { shi--; if(shi<0) { shi=23; } } if(KEY_num==6) { fen--; if(fen<0) { fen=59; } } if(KEY_num==7) { miao--; if(miao<0) { miao=59; } } } Display_Time(); } }}voidDisplay_Time(void){ LCD1602_WriteCmd(0x80); LCD1602_WriteDat(''); LCD1602_WriteDat(''); LCD1602_WriteDat(nian/1000+0x30); LCD1602_WriteDat(nian%1000/100+0x30); LCD1602_WriteDat(nian%100/10+0x30); LCD1602_WriteDat(nian%10+0x30); LCD1602_WriteDat('-'); LCD1602_WriteDat(yue/10+0x30); LCD1602_WriteDat(yue%10+0x30); LCD1602_WriteDat('-'); LCD1602_WriteDat(ri/10+0x30); LCD1602_WriteDat(ri%10+0x30); LCD1602_WriteDat(''); LCD1602_WriteDat(''); LCD1602_WriteDat(zhou+0x30); LCD1602_WriteDat(''); LCD1602_WriteCmd(0x80+0x40

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論