版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
ⅠⅠ畢業(yè)設計說明書(論文)中文摘要摘要:醫(yī)院病房呼叫設備的按鍵電路由4*4鍵盤電路組成,對應病房中的16個床位。顯示電路由LED數(shù)碼管組成。報警電路由黃色LED報警燈和蜂鳴器組成。AT89C51單片機最小系統(tǒng)必備組件,除AT89C51單片機外,還需要包括5V直流電源電路,時鐘電路由12MHz晶體振蕩器,RST復位電路組成,通過上電和按鍵復位。如果按下按鈕,系統(tǒng)首先檢測是否按下按鈕,則進行延時去抖動的操作,再次檢測是否有按鍵按下,防止時脈沖干擾的信號。接下來判斷是哪一個按鍵按下,根據(jù)鍵盤電路1-16號鍵對應的地址,可以進行床位號的識別。當有病房里病床號按下按鈕后,黃色的LED報警燈會不斷閃爍,提示醫(yī)護人員有病人需要服務;同時蜂鳴器也不斷發(fā)出“滴滴”的聲音,這樣能更好的吸引醫(yī)護人員的注意力。不僅能完成呼叫服務,還能有床位號顯示以及報警聲,能做到視聽同時提示值班護士。關鍵詞:AT89C51單片機;鍵盤電路;LED數(shù)碼管顯示電路;報警電路ⅡⅡ畢業(yè)設計說明書(論文)外文摘要Abstract:Thebuttoncircuitofthehospitalwardcalldeviceiscomposedof4*4keyboardcircuits,correspondingto16bedsintheward.ThedisplaycircuitiscomposedofLEDdigitaltubes.ThealarmcircuitconsistsofayellowLEDwarninglightandabuzzer.AT89C51microcontrollerminimumsystemnecessarycomponents,inadditiontoAT89C51microcontroller,italsoneedstoinclude5VDCpowersupplycircuit,clockcircuitcomposedof12MHzcrystaloscillator,RSTresetcircuit,throughpower-onandbuttonreset.Thesystemfirstdetectswhetherthereisabuttonpress.Ifthebuttonispressed,thedelaydebounceoperationisperformed,anditisdetectedagainwhetherthereisabuttonpresstopreventthepulseinterferencesignal.Next,itisjudgedwhichbuttonispressed,andthebednumbercanbeidentifiedaccordingtotheaddresscorrespondingtothekeyboardcircuit1-16.Whenthebednumberispressedintheward,theyellowLEDwarninglightwillflashcontinuously,promptingthemedicalstafftohavethepatientneedservice;atthesametime,thebuzzerwillcontinuetoemitthe"drip"sound,whichcanbetterattractthemedicalstaff.attention.Notonlycanthecallservicebecompleted,butalsothebednumberdisplayandthealarmsoundcanbedisplayed,andthenurseondutycanbeprompted.Keywords:AT89C51singlechipmicrocomputer;keyboardcircuit;LEDdigitaltubedisplaycircuit;alarmcircuit第頁共29頁PAGE1、緒論1.1前言醫(yī)院建設呼叫中心系統(tǒng)具有重要意義,具有在中國部分醫(yī)院成功應用的經(jīng)驗。醫(yī)院建設呼叫中心系統(tǒng)在以下幾個方面具有重要的現(xiàn)實意義:可以提高醫(yī)院服務質(zhì)量;它可以增強醫(yī)院的品牌優(yōu)勢;它可以優(yōu)化醫(yī)院的服務流程;它可以降低醫(yī)院的服務成本;它可以開辟新的收入來源;提高醫(yī)療信息的水平等。1.2設計任務和基本要求醫(yī)院病房呼叫設備的按鍵電路由4*4鍵盤電路組成,對應病房中的16個床位。顯示電路由LED數(shù)碼管組成。報警電路由黃色LED報警燈和蜂鳴器組成。AT89C51單片機最小系統(tǒng)必備組件,除AT89C51單片機外,還需要包括5V直流電源電路,時鐘電路由12MHz晶體振蕩器,RST復位電路組成,通過上電和按鍵復位。系統(tǒng)首先檢測是否有按下按鈕。如果檢測到按下按鈕,則執(zhí)行延遲去抖操作以檢測是否按下按鈕。,防止時脈沖干擾的信號。接下來判斷是哪一個按鍵按下,根據(jù)鍵盤電路1-16號鍵對應的地址,可以進行床位號的識別。當有病房里病床號按下按鈕后,黃色的LED報警燈會不斷閃爍,提示醫(yī)護人員有病人需要服務;同時蜂鳴器也不斷發(fā)出“滴滴”的聲音,這樣能更好的吸引醫(yī)護人員的注意力。不僅能完成呼叫服務,還能有床位號顯示以及報警聲,能做到視聽同時提示值班護士。1.3設計方案的選擇1.3.1方案一:基于數(shù)字電路所制作的病房呼叫系統(tǒng)功能信號發(fā)生器用于輸出脈沖信號,74160N用于設計十進制和十六進制進位輸出。如果要顯示床號,則需要使用數(shù)字顯示器。如果要設置鈴聲,則需要使用與或不相等的電路組件的組合。1.3.2方案二:基于單片機的病房呼叫設計本次畢業(yè)設計中的醫(yī)院病房呼叫設備的按鍵電路由4*4鍵盤電路組成,對應病房中的16個床位。顯示電路由LED數(shù)碼管組成。報警電路由黃色LED報警燈和蜂鳴器組成。系統(tǒng)首先檢測是否有按下按鈕。如果按下按鈕,則執(zhí)行延遲去抖動操作,并再次檢測按鈕是否被按下。防止時脈沖干擾的信號。接下來判斷是哪一個按鍵按下,根據(jù)鍵盤電路1-16號鍵對應的地址,可以進行床位號的識別。當有病房里病床號按下按鈕后,黃色的LED報警燈會不斷閃爍,黃色LED開始閃爍對醫(yī)護人員進行提示,蜂鳴器也發(fā)出“滴滴”的聲響對醫(yī)護人員進行提示。當有病房里病床號按下按鈕后,黃色的LED報警燈會不斷閃爍,提示醫(yī)護人員有病人需要服務;同時蜂鳴器也不斷發(fā)出"滴滴"的聲音,這樣能更好的吸引醫(yī)護人員的注意力。醫(yī)院病房呼叫設備報警電路軟件電路開始工作后,首先判斷是否按下按鈕,如果檢測到按鈕按下,則下一次操作的延遲為10ms;如果未檢測到按鈕按下,則直接結束報警電路軟件電路流程。在延遲10ms后,再次檢測是否按下按鈕,如果檢測到按鈕,則蜂鳴器響起,黃色LED燈閃爍;如果沒有檢測到按鍵按下,則直接結束報警電路軟件電路流程。在執(zhí)行完蜂鳴器響以及黃色LED燈閃爍的操作后,結束報警電路軟件電路流程。提示醫(yī)護人員有病人需要服務;同時蜂鳴器也不斷發(fā)出“滴滴”的聲音,這樣能更好的吸引醫(yī)護人員的注意力。1.3.3方案確定比較方案一和方案二的兩種設計,方案一的自動化程度不如方案二的自動化程度高。并且功能沒有方案二豐富,方案二不僅能完成呼叫服務,還能有床位號顯示以及報警聲,能做到視聽同時提示值班護士。所以為了達到這個設計的目的,所以選擇程序方案二來設計程序。1.4基本方案1.4.1對于該方案的基本概述在本醫(yī)院病房呼叫設備中,我采用單片機AT89C51為核心的系統(tǒng)主要包括三個部分:4*4表示16個床位的鍵盤電路、LED數(shù)碼管顯示電路、黃色LED報警燈和蜂鳴器組成的報警電路。1.4.2系統(tǒng)軟硬件劃分因為在設計當中對于單片機的容量和大小有所要求,所以在減少成本的狀況下,是所有能用的軟件功能都可以通過軟件來實現(xiàn),可以將顯示用動態(tài)來進行顯示,采用延時的方法1.4.3單片機選型由于任務中的各種要求,它最適合于通過各種按鈕進行定時,校準,確定時間和控制單片機。AT89C51低功耗單芯片是最合適的。AT89C51單片機最小系統(tǒng)必備組件,除AT89C51單片機外,還需要包括5VDC電源電路、由12MHz晶振組成的時鐘電路、RST復位電路,通過上電和按鍵復位。1.5總體設計框圖醫(yī)院病房呼叫設備總體實現(xiàn)結構框圖如圖1.1所示。醫(yī)院病房呼叫設備的按鍵電路由4*4鍵盤電路組成,對應病房中的16個床位。顯示電路由LED數(shù)碼管組成。報警電路由黃色LED報警燈和蜂鳴器組成。AT89C51單片機最小系統(tǒng)必備組件,除AT89C51單片機外,還需要包括5V直流電源電路,時鐘電路由12MHz晶體振蕩器,RST復位電路組成,通過上電和按鍵復位。系統(tǒng)首先檢測是否按下按鈕,如果按下按鈕,則執(zhí)行延遲去抖動操作,再次檢測是否有按鍵按下,防止時脈沖干擾的信號。接下來判斷是哪一個按鍵按下,根據(jù)鍵盤電路1-16號鍵對應的地址,可以進行床位號的識別。當有病房里病床號按下按鈕后,黃色的LED報警燈會不斷閃爍,提示醫(yī)護人員有病人需要服務;同時蜂鳴器也不斷發(fā)出“滴滴”的聲音,這樣能更好的吸引醫(yī)護人員的注意力。不僅能完成呼叫服務,還能有床位號顯示以及報警聲,能做到視聽同時提示值班護士。圖1.1系統(tǒng)總體方案圖2、硬件電路的設計2.1醫(yī)院病房呼叫設備AT89C51單片機最小系統(tǒng)硬件電路設計圖2.1醫(yī)院病房呼叫設備AT89C51單片機最小系統(tǒng)硬件電路圖醫(yī)院病房呼叫設備AT89C51MCU的最小系統(tǒng)所需的一些組件,如圖2.1所示,除AT89C51MCU外,還需要包括一個5VDC電源電路,一個由12MHz晶體振蕩器組成的時鐘電路,RST復位電路,通過上電和按鈕復位.5V直流穩(wěn)壓電源為微控制器提供5V的參考電壓,復位電路和晶體振蕩器分別用于將電路狀態(tài)恢復到一定的初始值和時鐘定時周期電路。典型的晶體振蕩器需要12MHz,時鐘周期為12MHz/12MHz,產(chǎn)生精確的us-level時間間隔,可用于單片機的定時操作,這也使得單片機具有時鐘周期,因此可以定期從ROM讀取指令。程序代碼根據(jù)時鐘周期定期執(zhí)行。選擇12MHz晶體振蕩器,電路為C1,C2,X1晶振電路,X1為晶振,兩個電容C1,C2均為負載電容,功能易啟動沖擊,降低頻率漂移。設計的復位電路由R1=10KΩ和C10=1nF組成。由于復位電平持續(xù)時間大于機器周期的兩倍,機器周期=12/(12MHz)=1us,則τ=R2C8=10×10^3×1×10^(-6)=0.01s\\u003e2us,滿足設計要求.30引腳連接5VDC電源,ALE為地址鎖存使能信號.I端口使用P0.0-P0。7,P3.0-P3.7,P2.2-P2.3,P2.6-P2.7共20個端口;2.2醫(yī)院病房呼叫設備鍵盤電路硬件電路設計圖2.2醫(yī)院病房呼叫設備鍵盤電路硬件電路圖醫(yī)院病房呼叫設備鍵盤電路如圖2.2所示,P3.0-P3.7口均為鍵盤電路的接口。系統(tǒng)首先檢測是否有按下按鈕。如果檢測到按下按鈕,則執(zhí)行延遲去抖操作以檢測是否按下按鈕。,防止時脈沖干擾的信號。接下來判斷是哪一個按鍵按下,根據(jù)鍵盤電路1-16號鍵對應的地址,可以進行如下識別:0x77對應key1-一號病床位;0xb7對應key2-二號病床位;0xd7對應key3-三號病床位;0xe7對應key4-四號病床位;0x7b對應key5-五號病床位;0xbb對應key6-六號病床位;0xdb對應key7-七號病床位;0xeb對應key8-八號病床位;0x7d對應key9-九號病床位;0xbd對應key10-十號病床位;0xdd對應key11-十一號病床位;0xed對應key12-十二號病床位;0x7e對應key13-十三號病床位;0xbe對應key14-十四號病床位;0xde對應key15-十五號病床位;0xee對應key16-十六號病床位;鍵盤電路為4*4的矩陣按鈕。鍵盤電路軟件電路首先判斷是否有按鍵按下,10ms后再次判斷是否有按鍵按下,目的是為了防止干擾脈沖帶來的誤判。10ms后如果判斷確實是有按鍵按下,則獲取按鍵的地址。獲取按鍵的地址識別到對應床號后,判斷按鍵是否釋放,若按鍵釋放則修改對應標志并結束整個流程;判斷按鍵未釋放,則進行繼續(xù)判斷按鍵是否釋放,從而完成鍵盤電路軟件電路流程。2.3醫(yī)院病房呼叫設備74LS373鎖存器電路硬件電路設計圖2.3醫(yī)院病房呼叫設備74LS373鎖存器電路硬件電路圖醫(yī)院病房呼叫74LS373鎖存器電路硬件電路圖如圖2.2所示,74LS373是常用的地址鎖存芯片,它實質(zhì)是一個帶三態(tài)緩沖輸出的8D觸發(fā)器。74LS373的1號管腳接低電平,保證使能,11號管腳直接接單片機的ALE信號.其工作原理如下:(1).1號管腳是輸出使能(OE),當引腳1為高電平時為低電平有效,無論第3,第4,第7,第8,第13,第14,第17,第18管的輸入如何,無論第11引腳(鎖存控制端子G)如何,輸出2(Q0),5(Q1),6(Q2),9(Q3),12(Q4),15(Q5),16(Q6),19(Q7)管均處于高電阻狀態(tài)(或稱為浮動狀態(tài));(2).當1號引腳為低電平時,只要第11引腳(鎖存控制端子G)出現(xiàn)下降沿,輸出2(Q0),5(Q1),6(Q2),9(Q3),12(Q4),15(Q5),16(Q6)和19(Q7)的引腳立即顯示輸入引腳3,4,7,8,13,14,17和18的狀態(tài)。2.4醫(yī)院病房呼叫設備LED數(shù)碼管顯示電路硬件電路設計圖2.4醫(yī)院病房呼叫設備LED數(shù)碼管顯示電路硬件電路圖醫(yī)院病房呼叫設備LED數(shù)碼管顯示電路硬件電路圖如圖2.4,與LED燈的原理一樣,數(shù)碼管也可以通過LED工作,我們主要通過選擇數(shù)碼管上的LED來顯示我們需要的字符。簡單的舉個例子,比如數(shù)字0:圖2.5LED數(shù)碼管顯示“0”通過圖片可以很容易的看出,a,b,c,d,e,f六盞燈亮其余g和dp都不亮。如果轉化成1和0表示,1表示亮,0表示暗,這樣就是:a=1,b=1,c=1,d=1,e=1,f=1,g=0,dp=0。在醫(yī)院病房呼叫設備LED數(shù)碼管顯示電路軟件電路中,LED數(shù)碼管顯示電路軟件電路開始工作后,進行掃描床號的操作,從一號床位開始掃描,判斷條件為床號是否不為0,由于是從n=1開始掃描,因而進行顯示床號的操作。顯示床號后,繼續(xù)掃描鍵值,n不為16時,執(zhí)行n=n+1的操作后,判斷條件為床號是否不為0,由于是從n=1開始掃描,因而進行顯示床號的操作。顯示床號后,繼續(xù)掃描鍵值,n不為16時,執(zhí)行n=n+1的操作,如此往復循環(huán)直至n=16,結束整個LED數(shù)碼管顯示電路工作流程。2.5醫(yī)院病房呼叫設備報警電路硬件電路設計圖2.6醫(yī)院病房呼叫設備報警電路硬件電路圖-蜂鳴器和LED報警燈醫(yī)院病房呼叫設備報警電路硬件電路圖-蜂鳴器和LED報警燈如圖2.6所示,當有病房里病床號按下按鈕后,黃色的LED報警燈會不斷閃爍,提示醫(yī)護人員有病人需要服務;同時蜂鳴器也不斷發(fā)出“滴滴”的聲音,這樣能更好的吸引醫(yī)護人員的注意力。醫(yī)院病房呼叫設備報警電路軟件電路開始工作后,首先,判斷是否按下按鈕。如果檢測到按下按鈕,則下一步延遲10ms;如果未檢測到按鈕按下,則直接結束報警電路軟件電路流程。在延遲10ms后,再次檢測是否按下按鈕,如果檢測到按鈕,則蜂鳴器響起,黃色LED燈閃爍;如果沒有檢測到按鍵按下,則直接結束報警電路軟件電路流程。在執(zhí)行完蜂鳴器響以及黃色LED燈閃爍的操作后,結束報警電路軟件電路流程。2.6醫(yī)院病房呼叫設備總體硬件電路圖2.7醫(yī)院病房呼叫設備總體硬件電路圖醫(yī)院病房呼叫設備總體硬件電路圖如圖2.7所示,主要由:AT89C51單片機最小系統(tǒng)、4*4鍵盤電路、74LS373鎖存器電路、醫(yī)院病房呼叫設備LED數(shù)碼管顯示電路以及由LED黃色報警燈和蜂鳴器組成的醫(yī)院病房呼叫設備報警電路構成。3、系統(tǒng)軟件設計3.1系統(tǒng)軟件設計的主要內(nèi)容系統(tǒng)軟件設計主要是三個模塊編程所構成的:鍵盤電路軟件電路設計、LED數(shù)碼管顯示電路軟件電路設計和報警電路軟件電路設計。3.2鍵盤電路軟件電路流程設計修改對應標志返回按鍵是否釋放開始獲取鍵值修改對應標志返回按鍵是否釋放開始獲取鍵值延時10ms是否有鍵按下是否有鍵按下YYNNN鍵盤電路軟件電路流程圖如圖3.1所示,鍵盤電路為4*4的矩陣按鈕。鍵盤電路軟件電路首先判斷是否有按鍵按下,10ms后再次判斷是否有按鍵按下,目的是為了防止干擾脈沖帶來的誤判。10ms后如果判斷確實是有按鍵按下,則獲取按鍵的地址:0x77對應key1-一號病床位;0xb7對應key2-二號病床位;0xd7對應key3-三號病床位;0xe7對應key4-四號病床位;0x7b對應key5-五號病床位;0xbb對應key6-六號病床位;0xdb對應key7-七號病床位;0xeb對應key8-八號病床位;0x7d對應key9-九號病床位;0xbd對應key10-十號病床位;0xdd對應key11-十一號病床位;0xed對應key12-十二號病床位;0x7e對應key13-十三號病床位;0xbe對應key14-十四號病床位;0xde對應key15-十五號病床位;0xee對應key16-十六號病床位;獲取按鍵的地址識別到對應床號后,判斷按鍵是否釋放,若按鍵釋放則修改對應標志并結束整個流程;判斷按鍵未釋放,則進行繼續(xù)判斷按鍵是否釋放,從而完成鍵盤電路軟件電路流程。3.3LED數(shù)碼管顯示電路軟件電路流程設計圖3.2LED數(shù)碼管顯示電路軟件電路流程圖LED數(shù)碼管顯示電路軟件電路流程圖如圖3.2所示,LED數(shù)碼管顯示電路軟件電路開始工作后,進行掃描床號的操作,從一號床位開始掃描,判斷條件為床號是否不為0,由于是從n=1開始掃描,因而進行顯示床號的操作。顯示床號后,繼續(xù)掃描鍵值,n不為16時,執(zhí)行n=n+1的操作后,判斷條件為床號是否不為0,由于是從n=1開始掃描,因而進行顯示床號的操作。顯示床號后,繼續(xù)掃描鍵值,n不為16時,執(zhí)行n=n+1的操作,如此往復循環(huán)直至n=16,結束整個LED數(shù)碼管顯示電路工作流程。3.4報警電路軟件電路流程設計圖3.3報警電路軟件電路流程圖報警電路軟件電路流程圖如圖3.3所示,報警電路軟件電路開始工作后,首先,判斷是否按下按鈕。如果檢測到按下按鈕,則下一步延遲10ms;如果未檢測到按鈕按下,則直接結束報警電路軟件電路流程。在延遲10ms后,再次檢測是否按下按鈕,如果檢測到按鈕,則蜂鳴器響起,黃色LED燈閃爍。如果沒有檢測到按鍵按下,則直接結束報警電路軟件電路流程。在執(zhí)行完蜂鳴器響以及黃色LED燈閃爍的操作后,結束報警電路軟件電路流程。4、對系統(tǒng)的調(diào)試和對測試進行分析4.1系統(tǒng)調(diào)試根據(jù)系統(tǒng)的設計方案,系統(tǒng)的調(diào)試可分為三個塊:對醫(yī)院病房呼叫設備鍵盤電路進行調(diào)試,對醫(yī)院病房呼叫設備顯示電路進行調(diào)試和醫(yī)院病房呼叫設備的報警調(diào)試。由于模塊設計方法應用于系統(tǒng)設計,因此可以對每個電路模塊功能進行逐步調(diào)試。軟件調(diào)試由單片機仿真軟件Proteus8.0及KeilC編程要調(diào)試,將編程的程序放入測試中,主要目的是檢查是否存在語法錯誤。4.2仿真結果4.2.1醫(yī)院病房呼叫設備顯示電路調(diào)試電源打開時,顯示屏無顯示。按下第二個鍵時,界面部分顯示02,指示燈閃爍,聲音報警;當未按下復位鍵,然后按下第6個鍵時,界面顯示06,指示燈閃爍。聲音報警。依次按下每個按鈕,相應的病房號碼將相應顯示。該設計反映了控制電路的可行性??傊到y(tǒng)實現(xiàn)了主要功能:顯示床號,指示燈閃爍,以及聲音報警提醒值班人員。通過Proteus軟件仿真,可以實現(xiàn)上述結論,滿足項目目標并滿足要求。利用Proteus進行圖形渲染仿真,Keil編程然后放入微控制器實現(xiàn)所需的功能。圖4.1醫(yī)院病房呼叫設備顯示電路調(diào)試仿真圖醫(yī)院病房呼叫設備顯示電路調(diào)試仿真圖如圖4.1所示,依次顯示為2號床位、6號床位、10號床位、15號床位。鍵盤電路軟件電路首先判斷是否有按鍵按下,10ms后再次判斷是否有按鍵按下,目的是為了防止干擾脈沖帶來的誤判。10ms后如果判斷確實是有按鍵按下,則獲取按鍵的地址:0x77對應key1-一號病床位;0xb7對應key2-二號病床位;0xd7對應key3-三號病床位;0xe7對應key4-四號病床位;0x7b對應key5-五號病床位;0xbb對應key6-六號病床位;0xdb對應key7-七號病床位;0xeb對應key8-八號病床位;0x7d對應key9-九號病床位;0xbd對應key10-十號病床位;0xdd對應key11-十一號病床位;0xed對應key12-十二號病床位;0x7e對應key13-十三號病床位;0xbe對應key14-十四號病床位;0xde對應key15-十五號病床位;0xee對應key16-十六號病床位;獲取按鍵的地址識別到對應床號后,判斷按鍵是否釋放,若按鍵釋放則修改對應標志并結束整個流程;判斷按鍵未釋放,則進行繼續(xù)判斷按鍵是否釋放,從而完成鍵盤電路軟件電路流程。4.2.2醫(yī)院病房呼叫設備鍵盤電路調(diào)試圖4.2醫(yī)院病房呼叫設備鍵盤電路調(diào)試——1號床位按鈕按下圖4.3醫(yī)院病房呼叫設備鍵盤電路調(diào)試——1號床位按鈕按下后顯示醫(yī)院病房呼叫設備鍵盤電路調(diào)試——1號床位按鈕按下如圖4.2所示,1號床位按鈕按下對應的一號床床位在LED數(shù)碼管顯示電路中進行顯示,如圖4.3所示。4.2.3醫(yī)院病房呼叫設備報警電路調(diào)試醫(yī)院病房呼叫設備報警電路仿真圖如圖4.3所示,圖中由于一號床位按鈕被按下,顯示電路顯示出一號床位,并進行閃爍。同時報警電路動作,黃色LED開始閃爍對醫(yī)護人員進行提示,蜂鳴器也發(fā)出“滴滴”的聲響對醫(yī)護人員進行提示。當有病房里病床號按下按鈕后,黃色的LED報警燈會不斷閃爍,提示醫(yī)護人員有病人需要服務;同時蜂鳴器也不斷發(fā)出"滴滴"的聲音,這樣能更好的吸引醫(yī)護人員的注意力。醫(yī)院病房呼叫設備報警電路軟件電路開始工作后,首先,確定是否按下按鈕。如果檢測到按下按鈕,則延遲10ms進行下一步;如果沒有檢測到按鈕按下,則直接結束報警電路軟件電路流程。延時10ms后,再次檢測是否有按鍵按下,如果檢測到按鍵按下則進行蜂鳴器響以及黃色LED燈閃爍的操作;如果沒有檢測到按鍵按下,則直接結束報警電路軟件電路流程。在執(zhí)行完蜂鳴器響以及黃色LED燈閃爍的操作后,結束報警電路軟件電路流程。圖4.3醫(yī)院病房呼叫設備報警電路仿真圖附錄:C語言程序清單:#include<reg51.h>#defineuintunsignedint#defineuchrunsignedcharsbitled0=P2^2;sbitbuzzer=P2^3;sbitdula=P2^6;//聲明段選線選通端sbitwela=P2^7;//聲明位選線選通端sbitclear=P3^4;uchrkey,shi,ge,count;uchrcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76,0x79,0x38,0x3f};/*延時子函數(shù),xms為形參*/voiddelay(uintxms){uintx,y;for(x=xms;x>0;x--)for(y=110;y>0;y--);}/*矩陣鍵盤掃描子程序*/voidmatrixkeyscan(){uinttemp;P3=0xf7;//給P3口賦值temp=P3;temp=temp&0xf0;if(temp!=0xf0)//檢測是否有鍵按下{delay(6);//延時去抖temp=P3;temp=temp&0xf0;if(temp!=0xf0)//再次檢測是否有鍵按下{temp=P3;switch(temp){case0x77:key=1;break;case0xb7:key=2;break;case0xd7:key=3;break;case0xe7:key=4;break;//判斷按下的是哪個鍵}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}//等待按鍵釋放}}P3=0xfb;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(6);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0x7b:key=5;break;case0xbb:key=6;break;case0xdb:key=7;break;case0xeb:key=8;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfd;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(6);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0x7d:key=9;break;case0xbd:key=10;break;case0xdd:key=11;break;case0xed:key=12;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(6);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0x7e:key=13;break;case0xbe:key=14;break;case0xde:key=15;break;case0xee:key=16;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}}/*主函數(shù)*/ voidmain() { P0=0x00; while(1) { matrixkeyscan(); display(key); } }//按鍵掃描子程序unsignedcharkeyscan(void)/**掃描按鍵函數(shù)-2步判別掃描法**/{ucharreadkey,rereadkey;ucharx_temp,y_temp; KEY_PORT=0x0f; x_temp=KEY_PORT&0x0f; if(x_temp==0x0f)return(0xf0);/*無按鍵,退出*/ KEY_PORT=0xf0;y_temp=KEY_PORT&0xf0; readkey=x_temp|y_temp; time(10); /*延時10ms后再測按鍵*/ KEY_PORT=0x0f;x_temp=KEY_PORT&0x0f; if(x_temp==0x0f)return(0xf0);/*無按鍵,退出*/ KEY_PORT=0xf0;y_temp=KEY_PORT&0xf0; rereadkey=x_temp+y_temp; if(readkey==rereadkey)/*2次一致*/ {return(~rereadkey);} return(0xf0);}voidKey_process(void)/*鍵值處理程序*/{ switch(key_Value)/*根據(jù)中斷源分支*/ /*按第1行鍵*/ { case0x11:P0=DSY_Table[1];P2=DSY_Table[0];TR0=1;break; case0x21:P0=DSY_Table[2];P2=DSY_Table[0];TR0=1;break; case0x41:P0=DSY_Table[3];P2=DSY_Table[0];TR0=1;break; case0x81:P0=DSY_Table[4];P2=DSY_Table[0];TR0=1;break; /*按第2行鍵*/ case0x12:P0=DSY_Table[5];P2=DSY_Table[0];TR0=1;break; case0x22:P0=DSY_Table[6];P2=DSY_Table[0];TR0=1;break; case0x42:P0=DSY_Table[7];P2=DSY_Table[0];TR0=1;break; case0x82:P0=DSY_Table[8];P2=DSY_Table[0];TR0=1;break; /*按第3行鍵*/ case0x14:P0=DSY_Table[9];P2=DSY_Table[0];TR0=1;break; case0x24:P0=DSY_Table[0];P2=DSY_Table[1];TR0=1;break; case0x44:P0=DSY_Table[1];P2=DSY_Table[1];TR0=1;break; case0x84:P0=DSY_Table[2];P2=DSY_Table[1];TR0=1;break; /*按第4行鍵*/ case0x18:P0=DSY_Table[3];P2=DSY_Table[1];TR0=1;break; case0x28:P0=DSY_Table[4];P2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 罕見病流動人口的健康管理策略-1
- 2026年馬鞍山市交通運輸綜合行政執(zhí)法支隊公開選調(diào)工作人員14名備考題庫及答案詳解(易錯題)
- 2026山東省公安機關考試錄用特殊職位公務員(人民警察)60人備考題庫及參考答案詳解
- 2026吉林白山市長白邊境管理大隊招聘邊境管理專職警務輔助人員30人備考題庫及答案詳解1套
- 2026廣西北海市海城區(qū)海洋局招聘編外人員1人備考題庫有答案詳解
- 2025廣東茂名信宜市面向駐茂部隊隨軍家屬招聘1人備考題庫及1套參考答案詳解
- 2026年心理健康咨詢師基礎筆試題目
- 2026年跨境電商物流的無人配送體系實踐題庫
- 2026年跨文化營銷活動中文化差異問題解析與解決策略題
- 2026年工程造價中級實戰(zhàn)練習題目
- 高校區(qū)域技術轉移轉化中心(福建)光電顯示、海洋氫能分中心主任招聘2人備考題庫及答案詳解(考點梳理)
- 航空安保審計培訓課件
- 2026元旦主題班會:馬年猜猜樂馬年成語教學課件
- T-CI 263-2024 水上裝配式鋼結構棧橋(平臺)施工技術規(guī)程
- 云南省楚雄州2023-2024學年上學期期末教育學業(yè)質(zhì)量監(jiān)測九年級歷史試卷(含答案)
- 2023年湖北煙草筆試試題
- 凝血功能檢測方法與臨床意義
- 人教版五年級數(shù)學用方程解決問題
- 架桿租賃合同
- 哈工大歷年電機學試卷及答案詳解
- GB/T 16886.1-2022醫(yī)療器械生物學評價第1部分:風險管理過程中的評價與試驗
評論
0/150
提交評論