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