找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 3026|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

基于單片機(jī)的老年公寓智能控制系統(tǒng)設(shè)計(jì)論文

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:423436 發(fā)表于 2018-11-9 10:33 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
老年公寓智能控制系統(tǒng)

目錄
摘要
Abstract
第1章  前言
1.1  課題背景和意義              1
1.2  國(guó)內(nèi)發(fā)展現(xiàn)狀              1
1.3  主要研究?jī)?nèi)容              1
第2章  系統(tǒng)的總體方案
2.1  系統(tǒng)的功能設(shè)計(jì)
2.2 設(shè)計(jì)方案的論述
2.3  總體結(jié)構(gòu)框圖              3
第3章  系統(tǒng)的硬件設(shè)計(jì)              4
3.1  硬件系統(tǒng)的構(gòu)成              4
3.2 單片機(jī)的介紹              4
3.3 單片機(jī)最小系統(tǒng)              5
3.3.1控制器模塊              5
3.3.2 復(fù)位電路              6
3.3.3 時(shí)鐘電路              6
3.4 鍵盤模塊設(shè)計(jì)              7
3.5 報(bào)警模塊設(shè)計(jì)              9
3.6  顯示模塊設(shè)計(jì)              9
3.7 視頻監(jiān)控模塊設(shè)計(jì)              11
3.8 控制模塊設(shè)計(jì)              11
第4章  系統(tǒng)的軟件設(shè)計(jì)              12
4.1  Keil uVision4軟件的使用              12
4.2  系統(tǒng)主程序設(shè)計(jì)              13
4.3  鍵盤掃描程序設(shè)計(jì)              14
4.4 顯示程序設(shè)計(jì)              15
第5章  仿真與調(diào)試              16
5.1  Proteus ISIS軟件              16
5.2 仿真調(diào)試結(jié)果              17
第6章  結(jié)束語              18
參考文獻(xiàn)              19
答謝辭              20
附錄

摘  要
本次課題為老年公寓智能控制系統(tǒng),其實(shí)也就是病人請(qǐng)求值班醫(yī)生或護(hù)士進(jìn)行診斷、護(hù)理的緊急呼叫工具。傳統(tǒng)的病房呼叫系統(tǒng)缺乏新意,功能不全,不能根據(jù)老人病情進(jìn)行優(yōu)先選擇的能力,功能單一,因此,本次設(shè)計(jì)在傳統(tǒng)呼叫系統(tǒng)基礎(chǔ)上加以改進(jìn),彌補(bǔ)不足。
本次畢業(yè)設(shè)計(jì)以三年所學(xué)專業(yè)知識(shí)為基礎(chǔ),以AT89C51單片機(jī)為系統(tǒng)核心,其中系統(tǒng)硬件電路主要包括:時(shí)鐘電路、復(fù)位電路、鍵盤電路、LED顯示電路、報(bào)警電路,軟件部分對(duì)各部分電路用高級(jí)語言進(jìn)行程序編寫設(shè)計(jì)。設(shè)計(jì)一個(gè)具有優(yōu)先選擇功能的緊急呼叫系統(tǒng),每個(gè)老人房間床位旁都有一個(gè)呼叫按鈕,當(dāng)老人需要幫助的時(shí)候,按下床位呼叫按鍵,值班室便會(huì)有蜂鳴器響起,產(chǎn)生聲光報(bào)警,并在值班室的數(shù)碼管上顯示床位號(hào)。多人同時(shí)按下時(shí)可判斷病情進(jìn)行優(yōu)先級(jí)判斷,首先顯示優(yōu)先級(jí)最高的床號(hào),醫(yī)護(hù)人員接受響應(yīng)后,可終止當(dāng)前呼叫。然后通過proteus仿真軟件設(shè)計(jì)系統(tǒng)仿真電路圖,并對(duì)系統(tǒng)進(jìn)行仿真調(diào)試。在此基礎(chǔ)上,考慮一些病情嚴(yán)重到無法按呼叫按鈕的老人,在其床位合適位置安裝攝像頭,進(jìn)行實(shí)時(shí)監(jiān)控。

第1章  前 言

1.1、選題背景和意義
伴隨著人口老齡化,現(xiàn)代科技日益發(fā)達(dá),全國(guó)各地的醫(yī)院和老年公寓不斷增加。在以往醫(yī)院或老年公寓,病人遇到突發(fā)情況時(shí),由于向醫(yī)護(hù)人員得不到及時(shí)的救助,往往錯(cuò)過了最佳治療的時(shí)間,最后造成不可挽回的傷痛,因此,一種新型臨床呼叫儀器的研制成為近些年來的研究熱點(diǎn)之一。目前當(dāng)今的一些大型醫(yī)院和老年公寓都會(huì)配備智能的基本呼叫系統(tǒng), 若不安裝此系統(tǒng),可能會(huì)導(dǎo)致老人們出現(xiàn)緊急情況無法找到醫(yī)護(hù)人員,對(duì)老人的安全有極大威脅,因此,呼叫系統(tǒng)對(duì)老人的日常生活和安全性都至關(guān)重要。
老年公寓智能控制系統(tǒng)就是一種呼叫和監(jiān)控系統(tǒng),在醫(yī)院等公開場(chǎng)所都是非常普遍的,是一種重要的工具,用于保證老人與醫(yī)務(wù)人員及時(shí)溝通,可以使老年公寓的服務(wù)質(zhì)量得到很大的提高。整個(gè)系統(tǒng)是由安設(shè)在護(hù)士值班室的呼叫主機(jī)和分別設(shè)立在老人床位的呼叫分機(jī)、LED顯示等設(shè)備來組成,如果有老人按了呼叫按鈕,護(hù)士站的呼叫主機(jī)就會(huì)發(fā)出報(bào)警信號(hào),以便在值班室能及時(shí)了解情況。
1.2、國(guó)內(nèi)發(fā)展現(xiàn)狀
呼叫控制系統(tǒng)的發(fā)展,已經(jīng)取得了很大的成就,并且已經(jīng)進(jìn)入商業(yè)化階段,現(xiàn)如今,基本所有醫(yī)院都配備這個(gè)控制系統(tǒng)。因此依據(jù)時(shí)代的發(fā)展,養(yǎng)老院和老年公寓也在逐漸的普及呼叫系統(tǒng),提高行業(yè)的服務(wù)水平。
目前市場(chǎng)上已經(jīng)出現(xiàn)了許多種型號(hào)不一、功能各異的醫(yī)院病房和老年公寓呼叫系統(tǒng),其中主要也就分為兩大類:有線式和無線式。無線式病房呼叫系統(tǒng)不存在鋪設(shè)線路的問題,但是可靠性差,而且無線電波會(huì)干擾其他醫(yī)療儀器設(shè)備。本文設(shè)計(jì)的是有線式的,適合較小的醫(yī)院病房和老年公寓使用,具有成本低,易于操作、安裝和維護(hù)非常簡(jiǎn)單等特點(diǎn),而且具有可靠穩(wěn)定,對(duì)其他醫(yī)療設(shè)備不會(huì)產(chǎn)生干擾的特點(diǎn);但受到布線較多,影響美觀,故不適宜較大的醫(yī)院。
1.3、主要研究?jī)?nèi)容
1、熟悉AT89C51單片機(jī)功能及工作特性,掌握其接口擴(kuò)展方法。
2、對(duì)鍵盤模塊和顯示器模塊進(jìn)行選型比較,得出各種型號(hào)優(yōu)劣比。
3、采用面向?qū)ο蟮乃枷敕謱哟巍⒎帜K構(gòu)建設(shè)計(jì)的總體框架。
4、熟練使用Keil uVision4和Proteus仿真軟件



第2章  系統(tǒng)總體設(shè)定

2.1、系統(tǒng)的功能設(shè)計(jì)
設(shè)計(jì)系統(tǒng)的基本功能:
1)老人按下任何一個(gè)床位(16張)的呼叫按鈕,護(hù)工值班室都會(huì)立即顯示老人的床號(hào),(若連續(xù)按兩次及以上將不重復(fù)顯示)蜂鳴器發(fā)出報(bào)警。
2)若有多個(gè)床位按下呼叫按鈕,則進(jìn)行循環(huán)顯示。
3)接受呼叫后,數(shù)碼管不再顯示并且報(bào)警停止。
設(shè)計(jì)系統(tǒng)的拓展功能:
  • 當(dāng)多個(gè)病房同時(shí)呼叫時(shí),系統(tǒng)進(jìn)行優(yōu)先級(jí)判斷,首先顯示病情危重,優(yōu)先級(jí)最高的床號(hào)。
  • 在老人病房裝上攝像頭,值班室護(hù)士通過攝像頭實(shí)時(shí)監(jiān)控老人情況。
2.2設(shè)計(jì)方案的論述
方案一
利用AT89C51單片機(jī)外加作地址鎖存器用的一塊帶三態(tài)輸出的8位鎖存器74LS373芯片和一塊EPROM芯片構(gòu)成一個(gè)完整的最小系統(tǒng)電路,以此為基礎(chǔ)在智能裝置配置2個(gè)數(shù)碼管顯示器和X行Y列矩陣鍵盤,可通過擴(kuò)展8255或8279之類的并行1/0芯片來完成。常常使用的設(shè)計(jì)方法,顯示和鍵盤搜索按下鍵均按動(dòng)態(tài)掃描的方法進(jìn)行,顯示電路接口由P1口和P2口組成,鍵盤接口由P2口和P3口組成。在顯示功能完成過程中,P1口鎖存器顯示字母的八段字形碼,P2口的高6位(P2.7-P2.2)鎖存器顯示字符的位選碼。AT89C51按分時(shí)方式執(zhí)行程序進(jìn)入到鍵盤搜索時(shí),經(jīng)P2.7-P2.2輸出鍵盤掃描的行選碼,鍵盤的列輸入由P3口的P3.7-P3.4承擔(dān)緩沖功能。利用P2.7-P2.2輸出數(shù)據(jù)代碼是通過改變程序計(jì)數(shù)器高6位的數(shù)值實(shí)現(xiàn)。
方案二
利用AT89C51自身接口實(shí)現(xiàn)數(shù)碼管靜態(tài)顯示和鍵盤掃描,使用AT89C51單片機(jī)外加作地址鎖存用的兩塊8位三態(tài)鎖存器74LS373芯片構(gòu)成一個(gè)完整的最小系統(tǒng)電路。以此為基礎(chǔ),在智能裝置中配置2個(gè)數(shù)碼管顯示器,以及4行4列矩陣鍵盤,可以不擴(kuò)展I/O芯片,利用AT89C51自身I/O口便實(shí)現(xiàn)上述功能。P0口的八個(gè)端口作為L(zhǎng)ED的段選,用P1口做鍵盤電路的接口。
  綜上所述,方案一中鍵盤顯示均采用動(dòng)態(tài)掃描方式,所以軟件實(shí)現(xiàn)起來簡(jiǎn)單,但硬件電路比較復(fù)雜,I/O浪費(fèi)嚴(yán)重,沒有合理利用I/O口。而方案二電路簡(jiǎn)單,并且軟件實(shí)現(xiàn)也不是太復(fù)雜,合理利用單片機(jī)I/O口,由此,權(quán)衡利弊之后,本設(shè)計(jì)選用方案二。





    • 總體結(jié)構(gòu)框圖
本病房呼叫系統(tǒng)主要由AT89C51單片機(jī)、按鍵模塊、LED數(shù)碼管顯示模塊、蜂鳴器報(bào)警模塊及復(fù)位電路等部分組成,其系統(tǒng)結(jié)構(gòu)圖如圖2.1所示。該系統(tǒng)控制16間房間,床位旁設(shè)置呼叫開關(guān),護(hù)士站設(shè)有顯示燈、蜂鳴器和一個(gè)數(shù)碼顯示器。當(dāng)有兩位以上患者按下呼叫開關(guān)時(shí),護(hù)士值班室的數(shù)碼管上只顯示優(yōu)先權(quán)最高的病房床位號(hào),并且蜂鳴器發(fā)出警報(bào)聲音來提醒值班護(hù)士。我們根據(jù)老人患者的病情給他們編級(jí)由l到 16的逐級(jí)遞減,當(dāng)兩個(gè)以上的患者同時(shí)按下呼叫按鈕時(shí),護(hù)士值班室的數(shù)碼管首先顯示患者病情最嚴(yán)重的病床號(hào)。例如,2、6、15號(hào)病房同時(shí)按下呼叫按鈕時(shí),護(hù)士值班室顯示的數(shù)字為“2”,因?yàn)?號(hào)病房的優(yōu)先級(jí)最高,其他病房?jī)?yōu)先級(jí)別依次遞減。全部處理完畢后,沒有病房呼叫,此時(shí)值班室的數(shù)碼管無顯示,同時(shí)蜂鳴器報(bào)警停止。


圖2.1 總體結(jié)構(gòu)框圖(見附件)
總體結(jié)構(gòu)框圖功能闡述:
  • 床位按鍵為輸入部分,通過老人或病人手動(dòng)按鍵來向單片機(jī)傳輸命令。
  • 微控制器采用通用型AT89C51單片機(jī)為核心,通過軟件編程對(duì)輸入處理并對(duì)輸出控制。
  • 輸出部分包括數(shù)碼管顯示和蜂鳴器報(bào)警,可以將輸入信號(hào)在數(shù)碼管上顯示出來并通過蜂鳴器報(bào)提醒護(hù)士等醫(yī)護(hù)人員。
  • 可以控制老人房間攝像頭實(shí)時(shí)顯示老人身體狀況,協(xié)助呼叫系統(tǒng)共同監(jiān)控。
綜合流程描述:
老人按下按鍵,向單片機(jī)輸入信號(hào),經(jīng)過AT89C51進(jìn)行一系列處理后,信號(hào)通過輸出系統(tǒng)顯示在LED顯示屏幕上,并驅(qū)動(dòng)蜂鳴器報(bào)警提醒。如果同時(shí)有多個(gè)輸入信號(hào),利用控制器編程處理數(shù)據(jù)判斷優(yōu)先級(jí),在數(shù)碼管上顯示優(yōu)先級(jí)最高的病床號(hào),值班室護(hù)士收到提醒后,可通過按鍵結(jié)束顯示和報(bào)警。
第3章 系統(tǒng)的硬件設(shè)計(jì)
3.1 硬件系統(tǒng)的構(gòu)成
主要硬件部分以AT89C51單片機(jī)為核心,與鍵盤電路、顯示電路、報(bào)警電路和控制電路共同構(gòu)成。如下圖3.1為硬件示意圖:

圖 3.1 硬件構(gòu)成示意(見附件)

3.2、單片機(jī)的介紹:
單片機(jī)是非常典型的嵌入式微控制器(Microcontroller Unit),它將各種部件集成到一塊硅片上,部件中包括中央處理器CPU,運(yùn)算器,控制器,存儲(chǔ)器,多種I/O口,輸入輸出設(shè)備等構(gòu)成,相當(dāng)于一個(gè)微型的計(jì)算機(jī)。單片機(jī)具有體積小、集成度高、可靠性高、速度快、易于擴(kuò)展、性價(jià)比高等眾多優(yōu)點(diǎn)。因?yàn)閱纹瑱C(jī)相當(dāng)于一個(gè)微型計(jì)算機(jī),在電子類專業(yè)課程里經(jīng)常與單片機(jī)打交道,學(xué)習(xí)使用單片機(jī),對(duì)計(jì)算機(jī)的原理與結(jié)構(gòu)都有很大的幫助。單片機(jī)的各種優(yōu)點(diǎn)也使它最先被用于工業(yè)控制領(lǐng)域。單片機(jī)不斷發(fā)展,從最初的4位或8位已經(jīng)發(fā)展到了32位,處理能力飛速提升�,F(xiàn)在我們所有日常用到的電子產(chǎn)品中基本都有集成的單片機(jī)。單片機(jī)應(yīng)用領(lǐng)域如下:
  • 智能儀器儀表的應(yīng)用。 :示波器等
  • 工業(yè)控制中的應(yīng)用。   測(cè)控系統(tǒng)等
  • 家用電器中的應(yīng)用。   :洗衣機(jī)、電冰箱等。
  • 計(jì)算機(jī)網(wǎng)絡(luò)和通信中的應(yīng)用 :移動(dòng)電話。
  • 醫(yī)用設(shè)備中應(yīng)用。 監(jiān)護(hù)、病床呼叫系統(tǒng)。

3.3、單片機(jī)最小系統(tǒng)
單片機(jī)的最小系統(tǒng)是由單片機(jī)、電源供電電路、晶振電路、復(fù)位電路和時(shí)鐘電路構(gòu)成的。
圖3.2 單片機(jī)最小系統(tǒng)
3.3.1 控制器模塊
控制器選擇AT89C51單片機(jī),這款單片機(jī)最常見,大學(xué)里使用最多,并且可以實(shí)現(xiàn)系統(tǒng)的所有功能,因此選擇AT89C51單片機(jī)。
圖3.2 AT89C51引腳圖
AT89C51的主要特點(diǎn):
1、與MCS-51兼容
2、4K字節(jié)可編程FLASH存儲(chǔ)器
3、1000寫/擦循環(huán)
4、全靜態(tài)工作:0Hz-24MHz
5、三級(jí)程序存儲(chǔ)器鎖
6、128×8位內(nèi)部RAM
7、32根可編程I/O線
8、兩個(gè)16位定時(shí)器/計(jì)數(shù)器
9、5個(gè)中斷源,2個(gè)中斷優(yōu)先級(jí)
10、低功耗的閑置和掉電模式
11、片內(nèi)振蕩器和時(shí)鐘電路
3.3.2 復(fù)位電路:                 
RST為復(fù)位信號(hào)使能端,當(dāng)復(fù)位引腳出現(xiàn)兩個(gè)機(jī)器周期以上的高電平,便可以使內(nèi)部進(jìn)行復(fù)位。復(fù)位電路有兩種方式:上電自動(dòng)復(fù)位和按鈕復(fù)位。選用按鈕復(fù)位,簡(jiǎn)易方便,節(jié)省資源,更加符合本系統(tǒng)的設(shè)計(jì)。如下圖所示:
圖3.3 復(fù)位電路
3.3.3 時(shí)鐘電路:
時(shí)鐘是時(shí)序的基礎(chǔ),AT89C51片內(nèi)由一個(gè)反相放大器構(gòu)成振蕩器,可以由它產(chǎn)生時(shí)鐘。時(shí)鐘有兩種產(chǎn)生方式,內(nèi)部方式和外部方式。本系統(tǒng)采用內(nèi)部方式,在XTAL1和XTAL2端外接石英晶體做定時(shí)元件,內(nèi)部反相放大器自激振蕩,產(chǎn)生時(shí)鐘。選用12MHz晶振和30pF電容。如下圖3.4所示:
圖 3.4 時(shí)鐘電路                                    
3.4、鍵盤電路設(shè)計(jì)
1)鍵盤方式的選用:
獨(dú)立式鍵盤:每個(gè)按鍵占用一條I/O線,按鍵數(shù)量較多時(shí),I/O口利用率不高,I/O口浪費(fèi)較大,但程序編寫簡(jiǎn)單,適合需要較少按鍵的設(shè)計(jì)。
矩陣式鍵盤:矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接,若需要設(shè)計(jì)一個(gè)4*4鍵盤,只需要一個(gè)并行端口和8條引線即可,可節(jié)省較多的I/O 口。本系統(tǒng)按鍵較多,因此采用矩陣式鍵盤是合理的。
如下圖所示:
圖3.5 鍵盤電路圖
2)鍵盤工作方式
CPU對(duì)鍵盤進(jìn)行掃面的時(shí)候,有兩個(gè)重要的問題:第一個(gè)是要及時(shí),必須保證用戶每次按鍵都能識(shí)別并做出響應(yīng);第二個(gè)是掃描時(shí)間不能占用過多,因?yàn)镃PU的工作非常多,因此要根據(jù)CPU的情況選擇合適的鍵盤工作方式。常用的鍵盤工作方式有三種:編程掃描工作方式、中斷工作方式、定時(shí)掃描工作方式。本設(shè)計(jì)綜合考慮選擇中斷工作方式。
中斷工作方式:當(dāng)鍵盤有按鍵按下時(shí),硬件會(huì)產(chǎn)生中斷信號(hào),CPU響應(yīng)中斷申請(qǐng)后,對(duì)鍵盤進(jìn)行掃描,并在有按鍵按下時(shí)轉(zhuǎn)入相應(yīng)的鍵功能處理程序。該方式優(yōu)點(diǎn):因?yàn)樵跓o鍵按下時(shí)不進(jìn)行鍵掃描,因此大大提高了CPU的效率,同時(shí)確保每次按鍵都能及時(shí)響應(yīng)。
3)鍵的識(shí)別功能:
判斷鍵盤中是否有鍵按下,若有鍵按下,則確定其所在行列位置。
識(shí)別按鍵通常有兩種方法:行掃描法和線反轉(zhuǎn)法。
a、行掃描法步驟:
(1)確定是否有鍵按下,將全部行線置于低電平,然后檢測(cè)列線的狀態(tài),只要有一列為低電平,則說明有按鍵被按下,若所有列線為高電平,則鍵盤中無按鍵按下。
(2)若有鍵按下,需確定按鍵所在的行列位置。即對(duì)鍵盤進(jìn)行逐行掃描。
(3)鍵的抖動(dòng)處理。用軟件延時(shí)消除抖動(dòng),即當(dāng)有鍵按下時(shí),不要立即逐行掃描,而是延時(shí)10ms后在進(jìn)行。等待按鍵穩(wěn)定后重新判斷一次,以躲避觸電抖動(dòng)期。
b、線反轉(zhuǎn)法步驟:
(1)把輸出線定為行線,輸入線定為列線。輸出線都設(shè)置為0,這時(shí)呈現(xiàn)低電平0的便是按鍵所在列線,如果都不為0,則確定沒有鍵被按下。
(2)在把輸出線設(shè)定用列線,輸入線設(shè)定為行線,輸出線都設(shè)置為0,然后,這行線中呈現(xiàn)低電平0的按鍵所在列,然后便確定按鍵的位置(M,N)。
(3)一次按鍵處理。有時(shí),為了確保一個(gè)按鍵只被處理一次,可以根據(jù)是否釋放按鈕判斷,如果按鍵釋放,則啟動(dòng)按鍵操作的執(zhí)行。
在應(yīng)用過程中仍需要軟件延時(shí)消除抖動(dòng)的問題。抖動(dòng)消失后,便可直接得到鍵的位置。
4)按鍵抖動(dòng)及消除
按鍵抖動(dòng)會(huì)將一次按鍵操作識(shí)別成多次操作,因此為了克服誤按和誤判,需要消除按鍵抖動(dòng),一般有兩種消除方法:硬件電路消除法和軟件延時(shí)法。因?yàn)橛布訒r(shí)成本高,硬件麻煩,因此不采用,本方案采用軟件延時(shí)。
軟件延時(shí)法:當(dāng)判斷有鍵按下時(shí),用軟件延時(shí)15ms,等按鍵穩(wěn)定后在次判斷,以此消除誤按的抖動(dòng)期。
3.5、報(bào)警電路設(shè)計(jì)
利用三極管作為控制開關(guān),用單片機(jī)P3.1口控制,利用三極管當(dāng)開關(guān)電路可以保護(hù)單片機(jī),并起到放大電流的作用,當(dāng)三極管基極為低電平時(shí),發(fā)射極截止,為高電平時(shí),發(fā)射極導(dǎo)通。顯示器顯示床號(hào)同時(shí)發(fā)出聲光報(bào)警。通過編程令單片機(jī)執(zhí)行中斷程序。

圖3.6 報(bào)警電路
3.6、顯示電路設(shè)計(jì)
1)顯示模塊的選擇方案
方案一:采用LCD1602液晶屏顯示,它是一種專門用來顯示字母、數(shù)字和符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位和每行之間都有一個(gè)點(diǎn)距的間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形,顯示效果不好,并且可視角度小。
方案二:采用七段LED數(shù)碼管顯示,七段LED數(shù)碼管由數(shù)個(gè)LED組成一個(gè)陣列,并封裝在一個(gè)標(biāo)準(zhǔn)的外殼里。其中由七個(gè)細(xì)長(zhǎng)的發(fā)光二極管組成數(shù)字顯示,另外一個(gè)圓形的發(fā)光二極管顯示小數(shù)點(diǎn),所以實(shí)際是八段。當(dāng)發(fā)光二極管導(dǎo)通時(shí),相應(yīng)的一個(gè)點(diǎn)發(fā)光。控制相應(yīng)的二極管導(dǎo)通,可顯示出各種字母以及0-9數(shù)字,顯示效果好,可視角度大,其控制簡(jiǎn)單,使用也方便。
綜合比較下,顯示模塊選用七段LED數(shù)碼管作為系統(tǒng)顯示方案。
2)LED 顯示原理
LED是一種特殊半導(dǎo)體材料制成的PN結(jié),因?yàn)閾诫s濃度過高,當(dāng)正向偏置時(shí),會(huì)產(chǎn)生大量的電子-空穴復(fù)合,把多余的能釋放變?yōu)楣饽�。LED顯示器具有工作電壓低、體積小、壽命長(zhǎng)等特點(diǎn)。LED顯示器件有單個(gè)、七段、和點(diǎn)陣式等幾種類型。七段數(shù)碼管屬于LED發(fā)光器件的一種。
為適用于不同的驅(qū)動(dòng)電路,有共陰極和共陽(yáng)極兩種,為了使LED數(shù)碼管可以顯示不同的符號(hào)和數(shù)字,要為L(zhǎng)ED數(shù)碼管輸入相應(yīng)的代碼,因?yàn)檫@些代碼可使LED相應(yīng)的段發(fā)光,從而顯示不同字形,因此改代碼段也稱為段碼,又稱字型碼。
為了顯示數(shù)字和字母,需要點(diǎn)亮對(duì)應(yīng)的發(fā)光二極管,就需要譯成二進(jìn)制碼。譯碼有硬件和軟件兩種方法,硬件譯碼電路的優(yōu)點(diǎn)是計(jì)算機(jī)時(shí)間開銷小,但成本較高,軟件譯碼省去硬件設(shè)備,成本低,本系統(tǒng)采用軟件譯碼。
圖3.7  七段LED顯示器的兩種結(jié)構(gòu)
3)七段LED顯示方式
按照顯示方式,七段LED數(shù)碼管有靜態(tài)顯示和動(dòng)態(tài)顯示兩種顯示方式。
a、靜態(tài)顯示:靜態(tài)顯示系統(tǒng)在每一次顯示輸出后能夠保持顯示不變,僅在待顯數(shù)字需要改變時(shí),才更新數(shù)字顯示器中鎖存的內(nèi)容。這種顯示方式優(yōu)點(diǎn)是占用機(jī)時(shí)少,顯示穩(wěn)定可靠。缺點(diǎn)是顯示位數(shù)多時(shí),占用I/O口多。
b、動(dòng)態(tài)顯示:控制器應(yīng)定時(shí)地對(duì)各個(gè)顯示器進(jìn)行掃描,顯示器件分時(shí)輪流工作,每次只能顯示一個(gè)器件,但由于人的視覺暫留現(xiàn)象,所以仍然感覺所有器件在同事顯示。這種顯示方式優(yōu)點(diǎn)是使用硬件少,占用I/O口少。缺點(diǎn)是占用機(jī)時(shí)長(zhǎng),只要不執(zhí)行顯示程序,就會(huì)立刻停止顯示。
靜態(tài)顯示方式,LED各顯示段的工作電流是恒定的,動(dòng)態(tài)顯示方式LED各顯示段工作電流是脈動(dòng)的。利用74LS373和顯示器組成顯示系統(tǒng),本系統(tǒng)采用靜態(tài)顯示。
4)地址鎖存器74LS373:
]]
圖3.8 鎖存器74LS373
當(dāng)三態(tài)端OE為有效低電平,使能端G為有效高電平時(shí),輸出跟隨輸入變化;當(dāng)G端有高變低時(shí),輸出端8位信息被鎖存,直到使能端G再次有效。
3.7 視頻監(jiān)控模塊
考慮老人中可能有病情非常嚴(yán)重或者手不方便按下按鈕的情況,因此,安裝一個(gè)視頻監(jiān)控,對(duì)老人實(shí)時(shí)監(jiān)測(cè)。
監(jiān)控模塊選擇方案
方案一:有線視頻監(jiān)控
有線監(jiān)控是一種比較傳統(tǒng)的方法,其布線復(fù)雜,浪費(fèi)端口,擴(kuò)展性較弱,施工難度高,移動(dòng)性很低,如果需要移動(dòng),則費(fèi)時(shí)費(fèi)力,并且安裝成本和維護(hù)成本高。
方案二:無線視頻監(jiān)控
隨著無線技術(shù)的發(fā)展,無線傳輸技術(shù)已經(jīng)廣泛的應(yīng)用在各行各業(yè)中。其安裝簡(jiǎn)單方便、擴(kuò)展性好、性價(jià)比高。
綜合對(duì)比,無線有著很多優(yōu)勢(shì),并且由于不需要布線,并且無線傳輸所需安裝成本很低,并且容易維護(hù)。因此選擇方案二。
3.8 控制模塊
值班護(hù)士控制的響應(yīng)按鍵,由單片機(jī)復(fù)位鍵充當(dāng),當(dāng)老人按下呼叫按鈕時(shí),值班室收到報(bào)警后,按下響應(yīng)按鍵,通過編寫程序使單片機(jī)執(zhí)行中斷程序,令數(shù)碼管熄滅、振鈴?fù)V埂?/div>

第4章 系統(tǒng)的軟件設(shè)計(jì)

4.1、Keil uVision4軟件
Keil uVision4 軟件是眾多單片機(jī)應(yīng)用開發(fā)的優(yōu)秀軟件之一,在整個(gè)大學(xué)中,經(jīng)常與其打交道,它集編輯,編譯,仿真于一體,支持匯編,PLM語言和 C 語言的程序設(shè)計(jì),界面友好,易學(xué)易用。
圖4.1 Keil界面
Keil C51的使用步驟:
  • 新建文件夾,新建工程。例:文件夾為C51,文件名為proj1。
  • 選擇Atmel里的AT89C51。
  • 創(chuàng)建c件。單擊File菜單,單擊New選項(xiàng),首先保存該空白代碼文件,單擊工具條上的保存按鈕,然后更改文件名
  • C文件加入項(xiàng)目。到編輯界面后,工作區(qū)出現(xiàn)一個(gè)target1,鼠標(biāo)左鍵單擊+號(hào),然后在Source Group1上單擊鼠標(biāo)右鍵,選擇Add Files to “source group1”在彈出的界面中選擇要加入的c文件 ,左鍵單擊Add按鈕,然后單擊Close按鈕。
   (5) 然后進(jìn)行程序的編寫,寫好程序進(jìn)行編譯檢查是否有錯(cuò)誤。
   (6) 在 Keil 軟件中把目標(biāo)程序編輯好,編譯無誤后,生成單片機(jī)可以執(zhí)行的 hex頭文件,然后通過USB轉(zhuǎn)接口線把程序燒到單片機(jī)系統(tǒng)板中,然后運(yùn)行該程序,觀察系統(tǒng)的運(yùn)行狀態(tài)。
4.2、系統(tǒng)主程序設(shè)計(jì)
程序設(shè)計(jì)步驟包括繪制程序流程圖,編寫程序,運(yùn)行調(diào)試,仿真模擬等步驟。
系統(tǒng)軟件設(shè)計(jì)均采用模塊化設(shè)計(jì),整個(gè)程序主要包括主程序、鍵盤掃描程序、顯示程序。所有程序均采用單片機(jī)C語言編寫。

圖4.2 主程序流程圖(見附件)

主程序程序描述:
首先,每個(gè)存儲(chǔ)單元的初始化,設(shè)置定時(shí)器的初始值,接收鍵,然后繼續(xù)掃描鍵盤,如果掃描到有鍵按下,判斷是否有多個(gè)按鍵同時(shí)按下,若只有一個(gè)按鍵按下,則查看床位標(biāo)志顯示的數(shù)字,然后在數(shù)碼管顯示屏中顯示床號(hào)。若有多個(gè)按鍵同時(shí)按下,則判斷優(yōu)先級(jí),選擇優(yōu)先級(jí)最高的床號(hào)顯示,最后,處理完所有房間的呼叫后,系統(tǒng)復(fù)位,繼續(xù)循環(huán)進(jìn)行下一次判斷。
4.3、鍵盤掃描程序設(shè)計(jì)
鍵盤掃描依照線反轉(zhuǎn)法進(jìn)行設(shè)計(jì),先判斷是否有鍵按下,若有鍵按下,則延時(shí)15ms,消除抖動(dòng)誤按,在判斷一次按鍵,再通過軟件獲取鍵值,再由單片機(jī)輸出到LED數(shù)碼管顯示。
鍵盤掃描程序流程圖:
圖4.3 鍵盤掃描程序流程圖

4.4 、顯示程序流程圖
顯示程序用來判斷是否需要顯示和如何顯示,設(shè)計(jì)流程圖如下:



圖4.4 顯示程序流程圖(見附件)

顯示程序描述: 床位數(shù)顯示標(biāo)志設(shè)置為N,從1開始,判斷N是不是為0,如果不是0,說明有呼叫,然后床位號(hào)顯示出來,然后從原本的鍵值數(shù)加1繼續(xù)掃描,依此類推直到鍵值到16,以確定是否有別的病房呼叫。鍵值到16后則跳轉(zhuǎn),再循序掃描,如果N為0,表示無呼叫,則繼續(xù)掃描下一個(gè)床號(hào)。

第五章 仿真與調(diào)試

本系統(tǒng)采用AT89C51單片機(jī)作為整個(gè)系統(tǒng)的核心,主要電路模塊有:晶振電
路、系統(tǒng)復(fù)位電路、響鈴報(bào)警電路和LED數(shù)碼顯示電路。完成了系統(tǒng)的硬件設(shè)計(jì)、軟件編程之后,我們需要依據(jù)設(shè)計(jì)要求將系統(tǒng)正常運(yùn)行,因此必須進(jìn)行硬件和軟件的調(diào)試。
                  如圖5.1 硬件電路圖
5.1 Proteus ISIS軟件
Proteus是EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。該軟件最大的優(yōu)點(diǎn)在于能夠?qū)ΤS梦⒖刂破鬟M(jìn)行仿真,適合于剛剛接觸單片機(jī)以及進(jìn)行數(shù)模電綜合仿真的用戶使用.主要功能如下:
  • 滿足單片機(jī)軟件仿真系統(tǒng)的所有標(biāo)準(zhǔn)。
  • 具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、鍵盤和LCD系統(tǒng)仿真的功能
  • 目前支持的單片機(jī)類型有:8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。
  • 支持大量的存儲(chǔ)器和外圍芯片。
5.2  仿真調(diào)試結(jié)果
啟動(dòng)電源,顯示屏無顯示,在按下6號(hào)鍵時(shí),界面部分顯示06,指示燈閃爍,蜂鳴器報(bào)警;如果未按下復(fù)位鍵,再按下2號(hào)鍵時(shí),界面顯示02,并循環(huán)顯示,指示燈閃爍,蜂鳴器報(bào)警。由此看出該系統(tǒng)具有記憶功能,所以不會(huì)忽略之前所按下的鍵,依次按下各個(gè)按鍵,相應(yīng)病房號(hào)均會(huì)相應(yīng)顯示。該設(shè)計(jì)反映了控制電路的可行性和穩(wěn)定性。
     
     按下6鍵顯示              按下2鍵顯示

   
按下10鍵顯示                   按下15鍵顯示

綜上所述,本系統(tǒng)實(shí)現(xiàn)了主要功能:顯示床號(hào),指示燈閃爍,蜂鳴器報(bào)警提醒值班人員。通過Proteus軟件仿真,能達(dá)到上述結(jié)論,滿足課題題目,達(dá)到目標(biāo)要求。

第6章 結(jié)束語

輾轉(zhuǎn)兩個(gè)月過去了,畢業(yè)設(shè)計(jì)到了尾聲,剛開始選題的時(shí)候,心中非常擔(dān)心,因?yàn)椴恢雷约耗懿荒芡瓿�,在老師的建議下,最終確定題目為老年公寓智能控制系統(tǒng)。
剛剛著手做的時(shí)候,腦子里沒有什么內(nèi)容,不知從何寫起,因?yàn)樾枰髮W(xué)里所需的專業(yè)知識(shí),但是學(xué)的不是很扎實(shí),因此已經(jīng)遺忘許多,為此又復(fù)習(xí)了大二所學(xué)習(xí)的單片機(jī)應(yīng)用技術(shù)和C語言。對(duì)設(shè)計(jì)的核心單片機(jī),時(shí)鐘電路,復(fù)位電路,報(bào)警電路,矩陣鍵盤,LED數(shù)碼顯示,都重新復(fù)習(xí)了一遍,整個(gè)設(shè)計(jì)是模塊化的,各個(gè)模塊構(gòu)成一個(gè)整體框架,從而完成整個(gè)系統(tǒng)。
做的過程中出現(xiàn)很多問題,我查閱相關(guān)資料,獨(dú)立解決不了的問題,我請(qǐng)教了同學(xué)和老師,同學(xué)們很熱心的幫助我,老師也不辭辛苦的指導(dǎo)我,并且督促我們的進(jìn)度,最終基本上實(shí)現(xiàn)了目標(biāo)要求。
在這里,我想感謝在這次畢業(yè)設(shè)計(jì)中幫助我的指導(dǎo)老師和同學(xué),此次設(shè)計(jì)我學(xué)到了很多知識(shí),并且把以前遺忘的又重新復(fù)習(xí)了一遍,這次獨(dú)立的設(shè)計(jì)讓我體會(huì)到只要努力,就可以克服一切困難。


答謝辭
輾轉(zhuǎn)兩個(gè)月過去了,畢業(yè)設(shè)計(jì)到了尾聲,剛開始選題的時(shí)候,心中非常擔(dān)心,因?yàn)椴恢雷约耗懿荒芡瓿桑诶蠋煹慕ㄗh下,最終確定題目為老年公寓智能控制系統(tǒng)。
   剛剛著手做的時(shí)候,腦子里沒有什么內(nèi)容,不知從何寫起,因?yàn)樾枰髮W(xué)里所需的專業(yè)知識(shí),但是學(xué)的不是很扎實(shí),因此已經(jīng)遺忘許多,為此又復(fù)習(xí)了大二所學(xué)習(xí)的單片機(jī)應(yīng)用技術(shù)和C語言。對(duì)設(shè)計(jì)的核心單片機(jī),時(shí)鐘電路,復(fù)位電路,報(bào)警電路,矩陣鍵盤,LED數(shù)碼顯示,都重新復(fù)習(xí)了一遍,整個(gè)設(shè)計(jì)是模塊化的,各個(gè)模塊構(gòu)成一個(gè)整體框架,從而完成整個(gè)系統(tǒng)。做的過程中出現(xiàn)很多問題,我查閱相關(guān)資料,獨(dú)立解決不了問題,我請(qǐng)教了同學(xué)和老師,同學(xué)們很熱心的幫助,指導(dǎo)老師更是盡心竭力進(jìn)行輔導(dǎo)。
最后要感謝在整個(gè)論文寫作過程中幫忙過我的每一個(gè)人。首先,也是最主要感謝的是我的指導(dǎo)老師,黃宇航老師。在整個(gè)過程中他給了我很大的幫忙,在論文題目制定時(shí),他首先幫助我確定了題目的方向,同時(shí)又幫我具體分析,使我最后選取老年公寓智能控制系統(tǒng)。在完成初稿后,老師每周都會(huì)給我們認(rèn)真查看論文,指出了我存在的很多問題。一步步改,不斷完善我的論文設(shè)計(jì)。在此十分感謝黃宇航老師的細(xì)心指導(dǎo),才能讓我順利完成畢業(yè)論文。

附錄


單片機(jī)源程序如下:
  1. #include <reg51.h>
  2. #define uint unsigned int
  3. #define uchr unsigned char
  4. sbit led0=P2^2;
  5. sbit buzzer=P2^3;
  6. sbit dula=P2^6;                //聲明段選線選通端
  7. sbit wela=P2^7;               //聲明位選線選通端
  8. sbit clear=P3^4;
  9. uchr key,shi,ge,count;
  10. uchr code tab[]={
  11. 0x3f,0x06,0x5b,0x4f,
  12. 0x66,0x6d,0x7d,0x07,
  13. 0x7f,0x6f,0x77,0x7c,
  14. 0x39,0x5e,0x79,0x71,
  15. 0x76,0x79,0x38,0x3f};
  16. /*延時(shí)子函數(shù),xms為形參*/
  17. void delay(uint xms)
  18. {
  19.     uint x,y;
  20.     for(x=xms;x>0;x--)
  21.         for(y=110;y>0;y--);
  22. }

  23. /*矩陣鍵盤掃描子程序*/
  24. void matrixkeyscan()
  25. {
  26.     uint temp;
  27.     P3=0xf7;                             //給P3口賦值
  28.     temp=P3;
  29.     temp=temp&0xf0;
  30.     if(temp!=0xf0)                       //檢測(cè)是否有鍵按下
  31.     {
  32.         delay(6);                       //延時(shí)去抖
  33.         temp=P3;
  34.         temp=temp&0xf0;
  35.         if(temp!=0xf0)                   //再次檢測(cè)是否有鍵按下
  36.         {
  37.             temp=P3;
  38.             switch(temp)
  39.             {
  40.                 case 0x77:
  41.                     key=1;
  42.                     break;
  43.                 case 0xb7:
  44.                     key=2;
  45.                    break;
  46.                 case 0xd7:
  47.                     key=3;
  48.                     break;
  49.                 case 0xe7:
  50.                     key=4;
  51.                     break;              //判斷按下的是哪個(gè)鍵
  52.             }
  53.             while(temp!=0xf0)
  54.             {
  55.                 temp=P3;
  56.                 temp=temp&0xf0;      
  57.             }                           //等待按鍵釋放
  58.         }
  59.     }
  60.     P3=0xfb;
  61.     temp=P3;
  62.    temp=temp&0xf0;
  63.     if(temp!=0xf0)
  64.     {
  65.         delay(6);
  66.         temp=P3;
  67.         temp=temp&0xf0;
  68.         if(temp!=0xf0)
  69.         {
  70.             temp=P3;
  71.             switch(temp)
  72.             {
  73. case 0x7b:
  74.                     key=5;
  75.                     break;
  76.                 case 0xbb:
  77.                     key=6;
  78.                     break;
  79.                 case 0xdb:
  80.                     key=7;
  81.                     break;
  82.                 case 0xeb:
  83.                     key=8;
  84.                     break;
  85.             }
  86.             while(temp!=0xf0)
  87.             {
  88.                 temp=P3;
  89.                 temp=temp&0xf0;
  90.             }
  91.         }
  92.     }
  93.     P3=0xfd;
  94.     temp=P3;
  95.     temp=temp&0xf0;
  96.     if(temp!=0xf0)
  97.     {
  98.         delay(6);
  99.        temp=P3;
  100.         temp=temp&0xf0;
  101.         if(temp!=0xf0)
  102.         {
  103.             temp=P3;
  104.             switch(temp)
  105.             {
  106.                 case 0x7d:
  107.                     key=9;
  108.                     break;
  109.                 case 0xbd:
  110.                     key=10;
  111.                     break;
  112.                case 0xdd:
  113.                     key=11;
  114.                     break;
  115.                 case 0xed:
  116.                     key=12;
  117.                     break;
  118.             }
  119.             while(temp!=0xf0)
  120.             {
  121.                 temp=P3;
  122.                 temp=temp&0xf0;
  123.             }
  124.         }
  125.     }
  126.     P3=0xfe;
  127.     temp=P3;
  128.     temp=temp&0xf0;
  129.     if(temp!=0xf0)
  130.     {
  131.         delay(6);
  132.         temp=P3;
  133.         temp=temp&0xf0;
  134.         if(temp!=0xf0)
  135.         {
  136.            temp=P3;
  137.            switch(temp)
  138.            {
  139.                 case 0x7e:
  140.                     key=13;
  141.                     break;
  142.                 case 0xbe:
  143.                     key=14;
  144.                     break;
  145.                 case 0xde:
  146.                     key=15;
  147.                     break;
  148.                 case 0xee:
  149.                     key=16;
  150.                     break;
  151.             }
  152.             while(temp!=0xf0)
  153.             {
  154.                 temp=P3;
  155.                 temp=temp&0xf0;
  156.             }
  157.         }
  158.     }
  159. }
  160. /*主函數(shù)*/
  161. void alarm()
  162. {
  163.         buzzer=~buzzer;
  164.         led0=~led0;
  165.         delay(30);
  166. }
  167.     void display(uchr num)
  168.         {
  169.                 if(key!=0)             //若有鍵按下,則進(jìn)入該循環(huán)進(jìn)行處理
  170.         {
  171.            
  172.             dula=1;
  173.             P0=tab[num/10];
  174.             dula=0;
  175.              P0=0x00;                     
  176.             wela=1;
  177.             P0=0xfe;
  178.             wela=0;
  179. delay(100);

  180. dula=1;
  181.   P0=tab[num%10];  
  182.   dula=0;
  183.             P0=0x00;
  184.           wela=1;   
  185.            P0=0xfd;   
  186.            wela=0;   
  187.           delay(100);  
  188.           alarm();
  189. }
  190. }
  191. void main()
  192. {  
  193. P0=0x00;
  194.   while(1)
  195. {
  196. matrixkeyscan();
  197.    display(key);
  198. }
  199. }
復(fù)制代碼

所有資料51hei提供下載:
important.doc (1.99 MB, 下載次數(shù): 32)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:362076 發(fā)表于 2018-11-11 19:41 | 只看該作者
有一個(gè)問題,每次護(hù)理員都需要重新回到監(jiān)控室才能對(duì)下一個(gè)警報(bào)進(jìn)行處理,脫離現(xiàn)實(shí),至少也應(yīng)該設(shè)計(jì)一個(gè)無線顯示的功能。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表