版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
新型出租車計價器控制電路的設(shè)計摘要隨著物質(zhì)生活條件的改善,越來越多的人開始選擇價格合理的出租車。尤其是對于年輕朋友來說,徒步旅行和與朋友見面無疑是他們首選的交通工具。當(dāng)然,乘客感興趣的不是出租車的整體結(jié)構(gòu),而是它的定價方式、起步距離、起步價格等。為了提高出租車行業(yè)現(xiàn)代計算器的效率,開發(fā)了一種基于獨(dú)立控制技術(shù)、傳感器和智能語音播報的出租車計價器。采用計時器和測速傳感器兩種方法同時對當(dāng)前出租車行駛來進(jìn)行計價,根據(jù)存儲在單片機(jī)中的計價模板來計算當(dāng)前車價,其中計價規(guī)則包括起步價、白天計價和晚上計價等等。并且在液晶屏上實(shí)時的顯示出來。此外,還加了語音播報模塊,為乘客提醒使其上車時注意并系好安全帶,下車時不要忘記隨身攜帶的物品。本設(shè)計以STM32單片機(jī)為核心,通過按鍵控制行程的開始與否,結(jié)合霍爾傳感器轉(zhuǎn)速算出當(dāng)前的行駛路程。通過DS1302時鐘模塊設(shè)置時間,并在OLED顯示當(dāng)前時間。按鍵按下后,開始計時,并結(jié)合總路程算出計程車總價格。點(diǎn)擊結(jié)束后播報提醒語音。并在屏幕上顯示金額。此外,為了讓乘客乘坐出租車更加適宜,還使用DS18B20模塊采集環(huán)境中的室溫,并顯示在OLED屏幕上。模塊還增加了WiFi模塊,在每個行程開始和結(jié)束時把數(shù)據(jù)上傳到云平臺,方便用戶對訂單進(jìn)行查詢。關(guān)鍵詞:STM32單片機(jī);OLED液晶;霍爾傳感器;WiFi模塊目錄TOC\o"1-3"\h\u第1章緒論 第4章軟件設(shè)計方案4.1開發(fā)環(huán)境以及工具介紹系統(tǒng)設(shè)計的過程中,當(dāng)做好硬件上的裝配和接線后,剩下的就是軟件方面的程序編寫了。而作為C語言代碼的編程,我習(xí)慣于用到大家都熟知的Keil編程軟件,就目前來說,Keil是現(xiàn)在最受歡迎的用來單片機(jī)開發(fā)編程軟件之一,它的受眾人群非常的廣泛。在Keil中,它具有編譯C語言,也能編譯匯編語言,它還具有連接器,庫管理等功能不同的工具,是一個非常好用的編程軟件,而運(yùn)行Keil所需要的電腦及其配置也非常的低,只需要16MB以上的內(nèi)存即可運(yùn)行Keil,它支持市面上絕大部分的操作系統(tǒng)。Keil還提供了一個功能非常強(qiáng)大的仿真調(diào)試工具,讓編程能夠事半功倍。圖4.1Keil界面圖
4.2軟件整體設(shè)計在主程序模塊中,需要進(jìn)行各接口芯片的復(fù)位、出租車起價和單價的復(fù)位、設(shè)計中斷指令、以及實(shí)現(xiàn)其他的工作。接通電源后,進(jìn)行初始化狀態(tài),隨后,進(jìn)入界面,當(dāng)按下啟動/停止按鍵(S6)時,計價器開啟計費(fèi)功能。首先會讀取里程寄存器中的值,并與起價公里數(shù)進(jìn)行比較,判斷行駛里程是否超過了起價公里數(shù)。如果沒有超過,則總費(fèi)用寄存器中顯示起價;否則,將總費(fèi)用寄存器中顯示超出起價公里數(shù)后的實(shí)際里程乘以單價的費(fèi)用。當(dāng)出租車到達(dá)指定地點(diǎn)后,霍爾傳感器將不再發(fā)送脈沖信號,費(fèi)用結(jié)算功能也會停止。這時,顯示屏上將會顯示本次訂單的金額和乘坐時間。語音播報模塊也會提醒乘客謝謝乘坐,請攜帶好個人物品。下次使用時,按下清零按鍵,計價器會清零并重新進(jìn)行復(fù)位,等待再次按下啟動/停止按鍵觸發(fā)計價功能。為了確保系統(tǒng)能夠穩(wěn)定、準(zhǔn)確地執(zhí)行相應(yīng)的操作,需要合理使用中斷、延時等技術(shù)手段來控制整個計價過程,并進(jìn)行實(shí)時監(jiān)測和處理。主程序流程圖如圖4.2所示:圖4.2系統(tǒng)主程序流程圖
4.3溫度模塊軟件設(shè)計采用DS18B20溫度模塊,將檢測到的溫度進(jìn)行收錄,過程為輸入初始化溫度,根據(jù)車內(nèi)實(shí)時溫度寫入系統(tǒng),最后通過STM32單片機(jī)將所測數(shù)據(jù)發(fā)送至顯示屏并顯示出來。因?yàn)檐噧?nèi)溫度并非恒溫,是實(shí)時變化的,所監(jiān)控的溫度數(shù)據(jù)會隨時間變化而變化,所以所顯示的溫度也會實(shí)時變化。圖4.3溫度采集流程圖
4.4顯示屏軟件設(shè)計在本設(shè)計中,使用了OLED作為顯示終端。單片機(jī)與OLED之間采用I2C進(jìn)行通訊,本設(shè)計中使用IO的雙向轉(zhuǎn)換進(jìn)行模擬I2C驅(qū)動的實(shí)現(xiàn)。再根據(jù)OLED字庫的,對顯示的內(nèi)容進(jìn)行處理。圖4.4顯示屏流程圖
4.5時鐘模塊軟件設(shè)計在時鐘芯片當(dāng)中,DS1302是一款經(jīng)常被使用的時鐘芯片,可讀取或修改其精確的時間信息。在使用DS1302之前,需要進(jìn)行初始化設(shè)置以確保其正常工作,并調(diào)用相應(yīng)的讀取或修改時間子程序來實(shí)現(xiàn)對時間信息的操作。通過向DS1302發(fā)送相關(guān)指令,可以獲取到當(dāng)前的時間信息并將其顯示在液晶屏幕上。此外,還可以根據(jù)需要對DS1302的特定參數(shù)進(jìn)行配置和調(diào)整,以滿足不同的應(yīng)用需求。DS1302時間讀取/修改程序流程圖如圖4.5所示。 圖4.5時鐘模塊流程圖為了將時間精準(zhǔn)的顯示在OLED屏幕中,需要多次讀取時鐘芯片內(nèi)的數(shù)據(jù)信息,并將其保存在一個數(shù)組中。通過定時器中斷函數(shù),可以在每個固定時間內(nèi)自動調(diào)用讀取時間的子程序,并將讀取到的時間信息更新到數(shù)組中。然后,將該數(shù)組中的時間數(shù)據(jù)顯示在OLED顯示屏幕上,使OLED顯示屏幕上顯示的時間能夠更接近實(shí)際時間。通過使用定時器中斷函數(shù),能夠使時間信息的更新更加準(zhǔn)確和穩(wěn)定,提高系統(tǒng)的可靠性和精度。具體地,可以通過設(shè)置定時器的中斷函數(shù),在每隔2毫秒產(chǎn)生一次中斷脈沖,并通過中斷脈沖產(chǎn)生的次數(shù)計數(shù)時間。當(dāng)中斷計數(shù)到500時,即表示已經(jīng)過了1s的時間,之后便可以調(diào)動一次讀取時間信息子程序,并將讀取到的時間數(shù)據(jù)信息存儲到內(nèi)存中。通過這樣的方式,單片機(jī)對DS1302的時間讀取就變成了10次/秒,從而更加準(zhǔn)確地顯示時間信息。需要注意的是除了定時器中斷函數(shù)之外,還有其他的中斷函數(shù)可能會影響程序的執(zhí)行時間。通常情況下,在忽略其他中斷函數(shù)執(zhí)行時間的情況下,單片機(jī)對DS1302進(jìn)行的時間讀取次數(shù)可以近似認(rèn)為是10次。這樣可以充分利用DS1302內(nèi)置的晶振和計數(shù)器,避免出現(xiàn)時間“過得”有點(diǎn)慢或快的情況,從而提高系統(tǒng)的精度和可靠性。為了重新調(diào)整時間設(shè)置,需要進(jìn)入特定的時間設(shè)置界面。在該界面中,用戶可以通過按鍵或其他輸入方式選擇需要修改的時間值,并將其修改為所需的數(shù)值。通過這種方式,能夠方便地對時間信息進(jìn)行精確的調(diào)整和管理,以滿足不同場景下的需求。在修改完畢后,用戶需要按下設(shè)置確認(rèn)按鍵,以便單片機(jī)可以將修改后的時間數(shù)據(jù)寫入DS1302芯片。只有在設(shè)置確認(rèn)按鍵被按下后,時間的重設(shè)操作才會生效。4.6語音模塊軟件設(shè)計語音模塊是一款定制的8PINMCU模塊。當(dāng)KT148A和單片機(jī)通訊時,通過RESET腳控制語音的起始,當(dāng)按下啟動/停止按鍵時會輸出一個高電平后,起始語音從頭開始播報,再次按下啟動/停止按鍵時,就會播放下一段語音。其流程圖如下:圖4.6語音播報流程圖
4.7WiFi模塊軟件設(shè)計本系統(tǒng)使用了ESP8266WiFi模塊,用于計價器與通訊設(shè)備的連接。由于WiFi模塊是通過串口總線與STM32進(jìn)行通訊的,串口的使用主要分為串口的初始化以及中斷,當(dāng)從機(jī)有數(shù)據(jù)過來時,則觸發(fā)STM32的串口中斷,執(zhí)行對應(yīng)的操作。 圖4.7WiFi模塊流程圖
4.8按鍵掃描軟件設(shè)計在進(jìn)行對本設(shè)計的功能設(shè)計時,需要操作設(shè)置的功能按鍵。這也說明,按鍵設(shè)置和按鍵掃描是不可或缺的一部分。本設(shè)計中一共設(shè)計了6個功能按鍵,每個按鍵都接到STM32單片機(jī)的一個I/O口上,與另一端連接的地線相連。在按鍵掃描過程中,主要是通過檢測每個連接按鍵的I/O口的高低電平來判斷按鍵是否被按下。然而,在按下按鍵的瞬間,由于機(jī)械反彈的影響,電平會發(fā)生多次抖動變化,導(dǎo)致在一段時間內(nèi)無法穩(wěn)定地檢測出按鍵是否真正被按下。由于單片機(jī)掃描處理速度非???,會誤識別多次按鍵。因此需要對按鍵進(jìn)行消抖處理,以保證檢測結(jié)果的正確性和穩(wěn)定性。這可以通過采用軟件或硬件消抖技術(shù)來實(shí)現(xiàn)。其中,軟件消抖技術(shù)是在程序中加入延時等處理方式,使電平變化穩(wěn)定后再進(jìn)行狀態(tài)檢測;而硬件消抖技術(shù)則是通過添加濾波電路等方式來削弱抖動信號的幅度,以達(dá)到消除抖動效果。按鍵的掃描及消抖處理的流程圖如下圖4.8所示:圖4.8按鍵掃描流程圖
4.9TLINK云平臺TLINK物聯(lián)網(wǎng)平臺,是免費(fèi)開放的設(shè)備連接平臺,通過傳感器及設(shè)備的云管理、云應(yīng)用、云服務(wù)平臺,支持工業(yè)設(shè)備的在線實(shí)時監(jiān)控,支持設(shè)備間的數(shù)據(jù)交換。本設(shè)計借助于云平臺的監(jiān)控、設(shè)備管理、數(shù)據(jù)存儲等功能,方便用戶查詢自己的訂單數(shù)據(jù),方便數(shù)據(jù)管理,簡化用戶的工作。圖4.9TLINK云平臺
第5章實(shí)物調(diào)試5.1硬件調(diào)試在完成硬件電路的理論設(shè)計后,需要根據(jù)原理圖的規(guī)格購買所需元器件。如今互聯(lián)網(wǎng)發(fā)展迅速,網(wǎng)上購物已經(jīng)成為一種潮流,可以輕松的購買到所需元器件材料各個型號。在購買過程中,最重要的就是不要買錯所需元器件,必須要著重注意所需元器件的型號、封裝信息以及電氣和結(jié)構(gòu)信息,以防因粗心大意而導(dǎo)致所需元器件的錯誤購買。同時,還需要關(guān)注元器件的品牌、質(zhì)量和售后服務(wù)等因素,以確保所購買的元器件能夠滿足自己的需求,并具有良好的可靠性和穩(wěn)定性。在購買元器件時,可以通過多渠道的比價和評價等方式,獲得更多的參考和選擇,提高購買的效率和準(zhǔn)確性。將購買的器件制作成實(shí)際電路時需要采用手工焊接的方式。為此,需要準(zhǔn)備一些基本的工具:電烙鐵、萬用板、萬用表等,并按照電路圖一步步逐個將各個器件進(jìn)行焊接。在焊接的過程中,烙鐵的溫度不宜過燙,焊接時間也不宜過長,否則會對芯片造成的一定的損壞。同時,也需要注意虛焊、漏焊等情況的出現(xiàn),確保焊接時對每個焊點(diǎn)進(jìn)行仔細(xì)檢查,使焊點(diǎn)質(zhì)量有所保證。通過嚴(yán)格控制焊接過程的質(zhì)量和技巧,能夠提高電路的穩(wěn)定性和可靠性,從而確保系統(tǒng)的正常運(yùn)行和使用效果。在進(jìn)行電路板的手工焊接制作的焊接順序時,第一個焊接的元器件當(dāng)仁不讓應(yīng)該是電源模塊,因?yàn)殡娫词请娐钒宓男呐K,沒有他整個電路就無法發(fā)揮他的作用,嚴(yán)重的話甚至?xí)⒄麄€電路板燒毀。所以,為保證整個電路的正常運(yùn)行,應(yīng)該優(yōu)先焊接電源模塊。接下來再逐一焊接其他模塊的元器件,沒加入一個模塊,就要對這時的電路進(jìn)行調(diào)試,直到所有的模塊都順利的加入電路中,從而完成整個電路板的焊接制作。此時,需要仔細(xì)檢查每個器件的焊接質(zhì)量和電路連接狀態(tài),以及保證電路的正確性和穩(wěn)定性。同時,在調(diào)試過程中還需要注意觀察各個電路部分的反應(yīng)、測試電路參數(shù)等,以及及時記錄并排除問題,最終確保電路系統(tǒng)能夠正常運(yùn)行和達(dá)到設(shè)計要求。
5.2實(shí)物成品展示當(dāng)計價器接通電源后,按下啟動按鍵,程序開始啟動,計價器開始進(jìn)入初始化狀態(tài)。此時OLED顯示屏顯示初始化中。如圖5.1所示:圖5.1初始化狀態(tài)計價器初始化完畢,程序開始運(yùn)行,此時計價器成功連接WiFi。OLED顯示屏顯示當(dāng)前時間,溫度等其他信息。如圖5.2所示:圖5.2程序啟動當(dāng)有乘客上車后,按下啟動/停止按鍵開始本單計費(fèi),當(dāng)?shù)竭_(dá)目的地后,再次按下啟動/停止按鍵結(jié)束本次計費(fèi)訂單,此時本單的數(shù)據(jù)上傳到TLINK云平臺中,如圖5.3、5.4所示:圖5.3OLED訂單信息顯示圖5.4TLINK云平臺信息記錄圖5.5實(shí)物成果圖第6章結(jié)論與展望6.1總結(jié)該設(shè)計以STM32單片機(jī)為核心,制作了一款出租車計價器,該設(shè)計能夠?qū)崿F(xiàn)計價、計程的基本功能,除此之外,加入了溫度檢測模塊實(shí)時檢測車內(nèi)溫度,為解決白天夜晚不同的計價標(biāo)準(zhǔn),可通過按鍵切換白夜計價模式,還有語音播報功能以提醒顧客的目的,最后通過WiFi模塊將每單的數(shù)據(jù)(里程/金額)上傳到云平臺中。全文除了進(jìn)行原理圖設(shè)計,程序編寫還通過制作實(shí)物的方式,對關(guān)鍵功能進(jìn)行了測試,對功能進(jìn)行驗(yàn)證,起初,整體框架弄了很久;不知道如何下手,但經(jīng)過了反復(fù)思索,捋清楚的之后的規(guī)劃,再通過查詢大量的資料,學(xué)習(xí)各方面的基礎(chǔ)知識,才對實(shí)物的各項(xiàng)功能進(jìn)行設(shè)計,到最后計價器的各項(xiàng)功能能夠順利實(shí)現(xiàn)。最后在論文撰寫的時候格式有所錯誤,但最后在老師的細(xì)心指導(dǎo)下還是修改好了。由于個人能力稍有欠缺,最終的設(shè)計結(jié)果可能會有一些預(yù)想不到的缺陷。還請各位老師批評與指正。6.2展望盡管該設(shè)計可以滿足用戶的基本功能需求,但是整個設(shè)計的任需要更多的創(chuàng)新,需要進(jìn)一步優(yōu)化。未來我們可以采取以下技術(shù)來創(chuàng)新它:1.未來新型出租車計價器可能包括更精確的定位和路線規(guī)劃;2.智能識別乘客需求并提供相應(yīng)服務(wù);3.多種支付方式、實(shí)時交通信息和萬物互聯(lián);4.語音控制等多功能結(jié)合的方式等功能的整合,為用戶帶來更便利的體驗(yàn)。此外,可持續(xù)性方面的考慮也將越來越重要,如優(yōu)化駕駛行為以提高燃油效率、推廣電動車輛等。最后,在未來的學(xué)習(xí)中,我們可以更加深入地研究單片機(jī)的設(shè)計和開發(fā)。這樣,我們就可以將整個設(shè)計過程變得更加人性化,使其更加創(chuàng)新、小巧、便捷。通過這種方式,我們可以大大提高操作效率,同時也可以為用戶帶來更便利的使用體驗(yàn)。
參考文獻(xiàn)王沁竹,李莉.基于單片機(jī)的出租車計價器的設(shè)計[J].計算機(jī)產(chǎn)品與流通,2018(02):139.李營,呂兆承,陳帥,余錢坤.基于FPGA的出租車計價系統(tǒng)設(shè)計[J].淮南師范學(xué)院學(xué)報,2021,23(02):139-142.閆聰杰.淺談出租汽車計價器存在的缺陷暨一種新型的出租車計價器設(shè)計思路[J].內(nèi)蒙古科技與經(jīng)濟(jì),2022(11):120-122.李玉紅,王凱,張娟,武宏璋,劉洋,王惠君.基于物聯(lián)網(wǎng)的出租車計程計時移動檢測系統(tǒng)設(shè)計[J].工業(yè)計量,2022,32(01):14-16.DOI:10.13228/j.boyuan.issn1002-1183.2021.0128.朱萬友,張金花.基于STC89C52單片機(jī)的出租車計價器設(shè)計[J].農(nóng)業(yè)裝備與車輛工程,2018,56(05):92-94.庫來酉,莫繼豪,王文濤,張盼盼,周妍.基于STM32的出租車智能計價器系統(tǒng)設(shè)計[J].山西電子技術(shù),2019(04):20-21+50.李香服,胡雪花.單片機(jī)在電子技術(shù)中的應(yīng)用和開發(fā)技術(shù)分析[J].電子世界,2021(21):29-30.DOI:10.19353/ki.dzsj.2021.21.013.王睿,李楊.防作弊出租車計價器的設(shè)計與研究[J].南方農(nóng)機(jī),2021,52(07):185-186.彭泉,翟娟,王世豪,孫艷,張樂.基于單片機(jī)的出租車計價器[J].新型工業(yè)化,2020,10(08):26-30.DOI:10.19335/ki.2095-6649.2020.08.011.李昕,王芳.多功能出租車計價器的研究與設(shè)計[J].電子世界,2020(07):187-188.DOI:10.19353/ki.dzsj.2020.07.108.徐燕,馮慧,岳戰(zhàn)威,徐曉坤.基于單片機(jī)的出租車合乘計價器設(shè)計[J].河南科學(xué),2019,37(08):1205-1212.金國華,滕君華.基于單片機(jī)的出租車計價器實(shí)驗(yàn)教學(xué)案例設(shè)計[J].信息技術(shù)與信息化,2019(03):93-95.楊川,趙小海,鄭紹川.使出租車計價器智能化工作的系統(tǒng)設(shè)計[J].汽車實(shí)用技術(shù),2018(21):174-176.DOI:10.16638/ki.1671-7988.2018.21.059.吳波.基于單片機(jī)的出租車計價器設(shè)計[J].信息技術(shù)與信息化,2018(09):33-35.楊正祥.基于單片機(jī)和霍爾傳感器的出租車計價器設(shè)計[J].信息系統(tǒng)工程,2018(07):99-100.喬志敏,楊慧剛.基于單片機(jī)的出租車計價系統(tǒng)設(shè)計[J].太原學(xué)院學(xué)報(自然科學(xué)版),2017,35(04):54-57.DOI:10.14152/ki.2096-191X.2017.04.014.Yang,Z.,Wang,Y.,&Lu,C.(2019).ResearchonthePrecisionVerificationMethodforTaxiMetersUsingGPS.WirelessPersonalCommunications,107(2),1137-1149.Zhang,Y.,&Luo,Y.(2019).AReal-TimeMonitoringSystemforTaxiMetersBasedontheInternetofThings.IEEEAccess,7,151546-151554.Lee,C.C.,&Wu,K.T.(2017).DevelopmentofaSmartTaxiMeterSystemforMobilePaymentServices.JournalofEnterpriseInformationManagement,30(1),46-67.Zhang,S.,Zhu,Y.,Liu,W.,&Huang,H.(2018).StudyontheEstablishmentofaTaxiMeterVerificationSystemBasedonGPSTechnology.Sensors,18(10),3449.Li,J.,Li,X.,&Zhao,H.(2017).DesignandimplementationofanintelligenttaximetersystembasedonGPSpositioningtechnology.JournalofAmbientIntelligenceandHumanizedComputing,8(3),391-400.附錄原理圖程序#include"sys.h"#include"delay.h"#include"key.h"#include"exti.h"#include"timer.h"#include"string.h"#include<stdio.h>#include"oled_iic.h"#include"rtc.h"#include"ds18b20.h"#include"usart.h" u8temperature; //溫度u16drop=0;u16drop_speed=0; //速度變量u16interval_time,cnt;//間隔時間u8day=0;//0=白天1=夜間u16money=0;//費(fèi)用u16qb_money=6;//起步價u8bt_dj=1;//白天單價u8yj_dj=2;//夜間單價u8Set_mode=0;//0為正常1為設(shè)置時間u8set_hour=0,set_min=0,set_sec=0;u8set_time_number=0;//設(shè)置按鍵次數(shù)u8work=0;//工作是否開啟0=關(guān)閉1=開啟u8connected=0;//標(biāo)志位,檢查是否已連接服務(wù)器#defineSsid"WIFI" //WIFI名稱,#definePassWord"123456789"http://WIFI密碼,#defineUid"Y9EP928W56V816JJ" //設(shè)備序列號#defineLEDPCout(13)#definePlayPBout(8)//語音播報#defineIO1_HIGH() Play=1;//語音模塊IO口#defineIO1_LOW() Play=0;//語音播報模塊驅(qū)動函數(shù)參考模塊資料說明voidoneline_send_one_data(u8dat){u8i=0;IO1_LOW();/*現(xiàn)將總線拉低*/delay_ms(5);/*延時6MS這里就是發(fā)起通訊的起始信號*/for(i=0;i<8;i++){if(dat&0x01){IO1_HIGH();delay_us(300);/*延時300us*/IO1_LOW();delay_us(100);/*延時100us*/}else{IO1_HIGH();delay_us(100);/*延時100us*/IO1_LOW();delay_us(300);/*延時300us*/}dat=dat>>1;/*發(fā)送的時候,先發(fā)送最高位,再發(fā)送次高位,以此類推*/}IO1_HIGH();/*空閑時將該腳拉高即可*/}//L298NIO初始化voidgpio_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB,ENABLE); //核心板上的LED GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOC,&GPIO_InitStructure); GPIO_SetBits(GPIOC,GPIO_Pin_13); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8; //LED0-->PB.5端口配置GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽輸出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //IO口速度為50MHzGPIO_Init(GPIOB,&GPIO_InitStructure); //根據(jù)設(shè)定參數(shù)初始化GPIOB.5GPIO_SetBits(GPIOB,GPIO_Pin_8); //PB.5輸出高}voidwifi_init(){ printf("AT\r\n");//重新啟動wifi模塊 DelayS(1); printf("AT+CWMODE=3\r\n");//設(shè)置模式 DelayS(1); printf("AT+CWJAP=\""Ssid"\",\""PassWord"\"\r\n"); DelayS(3); DelayS(3); DelayS(2); DelayS(3); DelayS(2); printf("AT+CIPMODE=1\r\n");//開啟透傳 DelayS(1); printf("AT+CIPSTART=\"TCP\",\"tcp.tlink.io\",8647\r\n");//連接 DelayS(2); printf("AT+CIPSEND\r\n");//進(jìn)入透傳模式 DelayS(1); //發(fā)送連接序列號指令 printf(Uid); DelayS(2); connected=1;//表示連接成功,可以發(fā)送數(shù)據(jù)了}//設(shè)置時間voidKey_settime(){ if(Set_mode==1)//設(shè)置時間 { OLED_ShowNum(30,4,set_hour,2,1); OLED_ShowCH(46,4,":"); OLED_ShowNum(54,4,set_min,2,1); OLED_ShowCH(70,4,":"); OLED_ShowNum(78,4,set_sec,2,1); if(KEY1_add==0)//加 { if(set_time_number==1)//設(shè)置時 { set_hour++; if(set_hour>=24) set_hour=0; } if(set_time_number==2)//設(shè)置分 { set_min++; if(set_min>=60) set_min=0; } if(set_time_number==3)//設(shè)置分 { set_sec++; if(set_sec>=60) set_sec=0; } delay_ms(200); // while(!KEY1_add); } if(KEY1_del==0)//減 { if(set_time_number==1)//設(shè)置時 { set_hour--; if(set_hour==255) set_hour=23; } if(set_time_number==2)//設(shè)置分 { set_min--; if(set_min==255) set_min=59; } if(set_time_number==3)//設(shè)置分 { set_sec--; if(set_sec==255) set_sec=59; } delay_ms(200); //while(!KEY1_del); } } if(KEY_time==0)//設(shè)置時間 { delay_ms(5); if(KEY_time==0) { Set_mode=1; if(set_time_number==0) { OLED_Clear(); OLED_ShowCH(32,0,"設(shè)置時間"); set_hour=calendar.hour; //讀取當(dāng)前時間 set_min=calendar.min; set_sec=calendar.sec; } if(set_time_number<3) { OLED_clear_h(6); OLED_ShowCH(32+set_time_number*22,6,"↑"); } set_time_number++; if(set_time_number>=4) { Set_mode=0; set_time_number=0; OLED_Clear(); OLED_ShowCH(32,2,"設(shè)置成功"); RTC_Set(2022,2,23,set_hour,set_min,set_sec); delay_ms(1000); OLED_Clear(); } while(!KEY_time); } }}intmain(void){ u16work_time=0; u8t; HZ=GB16_NUM(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級分組為組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級 delay_init(); delay_ms(500); OLED_Init();//初始化 uart1_init(115200); //串口1初始化為115200波特率 OLED_Clear(); delay_ms(100); OLED_ShowCH(32,2,"初始化中"); delay_ms(100); wifi_init(); delay_ms(200); DS18B20_Init(); while(DS18B20_Get_Temp()==850); delay_ms(200); RTC_Init(); //RTC初始化 EXTIX_Init(); //初始化外部中斷輸入 EXTI->IMR&=~(EXTI_Line5); TIM2_Int_Init(9,7199);//10Khz的計數(shù)頻率,計數(shù)到1ms delay_ms(500); RTC_Init(); //RTC初始化 gpio_Init(); OLED_Clear(); while(1) { if(Set_mode==0)//運(yùn)行主界面模式 { if(t!=calendar.sec) { t=calendar.sec; OLED_ShowNum(10,0,calendar.hour,2,1); OLED_ShowCH(26,0,":"); OLED_ShowNum(34,0,calendar.min,2,1); OLED_ShowCH(50,0,":"); OLED_ShowNum(58,0,calendar.sec,2,1); temperature=DS18B20_Get_Temp()/10;//檢測溫度函數(shù) OLED_ShowNum_c(96,0,temperature,2,1); if(temperature<10) OLED_ShowCH(104,0,"℃"); elseif(temperature>=10&&temperature<100) OLED_ShowCH(112,0,"℃"); LED=!LED; printf("Q");//串口發(fā)送數(shù)據(jù)給WIFI模塊 if(work==1) work_time++; } OLED_ShowCH(0,2,"里程:"); OLED_ShowNum(40,2,(int)drop_speed,4,1); OLED_ShowCH(72,2,"m"); if(day==0)//白天單價 { OLED_ShowCH(0,4,"日間單價:"); OLED_ShowNum(72,4,bt_dj,1,1); } else { OLED_ShowCH(0,4,"夜間單價:"); OLED_ShowNum(72,4,yj_dj,1,1); } OLED_ShowCH(80,4,"元"); OLED_ShowCH(0,6,"費(fèi)用:"); if(day==0) { if(work==1) { if(drop_speed<1) { money=qb_money; } else { money=(int)(drop_speed-1)*bt_dj+qb_money;//總價=單價*里程此處模擬采用米為單位 } } } else { if(work==1) { if(drop_speed<1) { money=qb_money; } else { money=(int)(drop_speed-1)*yj_dj+qb_money;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年物業(yè)使用權(quán)合同轉(zhuǎn)讓及物業(yè)管理責(zé)任追究辦法協(xié)議3篇
- 2025年度草莓種植基地病蟲害防治服務(wù)合同3篇
- 年度乙二醇二乙醚戰(zhàn)略市場規(guī)劃報告
- 年度高壓水流清洗機(jī)產(chǎn)業(yè)分析報告
- 年度中高端衡器競爭策略分析報告
- 2024-2025學(xué)年高中歷史第五單元近代中國的思想解放潮流第14課從“師夷長技”到維新變法課后作業(yè)含解析新人教版必修3
- 二零二五年快遞公司快遞配送員招聘合同參考范本3篇
- 2025年苗圃技術(shù)員工作合同規(guī)范文本
- 2025年熱泵熱水工程采購合同模板2篇
- 二零二五年度酒店客房租賃與客房設(shè)施維護(hù)合同12篇
- 《3-6歲兒童學(xué)習(xí)與發(fā)展指南》專題培訓(xùn)
- 河道旅游開發(fā)合同
- 導(dǎo)尿及留置導(dǎo)尿技術(shù)
- 情人合同范例
- 建筑公司勞務(wù)合作協(xié)議書范本
- 安徽省合肥市2023-2024學(xué)年高一上學(xué)期物理期末試卷(含答案)
- 《基于杜邦分析法的公司盈利能力研究的國內(nèi)外文獻(xiàn)綜述》2700字
- 儒家思想講解課程設(shè)計
- 2024年個人汽車抵押借款合同范本(四篇)
- 軌道交通設(shè)備更新項(xiàng)目可行性研究報告-超長期國債
- 2024-2030年中國一氧化二氮?dú)怏w行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
評論
0/150
提交評論