多功能微電腦病床呼叫系統(tǒng)
多功能微電腦病床呼叫系統(tǒng),多功能,微電腦,病床,呼叫,呼喚,系統(tǒng)
1摘要目前,許多醫(yī)院住院病房靠步行呼叫值班員,存在醫(yī)護(hù)人員不能及時趕到,甚至激化醫(yī)患矛盾等問題)為方便病號呼叫值班醫(yī)護(hù)人員,可設(shè)計個呼叫系統(tǒng),將病房的呼叫信息及時反映給值班人員)該系統(tǒng)的主要功能有:數(shù)碼顯示病號所在的病房號、病床號、聲音報警提醒值班人員,若有多個病號同時呼叫,則循環(huán)顯示病房的代號,確保信息不丟,按給定順序沿信號線向呼叫器發(fā)出對應(yīng)地址的脈沖數(shù),如果呼叫器有動作,該呼叫器沿信號線返回給主機(jī)個脈沖,主機(jī)檢測到后就振鈴報警并顯示病房號、病床號)若沒有動作,信號線處于低電平,從而完成主機(jī)和呼叫器之間的應(yīng)答)病床呼叫系統(tǒng)是病人請求值班醫(yī)生或護(hù)士進(jìn)行診斷或護(hù)理的緊急呼叫工具??蓪⒉∪说恼埱罂焖賯魉徒o值班醫(yī)生或護(hù)士,是提高醫(yī)院和病室護(hù)理水平的必備設(shè)備之一。繼電器控制的門鈴式呼叫系統(tǒng),由于外觀粗造、噪聲大、功能單一,在醫(yī)院達(dá)標(biāo)定級中已不能適應(yīng)現(xiàn)代醫(yī)院的要求。利用單片機(jī)的多機(jī)通訊功能,設(shè)計出的具有呼叫、振鈴、顯示排隊、優(yōu)先權(quán)設(shè)定、通話、煙火報警等功能的多功能微電腦病床呼叫系統(tǒng),滿足了醫(yī)院的病房管理和護(hù)理的要求。2第一章 單片機(jī) 8031 的介紹8031 單片機(jī)是 Intel 公司生產(chǎn)的 MCS-51 系列單片機(jī)中的一種,除無片內(nèi)ROM 外,其余特性與 MCS-51 單片機(jī)基本一樣。 MCS-51 單片機(jī)的引腳描述及片外總線結(jié)構(gòu) 一、芯片的引腳描述 HMOS 制造工藝的 MCS-51 單片機(jī)都采用 40 引腳的直插封裝(DIP 方式),制造工藝為 CHMOS 的 80C51/80C31 芯片除采用 DIP 封裝方式外,還采用方型封裝工藝,引腳排列如圖。其中方型封裝的 CHMOS 芯片有 44 只引腳,但其中 4 只引腳(標(biāo)有 NC 的引腳 1、12、23、34 )是不使用的,在單片機(jī)的40 條引腳中有 2 條專用于主電源的引腳,2 條外接晶體的引腳,4 條控制或與其它電源復(fù)用的引腳,32 條輸入/輸出(I/O)引腳。 下面按其引腳功能分為四部分?jǐn)⑹鲞@ 40 條引腳的功能。 1、主電源引腳 VCC 和 VSS VCC——(40 腳)接 +5V 電壓; VSS——(20 腳)接地。 2、外接晶體引腳 XTAL1 和 XTAL2 XTAL1( 19 腳)接外部晶體的一個引腳。在單片機(jī)內(nèi)部,它是一個反相放大器的輸入端,這個放大器構(gòu)成了片內(nèi)振蕩器。當(dāng)采用外部振蕩器時,對HMOS 單片機(jī),此引腳應(yīng)接地;對 CHMOS 單片機(jī),此引腳作為驅(qū)動端。 XTAL2( 18 腳)接外晶體的另一端。在單片機(jī)內(nèi)部,接至上述振蕩器的反相放大器的輸出端。采用外部振蕩器時,對 HMOS 單片機(jī),該引腳接外部振蕩器的信號,即把外部振蕩器的信號直接接到內(nèi)部時鐘發(fā)生器的輸入端;對XHMOS,此引腳應(yīng)懸浮。 3、控制或與其它電源復(fù)用引腳 RST/VPD、ALE/PROG、PSEN 和 EA/VPP ①RST/VPD(9 腳)當(dāng)振蕩器運行時,在此腳上出現(xiàn)兩個機(jī)器周期的高電平將使單片機(jī)復(fù)位。推薦在此引腳與 VSS 引腳之間連接一個約 8.2k 的下拉電阻,與 VCC 引腳之間連接一個約 10μF 的電容,以保證可靠地復(fù)位。 VCC 掉電期間,此引腳可接上備用電源,以保證內(nèi)部 RAM 的數(shù)據(jù)不丟失。當(dāng) VCC 主電源下掉到低于規(guī)定的電平,而 VPD 在其規(guī)定的電壓范圍(5±0.5V)內(nèi),VPD 就向內(nèi)部 RAM 提供備用電源。 ②ALE/PROG(30 腳):當(dāng)訪問外部存貯器時, ALE(允許地址鎖存)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE 端仍以不變的頻率周期性地出現(xiàn)正脈沖信號,此頻率為振蕩器頻率的 1/6。因此,它可用作對外輸出的時鐘,或用于定時目的。然而要注意的是,每當(dāng)訪問外部數(shù)據(jù)存儲器時,將跳過一個 ALE 脈沖。ALE 端可以驅(qū)動(吸收或輸出電流) 8 個LS 型的 TTL 輸入電路。 對于 EPROM 單片機(jī)(如 8751),在 EPROM 編程期間,此引腳用于輸入編程脈沖(PROG )。 ③PSEN(29 腳):此腳的輸出是外部程序存儲器的讀選通信號。在從外3部程序存儲器取指令(或常數(shù))期間,每個機(jī)器周期兩次 PSEN 有效。但在此期間,每當(dāng)訪問外部數(shù)據(jù)存儲器時,這兩次有效的 PSEN 信號將不出現(xiàn)。PSEN 同樣可以驅(qū)動(吸收或輸出)8 個 LS 型的 TTL 輸入。 ④EA/VPP(引腳):當(dāng) EA 端保持高電平時,訪問內(nèi)部程序存儲器,但在 PC(程序計數(shù)器)值超過 0FFFH(對 851/8751/80C51)或 1FFFH(對8052)時,將自動轉(zhuǎn)向執(zhí)行外部程序存儲器內(nèi)的程序。當(dāng) EA 保持低電平時,則只訪問外部程序存儲器,不管是否有內(nèi)部程序存儲器。對于常用的 8031 來說,無內(nèi)部程序存儲器,所以 EA 腳必須常接地,這樣才能只選擇外部程序存儲器。 對于 EPROM 型的單片機(jī)(如 8751),在 EPROM 編程期間,此引腳也用于施加 21V 的編程電源(VPP)。 4、輸入/輸出(I/O)引腳 P0、P1、P2 、P3(共 32 根) ①P0 口( 39 腳至 32 腳):是雙向 8 位三態(tài) I/O 口,在外接存儲器時,與地址總線的低 8 位及數(shù)據(jù)總線復(fù)用,能以吸收電流的方式驅(qū)動 8 個 LS 型的TTL 負(fù)載。 ②P1 口( 1 腳至 8 腳):是準(zhǔn)雙向 8 位 I/O 口。由于這種接口輸出沒有高阻狀態(tài),輸入也不能鎖存,故不是真正的雙向 I/O 口。P1 口能驅(qū)動(吸收或輸出電流)4 個 LS 型的 TTL 負(fù)載。對 8052、8032 ,P1.0 引腳的第二功能為 T2 定時/計數(shù)器的外部輸入,P1.1 引腳的第二功能為 T2EX 捕捉、重裝觸發(fā),即 T2 的外部控制端。對 EPROM 編程和程序驗證時,它接收低 8 位地址。③P2 口( 21 腳至 28 腳):是準(zhǔn)雙向 8 位 I/O 口。在訪問外部存儲器時,它可以作為擴(kuò)展電路高 8 位地址總線送出高 8 位地址。在對 EPROM 編程和程序驗證期間,它接收高 8 位地址。P2 可以驅(qū)動(吸收或輸出電流)4 個 LS型的 TTL 負(fù)載。 ④P3 口( 10 腳至 17 腳):是準(zhǔn)雙向 8 位 I/O 口,在 MCS-51 中,這 8個引腳還用于專門功能,是復(fù)用雙功能口。P3 能驅(qū)動(吸收或輸出電流)4個 LS 型的 TTL 負(fù)載。 作為第一功能使用時,就作為普通 I/O 口用,功能和操作方法與 P1 口相同。 作為第二功能使用時,各引腳的定義如表所示。 值得強(qiáng)調(diào)的是,P3 口的每一條引腳均可獨立定義為第一功能的輸入輸出或第二功能。 表 P3 各口線的第二功能定義 口線 引腳 第二功能 P3.0 10 RXD(串行輸入口) P3.1 11 TXD(串行輸出口) P3.2 12 INT0(外部中斷 0) P3.3 13 INT1(外部中斷 1) P3.4 14 T0(定時器 0 外部輸入) 4P3.5 15 T1(定時器 1 外部輸入) P3.6 16 WR(外部數(shù)據(jù)存儲器寫脈沖) P3.7 17 RD(外部數(shù)據(jù)存儲器讀脈沖) 二、MCS-51 單片機(jī)的片外總線結(jié)構(gòu) 綜合上面的描述可知,I/O 口線都不能當(dāng)作用戶 I/O 口線。除 8051/8751外真正可完全為用戶使用的 I/O 口線只有 P1 口,以及部分作為第一功能使用時的 P3 口。單片機(jī)的引腳除了電源、復(fù)位、時鐘接入,用戶 I/O 口外,其余管腳是為實現(xiàn)系統(tǒng)擴(kuò)展而設(shè)置的。這些引腳構(gòu)成 MCS-51 單片機(jī)片外三總線結(jié)構(gòu),即: ①地址總線(AB):地址總線寬為 16 位,因此,其外部存儲器直接尋址為 64K 字節(jié),16 位地址總線由 P0 口經(jīng)地址鎖存器提供 8 位地址(A0 至 A7);P2 口直接提供 8 位地址(A8 至 A15)。 ②數(shù)據(jù)總線(DB ):數(shù)據(jù)總線寬度為 8 位,由 P0 提供。 ③控制總線(CB):由 P3 口的第二功能狀態(tài)和 4 根獨立控制線 RESET、EA、ALE、PSEN 組成。 中央處理器是單片機(jī)內(nèi)部的核心部件,它決定了單片機(jī)的主要功能特性。中央處理器主要由運算部件和控制部件組成。下面我們把中央處理器功能模塊和有關(guān)的控制信號線聯(lián)系起來加以討論,并涉及相關(guān)的硬件設(shè)備(如振蕩電路和時鐘電路)。 1、運算部件:它包括算術(shù)、邏輯部件 ALU、布爾處理器、累加器ACC、寄存器 B、暫存器 TMP1 和 TMP2、程序狀態(tài)字寄存器 PSW 以及十進(jìn)制調(diào)整電路等。運算部件的功能是實現(xiàn)數(shù)據(jù)的算術(shù)邏輯運算、位變址處理和數(shù)據(jù)傳送操作。 MCS-51 單片機(jī)的 ALU 功能十分強(qiáng),它不僅可對 8 位變量進(jìn)行邏輯“與”、“或”、“異或”、循環(huán)、求補(bǔ)、清零等基本操作,還可以進(jìn)行加、減、乘、除等基本運算。為了乘除運算的需要,設(shè)置了 B 寄存器。在執(zhí)行乘法運算指令時,用來存放其中一個乘數(shù)和乘積的高 8 位數(shù);在執(zhí)行除法運算指令時,B 中存入除數(shù)及余數(shù)。MCS-51 單片機(jī)的 ALU 還具有一般微機(jī) ALU,如Z80、MCS-48 所不具備的功能,即布爾處理功能。單片機(jī)指令系統(tǒng)中的布爾指令集、存儲器中的位地址空間與 CPU 中的位操作構(gòu)成了片內(nèi)的布爾功能系統(tǒng),它可對位(bit)變量進(jìn)行布爾處理,如置位、清零、求補(bǔ)、測試轉(zhuǎn)移及邏輯“與”、“或”等操作。在實現(xiàn)位操作時,借用了程序狀態(tài)標(biāo)志器(PSW)中的進(jìn)位標(biāo)志 Cy 作為位操作的“累加器 ”。 運算部件中的累加器 ACC 是一個 8 位的累加器(ACC 也可簡寫為 A)。從功能上看,它與一般微機(jī)的累加器相比沒有什么特別之處,但需要說明的是 ACC 的進(jìn)位標(biāo)志 Cy 就是布爾處理器進(jìn)行位操作的一個累加器。 MCS-51 單片機(jī)的程序狀態(tài) PSW,是一個 8 位寄存器,它包含了程序的狀態(tài)信息。 2、控制部件 控制部件是單片機(jī)的神經(jīng)中樞,它包括時鐘電路、復(fù)位電路、指令寄存器、譯碼以及信息傳送控制部件。它以主振頻率為基準(zhǔn)發(fā)出 CPU 的時序,對指令進(jìn)行譯碼,然后發(fā)出各種控制信號,完成一系列定時控制的微操作,用來控制單片機(jī)各部分的運行。其中有一些控制信號線能簡化應(yīng)用系統(tǒng)外圍控制邏輯,如控制地址鎖存的地址鎖存信號 ALE,控制片外程序存儲器運行的片內(nèi)外存儲器選擇信號 EA,以及片外指信號 PSEN。 替換型號:80C31、8032、80C32。5第二章 主機(jī)2.1 主機(jī)的設(shè)計多功能微電腦病床呼叫系統(tǒng)主要是根據(jù) MCS-51 單片機(jī)的多機(jī)通訊功能,將不同的床位編成有一定規(guī)律的代碼,主機(jī)根據(jù)接收到的代碼判斷床位的號碼,并向該床位發(fā)送指令,達(dá)到通話的目的。2.2 主機(jī)的硬件組成主機(jī)由 MCS-51 單片機(jī)同鍵盤、數(shù)碼顯示、RS232 數(shù)據(jù)通訊、通話、狀態(tài)指示等電路組成,如圖 1 所示。由單片微機(jī) 8031、8D 鎖存器 74LS373 和EPROM2764 構(gòu)成主機(jī)的控制核心,P1 口通過 3/8 譯碼器 74LS138 的七段譯碼、鎖存、驅(qū)動器 CD4511 及數(shù)碼管組成數(shù)據(jù)顯示電路。由 8/3 線八進(jìn)位優(yōu)編碼器 74LS148,雙單穩(wěn)多諧振蕩器 74LS221 等組成鍵盤電路,通過外部中斷“0”進(jìn)行鍵盤輸入。6圖 1 主機(jī)硬件圖72.3 數(shù)據(jù)通訊和數(shù)據(jù)處理多功能呼叫系統(tǒng)的核心是 MCS-51 多機(jī)全雙工通訊。如圖所示各子機(jī)僅能和主機(jī)通訊,子機(jī)之間的通訊要通過主機(jī)進(jìn)行,本單位不允許子機(jī)之間通訊。對所有子機(jī)的 SM2 位置 1,使其處于接收地址幀狀態(tài),主機(jī)每隔 20ms 發(fā)送其中的一子機(jī)地址,其中包含 8 位地址,第 9 位為地址數(shù)據(jù)標(biāo)志位,為 1表示是發(fā)送地址﹔為 0 表示是數(shù)據(jù)。子機(jī)接到數(shù)據(jù)后,同本機(jī)的設(shè)定地址比較,如果相同,SM 2 清“0”。并計時 20ms,這時,該機(jī)可以接收主機(jī)發(fā)送的數(shù)據(jù),也可向主機(jī)發(fā)送數(shù)據(jù),20ms 計時到,置 SM2=1,失去了與主機(jī)通訊權(quán),主機(jī)開始發(fā)送另一子機(jī)的地址,受權(quán)于另外一臺子機(jī)。這樣對于 100 個以內(nèi)床位子機(jī),在 2s 之內(nèi)都可以同主機(jī)通訊,接收主機(jī)數(shù)據(jù)或向主機(jī)發(fā)送數(shù)據(jù),主機(jī)同各個子機(jī)分時進(jìn)行數(shù)據(jù)交換。主機(jī)接收到子機(jī)送來的數(shù)據(jù),有效的數(shù)據(jù)是子機(jī)應(yīng)答主機(jī)、子機(jī)呼叫、當(dāng)前唯一的呼叫、煙火報警等情況之一。分析接收到的數(shù)據(jù),如果是子機(jī)應(yīng)答主機(jī),子機(jī)應(yīng)答主機(jī)燈亮,子機(jī)已經(jīng)將該機(jī)的通話系統(tǒng)打開,醫(yī)護(hù)人員可以和被呼叫的床位通話。如果是子機(jī)呼叫,根據(jù)標(biāo)志判斷是否是當(dāng)前唯一的呼叫,是當(dāng)前唯一的呼叫,主要顯示當(dāng)前呼叫的床位號,打開通話系統(tǒng),向子機(jī)發(fā)出應(yīng)答指令,子機(jī)打開通話線路,和呼叫者通話。否則,主機(jī)將向該呼叫者發(fā)出線路忙的指令,當(dāng)前有人排隊指示燈亮,并將該呼叫號排入隊列中﹔如果是煙火報警,煙火報警指示燈亮,醫(yī)護(hù)人員應(yīng)該親自去病房說服教育,或者在病房內(nèi)安裝請勿吸煙的標(biāo)志并通過主機(jī)發(fā)出警告聲,提請病人或家屬不要吸煙。程序流程如圖 2 所示。主機(jī)數(shù)據(jù)處理子程序清單:1. CHHU2:PUSH A2.MOV A,SBUF3.CJNE A,34H,CC2 ﹔ 子機(jī)應(yīng)答主機(jī)轉(zhuǎn) CC24.MOV @R0,A ﹔ 子機(jī)呼叫5.INC R06.INC R47.INC R28.JNB 10H CC9.MOV A,4FH ﹔ 當(dāng)前第一次呼叫10.ACALL BCD ﹔ 顯示當(dāng)前呼叫號11.CLR A12.MOV P1,A13.AJMP CC314. CC: MOV A,#0FEH ﹔ 非第一個呼叫排隊15.CLR TB816.MOV SBUF,A8圖 2 主機(jī)接收處理數(shù)據(jù)程序流程框圖9第三章 子機(jī)3.1 子機(jī)(床位機(jī))設(shè)計子機(jī)(床位)機(jī)要求操作簡單、體積小、功能全、易于安裝調(diào)試。子機(jī)的主要功能是向主機(jī)發(fā)出呼叫信號,收到主機(jī)應(yīng)答后,打開通話系統(tǒng),同醫(yī)護(hù)人員進(jìn)行通話;接收主機(jī)的呼收,應(yīng)答主機(jī)呼叫,此功能在正常情況下屏蔽,完成此項功能的過程中,都有相應(yīng)的功能指示。3.2 硬件的組成利用 MCS-51 單片機(jī) 8031,8D 鎖存器 74LS373,EPROM2716 組成最小的單片機(jī)系統(tǒng)。74LS00 和雙向按鍵開關(guān)組成消顫電流,申請中斷,啟動該機(jī)完成一系列功能。通過 P1 口驅(qū)動功能指示燈和開啟聽筒話筒電路。采用 RS232 標(biāo)準(zhǔn)進(jìn)行串行通訊。原理如圖 3 所示。圖 3 子機(jī)硬件原理圖3.3 軟件設(shè)計和功能的實現(xiàn)3.3.1 接收和處理數(shù)據(jù)對于每個床位都有特定的編號(床位號)即子機(jī)的地址,初始的過程中,SM2=1,表示處于多機(jī)通訊功能,只能接收主機(jī)發(fā)送給該機(jī)的地址,不能接收主機(jī)數(shù)據(jù)和向主機(jī)發(fā)送數(shù)據(jù)。接收到主機(jī)發(fā)送的數(shù)據(jù)第 9 位為 1 時,數(shù)據(jù)裝入 SBU 下,并置 RI=1,向 CPU 發(fā)出中斷請求,如果接收以第 9 位數(shù)為 0 時,10則不產(chǎn)生中斷標(biāo)志,數(shù)據(jù)放棄。接收到的數(shù)據(jù)和本機(jī)號進(jìn)行比較,如果相同,則置 SM2=0,并開始 20ms 計時,在這個時間段內(nèi),主機(jī)發(fā)送的數(shù)據(jù)第 9 位為0 時,接收并進(jìn)行處理,同時根據(jù)本機(jī)的情況可以向主機(jī)發(fā)送數(shù)據(jù),完成子機(jī)的功能。20ms 計時到,SM 2=1,此時,該機(jī)只能接收主機(jī)發(fā)送的地址,再無別的通訊功能。由以上敘述的約定可以看出,床位機(jī)與主機(jī)的數(shù)據(jù)傳送受主機(jī)控制分時完成,保證了主機(jī)與多機(jī)之間的正常通訊。對于 100 個床位以內(nèi)的系統(tǒng),給每個子機(jī)分時 20ms,在 2s 之內(nèi)主機(jī)就可對所有子機(jī)詢訪一次,對使用者,即可感到是隨時呼叫主機(jī)。接收到主機(jī)的數(shù)據(jù),判斷數(shù)據(jù)類型,對狀態(tài)進(jìn)行標(biāo)記及數(shù)據(jù)處理,程序圖如圖 4 所示。圖 4 子機(jī)接收數(shù)據(jù)程序流程框圖接收數(shù)據(jù)子程序清單:1. MOV A,SBUF2.GLME A,#0FEH,CHU5 ﹔線路忙3.CJNE A,#22H,CHH ﹔非本機(jī)信號4.CJNE A,30H,CHU65.SETB P1.1 ﹔主機(jī)呼號6.SETB P1.2 ﹔振鈴7.RETI8. CHU6:MOV C,RB89.JNC PDTL10.CLR P1.311. CHH:CLR RI12.RETI13. PDTL: CLR P1.114.CLR P1.415.CLR P1.016.CLR 30H17.CLR RI1118.RETI19. CHU5:MOV A,#2220.CJNE A,30H,CHU721.RETI ﹔本機(jī)沒有呼叫22. CHU7:SET P1.0 ﹔主機(jī)線路23.RETI圖 5 子機(jī)呼叫程序流程框圖3.3.2 呼叫及數(shù)據(jù)處理這里的呼叫是指病人(使用者)通過按鍵向主機(jī)發(fā)呼叫請求。按鍵后,通過外部中斷“0”向 CPU 發(fā)中斷請求,在 SM2=0 的情況下,根據(jù)狀態(tài)標(biāo)志判斷是應(yīng)答主機(jī)呼叫還是向主機(jī)發(fā)呼叫,并向主機(jī)發(fā)送數(shù)據(jù),程度流程如圖 5 所示。子機(jī)呼叫應(yīng)答數(shù)據(jù)處理子程序清單:1. CHU2:MOV A,#222.CJNE A,30H ﹔CH113.IN A,P14.ANL A,#06H5. CJNE A,#06H,CH106.MOV A,#27.MOV 30H,A8.MOV SBUF,A ﹔呼叫主機(jī)9. HERE:JNB TI HERE1210.SETB P1.311.CLR TI12.RETI13. CH10:CLR P1.114.CLR P1.215.MOV A,#2216.MOV SBUF,A17. CH12:JNB TI CH1218.CLR TI19.CLR P1.420. CH11:RETI13第四章 LED 顯示3.1 原理圖在單片機(jī)系統(tǒng)中,常常用數(shù)碼管(LE0 )做顯示器。一般的顯示器為 4 位或 8 位,即需要 4 個或 8 個 LED 。實現(xiàn)這種顯示的方法比較多,也比較簡單。但是,對于多個 LED 顯示,就必須采取必要的措施才能實現(xiàn)。這里用一種設(shè)計方法,利用該方法設(shè)計的多路 LED 顯示系統(tǒng)具有硬件結(jié)構(gòu)簡單,軟件編程方便,價格低廉的特點,經(jīng)在儲蓄所大屏幕利率顯示屏中應(yīng)用,效果很好。圖 6 多個 LED 顯示的硬件原理143.2 硬件電路原理80C31 單片機(jī)是 MCS 一 51 系列單片機(jī)的一種,它廣泛應(yīng)用于各種小型控制系統(tǒng)中。我們知道,80C31 單片機(jī)有一個串行口可用于串行通訊,筆者發(fā)現(xiàn)它在方式。狀態(tài)下,還可以擴(kuò)展并行 1 / 0 口,從而實現(xiàn)多個 LED 顯示,其硬件原理如圖 6 所示。其中,74HCl64 為串行輸入、并行輸出移位寄存器,74HC244 為單向總線驅(qū)動器,LED 采用 SEFll83KR 型共陰極數(shù)碼管。當(dāng)80C31 單片機(jī)復(fù)位時,串行口為方式。狀態(tài),即工作在移位寄存器方式,波特率為振蕩頻率的十二分之一。參看圖 7 , 器件執(zhí)行任何一條將 SBUF 作為目的寄存器的命令時,數(shù)據(jù)便開始從 RXD 端發(fā)送。在寫信號有效時,相隔一個機(jī)器周期后發(fā)送控制端 SEND 有效,即允許 RXD 發(fā)送數(shù)據(jù),同時,允許從TXD 端輸出移位脈沖。第一幀(8 位)數(shù)據(jù)發(fā)送完畢時,各控制信號均恢復(fù)原狀態(tài),只有 TI 保持高電平,呈中斷申請狀態(tài)。第一個 74Hc164 把第一幀數(shù)據(jù)并行輸出,LEDI 顯示該數(shù)據(jù)(發(fā)送時序如圖 2 所示)。然后,用軟件將 TI 清零,發(fā)送第二幀數(shù)據(jù)。第二幀數(shù)據(jù)發(fā)送完畢,LEDI 顯示第二幀數(shù)據(jù),第一幀數(shù)據(jù)串行輸入給第二個 74Hcl64 , LEDZ 顯示第一幀數(shù)據(jù)。依此類推,直到把數(shù)據(jù)區(qū)內(nèi)所有數(shù)據(jù)發(fā)送出去。應(yīng)該注意,數(shù)據(jù)全部發(fā)送完后,第一幀數(shù)據(jù)在最后一個 LED 顯示。由于 TXD 端最多可以驅(qū)動 8 個 TTL 門,當(dāng) LED 顯示器超過 8 個時,我們采用 74Hc244 芯片驅(qū)動。每個 74HC244 有 8 路驅(qū)動,每一路可驅(qū)動 8 個 LED ,即每增加一個 74 Hc244 ,可增加 64 個 LED 驅(qū)動。2 軟件編程該軟件程序采用 MCS 一 51 系列單片機(jī)匯編語言編制,并把顯示程序作為一個子程序,以便在主程序中調(diào)用。設(shè) LED 為共陰極顯示器,共有 64 個,顯示區(qū)首地址在內(nèi)部 RAM 20H 單元,需顯示的數(shù)據(jù)以 BCD 碼依次存放在顯示區(qū),軟件清單如下:主程序ORG 0000H 5 J MP START ORG 0020H MOV R6 , # 40H MOV RO , # 20H LCALL TRXD 5 J MP $ 顯示子程序TRXD : MOV DPTR , # DTAB DLO : MOVA , @ RO MOVCA , @ A + DPTR MOV SBUF , A DLI : JNB Tl , DLI CLR Tl INC RO DJNZ R6 , DLO 15RFT DTAB : 3FH , 06H , SBH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH 圖 7 方式 0 發(fā)送時序圖16設(shè)計總結(jié)通過本次單片機(jī)的課程設(shè)計,我對單片機(jī)有了更深的了解。這次設(shè)計給了我們一個實踐的機(jī)會,很好地檢驗了我們對單片機(jī)的掌握情況。在設(shè)計過程中,我們也在不斷地增加自己的專業(yè)課的知識。不僅把已學(xué)的知識用出來,也把不懂的知識學(xué)過來,真可謂一石二鳥。在這過程中,我也懂得了如何去思考問題,如何去排列版面,如何讓自己的設(shè)計緊湊,明白簡潔。在設(shè)計中我知道了單片機(jī)的運行模式,以及單片機(jī)的控制作用。我認(rèn)為單片機(jī)在控制方面的作用是相當(dāng)優(yōu)越的,既簡單又有效,而且故障率底。特別是它的嵌入式應(yīng)用形態(tài)有著獨特的優(yōu)點,這也是它前景無限好以及在各個領(lǐng)域廣泛應(yīng)用。17參考文獻(xiàn)1 何立民。《單片機(jī)應(yīng)用系統(tǒng)設(shè)計─系統(tǒng)配置與接口技朮》 北京航空航天大學(xué)出版社,19892 田學(xué)鋒,周予濱 《計算器通信與 RS-232 接口實用指南》 電子工業(yè)出版社,19953 潘新民,王燕芳《單片微型計算機(jī)實用系統(tǒng)》 人民郵電出版社 1992 , 7 4 孫函芳,徐愛卿《單片機(jī)原理及應(yīng)用》 北京航空航天大學(xué)出版社1988 , 21摘要目前,許多醫(yī)院住院病房靠步行呼叫值班員,存在醫(yī)護(hù)人員不能及時趕到,甚至激化醫(yī)患矛盾等問題)為方便病號呼叫值班醫(yī)護(hù)人員,可設(shè)計個呼叫系統(tǒng),將病房的呼叫信息及時反映給值班人員)該系統(tǒng)的主要功能有:數(shù)碼顯示病號所在的病房號、病床號、聲音報警提醒值班人員,若有多個病號同時呼叫,則循環(huán)顯示病房的代號,確保信息不丟,按給定順序沿信號線向呼叫器發(fā)出對應(yīng)地址的脈沖數(shù),如果呼叫器有動作,該呼叫器沿信號線返回給主機(jī)個脈沖,主機(jī)檢測到后就振鈴報警并顯示病房號、病床號)若沒有動作,信號線處于低電平,從而完成主機(jī)和呼叫器之間的應(yīng)答)病床呼叫系統(tǒng)是病人請求值班醫(yī)生或護(hù)士進(jìn)行診斷或護(hù)理的緊急呼叫工具??蓪⒉∪说恼埱罂焖賯魉徒o值班醫(yī)生或護(hù)士,是提高醫(yī)院和病室護(hù)理水平的必備設(shè)備之一。繼電器控制的門鈴式呼叫系統(tǒng),由于外觀粗造、噪聲大、功能單一,在醫(yī)院達(dá)標(biāo)定級中已不能適應(yīng)現(xiàn)代醫(yī)院的要求。利用單片機(jī)的多機(jī)通訊功能,設(shè)計出的具有呼叫、振鈴、顯示排隊、優(yōu)先權(quán)設(shè)定、通話、煙火報警等功能的多功能微電腦病床呼叫系統(tǒng),滿足了醫(yī)院的病房管理和護(hù)理的要求。2第一章 單片機(jī) 8031 的介紹8031 單片機(jī)是 Intel 公司生產(chǎn)的 MCS-51 系列單片機(jī)中的一種,除無片內(nèi)ROM 外,其余特性與 MCS-51 單片機(jī)基本一樣。 MCS-51 單片機(jī)的引腳描述及片外總線結(jié)構(gòu) 一、芯片的引腳描述 HMOS 制造工藝的 MCS-51 單片機(jī)都采用 40 引腳的直插封裝(DIP 方式),制造工藝為 CHMOS 的 80C51/80C31 芯片除采用 DIP 封裝方式外,還采用方型封裝工藝,引腳排列如圖。其中方型封裝的 CHMOS 芯片有 44 只引腳,但其中 4 只引腳(標(biāo)有 NC 的引腳 1、12、23、34 )是不使用的,在單片機(jī)的40 條引腳中有 2 條專用于主電源的引腳,2 條外接晶體的引腳,4 條控制或與其它電源復(fù)用的引腳,32 條輸入/輸出(I/O)引腳。 下面按其引腳功能分為四部分?jǐn)⑹鲞@ 40 條引腳的功能。 1、主電源引腳 VCC 和 VSS VCC——(40 腳)接 +5V 電壓; VSS——(20 腳)接地。 2、外接晶體引腳 XTAL1 和 XTAL2 XTAL1( 19 腳)接外部晶體的一個引腳。在單片機(jī)內(nèi)部,它是一個反相放大器的輸入端,這個放大器構(gòu)成了片內(nèi)振蕩器。當(dāng)采用外部振蕩器時,對HMOS 單片機(jī),此引腳應(yīng)接地;對 CHMOS 單片機(jī),此引腳作為驅(qū)動端。 XTAL2( 18 腳)接外晶體的另一端。在單片機(jī)內(nèi)部,接至上述振蕩器的反相放大器的輸出端。采用外部振蕩器時,對 HMOS 單片機(jī),該引腳接外部振蕩器的信號,即把外部振蕩器的信號直接接到內(nèi)部時鐘發(fā)生器的輸入端;對XHMOS,此引腳應(yīng)懸浮。 3、控制或與其它電源復(fù)用引腳 RST/VPD、ALE/PROG、PSEN 和 EA/VPP ①RST/VPD(9 腳)當(dāng)振蕩器運行時,在此腳上出現(xiàn)兩個機(jī)器周期的高電平將使單片機(jī)復(fù)位。推薦在此引腳與 VSS 引腳之間連接一個約 8.2k 的下拉電阻,與 VCC 引腳之間連接一個約 10μF 的電容,以保證可靠地復(fù)位。 VCC 掉電期間,此引腳可接上備用電源,以保證內(nèi)部 RAM 的數(shù)據(jù)不丟失。當(dāng) VCC 主電源下掉到低于規(guī)定的電平,而 VPD 在其規(guī)定的電壓范圍(5±0.5V)內(nèi),VPD 就向內(nèi)部 RAM 提供備用電源。 ②ALE/PROG(30 腳):當(dāng)訪問外部存貯器時, ALE(允許地址鎖存)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE 端仍以不變的頻率周期性地出現(xiàn)正脈沖信號,此頻率為振蕩器頻率的 1/6。因此,它可用作對外輸出的時鐘,或用于定時目的。然而要注意的是,每當(dāng)訪問外部數(shù)據(jù)存儲器時,將跳過一個 ALE 脈沖。ALE 端可以驅(qū)動(吸收或輸出電流) 8 個LS 型的 TTL 輸入電路。 對于 EPROM 單片機(jī)(如 8751),在 EPROM 編程期間,此引腳用于輸入編程脈沖(PROG )。 ③PSEN(29 腳):此腳的輸出是外部程序存儲器的讀選通信號。在從外3部程序存儲器取指令(或常數(shù))期間,每個機(jī)器周期兩次 PSEN 有效。但在此期間,每當(dāng)訪問外部數(shù)據(jù)存儲器時,這兩次有效的 PSEN 信號將不出現(xiàn)。PSEN 同樣可以驅(qū)動(吸收或輸出)8 個 LS 型的 TTL 輸入。 ④EA/VPP(引腳):當(dāng) EA 端保持高電平時,訪問內(nèi)部程序存儲器,但在 PC(程序計數(shù)器)值超過 0FFFH(對 851/8751/80C51)或 1FFFH(對8052)時,將自動轉(zhuǎn)向執(zhí)行外部程序存儲器內(nèi)的程序。當(dāng) EA 保持低電平時,則只訪問外部程序存儲器,不管是否有內(nèi)部程序存儲器。對于常用的 8031 來說,無內(nèi)部程序存儲器,所以 EA 腳必須常接地,這樣才能只選擇外部程序存儲器。 對于 EPROM 型的單片機(jī)(如 8751),在 EPROM 編程期間,此引腳也用于施加 21V 的編程電源(VPP)。 4、輸入/輸出(I/O)引腳 P0、P1、P2 、P3(共 32 根) ①P0 口( 39 腳至 32 腳):是雙向 8 位三態(tài) I/O 口,在外接存儲器時,與地址總線的低 8 位及數(shù)據(jù)總線復(fù)用,能以吸收電流的方式驅(qū)動 8 個 LS 型的TTL 負(fù)載。 ②P1 口( 1 腳至 8 腳):是準(zhǔn)雙向 8 位 I/O 口。由于這種接口輸出沒有高阻狀態(tài),輸入也不能鎖存,故不是真正的雙向 I/O 口。P1 口能驅(qū)動(吸收或輸出電流)4 個 LS 型的 TTL 負(fù)載。對 8052、8032 ,P1.0 引腳的第二功能為 T2 定時/計數(shù)器的外部輸入,P1.1 引腳的第二功能為 T2EX 捕捉、重裝觸發(fā),即 T2 的外部控制端。對 EPROM 編程和程序驗證時,它接收低 8 位地址。③P2 口( 21 腳至 28 腳):是準(zhǔn)雙向 8 位 I/O 口。在訪問外部存儲器時,它可以作為擴(kuò)展電路高 8 位地址總線送出高 8 位地址。在對 EPROM 編程和程序驗證期間,它接收高 8 位地址。P2 可以驅(qū)動(吸收或輸出電流)4 個 LS型的 TTL 負(fù)載。 ④P3 口( 10 腳至 17 腳):是準(zhǔn)雙向 8 位 I/O 口,在 MCS-51 中,這 8個引腳還用于專門功能,是復(fù)用雙功能口。P3 能驅(qū)動(吸收或輸出電流)4個 LS 型的 TTL 負(fù)載。 作為第一功能使用時,就作為普通 I/O 口用,功能和操作方法與 P1 口相同。 作為第二功能使用時,各引腳的定義如表所示。 值得強(qiáng)調(diào)的是,P3 口的每一條引腳均可獨立定義為第一功能的輸入輸出或第二功能。 表 P3 各口線的第二功能定義 口線 引腳 第二功能 P3.0 10 RXD(串行輸入口) P3.1 11 TXD(串行輸出口) P3.2 12 INT0(外部中斷 0) P3.3 13 INT1(外部中斷 1) P3.4 14 T0(定時器 0 外部輸入) 4P3.5 15 T1(定時器 1 外部輸入) P3.6 16 WR(外部數(shù)據(jù)存儲器寫脈沖) P3.7 17 RD(外部數(shù)據(jù)存儲器讀脈沖) 二、MCS-51 單片機(jī)的片外總線結(jié)構(gòu) 綜合上面的描述可知,I/O 口線都不能當(dāng)作用戶 I/O 口線。除 8051/8751外真正可完全為用戶使用的 I/O 口線只有 P1 口,以及部分作為第一功能使用時的 P3 口。單片機(jī)的引腳除了電源、復(fù)位、時鐘接入,用戶 I/O 口外,其余管腳是為實現(xiàn)系統(tǒng)擴(kuò)展而設(shè)置的。這些引腳構(gòu)成 MCS-51 單片機(jī)片外三總線結(jié)構(gòu),即: ①地址總線(AB):地址總線寬為 16 位,因此,其外部存儲器直接尋址為 64K 字節(jié),16 位地址總線由 P0 口經(jīng)地址鎖存器提供 8 位地址(A0 至 A7);P2 口直接提供 8 位地址(A8 至 A15)。 ②數(shù)據(jù)總線(DB ):數(shù)據(jù)總線寬度為 8 位,由 P0 提供。 ③控制總線(CB):由 P3 口的第二功能狀態(tài)和 4 根獨立控制線 RESET、EA、ALE、PSEN 組成。 中央處理器是單片機(jī)內(nèi)部的核心部件,它決定了單片機(jī)的主要功能特性。中央處理器主要由運算部件和控制部件組成。下面我們把中央處理器功能模塊和有關(guān)的控制信號線聯(lián)系起來加以討論,并涉及相關(guān)的硬件設(shè)備(如振蕩電路和時鐘電路)。 1、運算部件:它包括算術(shù)、邏輯部件 ALU、布爾處理器、累加器ACC、寄存器 B、暫存器 TMP1 和 TMP2、程序狀態(tài)字寄存器 PSW 以及十進(jìn)制調(diào)整電路等。運算部件的功能是實現(xiàn)數(shù)據(jù)的算術(shù)邏輯運算、位變址處理和數(shù)據(jù)傳送操作。 MCS-51 單片機(jī)的 ALU 功能十分強(qiáng),它不僅可對 8 位變量進(jìn)行邏輯“與”、“或”、“異或”、循環(huán)、求補(bǔ)、清零等基本操作,還可以進(jìn)行加、減、乘、除等基本運算。為了乘除運算的需要,設(shè)置了 B 寄存器。在執(zhí)行乘法運算指令時,用來存放其中一個乘數(shù)和乘積的高 8 位數(shù);在執(zhí)行除法運算指令時,B 中存入除數(shù)及余數(shù)。MCS-51 單片機(jī)的 ALU 還具有一般微機(jī) ALU,如Z80、MCS-48 所不具備的功能,即布爾處理功能。單片機(jī)指令系統(tǒng)中的布爾指令集、存儲器中的位地址空間與 CPU 中的位操作構(gòu)成了片內(nèi)的布爾功能系統(tǒng),它可對位(bit)變量進(jìn)行布爾處理,如置位、清零、求補(bǔ)、測試轉(zhuǎn)移及邏輯“與”、“或”等操作。在實現(xiàn)位操作時,借用了程序狀態(tài)標(biāo)志器(PSW)中的進(jìn)位標(biāo)志 Cy 作為位操作的“累加器 ”。 運算部件中的累加器 ACC 是一個 8 位的累加器(ACC 也可簡寫為 A)。從功能上看,它與一般微機(jī)的累加器相比沒有什么特別之處,但需要說明的是 ACC 的進(jìn)位標(biāo)志 Cy 就是布爾處理器進(jìn)行位操作的一個累加器。 MCS-51 單片機(jī)的程序狀態(tài) PSW,是一個 8 位寄存器,它包含了程序的狀態(tài)信息。 2、控制部件 控制部件是單片機(jī)的神經(jīng)中樞,它包括時鐘電路、復(fù)位電路、指令寄存器、譯碼以及信息傳送控制部件。它以主振頻率為基準(zhǔn)發(fā)出 CPU 的時序,對指令進(jìn)行譯碼,然后發(fā)出各種控制信號,完成一系列定時控制的微操作,用來控制單片機(jī)各部分的運行。其中有一些控制信號線能簡化應(yīng)用系統(tǒng)外圍控制邏輯,如控制地址鎖存的地址鎖存信號 ALE,控制片外程序存儲器運行的片內(nèi)外存儲器選擇信號 EA,以及片外指信號 PSEN。 替換型號:80C31、8032、80C32。5第二章 主機(jī)2.1 主機(jī)的設(shè)計多功能微電腦病床呼叫系統(tǒng)主要是根據(jù) MCS-51 單片機(jī)的多機(jī)通訊功能,將不同的床位編成有一定規(guī)律的代碼,主機(jī)根據(jù)接收到的代碼判斷床位的號碼,并向該床位發(fā)送指令,達(dá)到通話的目的。2.2 主機(jī)的硬件組成主機(jī)由 MCS-51 單片機(jī)同鍵盤、數(shù)碼顯示、RS232 數(shù)據(jù)通訊、通話、狀態(tài)指示等電路組成,如圖 1 所示。由單片微機(jī) 8031、8D 鎖存器 74LS373 和EPROM2764 構(gòu)成主機(jī)的控制核心,P1 口通過 3/8 譯碼器 74LS138 的七段譯碼、鎖存、驅(qū)動器 CD4511 及數(shù)碼管組成數(shù)據(jù)顯示電路。由 8/3 線八進(jìn)位優(yōu)編碼器 74LS148,雙單穩(wěn)多諧振蕩器 74LS221 等組成鍵盤電路,通過外部中斷“0”進(jìn)行鍵盤輸入。6圖 1 主機(jī)硬件圖72.3 數(shù)據(jù)通訊和數(shù)據(jù)處理多功能呼叫系統(tǒng)的核心是 MCS-51 多機(jī)全雙工通訊。如圖所示各子機(jī)僅能和主機(jī)通訊,子機(jī)之間的通訊要通過主機(jī)進(jìn)行,本單位不允許子機(jī)之間通訊。對所有子機(jī)的 SM2 位置 1,使其處于接收地址幀狀態(tài),主機(jī)每隔 20ms 發(fā)送其中的一子機(jī)地址,其中包含 8 位地址,第 9 位為地址數(shù)據(jù)標(biāo)志位,為 1表示是發(fā)送地址﹔為 0 表示是數(shù)據(jù)。子機(jī)接到數(shù)據(jù)后,同本機(jī)的設(shè)定地址比較,如果相同,SM 2 清“0”。并計時 20ms,這時,該機(jī)可以接收主機(jī)發(fā)送的數(shù)據(jù),也可向主機(jī)發(fā)送數(shù)據(jù),20ms 計時到,置 SM2=1,失去了與主機(jī)通訊權(quán),主機(jī)開始發(fā)送另一子機(jī)的地址,受權(quán)于另外一臺子機(jī)。這樣對于 100 個以內(nèi)床位子機(jī),在 2s 之內(nèi)都可以同主機(jī)通訊,接收主機(jī)數(shù)據(jù)或向主機(jī)發(fā)送數(shù)據(jù),主機(jī)同各個子機(jī)分時進(jìn)行數(shù)據(jù)交換。主機(jī)接收到子機(jī)送來的數(shù)據(jù),有效的數(shù)據(jù)是子機(jī)應(yīng)答主機(jī)、子機(jī)呼叫、當(dāng)前唯一的呼叫、煙火報警等情況之一。分析接收到的數(shù)據(jù),如果是子機(jī)應(yīng)答主機(jī),子機(jī)應(yīng)答主機(jī)燈亮,子機(jī)已經(jīng)將該機(jī)的通話系統(tǒng)打開,醫(yī)護(hù)人員可以和被呼叫的床位通話。如果是子機(jī)呼叫,根據(jù)標(biāo)志判斷是否是當(dāng)前唯一的呼叫,是當(dāng)前唯一的呼叫,主要顯示當(dāng)前呼叫的床位號,打開通話系統(tǒng),向子機(jī)發(fā)出應(yīng)答指令,子機(jī)打開通話線路,和呼叫者通話。否則,主機(jī)將向該呼叫者發(fā)出線路忙的指令,當(dāng)前有人排隊指示燈亮,并將該呼叫號排入隊列中﹔如果是煙火報警,煙火報警指示燈亮,醫(yī)護(hù)人員應(yīng)該親自去病房說服教育,或者在病房內(nèi)安裝請勿吸煙的標(biāo)志并通過主機(jī)發(fā)出警告聲,提請病人或家屬不要吸煙。程序流程如圖 2 所示。主機(jī)數(shù)據(jù)處理子程序清單:1. CHHU2:PUSH A2.MOV A,SBUF3.CJNE A,34H,CC2 ﹔ 子機(jī)應(yīng)答主機(jī)轉(zhuǎn) CC24.MOV @R0,A ﹔ 子機(jī)呼叫5.INC R06.INC R47.INC R28.JNB 10H CC9.MOV A,4FH ﹔ 當(dāng)前第一次呼叫10.ACALL BCD ﹔ 顯示當(dāng)前呼叫號11.CLR A12.MOV P1,A13.AJMP CC314. CC: MOV A,#0FEH ﹔ 非第一個呼叫排隊15.CLR TB816.MOV SBUF,A8圖 2 主機(jī)接收處理數(shù)據(jù)程序流程框圖9第三章 子機(jī)3.1 子機(jī)(床位機(jī))設(shè)計子機(jī)(床位)機(jī)要求操作簡單、體積小、功能全、易于安裝調(diào)試。子機(jī)的主要功能是向主機(jī)發(fā)出呼叫信號,收到主機(jī)應(yīng)答后,打開通話系統(tǒng),同醫(yī)護(hù)人員進(jìn)行通話;接收主機(jī)的呼收,應(yīng)答主機(jī)呼叫,此功能在正常情況下屏蔽,完成此項功能的過程中,都有相應(yīng)的功能指示。3.2 硬件的組成利用 MCS-51 單片機(jī) 8031,8D 鎖存器 74LS373,EPROM2716 組成最小的單片機(jī)系統(tǒng)。74LS00 和雙向按鍵開關(guān)組成消顫電流,申請中斷,啟動該機(jī)完成一系列功能。通過 P1 口驅(qū)動功能指示燈和開啟聽筒話筒電路。采用 RS232 標(biāo)準(zhǔn)進(jìn)行串行通訊。原理如圖 3 所示。圖 3 子機(jī)硬件原理圖3.3 軟件設(shè)計和功能的實現(xiàn)3.3.1 接收和處理數(shù)據(jù)對于每個床位都有特定的編號(床位號)即子機(jī)的地址,初始的過程中,SM2=1,表示處于多機(jī)通訊功能,只能接收主機(jī)發(fā)送給該機(jī)的地址,不能接收主機(jī)數(shù)據(jù)和向主機(jī)發(fā)送數(shù)據(jù)。接收到主機(jī)發(fā)送的數(shù)據(jù)第 9 位為 1 時,數(shù)據(jù)裝入 SBU 下,并置 RI=1,向 CPU 發(fā)出中斷請求,如果接收以第 9 位數(shù)為 0 時,10則不產(chǎn)生中斷標(biāo)志,數(shù)據(jù)放棄。接收到的數(shù)據(jù)和本機(jī)號進(jìn)行比較,如果相同,則置 SM2=0,并開始 20ms 計時,在這個時間段內(nèi),主機(jī)發(fā)送的數(shù)據(jù)第 9 位為0 時,接收并進(jìn)行處理,同時根據(jù)本機(jī)的情況可以向主機(jī)發(fā)送數(shù)據(jù),完成子機(jī)的功能。20ms 計時到,SM 2=1,此時,該機(jī)只能接收主機(jī)發(fā)送的地址,再無別的通訊功能。由以上敘述的約定可以看出,床位機(jī)與主機(jī)的數(shù)據(jù)傳送受主機(jī)控制分時完成,保證了主機(jī)與多機(jī)之間的正常通訊。對于 100 個床位以內(nèi)的系統(tǒng),給每個子機(jī)分時 20ms,在 2s 之內(nèi)主機(jī)就可對所有子機(jī)詢訪一次,對使用者,即可感到是隨時呼叫主機(jī)。接收到主機(jī)的數(shù)據(jù),判斷數(shù)據(jù)類型,對狀態(tài)進(jìn)行標(biāo)記及數(shù)據(jù)處理,程序圖如圖 4 所示。圖 4 子機(jī)接收數(shù)據(jù)程序流程框圖接收數(shù)據(jù)子程序清單:1. MOV A,SBUF2.GLME A,#0FEH,CHU5 ﹔線路忙3.CJNE A,#22H,CHH ﹔非本機(jī)信號4.CJNE A,30H,CHU65.SETB P1.1 ﹔主機(jī)呼號6.SETB P1.2 ﹔振鈴7.RETI8. CHU6:MOV C,RB89.JNC PDTL10.CLR P1.311. CHH:CLR RI12.RETI13. PDTL: CLR P1.114.CLR P1.415.CLR P1.016.CLR 30H17.CLR RI1118.RETI19. CHU5:MOV A,#2220.CJNE A,30H,CHU721.RETI ﹔本機(jī)沒有呼叫22. CHU7:SET P1.0 ﹔主機(jī)線路23.RETI圖 5 子機(jī)呼叫程序流程框圖3.3.2 呼叫及數(shù)據(jù)處理這里的呼叫是指病人(使用者)通過按鍵向主機(jī)發(fā)呼叫請求。按鍵后,通過外部中斷“0”向 CPU 發(fā)中斷請求,在 SM2=0 的情況下,根據(jù)狀態(tài)標(biāo)志判斷是應(yīng)答主機(jī)呼叫還是向主機(jī)發(fā)呼叫,并向主機(jī)發(fā)送數(shù)據(jù),程度流程如圖 5 所示。子機(jī)呼叫應(yīng)答數(shù)據(jù)處理子程序清單:1. CHU2:MOV A,#222.CJNE A,30H ﹔CH113.IN A,P14.ANL A,#06H5. CJNE A,#06H,CH106.MOV A,#27.MOV 30H,A8.MOV SBUF,A ﹔呼叫主機(jī)9. HERE:JNB TI HERE1210.SETB P1.311.CLR TI12.RETI13. CH10:CLR P1.114.CLR P1.215.MOV A,#2216.MOV SBUF,A17. CH12:JNB TI CH1218.CLR TI19.CLR P1.420. CH11:RETI13第四章 LED 顯示3.1 原理圖在單片機(jī)系統(tǒng)中,常常用數(shù)碼管(LE0 )做顯示器。一般的顯示器為 4 位或 8 位,即需要 4 個或 8 個 LED 。實現(xiàn)這種顯示的方法比較多,也比較簡單。但是,對于多個 LED 顯示,就必須采取必要的措施才能實現(xiàn)。這里用一種設(shè)計方法,利用該方法設(shè)計的多路 LED 顯示系統(tǒng)具有硬件結(jié)構(gòu)簡單,軟件編程方便,價格低廉的特點,經(jīng)在儲蓄所大屏幕利率顯示屏中應(yīng)用,效果很好。圖 6 多個 LED 顯示的硬件原理143.2 硬件電路原理80C31 單片機(jī)是 MCS 一 51 系列單片機(jī)的一種,它廣泛應(yīng)用于各種小型控制系統(tǒng)中。我們知道,80C31 單片機(jī)有一個串行口可用于串行通訊,筆者發(fā)現(xiàn)它在方式。狀態(tài)下,還可以擴(kuò)展并行 1 / 0 口,從而實現(xiàn)多個 LED 顯示,其硬件原理如圖 6 所示。其中,74HCl64 為串行輸入、并行輸出移位寄存器,74HC244 為單向總線驅(qū)動器,LED 采用 SEFll83KR 型共陰極數(shù)碼管。當(dāng)80C31 單片機(jī)復(fù)位時,串行口為方式。狀態(tài),即工作在移位寄存器方式,波特率為振蕩頻率的十二分之一。參看圖 7 , 器件執(zhí)行任何一條將 SBUF 作為目的寄存器的命令時,數(shù)據(jù)便開始從 RXD 端發(fā)送。在寫信號有效時,相隔一個機(jī)器周期后發(fā)送控制端 SEND 有效,即允許 RXD 發(fā)送數(shù)據(jù),同時,允許從TXD 端輸出移位脈沖。第一幀(8 位)數(shù)據(jù)發(fā)送完畢時,各控制信號均恢復(fù)原狀態(tài),只有 TI 保持高電平,呈中斷申請狀態(tài)。第一個 74Hc164 把第一幀數(shù)據(jù)并行輸出,LEDI 顯示該數(shù)據(jù)(發(fā)送時序如圖 2 所示)。然后,用軟件將 TI 清零,發(fā)送第二幀數(shù)據(jù)。第二幀數(shù)據(jù)發(fā)送完畢,LEDI 顯示第二幀數(shù)據(jù),第一幀數(shù)據(jù)串行輸入給第二個 74Hcl64 , LEDZ 顯示第一幀數(shù)據(jù)。依此類推,直到把數(shù)據(jù)區(qū)內(nèi)所有數(shù)據(jù)發(fā)送出去。應(yīng)該注意,數(shù)據(jù)全部發(fā)送完后,第一幀數(shù)據(jù)在最后一個 LED 顯示。由于 TXD 端最多可以驅(qū)動 8 個 TTL 門,當(dāng) LED 顯示器超過 8 個時,我們采用 74Hc244 芯片驅(qū)動。每個 74HC244 有 8 路驅(qū)動,每一路可驅(qū)動 8 個 LED ,即每增加一個 74 Hc244 ,可增加 64 個 LED 驅(qū)動。2 軟件編程該軟件程序采用 MCS 一 51 系列單片機(jī)匯編語言編制,并把顯示程序作為一個子程序,以便在主程序中調(diào)用。設(shè) LED 為共陰極顯示器,共有 64 個,顯示區(qū)首地址在內(nèi)部 RAM 20H 單元,需顯示的數(shù)據(jù)以 BCD 碼依次存放在顯示區(qū),軟件清單如下:主程序ORG 0000H 5 J MP START ORG 0020H MOV R6 , # 40H MOV RO , # 20H LCALL TRXD 5 J MP $ 顯示子程序TRXD : MOV DPTR , # DTAB DLO : MOVA , @ RO MOVCA , @ A + DPTR MOV SBUF , A DLI : JNB Tl , DLI CLR Tl INC RO DJNZ R6 , DLO 15RFT DTAB : 3FH , 06H , SBH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH 圖 7 方式 0 發(fā)送時序圖16設(shè)計總結(jié)通過本次單片機(jī)的課程設(shè)計,我對單片機(jī)有了更深的了解。這次設(shè)計給了我們一個實踐的機(jī)會,很好地檢驗了我們對單片機(jī)的掌握情況。在設(shè)計過程中,我們也在不斷地增加自己的專業(yè)課的知識。不僅把已學(xué)的知識用出來,也把不懂的知識學(xué)過來,真可謂一石二鳥。在這過程中,我也懂得了如何去思考問題,如何去排列版面,如何讓自己的設(shè)計緊湊,明白簡潔。在設(shè)計中我知道了單片機(jī)的運行模式,以及單片機(jī)的控制作用。我認(rèn)為單片機(jī)在控制方面的作用是相當(dāng)優(yōu)越的,既簡單又有效,而且故障率底。特別是它的嵌入式應(yīng)用形態(tài)有著獨特的優(yōu)點,這也是它前景無限好以及在各個領(lǐng)域廣泛應(yīng)用。17參考文獻(xiàn)1 何立民?!秵纹瑱C(jī)應(yīng)用系統(tǒng)設(shè)計─系統(tǒng)配置與接口技朮》 北京航空航天大學(xué)出版社,19892 田學(xué)鋒,周予濱 《計算器通信與 RS-232 接口實用指南》 電子工業(yè)出版社,19953 潘新民,王燕芳《單片微型計算機(jī)實用系統(tǒng)》 人民郵電出版社 1992 , 7 4 孫函芳,徐愛卿《單片機(jī)原理及應(yīng)用》 北京航空航天大學(xué)出版社1988 , 2
收藏