廣東工業(yè)大學(xué)華立學(xué)院 課 程 設(shè) 計(jì)(論文)
課程名稱 計(jì)算機(jī)控制系統(tǒng) 題目名稱 基于單片機(jī)的病房呼叫系統(tǒng)設(shè)計(jì) 學(xué)生學(xué)部(系) 機(jī)電與信息工程學(xué)部 專業(yè)班級(jí) 14電氣2班 學(xué) 號(hào) 511412030125 學(xué)生姓名 肖*朗 指導(dǎo)教師 王*赟 |
|
廣東工業(yè)大學(xué)華立學(xué)院 課程設(shè)計(jì)(論文)任務(wù)書(shū) 題目名稱 | 基于單片機(jī)的病房呼叫系統(tǒng)設(shè)計(jì) | 學(xué)生學(xué)部(系) | 機(jī)電與信息工程學(xué)部 | 專業(yè)班級(jí) | 14電氣2班 | 姓 名 | 肖*朗 | 學(xué) 號(hào) | 511*0125 |
- 課程設(shè)計(jì)(論文)的內(nèi)容
本次設(shè)計(jì)主要是設(shè)計(jì)一個(gè)單片機(jī)控制的病房呼叫系統(tǒng)。利用AT89C51結(jié)合現(xiàn)實(shí)電路,LED數(shù)碼管以及按鍵來(lái)設(shè)計(jì)。在設(shè)計(jì)時(shí),應(yīng)將軟硬件有機(jī)地結(jié)合起來(lái),使得系統(tǒng)能夠正確的反應(yīng)病人的呼叫并使服務(wù)臺(tái)能夠回應(yīng)。 - 課程設(shè)計(jì)(論文)的要求與數(shù)據(jù)
1.用單片機(jī)實(shí)現(xiàn); 2.設(shè)計(jì)一個(gè)可容64張床位的病房呼叫系統(tǒng)。 3.每個(gè)床位都有一個(gè)按鈕,患者需要 呼叫護(hù)士時(shí),按下按鈕。 4. 護(hù)士值班室內(nèi)的呼叫系統(tǒng)板上顯示該患者的病床號(hào),并振鈴。 5.護(hù)士按下“響應(yīng)”鍵時(shí),取消當(dāng)前呼叫。 三、課程設(shè)計(jì)(論文)應(yīng)完成的工作 1. 完成硬件和軟件設(shè)計(jì),繪出電路原理圖; 2. 完成課程設(shè)計(jì)報(bào)告的撰寫(xiě)。
四、課程設(shè)計(jì)(論文)進(jìn)程安排 序號(hào) | 設(shè)計(jì)(論文)各階段內(nèi)容 | 地點(diǎn) | 起止日期 | 1 | 收集單片機(jī)等相關(guān)資料,確定設(shè)計(jì)方案 | 校內(nèi) | 2017年5月5日 | 2 | 進(jìn)行硬件和軟件設(shè)計(jì),繪出電路原理圖 | 校內(nèi) | 2017年5月5-15日 | 3 | 進(jìn)行課程設(shè)計(jì)報(bào)告的撰寫(xiě) | 校內(nèi) | 2017年5月15、16日 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
五、應(yīng)收集的資料及主要參考文獻(xiàn) 1.收集單片機(jī)及設(shè)計(jì)中所涉及的主要器件等方面的資料 2.收集相關(guān)的軟件編程方面的資料
|
目錄 1、概述5 1.2設(shè)計(jì)要求 5 1.2設(shè)計(jì)要求 5 1.3功能簡(jiǎn)介 5 2、系統(tǒng)總體方案及硬件設(shè)計(jì)5 2.1系統(tǒng)總體方案 5 2.2硬件設(shè)計(jì) 6 3、軟件設(shè)計(jì)6 3.1程序設(shè)計(jì)簡(jiǎn)要 6 3.2系統(tǒng)的工作流程 7 3.3軟件設(shè)計(jì) 8 4、Proteus軟件仿真8 5、設(shè)計(jì)體會(huì)8 附錄10 附錄A 10 附錄B 12 參考文獻(xiàn)13
1.概述 1.1 設(shè)計(jì)任務(wù) 本次設(shè)計(jì)主要是設(shè)計(jì)一個(gè)單片機(jī)控制的病房呼叫系統(tǒng)。利用AT89C51 結(jié)合顯示電路,LED數(shù)碼管以及按鍵來(lái)設(shè)計(jì)。在設(shè)計(jì)時(shí),我們應(yīng)將軟硬件有機(jī)地結(jié)合起來(lái),使得系統(tǒng)能夠正確的反應(yīng)病人的呼叫并使服務(wù)臺(tái)能夠回應(yīng)。 1.2 設(shè)計(jì)要求 設(shè)計(jì)一個(gè)可容64張床位的病房呼叫系統(tǒng)。要求每個(gè)床位都有一個(gè)按鈕,當(dāng)患者需要呼叫護(hù)士時(shí),按下按鈕。此時(shí)護(hù)士值班室內(nèi)的呼叫系統(tǒng)板上顯示該患者的床位號(hào),并振鈴。當(dāng)護(hù)士按下“響應(yīng)”鍵時(shí),取消當(dāng)前呼叫。 1.3. 功能簡(jiǎn)介: 臨床求助呼叫(監(jiān)護(hù))是傳送臨床信息的重要手段,病房呼叫系統(tǒng)是病人請(qǐng)求值班醫(yī)生或護(hù)士進(jìn)行診斷和護(hù)理的緊急呼叫工具,可將病人的請(qǐng)求快速傳送給值班醫(yī)生或護(hù)士,并在值班室的監(jiān)控中心電腦上留下準(zhǔn)確完整的記錄,是提高醫(yī)院和病室護(hù)理水平的必備設(shè)備之一。呼叫系統(tǒng)的優(yōu)劣直接關(guān)系到病員的安危,歷來(lái)受到各大醫(yī)院的普遍重視。它要求及時(shí)、準(zhǔn)確、可靠、簡(jiǎn)便可行。為此,我們采用單片機(jī)AT89C51為系統(tǒng)核心,配以LED及鍵盤(pán)電路模塊和MPX2彩屏LCD電路模塊實(shí)現(xiàn)病人呼叫(監(jiān)護(hù))系統(tǒng)的設(shè)計(jì)。 2. 系統(tǒng)總體方案及硬件設(shè)計(jì) 2.1系統(tǒng)總體方案 在本系統(tǒng)中,我們采用單片機(jī)AT89C51為核心的系統(tǒng)主要包括2個(gè)部分:數(shù)據(jù)采集和數(shù)據(jù)的輸出,數(shù)據(jù)的輸出用來(lái)進(jìn)行呼叫,編碼使用單片機(jī)完成,數(shù)據(jù)采集負(fù)責(zé)接收分機(jī)發(fā)來(lái)的信號(hào),并進(jìn)行解碼、顯示該患者的床位號(hào),并振鈴,主機(jī)上設(shè)有鍵盤(pán)取消當(dāng)前呼叫 其實(shí)現(xiàn)結(jié)構(gòu)框圖如圖1所示。 圖1 病人呼叫系統(tǒng)框圖 將由8×8鍵盤(pán)矩陣采集到的鍵值經(jīng)過(guò)P0.P2輸入到單片機(jī)AT89C51中,通過(guò)簡(jiǎn)單的點(diǎn)亮呼叫病號(hào)對(duì)應(yīng)床號(hào)燈和病區(qū)內(nèi)的警示燈,然后通過(guò)P1口把相關(guān)信息傳送到MPX2彩屏LCD顯示。同時(shí)報(bào)警警示燈閃爍、報(bào)警聲響起。醫(yī)療人員可以通過(guò)控制鍵盤(pán)操作,完成呼叫響應(yīng)和信息查詢等監(jiān)護(hù)工作。
1.001.jpg (8.51 KB, 下載次數(shù): 101)
下載附件
2017-6-2 18:02 上傳
圖1 2.2 硬件設(shè)計(jì) 2.2.1單片機(jī)AT89C51的特點(diǎn) 隨著單片機(jī)功能集成化的發(fā)展,其應(yīng)用領(lǐng)域也逐漸從傳統(tǒng)的控制擴(kuò)展為控制處理、數(shù)據(jù)處理以及數(shù)字信號(hào)處理等領(lǐng)域,AT89C51具有低電壓、低功耗、性價(jià)比高、功能強(qiáng)、指令效率高等優(yōu)點(diǎn)[2]。AT89C51的主要特點(diǎn),(1)集成度高,易于擴(kuò)展; (2)較強(qiáng)的中斷處理能力,支持異常中斷、事件中斷和軟件中斷三種類型的中斷;(3)高效的指令系統(tǒng)。程序編程指令特別嚴(yán)密,它有多種中斷系統(tǒng)和多種定時(shí)器系統(tǒng),可以根據(jù)需要具體選擇,靈活性很大。 2.2.2 MPX2彩屏LCD電路模塊 本系統(tǒng)采用的MPX2電路模塊是一款高畫(huà)質(zhì)的低溫多晶硅TFT真彩LCD模塊,具有接口簡(jiǎn)單、編程方便、易于擴(kuò)展等良好性能。MPX2內(nèi)置專用驅(qū)動(dòng)和控制IC,以驅(qū)動(dòng)IC自己集成顯示緩存。無(wú)需外部顯示緩存。 MPX2系列模塊實(shí)際上就是將MPX2的TFT-LCD顯示器連接在PCB電路板上,并加在PCB電路板上設(shè)計(jì)了總線緩沖、保護(hù)電路,以及背光限流電路,將顯示器不便于與開(kāi)發(fā)板連接的軟PCB連接接口引出,并以DIP的雙排插針引出模塊以便于應(yīng)用上的連接。為了方便應(yīng)用上的擴(kuò)展使用,MPX2系列模塊將顯示器主供電源和顯示器背光電源分開(kāi)供電。 2.2.3 報(bào)警電路的設(shè)計(jì) 主機(jī)在接受到呼叫后,首先進(jìn)行報(bào)警告知值班人員。報(bào)警電路可以用單片機(jī)P2.0輸出1 kHz和500 Hz的音頻信號(hào)經(jīng)放大后驅(qū)動(dòng)其揚(yáng)聲器,做報(bào)警信號(hào),要求1 kHz信號(hào)響100 ms,再500 Hz信號(hào)響200 ms,交替進(jìn)行。這里使用音頻放大器LM386,他的工作電壓為4~ 12 V,輸出功率最大可達(dá)1 W,輸入阻抗為50 kHz。 2.2.4 鍵盤(pán)模塊電路設(shè)計(jì) 8×8鍵盤(pán)矩陣和64個(gè)LED警示燈模塊組成。在鍵盤(pán)掃描和LED驅(qū)動(dòng)部分,使用了 LED 顯示電路原理圖如圖2所示。
1.002.jpg (15.56 KB, 下載次數(shù): 89)
下載附件
2017-6-2 18:02 上傳
圖2 3. 系統(tǒng)軟件的設(shè)計(jì) 3.1程序設(shè)計(jì)簡(jiǎn)要 在設(shè)計(jì)程序之前,我們首先對(duì)單片機(jī)應(yīng)用系統(tǒng)預(yù)完成的任務(wù)進(jìn)行深入的分析,明確系統(tǒng)的設(shè)計(jì)任務(wù)功能要求和技術(shù)指標(biāo)。其次,要對(duì)系統(tǒng)的硬件資源和工作環(huán)境進(jìn)行分析。這是單片機(jī)應(yīng)用系統(tǒng)程序設(shè)計(jì)的基礎(chǔ)和條件。經(jīng)過(guò)任務(wù)分析,算法優(yōu)化后,就可以進(jìn)行程序的總體構(gòu)思,確定程序的結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),并考慮資源的分配和參數(shù)的計(jì)算燈,然后根據(jù)程序運(yùn)行的過(guò)程,勾畫(huà)出程序執(zhí)行的邏輯順序,用圖形符號(hào)將總體設(shè)計(jì)思路及程序流向繪制在平面圖上,從而使程序結(jié)構(gòu)關(guān)系直觀明了,便于檢查和修改.模塊化程序設(shè)計(jì)方法具有明顯有點(diǎn)。把一個(gè)多功能復(fù)雜的程序劃分位若干個(gè)簡(jiǎn)單,功能單一的程序模塊,有利于程序的設(shè)計(jì)和調(diào)試,有利于程序的優(yōu)化和分工,提高了程序的閱讀性和可靠性,使程序結(jié)構(gòu)層次一目了然。 3.2系統(tǒng)的工作流程 如圖3所示。
1.003.jpg (25.7 KB, 下載次數(shù): 96)
下載附件
2017-6-2 18:02 上傳
3.3軟件設(shè)計(jì) 該系統(tǒng)軟件主要完成以AT89C51為核心的數(shù)據(jù)的采集、處理和有線傳輸。采用模塊化程序設(shè)計(jì)方法,將系統(tǒng)軟件的設(shè)計(jì)主要分為顯示模塊,輸入模塊,輸出模塊。單片機(jī)掃描發(fā)射鍵,如果掃描到有發(fā)射鍵按下,系統(tǒng)便掃描撥碼開(kāi)關(guān)的狀態(tài)以確定地址碼,通過(guò)P0口和P2口開(kāi)始地址碼傳送當(dāng)服務(wù)臺(tái)接收到呼叫信號(hào)后,護(hù)士值班室內(nèi)的呼叫系統(tǒng)板上顯示該患者的床位號(hào),并振鈴。當(dāng)護(hù)士按下“響應(yīng)”鍵時(shí),取消當(dāng)前呼叫。 4. Proteus軟件仿真 我們利用KEILV805中文版對(duì)源程序進(jìn)行編譯,編譯成功后,把編譯結(jié)果保存并生成.HEX文件,然后把.HEX加載到單片機(jī)上進(jìn)行Proteus軟件仿真。看其是否能實(shí)現(xiàn)預(yù)想的功能。 Proteus仿真圖如圖4下,當(dāng)按下27號(hào)床位時(shí),顯示如下:
1.004.jpg (20.49 KB, 下載次數(shù): 123)
下載附件
2017-6-2 18:02 上傳
圖4 5. 設(shè)計(jì)體會(huì) 單片機(jī)在當(dāng)今計(jì)算機(jī)領(lǐng)域應(yīng)用十分廣泛,在自動(dòng)控制領(lǐng)域更是非常重要。通過(guò)這次設(shè)計(jì),我覺(jué)得自己對(duì)單片機(jī)的理解有了新的提高,也使自己綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析,解決實(shí)際問(wèn)題的能力有很大進(jìn)步。我知道單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握單片機(jī)的開(kāi)發(fā)技術(shù)是十分重要的。 想起這次單片機(jī)設(shè)計(jì),至今我仍感慨頗多,在整整一個(gè)多星期的日子里,可以說(shuō)是可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)對(duì)器件的不熟悉,對(duì)應(yīng)用軟件操作的困難,對(duì)單片機(jī)匯編語(yǔ)言掌握得不好。通過(guò)這次設(shè)計(jì)之后,我對(duì)自己以前的知識(shí)有了很大提高。 設(shè)計(jì)順利完成了,在設(shè)計(jì)中遇到了很多編程問(wèn)題,在同學(xué)和老師的細(xì)心幫助下,都得以解決。在此,對(duì)給過(guò)我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師表示忠心的感謝! 附錄 附錄A 源程序代碼
附錄B 系統(tǒng)原理圖
1.005.jpg (19.87 KB, 下載次數(shù): 102)
下載附件
2017-6-2 18:02 上傳
參考文獻(xiàn) [1] 張培仁,張志堅(jiān),高修峰.十六位單片微處理器原理及應(yīng)用.北京,清華大學(xué)出版社[M].2005: 46~49 [2] 田會(huì)方,吳興強(qiáng).基于LabVIEW與凌陽(yáng)SPCE061A實(shí)現(xiàn)串口數(shù)據(jù)采集[J].微計(jì)算機(jī)信息.2006:6:2.22~25 [3] 北京比高科技公司. BC7281B中文技術(shù)手冊(cè). 2002(6) [4] 北京銘正同創(chuàng)科技有限公司.MT22G06B彩屏LCD模組簡(jiǎn)要介紹.2006(12) [5] 張立才.基SPCE061A的多功能信號(hào)發(fā)生器設(shè)計(jì)實(shí)現(xiàn)[J].微計(jì)算機(jī)信息.2004:20:3.33~35 | 單片機(jī)在當(dāng)今計(jì)算機(jī)領(lǐng)域應(yīng)用十分廣泛,在自動(dòng)控制領(lǐng)域更是非常重要。通過(guò)這次設(shè)計(jì),我覺(jué)得自己對(duì)單片機(jī)的理解有了新的提高,也使自己綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析,解決實(shí)際問(wèn)題的能力有很大進(jìn)步。我知道單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握單片機(jī)的開(kāi)發(fā)技術(shù)是十分重要的。 想起這次單片機(jī)設(shè)計(jì),至今我仍感慨頗多,在整整一個(gè)多星期的日子里,可以說(shuō)是可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)對(duì)器件的不熟悉,對(duì)應(yīng)用軟件操作的困難,對(duì)單片機(jī)匯編語(yǔ)言掌握得不好。通過(guò)這次設(shè)計(jì)之后,我對(duì)自己以前的知識(shí)有了很大提高。
| |
| | |
- #include
- #define uchar unsigned char
- #define uint unsigned int
- sbit B1=P3^6;
- sbit B2=P3^7;
- sbit buzzer=P3^5;
- sbit clear=P3^4; 定義字符
- B1,B2,BUZZER,CLEAR
- uchar code distab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- uchar code keytab[8][8]={{1,2,3,4,5,6,7,8}, 定義鍵盤(pán)值
- {9,10,11,12,13,14,15,16}, {17,18,19,20,21,22,23,24}, {25,26,27,28,29,30,31,32}, {33,34,35,36,37,38,39,40}, {41,42,43,44,45,46,47,48}, {49,50,51,52,53,54,55,56}, {57,58,59,60,61,62,63,64}, };
- uchar bed_NO;
- uchar btime;
- uchar itime; 定義字符bed_NO,uchar btime,uchar itime void delay(uint x) 定義延遲程序塊
- { uint i,j;
- for(i=0;i{;;}
- }
- }
- void display(void)
- {
- uchar a10,a1;
- a10=bed_NO/10;
- a1=bed_NO%10;
- P1=distab[a10];
- B1=0;
- delay(10);
- B1=1;
- P1=distab[a1];
- B2=0;
- delay(10);
- B2=1;
- } 定義顯示管塊
- void key(void) 掃描鍵盤(pán)值
- {
- uchar hang,lie; P0=0x00;P2=0xff; delay(1); if(P2!=0xff) { delay(5); 延遲(5)后查詢行列值 if(P2!=0xff) { switch(P2&0xff) 掃描列值 { case 0xfe:lie=0;break; case 0xfd:lie=1;break; case 0xfb:lie=2;break; case 0xf7:lie=3;break; case 0xef:lie=4;break; case 0xdf:lie=5;break; case 0xbf:lie=6;break; case 0x7f:lie=7;break; }
- P2=0x00;P0=0xff;
- switch(P0&0xff) 掃描行值 {
- case 0xfe:hang=0;break; case 0xfd:hang=1;break; case 0xfb:hang=2;break; case 0xf7:hang=3;break; case 0xef:hang=4;break; case 0xdf:hang=5;break; case 0xbf:hang=6;break; case 0x7f:hang=7;break; }
- P2=0xff;P0=0x00;
- while(P2!=0xff);
- bed_NO=keytab[hang][lie];TR0=1; }
- else
- bed_NO=0;
- }
- }
- void time_init(void) 計(jì)數(shù)器的初始化
- {行列值賦值給bed_NO
- TH0=(65536-8333)/256; 裝入初值 TL0=(65536-8333)%256;
- EA=1;
- ET0=1;
- }
- void time(void) interrupt 1 using 1 {
- TH0=(65536-8333)/256;
- TL0=(65536-8333)%256;
- itime++;
- if(itime>=100)
- {
- itime=0;
- btime++;
- if(btime>6){TR0=0;btime=0;} buzzer=!buzzer;
- }
- }
- void main(void)
- {
- time_init(); 定義中斷塊
- } { } key(); display(); if(TR0==0){buzzer=1;} if(clear==0) 服務(wù)臺(tái)取消呼叫
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
完整論文下載(word格式 可編輯):
http://www.torrancerestoration.com/bbs/dpj-86638-1.html
|