版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
本文格式為Word版,下載可任意編輯——基于單片機的的智能藥盒的設計河南理工大學畢業(yè)設計(論文)說明書
摘要
隨著社會的發(fā)展和人們生活水平的提高,人們對生活的健康質量也追求越來越高,為了便利老年人吃藥,結合當前智能藥盒蓬勃的發(fā)展狀況,本文介紹了一種基于單片機的家庭用智能藥盒的設計。首先,本文介紹了此系統(tǒng)所涉及的硬件的結構和工作原理,主要包括STC90C51單片機、LCD1602液晶和單片機的定時/計數(shù)器。其次,介紹了系統(tǒng)硬件的模塊化設計和軟件的編程思想。最終是對系統(tǒng)進行調試之后得出最終的結果。在第一部分著重介紹了單片機的各項參數(shù)、內部結構、引腳功能,LCD1602的硬件電路、顯示原理和各項命令,定時/計數(shù)器和蜂鳴器原理的簡單介紹。在其次部分則系統(tǒng)地介紹了各模塊之間的運作模式和工作流程。最終調試完善后得到的系統(tǒng)運行基本模式為:系統(tǒng)基于單片機控制,通過對單片機STC90C516定時器中斷的設計,使其完成對時鐘運行的控制,并通過LCD1602液晶顯示出來。當系統(tǒng)檢測到有時間設置功能鍵或用藥設置功能鍵有輸入時,進入關中斷調時及設置狀態(tài),之后開中斷并按下定時鍵記錄當前設置的時間及用藥量的值。在調理好系統(tǒng)時間之后,系統(tǒng)時間向前運行的過程中不斷將系統(tǒng)實時時間與記錄時間作比較,兩者相等時發(fā)出警報并顯示所設置的用藥量,一分鐘后系統(tǒng)實時時間與記錄時間不在相等則自動退出提醒,如此實現(xiàn)每天四次用藥及每次四種用藥服用量的提醒,比較適合普通家庭使用。
河南理工大學畢業(yè)設計(論文)說明書
針對目前的現(xiàn)狀,設計一種家庭用智能藥盒,本設計是以STC90C516單片機為核心,并與鍵盤輸入和1602LCD液晶顯示屏相結合的自動按時提醒控制系統(tǒng),有較高的應用價值和現(xiàn)實意義。
1.3本文的結構
本系統(tǒng)基于單片機定時/計數(shù)器時鐘程序進行計時,同時通過1602LCD液晶顯示屏顯示時間,時間采用24時制。當需要進行設定時,可根據(jù)外部鍵盤輸入時間點。當時間達到預定時間時單片機通過寫入的程序在輸出端輸出低電平,以致控制蜂鳴器實現(xiàn)聲音提醒的目的。
本系統(tǒng)采用單片機技術,電路簡單,成本低,控制精度和效率也較高,穩(wěn)定性好,易操作,顯示直觀,解決了老年人用藥的日常問題,適合普通家庭使用,對于提高老年人健康生活很有意義。
介紹本文結構如下:
第一章為緒論部分,簡要介紹了選題的背景及意義,研究的現(xiàn)狀和發(fā)展趨勢以及本文的主要內容和結構。
其次章總體方案設計,簡要介紹整個系統(tǒng)的結構及工作原理,論證系統(tǒng)總體方案的設計。
第三章為系統(tǒng)硬件設計部分,介紹各個模塊的資料、原理并對電路功能進行分析,對硬件進行器件布局和線路設計,得出系統(tǒng)硬件電路圖。
第四章為系統(tǒng)軟件設計部分,主要介紹系統(tǒng)各部分軟件的設計思想和工作流程。第五章為系統(tǒng)的調試。
第六章為總結與展望,主要是對本設計的總結。
2
河南理工大學畢業(yè)設計(論文)說明書
2系統(tǒng)總體方案設計
2.1設計要求
利用STC90C516單片機、8個按鍵、LCD1602液晶顯示屏、蜂鳴器、LED發(fā)光二極管等設計一個家庭用智能藥盒。該系統(tǒng)硬件部分由單片機最小系統(tǒng)、按鍵電路、液晶顯示電路、聲光報警電路組成,系統(tǒng)能完成時間的實時顯示、每天四次定時、每次用藥四種藥用量提醒的功能。
系統(tǒng)基本功能如下:(1)顯示
采用LCD1602顯示實時時間、用藥量、調設信息顯示等。(2)定時時間與用藥量的設定
系統(tǒng)須實現(xiàn)每天四次時間的定時,每次用藥時須對四種藥做出用量的提醒,通過6個按鍵完成,1個功能鍵,1個調理鍵,4次定時對應的4個定時按鍵。
(3)實時時間調理
實時時間通過另外2個按鍵進行調理,其中之一為功能鍵,另一個為調理鍵。(4)報警功能
實時時鐘運行到定時時間時,LCD1602顯示此次用藥量,蜂鳴器響起,LED閃爍,提醒用藥時間到。
2.2總體設計思路
本設計采用模塊化設計的方法,以STC90C516RD+單片機為核心設計一種家庭用智能藥盒。系統(tǒng)采用單片機為主控芯片,結合單片機最小系統(tǒng)所必需的上電復位電路,內部晶振電路,采用電源模塊為整個系統(tǒng)提供穩(wěn)定直流電源,采用單片機芯片提供的定時器設計系統(tǒng)時鐘,LCD顯示模塊負責時間及其他參數(shù)的的顯示,語音模塊接收單片機發(fā)送來的信號完成聲音信號的提醒,LED發(fā)光二極管協(xié)同語音模塊的蜂鳴器起到輔助的報警作用。在程序的設計問題上,以單片機內部資源為核心,調用程序存儲區(qū)的各個模塊的驅動程序,通過單片機的引腳對系統(tǒng)中其他模塊資源進行驅動和調用,通過主程序調用按鍵掃描子程序和LCD1602數(shù)據(jù)刷新程序,將按鍵模塊和LCD1602聯(lián)系起來,使得按鍵的輸入信息可以實時地顯示在LCD1602液晶屏上,程序調用LCD1602讀數(shù)據(jù)的子程序,并運算判斷是否進入報警時間,進入到報警時間時,將之前設定的用藥的信息刷新到LCD1602上,并通過作用單片機管腳,驅動蜂鳴器發(fā)聲和LED發(fā)光二極管發(fā)光,起到必要的報警功能。系統(tǒng)基本原理如圖2-1所示:
3
河南理工大學畢業(yè)設計(論文)說明書
LCD1602滿足條件報警讀/寫數(shù)據(jù)定時時間判斷STC90C516檢測鍵盤輸入
圖2-1系統(tǒng)原理圖
本系統(tǒng)采用STC90C516RD+作為單片機最小控制系統(tǒng)的核心,STC90C516RD+是STC90C51系列單片機的一種;采用LCD1602液晶屏作為顯示器件;以單片機內部定時器中斷作為系統(tǒng)時鐘。
系統(tǒng)通過單片機實現(xiàn)對各個系統(tǒng)模塊的協(xié)調控制,由單片機檢測2+2+4共8個按鍵的輸入,并將輸入信息實時顯示在LCD1602上。
定時設置通過6個按鍵完成,1個功能鍵,1個調理鍵,4次定時對應的4個定時按鍵,功能鍵按下后,即可通過調理鍵調理,隨按下功能鍵次數(shù)的不同,完成對時間和用藥量六個值的設定,最終一次按下功能鍵,并按下4個定時按鍵的其中一個,LED發(fā)光二極管閃動,以確定定時按鍵確實被按下,則記錄此時各參的值,表示一次定時操作終止,則時鐘繼續(xù)向前運行。
定時設置完成后,對系統(tǒng)始終時間做出調整。由2個按鍵完成,一個是功能鍵,一個是調理鍵,按下功能鍵,即可對時間作出調整,隨功能鍵按下次數(shù)不同,分別對分鐘數(shù)和小時數(shù)作出調整,調整終止后,最終一次按下功能鍵,時鐘開始運行。
系統(tǒng)利用單片機的定時器運行實時時鐘,由單片機檢測此時實時時間是否與4個定時時間之一相等。實時時鐘運行到定時時間時,LCD1602顯示此次用藥量,蜂鳴器響起,LED閃爍,提醒用藥時間到,一分鐘后,實時時鐘越過定時時間,實時時間與定時時間不再相等,則系統(tǒng)自動退出報警程序。
4
河南理工大學畢業(yè)設計(論文)說明書
2.3系統(tǒng)結構設計
系統(tǒng)結構由STC90C516單片機、2+2+4鍵盤、電源、晶振電路、復位電路、LCD顯示、蜂鳴器電路、發(fā)光二極等幾部分構成。系統(tǒng)結構如圖2-2所示:
2+2+4鍵盤LCD1602復位電路STC90C516蜂鳴器電路晶振電路發(fā)光二極管
電源圖2-2系統(tǒng)結構圖
5
河南理工大學畢業(yè)設計(論文)說明書
3硬件電路的設計
3.1單片機最小系統(tǒng)
單片機最小系統(tǒng)主要由STC90C516單片機、晶振電路、復位電路等構成,單片機最小系統(tǒng)如圖3-1所示:
圖3-1單片機最小系統(tǒng)電路圖
3.1.1.STC90C51RC/RD+系列單片機簡介
STC90C51RC/RD+系列單片機是宏晶科技推出的新一代超強抗干擾、高速、低功耗的單片機,指令代碼完全兼容傳統(tǒng)8051單片機,12時鐘機器周期和6時鐘機器周期可以任意選擇。內部集成MAX810專用復位電路,時鐘頻率在12MHz以下時,復位腳可直接接地。STC90C51RC/RD+單片機中包含中央處理器(CPU)、程序存儲器(FLASH)、數(shù)據(jù)存儲器(SPAM)、定時/計數(shù)器、UART串口、I/O接口、EEPROM、看門狗等模塊。STC90C51RC/RD+系列單片機幾乎包含了數(shù)據(jù)采集和控制所需要的所有單元模塊,可稱得上一個片上系統(tǒng)。
1、加強型6時鐘/機器周期,12時鐘/機器周期8051CPU。
6
河南理工大學畢業(yè)設計(論文)說明書
2、工作電壓:5.5V-3.8V(5V單片機)/3.6V-2.0V(3V單片機)。
3、工作頻率范圍:0-40MHz,相當于普通8051的0~80MHz,實際工作頻率可達48MHz。
4、用戶應用程序空間4K/6K/7K/8K/10K/12K/13K/16K/32K/40K/48K/56K/61K/字節(jié)。5、片上集成1280字節(jié)/512/256字節(jié)RAM。
6、通用I/O口(35/39個),復位后為:P1/P2/P3/P4是準雙向口/弱上拉(普通8051傳統(tǒng)I/O口)。P0口是開漏輸出,作為總線擴展用時,不用加上拉電阻,作為I/O口用時,需加上拉電阻。
7、ISP(在系統(tǒng)可編程)/IAP(在應用可編程),無需專用編程器/仿真器,可通過串口(P3.0/P3.1)直接下載用戶程序,8K程序3-5秒即可完成一片。
8、EEPROM功能。9、看門狗。
10、內部集成MAX810專用復位電路,外部晶體12M以下時,可省外部復位電路,復位腳可直接接地。
11、共3個16位定時器/計數(shù)器,其中定時器0還可以當成2個8位定時器使用。12、外部中斷4路,下降沿中斷或低電平觸發(fā)中斷,PowerDown模式可由外部中斷低電平觸發(fā)中斷方式喚醒。
13、通用異步串行口(UART),還可用定時器軟件實現(xiàn)多個UART。14、工作溫度范圍:0-75℃/-40-+85℃。15、封裝:LQFP-44,PDIP-40,PLCC-44。
圖3-2STC90C51RC/RD+系列單片機引腳圖
7
河南理工大學畢業(yè)設計(論文)說明書
1、電源
Vcc(引腳號40),芯片電源,接+5V;Gnd(引腳號20),電源接地端。2、時鐘
XTAL1(引腳號19)內部振蕩電路反相放大器的輸入端,是外接晶振的一個引腳。當采用外部振蕩器時,此引腳接地。
XTAL2(引腳號18)內部振蕩器的反相放大器輸出端,是外接晶振的另一端。當采用外部振蕩器時,此引腳接外部振蕩源。
3、控制總線
(1)ALE/PROG(引腳號30):正常操作時為ALE功能(允許地址鎖存),用來把地址的低字節(jié)鎖存到外部鎖存器。ALE引腳以不變的頻率(振蕩器頻率的1/6)周期性地發(fā)出正脈沖信號。因此,它可用作對外輸出的時鐘信號或用于定時。但要注意,每當訪問外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。ALE端可以驅動(吸收或輸出電流)8個LSTTL電路。
(2)PSEN(引腳號29):外部程序存儲器讀選通信號。在從外部程序存儲器取指令(或數(shù)據(jù))期間,PSEN在每個機器周期內兩次有效。PSEN可以驅動8個LSTTL電路。
(3)RST/VPD(引腳號9):復位信號輸入端。振蕩器工作時,該引腳上持續(xù)2個機器周期的高電平可實現(xiàn)復位操作。此引腳還可接上備用電源。在Vcc掉電期間,由VPD向內部RAM提供電源,以保持內部RAM中的數(shù)據(jù)。
(4)EA/Vpp(引腳號31):為內部程序存儲器和外部程序存儲器的選擇端。當EA為高電平日,訪問內部程序存儲器;當EA為低電平日,訪問外部程序存儲器。
4、I/O線
(1)P0口(引腳號32~39):單片機的雙向數(shù)據(jù)總線和低8位地址總線。在訪問外部存儲器時實現(xiàn)分時操作,先用作地址總線,在ALE信號的下降沿,地址被鎖存;然后用作為數(shù)據(jù)總線。它也可以用作雙向輸入/輸出口。P0口能驅動8個LSTTL負載。
(2)P1口(引腳號1~8):準雙向輸入/輸出口,它能驅動4個LSTTL負載。(3)P2口(引腳號21~28):準雙向輸入/輸出口。在訪問外部存儲器時,用作高8位地址總線。P2口能驅動4個LSTTL負載。
(4)P3口(引腳號10~17):準雙向輸入/輸出口,它能驅動4個LSTTL負載。P3口的每一引腳還有另外一種功能:
P3.0——RXD:串行口輸入端。
8
河南理工大學畢業(yè)設計(論文)說明書
P3.1——TXD:串行口輸出端。
P3.2——INT0:外部中斷0中斷請求輸入端。P3.3——INT1:外部中斷1中斷請求輸入端。P3.4——T0:定時器/計數(shù)器0外部輸入端。P3.5——T1:定時器/計數(shù)器1外部輸入端。P3.6——WR:外部數(shù)據(jù)存儲器寫選通信號。P3.7——RD:外部數(shù)據(jù)存儲器讀選通信號。
3.1.2.晶振電路
單片機工作時,從取指令到譯碼再進行微操作,必需在時鐘信號控制下才能有序地進行,時鐘電路就是為單片機工作提供基本時鐘的。單片機的時鐘信號尋常有兩種產生方式:內部時鐘方式和外部時鐘方式。
內部時鐘方式是在單片機XTAL1和XTAL2引腳上跨接上一個晶振和兩個穩(wěn)頻電容,可以與單片機片內的電路構成一個穩(wěn)定的自激振蕩器。晶振的取值范圍一般為0~24MHz,常用的晶振頻率有6MHz、12MHz、11.0592MHz、24MHz等。一些新型的單片機還可以選擇更高的頻率。外接電容的作用是對振蕩器進行頻率微調,使振蕩信號頻率與晶振頻率一致,同時起到穩(wěn)定頻率的作用,一般選用20~30pF的瓷片電容。
外部時鐘方式則是在單片機XTAL1引腳上外接一個穩(wěn)定的時鐘信號源,它一般適用于多片單片機同時工作的狀況,使用同一時鐘信號可以保證單片機的工作同步。
時序是單片機在執(zhí)行指令時CPU發(fā)出的控制信號在時間上的先后順序。單片機的時序概念有4個,可用定時單位來說明,包括振蕩周期、時鐘周期、機器周期和指令周期。
振蕩周期:是片內振蕩電路或片外為單片機提供的脈沖信號的周期。時序中1個振蕩周期定義為1個節(jié)拍,用P表示。
時鐘周期:振蕩脈沖送入內部時鐘電路,由時鐘電路對其二分頻后輸出的時鐘脈沖周期稱為時鐘周期。時鐘周期為振蕩周期的2倍。時序中1個時鐘周期定義為1個狀態(tài),用S表示。每個狀態(tài)包括2個節(jié)拍,用P1、P2表示。
機器周期:機器周期是單片機完成一個基本操作所需要的時間。一條指令的執(zhí)行需要一個或幾個機器周期。一個機器周期固定的由6個狀態(tài)S1~S6組成。
指令周期:執(zhí)行一條指令所需要的時間稱為指令周期。一般用指令執(zhí)行所需機器周期數(shù)表示。單片機多數(shù)指令的執(zhí)行需要1個或2個機器周期,只有乘除兩條指令的執(zhí)行
9
河南理工大學畢業(yè)設計(論文)說明書
需要4個機器周期。
了解了以上幾個時序的概念后,我們就可以很快的計算出執(zhí)行一條指令所需要的時間。例如:若單片機使用12MHz的晶振頻率,則振蕩周期=1/(12MHz)=1/12us,時鐘周期=1/6us,機器周期=1us,執(zhí)行一條單周期指令只需要1us,執(zhí)行一條雙周期指令則需要2us。晶振電路如圖3-3所示:
圖3-3系統(tǒng)晶振電路圖
3.1.3.復位電路
無論是在單片機剛開始接上電源時,還是運行過程中發(fā)生故障都需要復位。復位電路用于將單片機內部各電路的狀態(tài)恢復到一個確定的初始值,并從這個狀態(tài)開始工作。
單片機的復位條件:必需使其RST引腳上持續(xù)出現(xiàn)兩個(或以上)機器周期的高電平。
單片機的復位形式:上電復位、按鍵復位,此處采用上電復位。
按鍵復位電路中,當按鍵沒有按下時,電路同上電復位電路。如在單片機運行過程中,按下RESET鍵,已經充好電的電容會快速通過電阻的回路放電,從而使得RST引腳上的電位快速變?yōu)楦唠娖?,此高電平會維持到按鍵釋放,從而滿足單片機復位的條件實現(xiàn)按鍵復位。
單片機要復位只需要在第9引腳接個高電平持續(xù)2μs就可以實現(xiàn),電容的的大小是10uF,電阻的大小是10k。所以根據(jù)公式,可以算出電容充電到電源電壓的0.7倍(單片機的電源是5V,所以充電到0.7倍即為3.5V),需要的時間是10K×10UF=0.1S。單片機最小系統(tǒng)復位電路的極性電容C1的大小直接影響單片機的復位時間,一般采用10~30uF,單片機最小系統(tǒng)容值越大需要的復位時間越短。單片機復位電路如圖3-4所示:
10
河南理工大學畢業(yè)設計(論文)說明書
圖3-4系統(tǒng)復位電路
3.2顯示電路
顯示電路中的顯示器件為LCD1602,其數(shù)據(jù)端口與單片機的P0口相接,電路連接如圖3-5所示:
圖3-5LCD1602連接圖
11
河南理工大學畢業(yè)設計(論文)說明書
1602采用標準的16腳接口,其中:第1腳:VSS為地電源。第2腳:VCC接5V正電源。
第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產生重影,使用時可以通過一個1K的電位器調整對比度。
第4腳:RS為寄放器選擇,高電平日選擇數(shù)據(jù)寄放器,低電平日選擇指令寄放器。第5腳:RW為讀寫信號線,高電平日進行讀操作,低電平日進行寫操作。當RS和RW同為低電平日可以寫入指令或者顯示地址,當RS為低電平RW為高電平日可以讀忙信號,當RS為高電平RW為低電平日可以寫入數(shù)據(jù)。
第6腳:E端為使能端,當E端由高電平跳變成低電平日,液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15~16腳:背光燈電源。
LCD1602指令與時序說明如下:
表3-1LCD1602指令表
數(shù)據(jù)位RS命令RWDB7DB6DB5DB4DB3DB2DB1DB0清屏0000000001歸位000000000*輸入方式00000001I/DS顯示開關0000001DCB光標、畫面000001S/CR/L**功能設置00001DLNF**CGRAM地址0001A5A4A3A2A1A0DDRAM地址001A6A5A4A3A2A1A0讀BF及AC01BFAC6AC5AC4AC3AC2AC1AC0
寫數(shù)據(jù)10數(shù)據(jù)
讀數(shù)據(jù)11數(shù)據(jù)
LCD1602在工作的過程中,在數(shù)據(jù)線上傳送數(shù)據(jù)時,需將傳送數(shù)據(jù)在數(shù)據(jù)線上持續(xù)一小段時間,保證單片機的P0口數(shù)據(jù)傳送或接收成功,其基本操作時序如表3-2所示:
12
河南理工大學畢業(yè)設計(論文)說明書
表3-2LCD1602基本操作時序
操作讀狀態(tài)寫指令讀數(shù)據(jù)寫數(shù)據(jù)
輸入RS=L,R/W=H,E=H
RS=L,R/W=L,D0~D7=指令碼,E=高脈沖
RS=H,R/W=H,E=H
RS=H,R/W=L,D0~D7=數(shù)據(jù),E=高脈沖
輸出D0~D7=狀態(tài)字
無D0~D7=數(shù)據(jù)
無
3.3鍵盤電路
在單片機應用系統(tǒng)中,除了復位按鍵外,還需要其他按鍵,即鍵盤按鍵,以便控制系統(tǒng)的運行狀態(tài)或向系統(tǒng)輸入運行參數(shù)。鍵盤電路一般由鍵盤接口電路、按鍵(由控制系統(tǒng)運行狀態(tài)的功能鍵和向系統(tǒng)輸入數(shù)據(jù)的數(shù)字調理鍵組合)以及鍵盤掃描程序等部分組成。本系統(tǒng)鍵盤電路共有8個按鍵組成,按4×2的格式布置。鍵盤的電路連接如圖3-6所示:
圖3-6系統(tǒng)按鍵電路連接圖
鍵盤的工作原理是:按下鍵帽時,按鍵內的復位彈簧被壓縮,動片觸點與靜片觸點相連,按鍵接通,相應鍵向單片機端口發(fā)送一個低電平,松開鍵帽,按鍵斷開。
13
河南理工大學畢業(yè)設計(論文)說明書
3.4蜂鳴器報警電路
系統(tǒng)中單片機的P2.3腳與蜂鳴器相連,開啟蜂鳴器功能。當單片機的管腳輸出固定頻率電平日蜂鳴器響起。聲音是由振動所產生的,一定頻率的震動就產生了一定頻率的聲音,其電路連接圖如圖3-7所示:
圖3-7蜂鳴器電路連接圖
一般狀況下,P2.3腳處于高電平,當系統(tǒng)進入報警時間時,單片機控制P2.3腳輸出一定頻率方波,蜂鳴器振動發(fā)聲,實現(xiàn)聲音報警功能。
3.5發(fā)光二極管電路
發(fā)光二極管在系統(tǒng)中結合蜂鳴器報警同步作用,其電路連接如圖3-8所示:
圖3-8發(fā)光二極管電路連接圖
發(fā)光二極管一端接電源供電,通過電阻與單片機P2.4腳連接,一般狀況下,P2.4
14
河南理工大學畢業(yè)設計(論文)說明書
為高電平,發(fā)光二極管處于熄滅狀態(tài),當進入報警時間時,P2.4腳降為低電平,發(fā)光二極管導通亮起,其中的電阻起到對通過二極管的電流的調理作用,使得二極管正常發(fā)光。
3.6定時模式裝入初值的計算
對于定時模式,是對機器周期計數(shù),而機器周期與選定的主頻密切相關。因此,需根據(jù)應用系統(tǒng)所選定的主頻計算出機器周期值。現(xiàn)在以主頻12MHz為例,則機器周期為
一個機器周期?實際定時時間Tc=x×Tp。
式中Tp為機器中期,Tc為所需定時時間,x為所需計數(shù)次數(shù),x為所需計數(shù)次數(shù)。Tp和Tc一般為已知值,在求出Tp后即可求得所需計數(shù)值x,再將x求補碼,即求得定時計數(shù)初值。即
(x)補?2n?x
例如設定時時間為Tc=5ms,機器周期Tp=1μs,可求得定時計數(shù)次數(shù)
x?1212??s?1?s
主振頻率12?1065ms?5000次1μs設選用工作方式1,則n=16,則應設置的定時時間計算出值為(x)補?216?x?65536?5000?15536
還需將它分解成兩個8位十六進制數(shù),分別求得低8位為B0H裝入TLx,高8位為3CH裝入THx中。
工作方式0、1、2的最大計數(shù)次數(shù)分別為8192、65536和256。
15
河南理工大學畢業(yè)設計(論文)說明書
4系統(tǒng)軟件設計
本軟件所實現(xiàn)的功能是:單片機檢測按鍵的輸入信息,并實時地顯示在LCD1602上,在系統(tǒng)記錄下四次用藥時間和每次的用藥量之后,調理好系統(tǒng)時鐘后系統(tǒng)開始運行,在運行的過程中,單片機將定時的四個時間與系統(tǒng)的實時時間相比較,相等時即報警,并顯示此次用藥的服用量。主程序調用子程序,子程序之間又嵌套調用,總之,各元件所對應的子程序在主程序的調用驅動作用下,協(xié)調運行工作,共同實現(xiàn)實現(xiàn)藥盒的系統(tǒng)功能。
各個程序模塊的結構如圖4-1所示:
初始化子程序鍵盤掃描子程序數(shù)據(jù)刷新子程序系統(tǒng)主程序中斷子程序
圖4-1各程序模塊結構圖
4.1系統(tǒng)主程序
主程序模塊主要完成控制系統(tǒng)各部件的初始化和實現(xiàn)各功能子程序的調用,也可經兩重或多重嵌套調用子程序,主程序下轄多個子程序模塊,系統(tǒng)通過運行主程序將各個子程序模塊的功能協(xié)調實現(xiàn)。整個的系統(tǒng)運行在主程序的無盡循環(huán)中,不斷地進行運算操作,實現(xiàn)各階段的相應功能。
在本系統(tǒng)的主程序中,隨主程序運行到不同的階段,主程序要在時鐘的驅動下,首先完成對系統(tǒng)各個模塊的初始化,之后進入到循環(huán)當中;在進入到循環(huán)后對鍵盤掃描子程序進行調用,掃描鍵盤輸入信息,經運算后調用數(shù)據(jù)刷新子程序將輸入信息實時地顯示在LCD1602上,實現(xiàn)四次時間定時和和每次用藥服用量的設定,然后完成對實時時間的調理;當實時時鐘向前運行時,將定時時間與系統(tǒng)實時時間作比較,兩者相等時則進入報警程序。主程序流程如圖4-2所示:
16
河南理工大學畢業(yè)設計(論文)說明書
}
}
}
}main(){lcd_init();//初始化LCD
while(1){
keyscan();
//按鍵掃描
if(count==20){count=0;miao++;if(miao==60){miao=0;fen++;if(fen==60)
{
42
河南理工大學畢業(yè)設計(論文)說明書
}
}
fen=0;shi++;if(shi==24){}
write_sfm(8,shi);
shi=0;
write_sfm(11,fen);
write_sfm(14,miao);
if(s5==0)//按鍵按下,記錄當下時間{
delay(5);if(s5==0){
while(!s5);
lcd_wcmd(0x80+0x40);read_status();
a[0]=lcd_rdat();
lcd_wcmd(0x80+0x40+2);read_status();
a[1]=lcd_rdat();
lcd_wcmd(0x80+0x40+4);read_status();
a[2]=lcd_rdat();
lcd_wcmd(0x80+0x40+6);read_status();
a[3]=lcd_rdat();
shi1=shi;
43
河南理工大學畢業(yè)設計(論文)說明書
}
fen1=fen;
}if(s6==0){
delay(5);if(s6==0){
while(!s6);
lcd_wcmd(0x80+0x40);read_status();
b[0]=lcd_rdat();
lcd_wcmd(0x80+0x40+2);read_status();
b[1]=lcd_rdat();
lcd_wcmd(0x80+0x40+4);read_status();
b[2]=lcd_rdat();
lcd_wcmd(0x80+0x40+6);read_status();
b[3]=lcd_rdat();}
shi2=shi;fen2=fen;
}
44
河南理工大學畢業(yè)設計(論文)說明書
if(s7==0){
delay(5);if(s7==0){
while(!s7);
lcd_wcmd(0x80+0x40);read_status();
c[0]=lcd_rdat();
lcd_wcmd(0x80+0x40+2);read_status();
c[1]=lcd_rdat();
lcd_wcmd(0x80+0x40+4);read_status();
c[2]=lcd_rdat();
lcd_wcmd(0x80+0x40+6);read_status();
c[3]=lcd_rdat();
shi3=shi;fen3=fen;
}
}
if(s8==0)
{
delay(5);if(s8==0){
45
河南理工大學畢業(yè)設計(論文)說明書
while(!s8);
lcd_wcmd(0x80+0x40);
read_status();
d[0]=lcd_rdat();lcd_wcmd(0x80+0x40+2);
read_status();
d[1]=lcd_rdat();lcd_wcmd(0x80+0x40+4);
read_status();
d[2]=lcd_rdat();lcd_wcmd(0x80+0x40+6);
read_status();
d[3]=lcd_rdat();shi4=shi;
fen4=fen;
}
}
if((shi1==shi)delay(5);s9=1;
for(count1=0;count1河南理工大學畢業(yè)設計(論文)說明書
開始
中斷處理;中斷次數(shù)++Y中斷?
N中斷返回Y按鍵按下?
N按鍵掃描子程序N中斷次數(shù)=20?
Y
中斷次數(shù)=0;秒鐘++定時按鍵按NN刷新秒鐘下?秒鐘=60?
YY秒鐘=0;分鐘++
記錄此時間
N刷新分鐘分鐘=60?N定時時間=此Y時時間?
分鐘=0;小時++
YNY
小時=0小時=24?刷新小時報警結束
圖4-2主程序流程圖
17
河南理工大學畢業(yè)設計(論文)說明書
4.2系統(tǒng)軟件子程序
系統(tǒng)軟件子程序較多,主要有延時子函數(shù)、數(shù)據(jù)刷新子函數(shù)、LCD測忙子函數(shù)、LCD寫命令子函數(shù)、LCD寫數(shù)據(jù)子函數(shù)、LCD讀狀態(tài)子函數(shù)、LCD讀數(shù)據(jù)子函數(shù)、初始化子函數(shù)、按鍵掃描子函數(shù)、中斷子函數(shù)等。其中較為重要的為按鍵掃描子函數(shù)和中斷子函數(shù)?,F(xiàn)僅介紹按鍵掃描子函數(shù)和中斷子函數(shù)。
4.2.1.按鍵掃描子函數(shù)
按鍵掃描子函數(shù)檢測2+2共4個鍵的輸入信息。2個為時間調理按鍵,其中一個為功能按鍵,一個為調理鍵,當功能按鍵按下時,開啟調理功能,隨功能鍵按下次數(shù)不同,調理鍵分別對時間的時和分進行調理;另外2個為定時時間和藥物用量的調理鍵,協(xié)同4個定時按鍵使用。程序流程如圖4-3所示:
圖4-3按鍵掃描子函數(shù)程序流程圖
開始檢測s1的輸入,記錄輸入次數(shù)s1num判斷s1num的值,利用s2調理時間的時和分檢測s3的輸入,記錄輸入次數(shù)s3num判斷s3num的值,利用s4調理服藥時間和用量終止
18
河南理工大學畢業(yè)設計(論文)說明書
4.2.2.中斷子函數(shù)
當定時器寄放器TH0/TL0溢出時,溢出標志位TF0被置位,定時器中斷發(fā)生,當單片機轉去執(zhí)行定時器中斷時,定時器溢出標志位TF0被硬件清零。在中斷子函數(shù)中對變量做計數(shù)控制實現(xiàn)計數(shù)定時。
定時器中斷子程序流程如圖4-4所示:
變量count加1開始單片機執(zhí)行定時器中斷向定時器TH0裝入初值向定時器TH0裝入初值結束圖4-4中斷子程序流程圖
19
河南理工大學畢業(yè)設計(論文)說明書
5系統(tǒng)的調試
本系統(tǒng)的大多軟硬件的調試均在普中科技單片機開發(fā)板上完成。在開發(fā)板上試驗成功后,開始焊接,簡單連線即可實現(xiàn)功能。
5.1軟件調試
軟件調試過程中采用逐步添加模塊功能程序的方法,一步步添加各功能模塊的應用程序,逐步修改完善。
初步軟件程序僅顯示時間,完成時鐘的功能,后逐步添加位定義,完成所有與按鍵輸入有關的程序,實現(xiàn)系統(tǒng)各參的可調理,再之后添加LCD1602讀取數(shù)據(jù)的子程序,完成對LCD1602顯示的各參的記錄,完成時間定時的功能,最終添加報警提醒程序,實現(xiàn)報警功能。
在系統(tǒng)軟件編程的過程中,可分為以下幾個階段:1、編寫簡單的時鐘程序,實現(xiàn)時鐘的運行。
2、在時鐘的基礎上,增加2個鍵,并添加驅動程序實現(xiàn)其輸入功能,一個為功能鍵,一個為調理鍵;當功能鍵按下,啟用調理鍵的調理功能;功能鍵按下1次,調理鍵對分鐘進行調理;功能鍵按下2次,調理鍵對小時進行調理;功能鍵按下3次,退出時鐘調理,時鐘在調理后的基礎上開始運行。
3、再增加2個鍵,對所需設定的時間和用藥量進行調理,一個為功能鍵,一個為調理鍵,分別對小時、分鐘、四種用藥量共6個量進行調理。
4、再增加4個鍵并增加報警程序。在將設定時間和用量調理好后,按下4個鍵中的一個,如此4次,系統(tǒng)即可記錄4次服藥過程的各參。
軟件調試所使用的軟件為KEIL,是電子是電子方向技術人員使用較多的軟件,使用版本為KeilμVision4英文版,是高效的開發(fā)應用程序。這一版本還可支持好多最新的ARM芯片。
KEIL的優(yōu)點如下:
1、KeilμVision4生成的目標代碼效率十分之高,多數(shù)語句生成的匯編代碼很緊湊,簡單理解。在開發(fā)大型軟件時更能表達高級語言的優(yōu)勢。
2、與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。特別是對用過匯編語言后再使用C來開發(fā)的人而言,其與匯編相比所表達出來的好處更加深刻。
KEIL軟件的編譯界面如圖5-1所示:
20
河南理工大學畢業(yè)設計(論文)說明書
圖5-1KEIL軟件編譯界面圖
KEIL軟件調試界面如圖5-2所示:
圖5-2KEIL軟件調試界面圖
5.2硬件調試
硬件在調試過程中,大部分的硬件工作原理都是在單片機開發(fā)板上完成的。由于開發(fā)板上集成了大部分的單片機常用的模塊,啟用時只需通過連線或者插拔相應的短路帽即可將該模塊接入單片機系統(tǒng)加以調用。
初步軟件程序僅實現(xiàn)單片機系統(tǒng)對定時模塊的控制,實現(xiàn)LCD1602時鐘的顯示,隨程序功能的逐步完善,逐步添加按鍵輸入功能及用藥量的調設功能,在完成之后參與對
21
河南理工大學畢業(yè)設計(論文)說明書
時間定時與用藥量記錄功能,然后參與定時顯示提醒功能,最終完成蜂鳴器的聲音報警提醒功能。
系統(tǒng)硬件的驗證過程隨系統(tǒng)軟件的完善過程可分為以下幾個階段:
1、連接LCD1602模塊到最小單片機系統(tǒng),燒錄程序,驗證LCD1602的顯示功能,并隨軟件的修改完善,LCD1602最終正常顯示。
2、連接4×2鍵盤到系統(tǒng)中,隨軟件的不斷完善。逐步啟用8個按鍵。3、連接LED發(fā)光二極管到系統(tǒng)中,并代替蜂鳴器驗證定時和報警功能。4、連接蜂鳴器到系統(tǒng)中,并在系統(tǒng)中添加相應的驅動程序,驗證系統(tǒng)的聲音報警功能。
系統(tǒng)的按鍵模塊硬件實物圖如圖5-3所示:
圖5-3系統(tǒng)按鍵模塊硬件實物圖
22
河南理工大學畢業(yè)設計(論文)說明書
系統(tǒng)單片機最小系統(tǒng)如圖5-4所示:
圖5-4單片機最小系統(tǒng)硬件實物圖
隨系統(tǒng)軟件功能的增加,逐步向系統(tǒng)中添加其他功能模塊,最終添加系統(tǒng)的報警功
23
河南理工大學畢業(yè)設計(論文)說明書
能模塊,報警模塊硬件實物圖如圖5-5所示:
圖5-5報警模塊硬件實物圖
5.3調試結果
電路焊接完成后,經簡單調試后,系統(tǒng)可以根據(jù)按鍵的輸入信息正常的調理時間和用藥量,并且在有定時鍵按下時,記錄當前的顯示內容。在調理好系統(tǒng)的時鐘之后,最終一次按下系統(tǒng)時鐘調理功能鍵,系統(tǒng)在調理好的時鐘時間基礎上向前運行,在報警時
24
河南理工大學畢業(yè)設計(論文)說明書
間到來時系統(tǒng)可以正常的發(fā)出聲光的報警信息,同時顯示設定的用藥量,并在以后每天的同一時間再次運行到該時間時啟動一致的報警程序。
LCD1602顯示界面如圖5-6所示:
圖5-6LCD1602顯示界面圖
在LCD1602顯示界面圖中,第一行顯示其次行的功能,dsg為英文dosage的縮寫,表示用量,共4個數(shù)據(jù),表示四種藥的用量,其調理范圍為0~9;其后為時間顯示區(qū),采用24小時制。
25
河南理工大學畢業(yè)設計(論文)說明書
6結論與展望
本系統(tǒng)以STC90C516為中心,具有LCD1602時間顯示、四次定時、蜂鳴器提醒用藥時間、顯示四種藥物用藥量的功能。所使用的STC90C516系列單片機抗干擾能力超強,低功耗,高可靠。本系統(tǒng)只需一次設置,在使用過程中不需再進行除服藥外的任何操作。本設計主要完成的工作有:
1、通過單片機內部定時器運行的時鐘。2、使用LCD1602同步顯示時間。
3、使用LCD1602將按鍵輸入信息實時顯示在顯示屏上,包括時間調整,用藥量的調整,追求防呆設計。
4、按鍵完成對四次時間的定時。
5、蜂鳴器在系統(tǒng)設定時間進行聲光信號的報警。
隨著近年來我國人口老齡化的日益嚴重以及人們在健康觀念上的日益重視,電子藥盒已成為一個很具有現(xiàn)實意義和使用價值的電子裝置,從本文的課題方向出發(fā),還可以精化以下幾個方面的工作:
1、從智能藥盒的外形來看,家庭用的智能藥盒還可以在系統(tǒng)的外部更加的簡化,減少使用所需的按鍵,配置其他更適合更實用的顯示模塊降低資源花費,并沿用一次設置而使用過程不用進行其他操作的思想,簡化使用負擔。
2、從系統(tǒng)的內部程序來看,本系統(tǒng)囿于我的水平和能力未能將系統(tǒng)程序的規(guī)律和算法優(yōu)化到更高水平,該系統(tǒng)可進一步優(yōu)化算法,使用更低級更低廉的單片機,降低系統(tǒng)所需的成本。
3、從系統(tǒng)功能來看,本系統(tǒng)還便于添加其他的應用,如集成DS1302添加類似萬年歷的功能,集成測溫模塊添加對家庭室內溫度的監(jiān)測功能等,可以更充分的的利用單片機的資源,并增加系統(tǒng)的可用性。
26
typedefunsignedcharBYTE;//用BYTE代替unsignedchartypedefunsignedintWORD;//WORD代替unsignedinttypedefbitBOOL;//用BOOL代替bit
BYTEnum,count,count,count1,s1num,s3num,dsg1,dsg2,dsg3,dsg4,turn;charshi,fen,miao,shi1,fen1,shi2,fen2,shi3,fen3,shi4,fen4,shi4;
sbitrs=P2^6;//復位端sbitrw=P2^5;//寫數(shù)據(jù)端sbitep=P2^7;//使能端sbits1=P1^0;//位定義sbits2=P1^1;sbits3=P1^2;sbits4=P1^3;sbits5=P1^4;sbits6=P1^5;sbits7=P1^6;sbits8=P1^7;sbits9=P2^4;sbits10=P2^3;
BYTEcodedis1[]={\tim\//LCD初始化BYTEcodedis2[]={\
chara[4],b[4],c[4],d[4];//四次時間定時待賦值變量//chare[4]={0,0,0,0};
/*******************延時函數(shù)********************/voiddelay(BYTEms)
31
河南理工大學畢業(yè)設計(論文)說明書
{}
BYTEi;while(ms--){}
for(i=0;i河南理工大學畢業(yè)設計(論文)說明書
}
TR0=0;
lcd_wcmd(0x80+0x40+11);//光標指向位置lcd_wcmd(0x0f);
if(s1num==2){lcd_wcmd(0x80+0x40+8);
}
if(s1num==3){s1num=0;lcd_wcmd(0x0c);
TR0=1;
}
}
}if(s1num!=0){if(s2==0){
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025有關工廠承包合同的范本
- 2025圍墻砌筑合同范文
- 應收賬款的質押合同
- 塑鋼購銷合同
- 2025水庫承包合同范本
- 2025合同模板機械設備租賃合同范本
- 全新補充合同書下載
- bim設計服務合同
- 學校保潔員合同協(xié)議
- IT運維服務合同年
- Unit6AtthesnackbarStorytimeDiningwithdragons(課件)譯林版英語四年級上冊
- 2023年四川省公務員錄用考試《行測》真題卷及答案解析
- 機電一體化系統(tǒng)設計-第5章-特性分析
- 2025年高考物理復習壓軸題:電磁感應綜合問題(原卷版)
- 雨棚鋼結構施工組織設計正式版
- 2024尼爾森IQ中國本土快消企業(yè)調研報告
- 2024年印度辣椒行業(yè)狀況及未來發(fā)展趨勢報告
- 石家莊長安區(qū)幼兒園信息統(tǒng)計表
- 最終稿(教學評一致)課件
- 2023年廣東省深圳市八年級下學期物理期中考試試卷
- 《詩詞寫作常識 詩詞中國普及讀物 》讀書筆記思維導圖
評論
0/150
提交評論