智能儲藥箱設(shè)計_第1頁
智能儲藥箱設(shè)計_第2頁
智能儲藥箱設(shè)計_第3頁
智能儲藥箱設(shè)計_第4頁
智能儲藥箱設(shè)計_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要-PAGEII-論文題目:智能儲藥箱摘要服藥是治療環(huán)節(jié)十分關(guān)鍵的一環(huán),然而老年患者因為記憶力衰退的原因經(jīng)常忘記吃藥或者忘記吃多少。再加上家里的年輕人大多數(shù)時間也在忙于自己的工作和學(xué)習(xí),無法周全的照料到老人的服藥情況,造成了因老人無法正確按照醫(yī)囑服藥從而耽擱了病情的危險情況。于是設(shè)計了一個面向老年患者的智能儲藥箱,這個智能儲藥箱可以實現(xiàn)通過設(shè)置服藥次數(shù)、服藥時間和服藥量,從而達到定時語音提醒老年患者按時吃藥的功能。智能儲藥箱的大致外觀造型、硬件電路部分和軟件電路部分都是根據(jù)產(chǎn)品所要面向的對象和所要實現(xiàn)的功能設(shè)計的。硬件電路選擇用AT89C51作為控制器,AT89C51是美國ATMEL公司生產(chǎn)的一種高性能、低電壓的8位CMOS單片機,在各種控制領(lǐng)域的應(yīng)用十分廣泛。顯示屏使用的是LM016L,它能夠顯示數(shù)字、文字和圖像,并且具有功耗低、體積小、重量輕的優(yōu)點,滿足了本次設(shè)計的顯示需求。系統(tǒng)的時鐘信號由DS1302時鐘芯片來提供,DS1302是由美國DALLAS公司推出的具有涓細(xì)電流充電能力的低功耗實時時鐘芯片,功能性強。按鍵部分采用了四個單個按鍵,分別為一個選擇鍵、一個設(shè)置鍵和兩個調(diào)整鍵。語音部分選用的是WTD588-16語音芯片,可以進行重復(fù)擦除燒寫,支持多鐘控制模式,最長語音時間可達500s。最后,對設(shè)計的軟硬件部分進行了仿真調(diào)試,實驗結(jié)果表明其基本能夠?qū)崿F(xiàn)想要的功能。關(guān)鍵詞:智能、藥箱、定時提醒、醫(yī)藥AbstractABSTRACTTakingmedicineisacriticalpartofthetreatmentprocess.However,elderlypatientsoftenforgettotakemedicineorhowmuchtotakebecauseofmemoryloss.Coupledwiththefactthattheyoungpeopleathomearebusywiththeirworkandstudymostofthetime,theyareunabletotakecareofthemedicationoftheoldcompletely,resultinginadangeroussituationwheretheelderlyareunabletotakethemedicinecorrectlyaccordingtothedoctor'sinstructions.Therefore,anintelligentmedicinestorageboxforelderlypatientshasbeendesigned.Thisintelligentmedicinestorageboxcanrealizethefunctionofregularlyremindingelderlypatientstotakemedicineontimebysettingthenumberofmedications,thetimeofmedicationandtheamountofmedication.Thegeneralappearanceshape,hardwarecircuitpartandsoftwarecircuitpartoftheintelligentmedicinestorageboxarealldesignedaccordingtotheobjecttobefacedbytheproductandthefunctiontoberealized.ThehardwarecircuitselectsAT89C51asthecontroller.AT89C51isahigh-performance,low-voltage8-bitCMOSsingle-chipmicrocomputerproducedbyATMELintheUnitedStates.Itiswidelyusedinvariouscontrolfields.ThedisplayusesLM016L,whichcandisplaynumbers,textandimages,andhastheadvantagesoflowpowerconsumption,smallsizeandlightweight,whichmeetsthedisplayneedsofthisdesign.TheclocksignalofthesystemisprovidedbytheDS1302clockchip.TheDS1302isalow-powerreal-timeclockchipwithtricklecurrentchargingcapabilityintroducedbytheAmericanDALLAScompany.Ithasstrongfunctionality.Thebuttonpartadoptsfoursinglebuttons,namelyaselectionbutton,asettingbuttonandtwoadjustmentbuttons.ThevoicepartselectstheWTD588-16voicechip,whichcanberepeatedlyerasedandprogrammed,supportsmultipleclockcontrolmodes,andthelongestvoicetimecanreach500s.Finally,thesoftwareandhardwarepartsofthedesignaresimulatedanddebugged,andtheexperimentalresultsshowthatitcanbasicallyachievethedesiredfunction.KeyWords:Intelligent,Medicinechest,Timedreminder,Medicine目錄-PAGEIV-目錄摘要 IABSTRACT II第一章緒論 11.1研究背景及意義 11.2國內(nèi)外研究狀況 11.3設(shè)計思路及安排 錯誤!未定義書簽。第二章外觀部分設(shè)計 32.1造型部分 32.2.1外部造型 32.2.2內(nèi)部結(jié)構(gòu) 32.3色彩部分 3第三章系統(tǒng)硬件部分設(shè)計 43.1最小系統(tǒng)模塊 43.1.1AT89C51介紹 43.1.2晶振電路 43.1.3復(fù)位電路 43.1.4排阻電路 43.2LM016L液晶顯示電路 53.3DS1302時鐘電路 63.3.1DS1302模塊電路圖 63.3.2DS1302時鐘芯片工作原理 63.4按鍵電路 73.5語音電路 7第四章系統(tǒng)軟件部分設(shè)計 94.1總體程序流程 94.2LM016L液晶模塊程序設(shè)計 104.3按鍵模塊程序設(shè)計 114.4DS1302時間芯片模塊程序設(shè)計 11第五章仿真調(diào)試 135.1PROTUES仿真硬件電路原理圖 135.2調(diào)試過程 135.3仿真結(jié)果 15第六章總結(jié) 166.1不足之處 166.2展望 16致謝 17參考文獻 18附錄 19緒論-PAGE16-第一章緒論1.1研究背景及意義2000年人口普查時,60歲、65歲及以上的人口分別占總?cè)丝?0.46%和6.96%,這兩個數(shù)字在2010年人口普查時上升為13.26%和8.87%,并在2015年的1%人口抽樣調(diào)查中進一步上升至16.15%和10.47%。據(jù)測算,中國老年人總數(shù)將在2025年超過3億人,2033年將達到4億人。而各種伴隨著年齡的增長而來的慢性疾病如高血壓病、心腦血管病、糖尿病等通常都需要患者長期乃至終生服藥以達到治療康復(fù)或控制穩(wěn)定病情的效果。然而,在子女大多數(shù)時間都在外工作,而家里無人照料的情況下,許多需要長期服藥的老人總是會因為記憶力衰退或分不清藥品等等的原因少服、錯服甚至忘服。長期如此,病情不但不能得到很好的控制,甚至?xí)霈F(xiàn)病情加重危害生命健康的后果。因此,要想達到好的治療效果,老年患者需要遵醫(yī)囑按時按量服藥。本設(shè)計中研究的智能儲藥箱具有按時提醒患病老人服藥的功能,并且會在顯示屏上顯示所需服用的藥量,不僅解決了老年患者因記憶力衰退而引起的少服、忘服問題,還解決了老年患者即使知道要按因忘記了該吃多少而錯服的問題。1.2國內(nèi)外研究狀況隨著生活條件的改善,人們的自身健康意識也在不斷的提升,據(jù)中國非處方藥物協(xié)會調(diào)查分析顯示,目前家用藥箱在各個家庭的普及率比較高,即使是沒有儲藥箱的家庭,家里也會常備一些藥品以應(yīng)對一些常見病、慢性病或者突發(fā)疾病??梢姡矣盟幭渥鳛橐活惣矣冕t(yī)療設(shè)備產(chǎn)品無論是在國內(nèi)市場還是國外市場都占有一定的市場份額,且仍有許多有待開發(fā)的潛力和價值。就以我們比較熟悉的國內(nèi)知名品牌金隆興、俊葳、富祥等來說,他們主要是做保健和急救類的醫(yī)藥箱,材質(zhì)以塑料和鋁制金屬居多。國外的品牌也有Flambeau飛斯特等。但這些傳統(tǒng)的家用藥箱功能比較單一,智能化程度不高,基本上只能起到提供一個避光、干燥、陰涼、密封的環(huán)境供人們儲存藥品的作用。因此,許多專業(yè)人員為了進一步完善家用藥箱的功能,使其更加智能化,進行了許多嘗試。例如,加入溫濕度傳感器使藥箱具有對藥品儲藏環(huán)境進行實時監(jiān)測的功能,當(dāng)溫濕度超出正常值的范圍時提醒用戶,以防藥物變質(zhì);或者加入了機械驅(qū)動裝置使藥箱具有了自動送藥的功能;再者加入了密碼設(shè)置功能,以防家里的小孩子誤拿誤食藥箱中的藥物而發(fā)生意外等等。除了這些智能化功能之外,針對現(xiàn)代人們生活節(jié)奏快、過于忙碌而經(jīng)常在治療的過程中忘記服藥的問題,也有一種可以定時提醒患者服藥的便攜藥盒被專家研究出來。但是這種智能便攜藥盒是針對需要在外服藥的,通常是上班族或者學(xué)生,而設(shè)計的,對于老年人患者而言沒有太高的適配度。首先,身體不好的老年人患者大部分的活動地點還是在家中;其次,他們所需要服用的藥物種類是非常多的,體積小的藥盒完全不能很好的保存這些不同種類的藥物。因此,我才想到針對老年患者這個群體,研究一種能夠滿足他們需求的智能藥箱,操作簡單,除了設(shè)定好的服藥時間到了的時候按時語音提醒之外,還能將服藥量顯示在屏幕上,免去了老人因為記不清服藥量而去查醫(yī)囑或者翻說明書的麻煩。1.3設(shè)計思路及安排首先,根據(jù)查閱資料分析老年人的審美需求,初步選定家用智能藥箱的造型、材料和色彩。其次,根據(jù)所需要實現(xiàn)的功能設(shè)計硬件部分的電路,主要由鍵盤模塊、控制器、語音提醒模塊和顯示模塊四大模塊組成(如圖1.3所示)。具體功能如下:由鍵盤模塊設(shè)定初始時間后,再按照醫(yī)囑建議的服藥時間進行定時設(shè)置和服藥量的設(shè)置,控制器接受輸入信號控制語音模塊定時語音提醒患者進行服藥,并同時控制顯示模塊顯示服藥量,顯示模塊在未到定時時間的時候顯示實時時間,到定時時間時同時顯示服藥量。軟件部分包括主要功能程序和各個模塊的初始化程序。

圖1.3模塊框圖第二章外觀部分設(shè)計第二章外觀部分設(shè)計2.1造型部分2.1.1外部造型藥箱最主要的儲藥功能決定了其必須具有大容量,因此計劃采用長方體的造型以使有限的空間能夠得到最大化的利用,但是藥箱的八個角將進行鈍化處理,使其整體的線條變的略微圓滑一些,類似于方圓型,以免智能儲藥箱太過尖銳的直角結(jié)構(gòu)在家庭的使用中發(fā)生意外。頂部是顯示屏和按鍵部分,顯示屏進行實時時間顯示,按鍵部分進行設(shè)定操作。對于老年患者來說,方便查看相關(guān)信息,操作也比較簡單易上手。手提拉桿位于智能儲藥箱左右兩側(cè),在老年患者需要移動藥箱的時候能夠防止滑落造成摔壞破損。在智能儲藥箱的正面底部和背部分別有一小一大兩個紅十字標(biāo)識,不僅是使其與家里其他儲物箱區(qū)別開來,方便識別,還起到提醒家里的小孩子這是一個醫(yī)藥箱的作用,以防小孩誤拿誤食里面的藥物。智能儲藥箱的三視圖手稿如圖2.1.1所示。2.1.2內(nèi)部結(jié)構(gòu)內(nèi)部具有3*3共9個獨立的小格,以便老年患者根據(jù)自己的實際需求分別儲存自己不同種類的藥物。一般來說,內(nèi)服藥和外用藥、包裝或者外形相似的藥物、易串味的藥物都要注意分開儲存。此外,也可以根據(jù)個人的需求將常用藥放在靠前的位置,少用的藥品放在靠后的位置。每個小格上都按照從左到右、從上到下的順序標(biāo)有數(shù)字,以便區(qū)分。小格與小格之間緊密切合,使儲存在里面的藥品始終處于一個避光、密閉的環(huán)境中,防止藥物變質(zhì)。2.2色彩部分智能儲藥箱色彩的設(shè)計一般需要考慮以下兩個方面:(1)是否適合使用對象;(2)是否與使用場合相協(xié)調(diào)。據(jù)研究顯示,一個統(tǒng)一的整體上出現(xiàn)過多的色彩變化會給老年人帶來視覺障礙,而且出現(xiàn)過多的強對比色還會給老年人帶來一定的視覺刺激,如紅色與青色的搭配、藍(lán)色與黃色的搭配等等,故偏向冷色系或中性色系的色彩作為智能儲藥箱的主色較為合適。不但有助于老年患者心情平和,使他們感覺更加舒適,而且也與家庭使用的淺色系環(huán)境背景相協(xié)調(diào)。因此,智能儲藥箱整體最終決定采用淡藍(lán)色的主調(diào)配色。 第三章系統(tǒng)硬件部分設(shè)計第三章系統(tǒng)硬件部分設(shè)計3.1最小系統(tǒng)模塊單片機的最小系統(tǒng)模塊由AT89C51、電源電路部分、晶振電路部分和復(fù)位電路部分組成。主要起到控制其他各個模塊完成相應(yīng)功能的作用。最小系統(tǒng)模塊電路連接圖如圖3.1所示。圖3.1最小系統(tǒng)模塊電路連接圖3.1.1AT89C51介紹AT89C51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲器,128字節(jié)內(nèi)部RAM,32個I/O口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位。3.1.2晶振電路晶振電路接在單片機的XTAL1和XTAL2兩個引腳,由1個11.0592MHz的晶振X1以及2個30pF的電容C1和C2組成。選用11.0592MHz的晶振有兩點原因,一是它能夠準(zhǔn)確的劃分成時鐘頻率;二是之后根據(jù)公式計算的定時器需要設(shè)置的值都為整數(shù),比較方便。而兩個并聯(lián)電容的取值是根據(jù)晶振的負(fù)載電容值決定的,15-33pF是合適的范圍,但一般選用15pF或30pF,它們的作用是幫助晶振在上電的時候產(chǎn)生穩(wěn)定的正弦波。3.1.3復(fù)位電路復(fù)位電路由10uF的極性電容C3和10K的電阻R4構(gòu)成。利用電容電壓不能突變的性質(zhì),可以知道,當(dāng)系統(tǒng)一上電,RESET腳將會出現(xiàn)高電平,并且這個高電平持續(xù)的時間由電路的RC值來決定。典型的51單片機當(dāng)RESET腳的高電平持續(xù)兩個機器周期以上就將復(fù)位,所以適當(dāng)組合RC的取值就可以保證可靠的復(fù)位。3.1.4排阻電路由于AT89C51的P0口是漏極開路輸出,因此在P0口接了一個10K的排阻R1,使得P0口可以作為普通的I/O口使用,本設(shè)計用P0口來做液晶的數(shù)據(jù)口。當(dāng)31腳(EA)接高電平時,單片機在復(fù)位后從內(nèi)部ROM的0000H開始執(zhí)行;接低電平時,復(fù)位后直接從外部ROM的0000H開始執(zhí)行。由于程序是存儲在單片機內(nèi)部的,所以EA要接高電平,保證單片機是從內(nèi)部讀取程序去執(zhí)行的。3.2LM016L液晶顯示電路液晶顯示模電路圖如圖3.2所示,一共有16個引腳,第1、2腳的作用是給液晶供電使之能夠正常工作,分別接地和電源。第3腳是通過改變電阻的阻值來調(diào)節(jié)液晶顯示屏的對比度。第4腳是液晶的寄存器控制腳,用來進行命令數(shù)據(jù)的選擇,當(dāng)RS為高電平時,為數(shù)據(jù);當(dāng)RS為低電平時,為命令。通常接在單片機的P27腳上。第5腳是液晶的讀寫控制腳,用來進行讀寫的選擇,當(dāng)RW為高電平時,單片機從液晶讀數(shù)據(jù);當(dāng)RW為低電平時,單片機向液晶寫數(shù)據(jù)。在本設(shè)計中,需要使改引腳接地。第6腳是液晶的脈沖使能腳,接到了單片機的P28腳上。第7腳到第14腳是液晶的數(shù)據(jù)/地址8位總線,接到了單片機的P0口上。第15、16腳是給液晶的背光供電,使液晶能夠正常發(fā)光。圖3.2液晶模塊引腳圖3.3DS1302時鐘電路3.3.1DS1302模塊電路圖DS1302模塊的電路圖如圖3.3.1所示,第1腳和第4腳分別接到了電路的VCC和GND,這2個腳是芯片工作的電源輸入腳。第8腳接了一個3V的紐扣電池作為時鐘芯片的后備電池,可以保證斷掉主電源后時鐘繼續(xù)行走。第2和第3腳接了一個32.768K的晶振給芯片提供時鐘脈沖,最后,第5、6、7依次連接到單片機的IO口,進行數(shù)據(jù)通信,單片機可以通過這三個引腳讀取時間信號,也可以向時鐘芯片設(shè)置時間。圖3.3.1DS1302模塊電路圖3.3.2DS1302時鐘芯片工作原理DS1302在每次進行讀、寫程序前都必須初始化,即要先把SCLK端置“0”,再把RST端置“1”,最后才給予SCLK脈沖;時鐘芯片單字節(jié)讀寫時序圖如圖3.3.2所示。圖3.3.2單字節(jié)讀寫時序圖圖3.3.3為DS1302的控制字,該控制字的第7位必須置1,否則不能對DS1302進行讀寫數(shù)據(jù)。第六位在對程序進行讀或?qū)憰rRAM=1;對時間進行讀或?qū)憰rCK=0。第1位至第5位是操作單元的地址。第0位是讀、寫操作位,進行讀操作時,該位為1;進行寫操作時,該位為0。輸入或輸出控制字節(jié)時總是從最低位開始。圖3.3.3DS1302的控制字DS1302有12個寄存器,其中有7個與日歷、時鐘相關(guān),圖3.3.4為DS1302的日歷、時間寄存器及控制字表。其中,“CH”是時鐘暫停標(biāo)志位,當(dāng)該位為1時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時,時鐘開始運行?!癢P”是寫保護位,在進行對任何的時鐘和RAM的寫操作之前,“WP”必須為0。當(dāng)“WP”為1時,寫保護位防止對任意寄存器的寫操作。3.4按鍵電路本設(shè)計采用獨立鍵盤設(shè)計,總共有4個按鍵,分別為“設(shè)置鍵”、“增大鍵”、“減小鍵”、“選擇鍵”。按鍵的連接圖如圖3.4所示。由于按鍵就是一個機械開關(guān),被按下時會因為機械觸點的彈性及電壓的突然跳變等原因在觸點閉合或斷開的瞬間會出現(xiàn)電壓的抖動,所以當(dāng)掃描表明有鍵被按下之后,為了保證鍵掃描的正確,一般都要進行去抖動處理。較常用的有兩種去抖動的方法:硬件去抖和軟件去抖。這里將采用軟件去抖動的方法,將會在第四章系統(tǒng)軟件部分設(shè)計詳細(xì)介紹。圖3.4按鍵連接圖3.5語音電路語音模塊采用的是由廣州唯創(chuàng)電子有限公司推出的可重復(fù)擦寫語音內(nèi)容的單語音芯片WT588D-16。它可編輯能力強、工作性能穩(wěn)定、電壓范圍寬、音質(zhì)卓越。在語音為6k采樣率時,算得該模塊可以儲存時間為500s的語音,而在進行了外擴存儲器的操作之后還可以獲得更大的存儲空間和語音地址,所以性價比極高。其工作原理框圖如圖3.5.1。圖3.5.1語音模塊原理框圖該語音模塊有MP3控制模式、按鍵控制模式、3*8按鍵組合控制模式、并口控制模式、一線串口控制模式、三線串口控制模式等多種控制模式,本設(shè)計采用三線串口控制模式,分別要用到片選CS、數(shù)據(jù)DATA和時鐘CLK三條通訊線,時序則根據(jù)標(biāo)準(zhǔn)SPI通訊方式。該模式下所有按鍵均無效,通過三線串口就可以實現(xiàn)語音芯片命令控制和語音播報。其引腳功能圖如圖3.5.2所示。圖3.5.2語音模塊引腳功能圖工作時RESET引腳需要一直保持高電平。喚醒語音芯片需要將片選信號CS拉低5ms,然后在時鐘的上升沿接收數(shù)據(jù),先接收數(shù)據(jù)的低位,再接收數(shù)據(jù)的高位,時鐘周期使用300μs。數(shù)據(jù)成功接收后,語音模塊先發(fā)送BUSY信號,在20ms之后才做出輸出響應(yīng)。第五章仿真調(diào)試第四章系統(tǒng)軟件部分設(shè)計4.1總體程序流程最開始先進行液晶的初始化,包括液晶功能初始化和液晶顯示內(nèi)容初始化,接著就進行時鐘芯片的初始化,主要就是初始化時鐘芯片引腳電平。然后進入循環(huán)處理的過程,先讀取時鐘芯片的日期時間數(shù)據(jù)之后在液晶屏上面顯示出來。接著鍵盤設(shè)置服藥時間、服藥次數(shù)和服藥量,判斷是否到達設(shè)定時間,若達到,語音模塊發(fā)出警報,液晶屏顯示服藥量;否則,繼續(xù)等待。程序流程圖如圖4.1。圖4.1程序流程圖4.2LM016L液晶模塊程序設(shè)計液晶的驅(qū)動程序編寫主要包括初始化函數(shù)、讀寄存器函數(shù)、寫寄存器函數(shù)、寫數(shù)據(jù)函數(shù)。其中初始化函數(shù)為程序運行時執(zhí)行的第一步,即需要先將液晶寄存器設(shè)置為初始狀態(tài)模式。圖4.2.1液晶初始化流程圖從流程圖中可以看到,對于液晶的控制是向其寫入不同的指令實現(xiàn),在液晶顯示的設(shè)置中,最重要的就是光標(biāo)和顯示的內(nèi)容位置,其中光標(biāo)是否顯現(xiàn)以及顯現(xiàn)的位置直接決定了界面中是否出現(xiàn)光標(biāo),而顯示的內(nèi)容位置是由DDRAM的存儲方式?jīng)Q定的,在本課題的應(yīng)用中,由于沒有使用光標(biāo),所以將光標(biāo)關(guān)閉,同時設(shè)置顯示的存儲方式為累計1,這樣就可以順序顯示漢字或者字符了。液晶在開始顯示之前,還必須設(shè)定一個起始位置,然后字符從該位置開始一位一位的進行顯示。每次顯示一個數(shù)字或一串字符的時候,只需要在最開始時設(shè)定一次初始位置,之后每顯示完一串字符液晶就會自動跳到下一個位置。圖4.2.2液晶顯示流程圖4.3按鍵模塊程序設(shè)計在按鍵的硬件電路設(shè)計上已經(jīng)確定采用軟件消抖的方法實現(xiàn),因此,按鍵模塊的程序設(shè)計需要考慮去抖動的部分。其軟件消抖的原理就是當(dāng)系統(tǒng)檢測到一次按鍵動作后,延時一段時間再檢測,如果這次仍然檢測到按鍵的動作,那么就認(rèn)為是一次正常的按鍵觸發(fā)。如果第一次檢測到按鍵動作,而第二次沒有檢測按鍵動作,則認(rèn)為這是一次誤動作而不執(zhí)行后續(xù)的任務(wù)。軟件消抖的原理流程圖如圖4.3所示。圖4.3按鍵去抖原理程序圖4.4DS1302時間芯片模塊程序設(shè)計液晶顯示屏上能夠顯示實時時間,是因為單片機能夠不斷去讀取時鐘芯片DS1302的時間信息并發(fā)送到液晶模塊進行顯示更新。讀取時鐘芯片時間信息的主要過程是:分別寫入年份、月份、日期、星期、小時、分鐘、秒鐘寄存器地址0x8D、0x89、0x87、0x8B、0x85、0x83、0x81,然后進行數(shù)據(jù)的讀取。圖4.4第五章仿真調(diào)試第五章仿真調(diào)試5.1Proteus仿真硬件電路原理圖由以AT89C51為核心的最小單片機系統(tǒng)、DS1302時鐘模塊、LM016L液晶模塊和按鍵模塊組成。由于語音模塊不能進行仿真,這里改用蜂鳴器代替。圖5.1仿真電路圖5.2調(diào)試過程首先雙擊51單片機,將編寫好的程序?qū)雴纹瑱C,然后開始調(diào)試,各個模塊旁邊的指示燈亮起,證明電路各個部分都可以正常工作。開始運行仿真,液晶顯示屏上顯示實時時間,若不準(zhǔn)確還可以通過設(shè)置鍵進行調(diào)節(jié)。按下選擇鍵,可以進行服藥次數(shù)的選擇,確定好服藥次數(shù)之后通過設(shè)置鍵和調(diào)節(jié)鍵進行服藥時間和服藥量的設(shè)定。這里設(shè)置的是“18:06:00”進行第一次服藥提醒,服藥量為5g。設(shè)置過程如圖5.2.1。圖5.2.1設(shè)置過程完成定時設(shè)置之后,等到設(shè)定好的時間,可以通過指示燈看出蜂鳴器在發(fā)出警報提醒,液晶顯示屏上也顯示出服藥量,顯示結(jié)果如圖5.2.2。在沒有按下任何鍵的情況下,蜂鳴器會持續(xù)發(fā)出警報提醒以達到真正提醒道患者吃藥的目的。圖5.2.2顯示結(jié)果5.3仿真結(jié)果根據(jù)一般的服藥情況設(shè)置了3次服藥提醒,為了減少等待的時間將三次服藥提醒的間隔時間設(shè)置在了2分鐘,即分別為“18:06:00”、“18:08:00”、“18:10:00”各一次。蜂鳴器在到達定時時間的時候能夠正常發(fā)出聲音警報進行提醒,直至任意按鍵被按下才會停止警報,液晶顯示屏上也可以顯示出設(shè)定好的服藥量,而在沒有達到定時時間的時候顯示實時時間。經(jīng)過多次測試,設(shè)計的硬件電路和軟件程序能夠基本實現(xiàn)智能儲藥箱的功能,但希望能夠更加完善。第六章總結(jié)第六章總結(jié)智能儲藥箱這個想法一開始產(chǎn)生是因為身邊的一位長輩患有嚴(yán)重的失眠癥,必須需要長期服藥控制才能睡得著,由于是一直依靠藥物勉強獲得睡眠,她的睡眠質(zhì)量不是很好,因此經(jīng)常白天精神也很差,記憶力也不好,在沒有家里人提醒的情況下,偶爾也會忘記吃藥這件事情。所以將定時提醒功能與儲藥箱進行結(jié)合,使儲藥箱具有按時提醒患者吃藥的功能,其主要原理與萬年歷類似,在設(shè)定了時間之后,顯示屏實時顯示當(dāng)前時間,在根據(jù)患者自己的需求設(shè)定一日一次、一日兩次或一日三次的服藥時間,從而實現(xiàn)到點提醒的功能。6.1不足之處本設(shè)計的不足之處有兩點。首先是在于鍵盤輸入設(shè)定時間是通過增加鍵、減少鍵來進行的,當(dāng)需要設(shè)置的時間比較大的時候,需要連續(xù)按鍵比較多次,操作起來比較麻煩。應(yīng)該采用4*4的矩陣鍵盤作為輸入設(shè)備通過直接輸入數(shù)字來進行設(shè)置對使用者來說會更加方便簡單。其次顯示屏上顯示的服藥量一次提醒只能對應(yīng)一種藥物,如果一次需要服用兩種或以上的藥物,另外幾種藥物的服藥量無法在顯示屏上體現(xiàn)。6.2展望未來,患者治療康復(fù)階段的場所會慢慢從醫(yī)院轉(zhuǎn)移到患者自己的家中,其原因在于:對醫(yī)院而言,患者在自己的家中進行觀察治療可以緩解醫(yī)院的病房資源緊張的問題;對患者自己而言,在家治療可以節(jié)省很大一部分的費用。因此,家用智能醫(yī)療設(shè)備的需求是很大的。本次為老年患者設(shè)計的智能儲藥箱還可以加入更多的功能,使它能夠滿足人們在使用時的更多需求,成為真正意義上的智能設(shè)備。致謝-PAGE29-致謝大學(xué)四年轉(zhuǎn)瞬即逝,但這四年在學(xué)校發(fā)生的點點滴滴卻就像前不久才發(fā)生的一樣,回憶起來仍然記憶猶新。在那期間有快樂、有迷惘、有辛苦、有收獲,但也一步一個腳印走到了大學(xué)的最后一堂課—畢業(yè)設(shè)計。這門課是對大學(xué)四年學(xué)習(xí)收獲的最后一次總體的考察,是對學(xué)生個人能力的綜合考驗,對我們即將要畢業(yè)的學(xué)生來說具有重大意義。要自己獨自從頭到尾完成一個設(shè)計,對我來說充滿了挑戰(zhàn),先要選擇自己感興趣的課題,然后構(gòu)思大致的框架,最終確定方案開始實施。萬事開頭難,我在一開始的選題過程中就遇到了不少困難,但是感謝有何青老師耐心的指導(dǎo)和點撥,讓我最終順利的確定了選題,開始步入了下一階段。在設(shè)計的過程中,我發(fā)現(xiàn)課上所學(xué)的東西遠(yuǎn)遠(yuǎn)不夠,甚至是之前課上學(xué)了的卻因為沒有用心而遺忘的部分知識也給我?guī)砹藰O大的困擾,于是我開始在網(wǎng)上找相關(guān)的網(wǎng)課進行學(xué)習(xí),有一些模糊的知識確實也清晰了不少。因此,我也感謝將自己的課程發(fā)布到網(wǎng)絡(luò)上的其他學(xué)校的老師,他們讓處在不同學(xué)校的學(xué)生也可以免費學(xué)習(xí)他們的課程。最后,也要感謝在實驗過程中對我提供幫助的同學(xué)們,同學(xué)之間的交流讓一些比較小的問題迎刃而解。2020年是所有人都沒有想到的一年,由于疫情的原因我們的畢業(yè)設(shè)計充滿重重困難,我們的就業(yè)問題也變得異常嚴(yán)峻,我們甚至沒有了畢業(yè)照就“云畢業(yè)”離開了學(xué)校步入社會。這段時間所經(jīng)歷的一切讓我懂得更多,在國家的妥善處理和醫(yī)護人員的努力下,我們的社會已經(jīng)逐漸恢復(fù)正常,希望我也可以和祖國一起努力,戰(zhàn)勝困難,如涅槃的鳳凰一般浴火重生。 參考文獻參考文獻[1]蔣維,田芳,林倩,張凌飛.基于STC15系列增強型單片機原理與接口技術(shù)[M].北京:清華大學(xué)出版社,2014.[2]王雄,高海燕,楊旭博,劉小樂,李啟龍.一種自動提醒服藥裝置設(shè)計[J].機械工程與自動化,2016.08,No.4.[3]呂瀘航,蘇晗寧,孫軼穎,林元幫,方宇飛.一種智能提示藥盒的設(shè)計與實現(xiàn)[J].無線互聯(lián)科技,2015.04,No.8.[4]陳海宴.51單片機原理及應(yīng)用[M].北京:北京航天航空大學(xué)出版社,2010.[5]曹文.電子技術(shù)課程設(shè)計[OL]:網(wǎng)絡(luò)課程.四川:西南科技大學(xué),2020.[6]賈昌征.基于51單片機的萬年歷設(shè)計[D].山東:煙臺大學(xué)文經(jīng)學(xué)院,2012.附錄附錄附錄一電路原理圖

附錄二軟件代碼#include<reg52.h>#include<intrins.h>#defineucharunsignedchar //宏定義#defineuintunsignedint#definereadalarmsecond0xc7 //定義從DS1302中讀鬧鐘秒值的命令字節(jié).#definewritealarmsecond0xc6 //定義往DS1302中寫鬧鐘秒值的命令字節(jié).#definereadalarmminute0xc5 //定義從DS1302中讀鬧鐘分值的命令字節(jié).#definewritealarmminute0xc4 //定義往DS1302中寫鬧鐘分值的命令字節(jié).#definereadalarmhour0xc3 //定義從DS1302中讀鬧鐘小時值的命令字節(jié).#definewritealarmhour0xc2 //定義往DS1302中寫鬧鐘小時值的命令字節(jié).sbits1=P3^1;//設(shè)置鍵sbits2=P3^2;//增大鍵sbits3=P3^3;//減小鍵sbits4=P3^4;//選擇鍵sbitrs=P2^6;//LCD數(shù)據(jù)/命令選擇端(H/L)sbiten=P2^7;//LCD使能控制sbitbeep=P3^7;//蜂鳴器控制端sbitio=P1^1;//ds1302的數(shù)據(jù)I/O端sbitrst=P1^2;//ds1302的復(fù)位端 sbitsclk=P1^0;//ds1302的時鐘信號端bitset=0,seta=0,alarm=0;//分別時間設(shè)置標(biāo)志位,鬧鐘設(shè)置標(biāo)志位,響鈴標(biāo)志位ucharAlset=0;floatf_temp;ucharaa,miao,fen,shi,nian,yue,ri,week,temp,s1num=0,num,amiao,afen,ashi,m,yaoliang;ucharalmiao[3],alfen[3],alshi[3],alyaoliang[3]; ucharsetaCount;ucharcodetable[]={"20//"};//液晶固定顯示部分ucharcodetable1[]={"::"};voiddelay(uintx)//毫秒級延時函數(shù){uinti,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}voiddi(){ beep=0; delay(100); beep=1;}////////////////////////////////voidwrite_com(ucharcom){ rs=0;//命令 P0=com; delay(5); en=1; delay(5); en=0;}voidwrite_date(uchardate){ rs=1;//數(shù)據(jù) P0=date; delay(5); en=1; delay(5); en=0;}voidinit1602(){ write_com(0x38); //設(shè)置工作方式 write_com(0x0c); //設(shè)置光標(biāo) write_com(0x06); //設(shè)置輸入方式 write_com(0x01); //清屏 write_com(0x80); for(num=0;num<16;num++) { write_date(table[num]); } write_com(0x80+0x40); for(num=0;num<16;num++) { write_date(table1[num]); } }/////////////////////////////////voidwrite_byte(uchardat){uchari;sclk=0;for(i=0;i<8;i++){io=dat&0x01;sclk=1;sclk=0;dat>>=1;}}ucharread_byte(){uchari,dat;for(i=0;i<8;i++){dat>>=1;if(io==1)dat|=0x80;sclk=1;sclk=0;}returndat;}voidwrite1302(ucharadd,uchardat){rst=0;sclk=0;rst=1;write_byte(add);write_byte(dat);sclk=1;rst=0;}ucharread1302(uchardat){uchara;rst=0;sclk=0;rst=1;write_byte(dat);a=read_byte();sclk=1;rst=0;returna;}voidinit_1302(){ ucharSecond=read1302(0x81); if(Second&0x80) { write1302(0x8E,0x00);//控制寄存器打開寫保護 write1302(0x8c,0x13); //以下寫入初始化時間日期:07/07/25.星期:3.時間:23:59:55 write1302(0x88,0x05); write1302(0x86,0x16); write1302(0x8a,0x07); write1302(0x84,0x23); write1302(0x82,0x59); write1302(0x80,0x55); }}voidwrite_sfm(ucharadd,uchardate){ ucharshi,ge; shi=date/10; ge=date%10; write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge); }voidwrite_nyr(ucharadd,uchardate){ ucharshi,ge; shi=date/10; ge=date%10; write_com(0x80+add); write_date(0x30+shi); write_date(0x30+ge); }voidwrite_week(ucharadd,ucharweek){ write_com(0x80+add); switch(week) { case1:write_date('M'); write_date('O'); write_date('N'); break; case2:write_date('T'); write_date('U'); write_date('E'); break; case3:write_date('W'); write_date('E'); write_date('D'); break; case4: write_date('T'); write_date('H'); write_date('U'); break; case5: write_date('F'); write_date('R'); write_date('I'); break; case6: write_date('S'); write_date('A'); write_date('T'); break; case7: write_date('S'); write_date('U'); write_date('N'); break; } }voidget_shizhong(){ aa=read1302(0x8d); nian=((aa&0x70)>>4)*10+(aa&0x0F); write_nyr(3,nian); aa=read1302(0x89); yue=((aa&0x70)>>4)*10+(aa&0x0F); write_nyr(6,yue); aa=read1302(0x87); ri=((aa&0x70)>>4)*10+(aa&0x0F); write_nyr(9,ri); aa=read1302(0x8b); week=((aa&0x70)>>4)*10+(aa&0x0F); write_week(12,week); aa=read1302(0x85); shi=((aa&0x70)>>4)*10+(aa&0x0F); write_sfm(2,shi); aa=read1302(0x83); fen=((aa&0x70)>>4)*10+(aa&0x0F); write_sfm(5,fen); aa=read1302(0x81); miao=((aa&0x70)>>4)*10+(aa&0x0F); write_sfm(8,miao);}voidkeyscan(){ if(alarm==1)//如果鬧鐘在響,任意鍵停止鬧鐘響。 { if((s1==0)||(s2==0)||(s3==0)||(s4==0)) { delay(10); if((s1==0)||(s2==0)||(s3==0)||(s4==0)) { delay(10); while(!(s1&&s2&&s3&&s4)); di(); alarm=0;//清除鬧鐘標(biāo)志。 write_com(0x80+0x40+11); write_date('');//清除藥量 write_date(''); write_date(''); } } } if(s1==0) { delay(10); if(s1==0) { delay(10); while(!s1); di(); if((Alset==1)&&(seta==1)) {Alset=2; write_com(0x80+0x40+12); write_com(0x0f); } else { Alset=3; s1num++; if(seta==1) if(s1num==4)s1num=1; set=1; switch(s1num) { case1:write_com(0x80+0x40+9); write_com(0x0f); break; case2:write_com(0x80+0x40+6); break; case3:write_com(0x80+0x40+3); break; case4:write_com(0x80+14); break; case5:write_com(0x80+10); break; case6:write_com(0x80+7); break; case7:write_com(0x80+4); break; case8:s1num=0; set=0;// write_com(0x0c);//關(guān)閉光標(biāo) write1302(0x8E,0x00);//寫保護打開 write1302(0x80,((miao/10)<<4|(miao%10))); write1302(0x82,((fen/10)<<4|(fen%10))); write1302(0x84,((shi/10)<<4|(shi%10))); write1302(0x8A,((week/10)<<4|(week%10))); write1302(0x86,((ri/10)<<4|(ri%10))); write1302(0x88,((yue/10)<<4|(yue%10))); write1302(0x8C,((nian/10)<<4|(nian%10))); write1302(0x8E,0x80);//寫保護關(guān)閉 break; } } } } if((s1num!=0)||(Alset==2)) { if(s2==0) { delay(10); if(s2==0) { delay(10); while(!s2); di(); if(Alset==2) { yaoliang++; if(yaoliang==99)yaoliang=0; write_sfm(11,yaoliang); write_com(0x80+0x40+12); } else { switch(s1num) { case1:miao++; if(miao==60)miao=0; write_sfm(8,miao); write_com(0x80+0x40+9); break; case2:fen++; if(fen==60)fen=0; write_sfm(5,fen); write_com(0x80+0x40+6); break; case3:shi++; if(shi==24)shi=0; write_sfm(2,shi); write_com(0x80+0x40+3); break; case4:week++; if(week==8)week=1; write_week(12,week); write_com(0x80+15); break; case5:ri++; if(ri==32)ri=1; write_nyr(9,ri); write_com(0x80+10); break; case6:yue++; if(yue==13)yue=1; write_nyr(6,yue); write_com(0x80+7); break; case7:nian++; if(nian==90)nian=0; write_nyr(3,nian); write_com(0x80+4); break; } } } } if(s3==0) { delay(10); if(s3==0) { delay(10); while(!s3); di(); if(Alset==2) { yaoliang--; if(yaoliang==-1)yaoliang=99; write_sfm(11,yaoliang); write_com(0x80+0x40+12); } else { switch(s1num) { case1: miao--; if(miao==-1)miao=59; write_sfm(8,miao); write_com(0x80+0x40+9); break; case2: fen--; if(fen==-1)fen=59; write_sfm(5,fen); write_com(0x80+0x40+6); break; case3:shi--; if(shi==-1)shi=23; write_sfm(2,shi); write_com(0x80+0x40+3);

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論