基于單片機(jī)的病房緊急呼叫系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:文中介紹了一種基于AT89S51單片機(jī)設(shè)計(jì)的醫(yī)院病房呼叫系統(tǒng)。該系統(tǒng)主要模塊是由51單片機(jī)系統(tǒng)、1602液晶顯示器及其他單元電路組成,同時(shí)也利用單片機(jī)的全雙工通信來實(shí)現(xiàn)整個模塊之間的通訊功能。所設(shè)計(jì)的系統(tǒng)核心控制器主要采用價(jià)格低廉,性能可靠的51單片機(jī);整個設(shè)計(jì)模塊的主要工作原理是分機(jī)按鍵呼叫,主機(jī)蜂鳴器報(bào)警,同時(shí)顯示呼叫的號碼和呼叫次數(shù),主機(jī)按鍵可查詢分機(jī)呼叫次數(shù)。使用本設(shè)計(jì)的病房緊急呼叫系統(tǒng),具有很重要的應(yīng)用價(jià)值,可以使病人快速找到醫(yī)生,以節(jié)約病人的寶貴時(shí)間。
設(shè)計(jì)一款能滿足大眾要求,適合各種服務(wù)性行業(yè)的緊急呼叫系統(tǒng),無疑會對改善人們生活起著十分重要的作用。對醫(yī)院單位而言,在同類行業(yè)中,需要對病人或客戶進(jìn)行快速、準(zhǔn)確的服務(wù)和治療,這就需要一種能夠提高醫(yī)院工作人員辦事效率的設(shè)備,而這種便捷服務(wù)式的呼叫系統(tǒng)節(jié)約了大量的人力,財(cái)力。對醫(yī)院工作人員而言,不需要頻繁的去查房、更不需要高聲應(yīng)答病人或家屬,免去了無數(shù)次的來回奔波,維護(hù)了醫(yī)院良好的安靜環(huán)境,同時(shí)能夠準(zhǔn)確的給病人更好的服務(wù)和解決突發(fā)事件。該系統(tǒng)的設(shè)計(jì)主要分主機(jī)和從機(jī)兩部分,集串行通信,液晶顯示,蜂鳴器報(bào)警于一體,具有施工快捷、簡單、故障率低、移動方便,使用該呼叫器的病人,無需四處張望尋找,也無需高聲喊叫,只需輕松地按一下呼叫器的按鈕,所需要的服務(wù)就會得到及時(shí)的解決。
1 串行通信技術(shù)
1.1 單片機(jī)串行通信功能
計(jì)算機(jī)與外界的信息交換稱為通信,常用的通信方式可分為兩種:并行和串行通信。一次同時(shí)傳送多位數(shù)據(jù)稱為并行通信。并行通信其特點(diǎn)是通信速度快,但傳輸信號線多,傳輸?shù)木嚯x較遠(yuǎn)時(shí)線路復(fù)雜,成本高。
所以主要用于近距離的傳輸操作。按一位接一位順序傳送數(shù)據(jù)的通信稱為串行通信。串行通信其特點(diǎn)是傳輸線少,通信線路簡單,通信速度慢,成本低,適合長距離通信。本設(shè)計(jì)采用串行通信。
51單片機(jī)的串行接口是一個全雙工的接口,它可以作為UART(通用異步接受和發(fā)送器)用,也可以作為同步移位寄存器用。51單片機(jī)串行接口的結(jié)構(gòu)如下:
1)串行數(shù)據(jù)寄存器(SBUF)
串行數(shù)據(jù)寄存器SBUF,字節(jié)地址為99H,實(shí)際對應(yīng)兩個寄存器:發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器。當(dāng)CPU向SBUF寫數(shù)據(jù)時(shí)對應(yīng)的是發(fā)送數(shù)據(jù)寄存器,當(dāng)CPU讀SBUF時(shí)對應(yīng)的是接收數(shù)據(jù)寄存器。
2)串行控制寄存器(PCON)
SCON用于串行通信方式的選擇,收發(fā)控制及狀態(tài)指示,各位含義如下:
SM0,SM1:串行接口工作方式選擇位,用于選擇四位工作方式。
SM2:多機(jī)通信控制位。
REN:接收允許控制位。軟件置1允許接收;軟件置0禁止接收。
TB8:方式2或3時(shí),TB8為要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或清0。
RB8:為發(fā)送數(shù)據(jù)的第9位,在方式2或3時(shí),存放接收數(shù)據(jù)的第9位,在方式1時(shí),若SM2=0,則為接收到的停止位。
TI:發(fā)送中斷標(biāo)志。發(fā)送完一幀數(shù)據(jù)后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)發(fā)送。
RI:接收中斷標(biāo)志。接收完一幀數(shù)據(jù)后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)接收。
3)輸入移位寄存器
數(shù)據(jù)先串行進(jìn)入輸入移位寄存器,8位數(shù)據(jù)全移入后,再并行送入接收SBUF中。
4)波特率發(fā)生器
波特率發(fā)生器用來控制串行通信的數(shù)據(jù)傳輸速率的,51系列單片機(jī)用定時(shí)器T1作為波特率發(fā)生器,T1設(shè)置在定時(shí)方式。波特率時(shí)用來表示串行通信數(shù)據(jù)傳輸快慢程度的物理量,定義為每秒鐘傳送的數(shù)據(jù)位數(shù)。
5)電源控制寄存器PCON
其最高位為SMOD,稱為波特率加倍位。若SMOD位為1,則波特率加倍。
6)波特率計(jì)算
當(dāng)定時(shí)器T1工作在定時(shí)方式的時(shí)候,定時(shí)器T1溢出率=(T1計(jì)數(shù)率)/(產(chǎn)生溢出所需機(jī)器周期)。由于是定時(shí)方式,T1計(jì)數(shù)率=fORC/12。產(chǎn)生溢出所需機(jī)器周期數(shù)=模M-計(jì)數(shù)初值W。
1.2 MAX232芯片
MAX232芯片是美信(MAXIM)公司專為RS-232串口設(shè)計(jì)的單相電源電平轉(zhuǎn)換的芯片,使用正5 V單相電源供電系統(tǒng)。如圖1所示。
第1部分主要是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成的。其功能是產(chǎn)生+12v和-12v電源,提供給RS-232串口。
第2部分主要是數(shù)據(jù)轉(zhuǎn)換。由7、8、9、10、11、12、13、14腳構(gòu)成其中的兩個數(shù)據(jù)通道。
其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。
8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。
TTL/CMOS數(shù)據(jù)從11引腳(T1IN)、10引腳(T2IN)轉(zhuǎn)換成RS-232數(shù)據(jù)從14腳(T1OUT)、7腳(T2OUT)送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從13引腳(R1IN)、8引腳(R2IN)輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從12引腳(R1OUT)、9引腳 (R2OUT)輸出。
第三部分是供電。15腳GND、16腳VCC(+5 V)。
1.3 串行通信軟件實(shí)現(xiàn)
1)串行口工作于方式1;用定時(shí)器1產(chǎn)生9600bit/s的波特率。
2)通信協(xié)議:主機(jī)首先發(fā)送連絡(luò)信號(AAH),從機(jī)接收到之后返回一個連絡(luò)信號(BBH)表示從機(jī)已準(zhǔn)備好接收。
3)通信過程使用第九位發(fā)送奇偶校驗(yàn)位。
4)從機(jī)接收到一個數(shù)據(jù)后,立即進(jìn)行奇偶校驗(yàn),若數(shù)據(jù)沒有錯誤,則返回00H,否則返回FFH。
5)主機(jī)發(fā)送一個數(shù)據(jù)后,等待從機(jī)返回?cái)?shù)據(jù);若為00H,則繼續(xù)發(fā)送下一個數(shù)據(jù),若為FFH,則重新發(fā)送數(shù)據(jù)。
2 液晶顯示1602
2.1 電路設(shè)計(jì)
液晶顯示LCM1602[3,4,5,6]是利用液晶經(jīng)過處理后能改變光線的傳輸方向的特性來實(shí)現(xiàn)信息顯示。一種常用的2行16個字的液晶模塊,它的顯示功能比較豐富,通過不同的地址編碼,既可以顯示出不同的阿拉伯?dāng)?shù)字、英文字母的大小寫,還可以顯示出常用的符號和日文假名等。它的電路設(shè)計(jì)比較簡單,八個數(shù)據(jù)線口可以直接和單片機(jī)的口相連,典型的結(jié)構(gòu)如圖2所示。
2.2 LCM1602引腳及功能介紹
LCM1602共16個引腳,各個引腳功能如下:
第1腳:VSS為地電源。
第2腳:VDD接5V正電源。
第3腳:V0為液晶對比度調(diào)整端,當(dāng)其接正電源時(shí)對比度是最弱的,而接地電源時(shí)其對比度最高。
第4腳:RS為寄存器選擇端,高電平時(shí)表示選擇數(shù)據(jù)、低電平時(shí)表示選擇指令。
第5腳:RW為讀寫信號端,高電平時(shí)表示讀操作,低電平表示寫操作。RS和RW共同為低電平時(shí)表示可以寫入指令或顯示地址。
第6腳:E端為使能端,當(dāng)由高電平跳變成低電平時(shí),液晶模塊執(zhí)行其命令。
第7~14腳:D0~D7為8位雙向的數(shù)據(jù)線。
第15~16腳:為背光的陽極腳和陰極腳,如果模塊是不帶背光的,則為空腳。
說明:1為高電平、0為低電平
3 系統(tǒng)的軟件實(shí)現(xiàn)
主機(jī)程序流程圖如圖3所示。
系統(tǒng)的軟件實(shí)現(xiàn)中主機(jī)的流程圖主要由以下幾個主要部分組成:首先開啟主程序,程序經(jīng)過初始化之后,主機(jī)發(fā)送AAH到從機(jī),從機(jī)如果不應(yīng)答,則返回上一層流程,否則主機(jī)發(fā)送數(shù)據(jù)進(jìn)行檢驗(yàn)判斷輸出是否完成,若完成則清除標(biāo)志位,否則返回上一層流程。
分機(jī)程序流程圖如圖4所示。
系統(tǒng)的軟件實(shí)現(xiàn)中分機(jī)的流程圖主要由以下幾個主要部分組成:首先開啟主程序,程序經(jīng)過初始化之后,接收數(shù)據(jù),同時(shí)計(jì)算檢驗(yàn)主機(jī)發(fā)送數(shù)據(jù)的累加值,如果檢驗(yàn)的累加值和主機(jī)的數(shù)據(jù)相等,則發(fā)送00H到主機(jī),否則發(fā)送FFH;發(fā)送00H到主機(jī)后,進(jìn)行接收完成判斷,若完成則清除標(biāo)志位,然后將結(jié)果顯示到LCD屏上,否則返回到第三個流程階段,再次計(jì)算檢驗(yàn)主機(jī)發(fā)送數(shù)據(jù)的累加值,然后重復(fù)后續(xù)流程階段。
4 結(jié)論
本設(shè)計(jì)在設(shè)計(jì)過程中遇到的最大的困難就是程序的調(diào)試,串口程序的初始調(diào)試還算比較順利,先根據(jù)數(shù)碼管實(shí)現(xiàn)了串口間的發(fā)送與接收,然后換成1602液晶以后問題接踵而來,開始的時(shí)候復(fù)位需要在分機(jī)上進(jìn)行,但是問題是分機(jī)上復(fù)位了患者也不能立馬看到主機(jī)上的復(fù)位效果,所以效果不能真正的實(shí)現(xiàn)。然而通過再次查閱有關(guān)串口通信的資料,得知串口通信發(fā)送接收一次要進(jìn)行一次初始化,問題隨之而解。其次在進(jìn)行主機(jī)按鍵查詢的程序設(shè)計(jì)中費(fèi)了不少功夫,開發(fā)板上的按鍵不能中斷串口通信的過程,而且串口通信的接口和鍵盤的一排按鍵的接口是復(fù)用的,給設(shè)計(jì)帶來了不小的麻煩,最后利用中斷的優(yōu)先級的設(shè)定,利用外部中斷的優(yōu)先級高于定時(shí)器中斷的優(yōu)先級有效的解決了主機(jī)按鍵查詢的問題。