版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 袆螇肆蒆螂袆膈艿蚇裊芀蒄薃襖羀芇蕿袃膂薃袈袂芄蒞螄袂莇薁蝕袁肆莄薆袀腿蕿蒂罿芁莂螁羈羈薇蚇羇肅莀蚃羆芅蚆蕿羆莈葿袇羅肇芁螃羄膀蕆蠆羃節(jié)芀薅肂羂蒅蒁肁肄羋螀肀膆蒃螆肀荿芆螞聿肈薂薈肈膀蒞袆?wù)仄M薀螂肆蒞莃蚈膅肅薈薄螂膇莁蒀螁荿薇衿螀聿葿螅蝿膁蚅蟻螈芄蒈薇螈莆芁袆螇肆蒆螂袆膈艿蚇裊芀蒄薃襖羀芇蕿袃膂薃袈袂芄蒞螄袂莇薁蝕袁肆莄薆袀腿蕿蒂罿芁莂螁羈羈薇蚇羇肅莀蚃羆芅蚆蕿羆莈葿袇羅肇芁螃羄膀蕆蠆羃節(jié)芀薅肂羂蒅蒁肁肄羋螀肀膆蒃螆
2、肀荿芆螞聿肈薂薈肈膀蒞袆?wù)仄M薀螂肆蒞莃蚈膅肅薈薄螂膇莁蒀螁荿薇衿螀聿葿螅蝿膁蚅蟻螈芄蒈薇螈莆芁袆螇肆蒆螂袆膈艿蚇裊芀蒄薃襖羀芇蕿袃膂薃袈袂芄蒞螄袂莇薁蝕袁肆莄薆袀腿蕿蒂罿芁莂螁羈羈薇蚇羇肅莀蚃羆芅蚆蕿羆莈葿袇羅肇芁螃羄膀蕆蠆羃節(jié)芀薅肂羂蒅蒁肁肄羋螀肀膆蒃螆肀荿芆螞聿肈薂薈肈膀蒞袆?wù)仄M薀螂肆蒞莃蚈膅肅薈薄螂膇莁蒀螁荿薇衿螀聿葿螅蝿膁蚅蟻螈芄蒈薇螈莆芁袆螇肆蒆螂袆膈艿蚇裊芀蒄薃襖羀芇蕿袃膂薃袈袂芄蒞螄袂莇薁蝕袁肆莄薆袀腿蕿蒂罿芁莂螁羈羈薇蚇
3、羇肅莀蚃羆芅蚆蕿羆莈葿袇羅肇芁螃羄膀蕆蠆羃節(jié)芀薅肂羂蒅蒁肁肄羋螀肀膆蒃螆肀荿芆螞聿肈薂薈肈膀蒞袆?wù)仄M薀螂肆蒞莃蚈膅肅薈薄螂膇莁蒀螁荿薇衿螀聿葿</p><p> 基于單片機(jī)的病床呼叫系統(tǒng)</p><p> 作 者 qiqi</p><p> 指導(dǎo)教師 wangwang</p><p> 摘要 系統(tǒng)是基于51系列的單片機(jī)設(shè)計(jì)
4、的病床呼叫系統(tǒng)。該系統(tǒng)以AT89C51單片機(jī)為核心輔以矩陣鍵盤、LED點(diǎn)陣顯示電路和部分簡單模擬和數(shù)字電路組成的能夠?qū)崿F(xiàn)病人和醫(yī)護(hù)人員之間信息的傳遞。在該設(shè)計(jì)中每個(gè)病房都有一個(gè)按鍵,當(dāng)患者有需要時(shí),按下按鍵,此時(shí) 值班室的顯示屏可顯示此患者的床位號,多人使用時(shí)可實(shí)現(xiàn)循環(huán)顯示,醫(yī)護(hù)人員按下“響應(yīng)”鍵取消當(dāng)前呼叫。此系統(tǒng)能夠?yàn)獒t(yī)院提供一個(gè)成本低、效率高、操作方便和易于安裝維護(hù)的快捷系統(tǒng)。</p><p> 關(guān)鍵詞:
5、單片機(jī);矩陣鍵盤;點(diǎn)陣;LED顯示;呼叫系統(tǒng)</p><p><b> 目 錄</b></p><p><b> 引言1</b></p><p> 1 51系列單片機(jī)的簡介1</p><p> 1.1 單片機(jī)的發(fā)展介紹1</p><p> 1.2 單片機(jī)的
6、結(jié)構(gòu)特點(diǎn)2</p><p> 1.3 單片機(jī)的實(shí)際應(yīng)用2</p><p> 1.4 控制器AT89C513</p><p><b> 2 接口技術(shù)4</b></p><p> 2.1 鍵盤接口4</p><p> 2.2 顯示器接口5</p><p>
7、 3 程序設(shè)計(jì)語言9</p><p> 3.1 機(jī)器語言9</p><p> 3.2 匯編語言9</p><p> 3.3 高級語言9</p><p> 4 基于單片機(jī)的病床呼叫系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)10</p><p> 4.1 系統(tǒng)總體設(shè)計(jì)10</p><p> 4.2 系
8、統(tǒng)硬件設(shè)計(jì)11</p><p> 4.3 系統(tǒng)軟件設(shè)計(jì)15</p><p> 4.4 系統(tǒng)的調(diào)試與結(jié)果19</p><p><b> 結(jié)論20</b></p><p><b> 致謝20</b></p><p><b> 參考文獻(xiàn)21</
9、b></p><p><b> 附錄22</b></p><p> 附錄A:原理圖22</p><p> 附錄B:源程序22</p><p><b> 引言</b></p><p> 病床呼叫系統(tǒng)是一種應(yīng)用于醫(yī)院病房、養(yǎng)老院等地方,用來聯(lián)系溝通醫(yī)護(hù)人員和
10、病員的專用呼叫系統(tǒng),是提高醫(yī)院水平的必備設(shè)備之一。病床呼叫系統(tǒng)的優(yōu)劣直接影響到病員的安危,歷來受到各大醫(yī)院的普遍重視。它要求及時(shí)、準(zhǔn)確可靠、簡便可行、利于推廣[1]。</p><p> 目前市場上存在著許多種型號不一功能各異的醫(yī)院病房呼叫系統(tǒng),主要為兩大類:有線式和無線式[2]。無線式病房呼叫系統(tǒng)不存在鋪設(shè)線路的問題,但是可靠性差,而且無線電波會(huì)干擾其他醫(yī)療儀器設(shè)備[3]。本文設(shè)計(jì)的是有線式的,適合較小的醫(yī)院病
11、房使用,具有成本低,易于操作、安裝和維護(hù),而且具有可靠穩(wěn)定,對其他醫(yī)療設(shè)備不會(huì)產(chǎn)生干擾的特點(diǎn);但受到布線較多,影響美觀,故不適宜較大的醫(yī)院。</p><p> 病床呼叫管理系統(tǒng)便于病員快捷的呼叫護(hù)士,縮短人工呼叫的時(shí)間。當(dāng)今病房呼叫系統(tǒng)正在逐步地向智能化發(fā)展,它可以和錄像機(jī)一起使用,當(dāng)病人按下開關(guān)時(shí),在護(hù)士值班室的大屏幕能夠觀察病人的需要。并且可以配備對講機(jī)等設(shè)備,能夠使病員及時(shí)快捷地與醫(yī)護(hù)人員進(jìn)行溝通。<
12、;/p><p> 1 51系列單片機(jī)的簡介</p><p> 1.1 單片機(jī)的發(fā)展介紹</p><p> 單片機(jī)也被稱作“單片微型計(jì)算機(jī)”、“微控制器”和“嵌入式微控制器”,單片機(jī)一詞最初源于“Single Chip Microcomputer”,簡稱SCM。隨著單片機(jī)在技術(shù)和體系結(jié)構(gòu)上的進(jìn)步,其控制功能不斷擴(kuò)展,國際上逐漸采用“MCU”(Micro Cont
13、roller Unit,微控制器)來代替SCM。單片機(jī)的發(fā)展歷史大致分為4個(gè)階段。</p><p> 第一階段:單片機(jī)的探索階段。這一階段主要是探索如何把計(jì)算機(jī)的主要部件集成在芯片上。</p><p> 第二階段:單片機(jī)的完善階段。Intel公司在MCS-48的基礎(chǔ)上推出了完善的、典型的MCS-51單片機(jī)系列。它在以下幾個(gè)方面奠定了典型的通用總線型單片機(jī)體系結(jié)構(gòu):</p>
14、<p> ?、僭O(shè)置了經(jīng)典、完善的8位單片機(jī)的并行總線結(jié)構(gòu);</p><p> ?、谕鈬δ軉卧蒀PU集中管理的模式;</p><p> ?、垠w現(xiàn)控制特性的地址空間和位操作方式;</p><p> ?、苤噶钕到y(tǒng)趨于豐富和完善,并且增加了許多突出控制功能的指令。</p><p> 第三階段:向微控制器發(fā)展的階段。這一階段主要是為了
15、滿足測控系統(tǒng)要求的各種外圍電路和接口電路,突出其職能化控制能力。</p><p> 第四階段:單片機(jī)的全面發(fā)展階段。由于很多大半導(dǎo)體和電氣廠商都開始參與單片機(jī)的研制和生產(chǎn)。隨著單片機(jī)在各個(gè)領(lǐng)域全面深入的發(fā)展和應(yīng)用,逐漸出現(xiàn)了高速、低功耗、大尋址范圍、強(qiáng)運(yùn)算能力的8位、16位、32位通用型單片機(jī)以及小型廉價(jià)的專用型單片機(jī),還有功能全面的片上單片機(jī)系統(tǒng)。[4]</p><p> 1.2
16、單片機(jī)的結(jié)構(gòu)特點(diǎn)</p><p> 單片機(jī)是微型機(jī)的一個(gè)重要分支,它在結(jié)構(gòu)上的最大特點(diǎn)是把CPU、存儲(chǔ)器、定時(shí)器和多種輸入/輸出接口電路集成在一塊超大規(guī)模的集成電路芯片上。</p><p> 單片機(jī)內(nèi)是一種在線式實(shí)時(shí)控制計(jì)算機(jī),在線式就是現(xiàn)場控制,需要有較強(qiáng)的抗干擾能力,較低的成本。</p><p> 單片機(jī)由于這種結(jié)構(gòu),所以具有很多顯著的特點(diǎn)。主要有控制能力
17、強(qiáng),抗干擾能力強(qiáng)、可靠性高,性能價(jià)格比高,低功耗、低電壓,擴(kuò)展了多種串行口和系統(tǒng)擴(kuò)展容易等特點(diǎn)。</p><p> 1.3 單片機(jī)的實(shí)際應(yīng)用</p><p> 單片機(jī)廣泛應(yīng)用于儀表儀器、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分為以下幾個(gè)范疇:</p><p> ?。?)在智能儀器儀表上的應(yīng)用</p><p&
18、gt; 單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等特點(diǎn),廣泛應(yīng)用于儀器儀表中看,結(jié)合不同類型的傳感器,可以實(shí)現(xiàn)諸如電壓、功率、頻率、溫度、流量、速度、角度、硬度、元素、壓力等物理量的測量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化。且功能比采用電子和熟悉電路更加強(qiáng)大。例如精密的測量設(shè)備(功率計(jì)、示波器和各種分析儀)。</p><p> ?。?)在工業(yè)控制中的應(yīng)用</p>
19、<p> 用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。</p><p> ?。?)在家用電器中的應(yīng)用</p><p> 可以這樣說,現(xiàn)在的家電基本上都采用了單片機(jī)控制,從電飯煲、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子稱量設(shè)備,五花八門,無其不有,無所不在。&l
20、t;/p><p> ?。?)在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域的應(yīng)用</p><p> 現(xiàn)在的單片機(jī)普遍具有通信接口,可以很方便的與計(jì)算機(jī)實(shí)現(xiàn)數(shù)據(jù)通信,為計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,可以的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),電話機(jī)、小型程控交換機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動(dòng)電話,集群移動(dòng)通信,無線對講機(jī)等。</p>&l
21、t;p> ?。?)單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用</p><p> 單片機(jī)在易用設(shè)備領(lǐng)域中的應(yīng)用相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲波診斷設(shè)備及病床呼叫系統(tǒng)等等。此外單片機(jī)在工商、金融、科研、教育、國防、航空航天領(lǐng)域都有相當(dāng)廣泛的應(yīng)用。</p><p> 1.4 控制器AT89C51</p><p> AT89C51是美國ATMEL公司生產(chǎn)的
22、低電壓,高性能CMOS8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和128 bytes的隨機(jī)存取數(shù) </p><p> 據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度,非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大AT89C51單片機(jī)可為您提供許多高性價(jià)比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域[2]。<
23、/p><p><b> 主要特性:</b></p><p> ?、?與MCS-51產(chǎn)品指令系統(tǒng)完全兼容 </p><p> ?、?4K字節(jié)可重擦寫Flash閃速存儲(chǔ)器 </p><p> ③ 1000次擦寫周期 </p><p> ?、?全靜態(tài)操作:0Hz-24MHz </p>
24、<p> ?、?三級加密程序存儲(chǔ)器 </p><p> ⑥ 128×8字節(jié)內(nèi)部RAM </p><p> ⑦ 32個(gè)可編程I/O口線</p><p> ?、?2個(gè)16位定時(shí)/計(jì)數(shù)器 </p><p><b> ?、?5個(gè)中斷源 </b></p><p> ⑩ 可編程串
25、行UART通道 </p><p> AT89C51單片機(jī)采用40Pin封裝的雙列直插 DIP結(jié)構(gòu),圖1.1是它的引腳配置圖。40個(gè)引腳中,正電源和地線兩根;4組8位I/O口,共32個(gè)引腳;時(shí)鐘電路引腳 XTAL1和 XTAL2;控制信號引腳包含:復(fù)位輸入端 RET,地址鎖存允許輸出/編程脈沖輸入端 ALE/PROG,片外程序存儲(chǔ)器選通控制信號端 PSEN,內(nèi)外程序存儲(chǔ)器選擇/編程電源輸入端 EA/VPP。<
26、;/p><p> 圖1.1 AT89C51單片機(jī)引腳圖</p><p><b> 2 接口技術(shù)</b></p><p><b> 2.1 鍵盤接口</b></p><p> 在單片機(jī)的應(yīng)用系統(tǒng)中,通常都有人—機(jī)對話功能。它包含人對系統(tǒng)的狀態(tài)干預(yù)、數(shù)據(jù)的輸入以及應(yīng)用系統(tǒng)向人報(bào)告運(yùn)行狀態(tài)與運(yùn)
27、行結(jié)果等。鍵盤成為人—機(jī)聯(lián)系的必要手段,此時(shí)需要配置適當(dāng)?shù)逆I盤輸入設(shè)備[5]。</p><p> 2.1.1 鍵盤工作原理</p><p> 鍵盤中的每個(gè)按鍵都是一個(gè)常開的開關(guān)電路,當(dāng)所設(shè)置的功能鍵或數(shù)字鍵按下時(shí),則處于閉合狀態(tài)。對于一組鍵或一個(gè)鍵盤,需要通過接口電路與單片機(jī)相連,以便將鍵的開關(guān)狀態(tài)通知單片機(jī)。單片機(jī)可以采用查詢或中斷方式檢查有無鍵的輸入以及是哪個(gè)鍵被按下,并通過轉(zhuǎn)移指
28、令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完再返回到原始狀態(tài)。</p><p> 2.1.2 獨(dú)立式按鍵</p><p> 獨(dú)立式按鍵是指直接用I/O口線構(gòu)成的單個(gè)按鍵電路。每個(gè)獨(dú)立式按鍵單獨(dú)占有一根I/O口線,每根I/O口線的工作狀態(tài)都不會(huì)影響其他I/O口線的工作狀態(tài)。</p><p> 2.1.3 行列式鍵盤</p><p> 獨(dú)立式按鍵電路
29、每一個(gè)按鍵開關(guān)占用一根I/O口線。當(dāng)按鍵數(shù)較多時(shí),要占用較多的I/O口線。因此,在按鍵數(shù)大于8時(shí),通常采用行列式(也稱“矩陣式”)鍵盤電路。</p><p> 最簡單的鍵盤,每個(gè)鍵對應(yīng)I/O端口的一位,沒有什么鍵閉和時(shí),各位均處于高電位。當(dāng)有一個(gè)鍵按下時(shí),就是對應(yīng)位接地而成為低電位,而其它位仍為高電位。這樣,CPU只要檢測到某一位為“0”,便可判別出對應(yīng)鍵已經(jīng)按下。但是,當(dāng)鍵盤上的鍵較多時(shí),引線太多,占用的I/
30、O端口也太多。比如,一個(gè)有64個(gè)鍵的鍵盤,采用這種方法來設(shè)計(jì)時(shí),就需要64條連線和8個(gè)8位并行端口。所以,這種簡單結(jié)構(gòu)只用在僅由幾個(gè)鍵的小鍵盤中。通常使用的鍵盤結(jié)構(gòu)是矩陣式的,如圖2.1所示。設(shè)有m * n個(gè)鍵盤,那么,采用矩陣式結(jié)構(gòu)以后,便只要條引線就行了。比如,有m + n 個(gè)鍵,那么,只要用兩個(gè)并行端口和16條引線便可以完成鍵盤的連接[6] 。</p><p><b> 圖2.1 矩陣鍵盤<
31、;/b></p><p><b> 2.2 顯示器接口</b></p><p> 為了方便人們觀察和監(jiān)視單片機(jī)運(yùn)行情況,通常需要利用顯示器作為單片機(jī)的輸出設(shè)備,以顯示單片機(jī)的鍵輸入值、中間信息以及運(yùn)算結(jié)果等。</p><p> 在單片機(jī)應(yīng)用系統(tǒng)中,常用的顯示器主要有LCD(液晶顯示器)和LED(發(fā)光二極管顯示器)。這兩種顯示器都具有
32、耗電省,配置靈活,線路簡單,安裝方便,耐振動(dòng),壽命長等優(yōu)點(diǎn)。</p><p> 2.2.1 液晶顯示器</p><p> 液晶顯示器LCD(Liquid Crystal Display)是一種極低功耗的顯示器。由于其具有清晰度高,信息量大等特點(diǎn),從而使得它越來越廣泛地應(yīng)用在小型儀器的顯示中。</p><p> 把LCD與驅(qū)動(dòng)器組裝在儀器的部件的英文名稱為LCD
33、 Module,簡稱LCM。LCM一般分為三類,即段碼型液晶模塊、點(diǎn)陣字符液晶模塊和點(diǎn)陣圖形液晶模塊。</p><p> 2.2.2 LED點(diǎn)陣顯示屏</p><p> LED點(diǎn)陣顯示屏的構(gòu)成型式有多種,其中典型的有兩種。一種把所需展示的廣告信息燒寫固化到EPROM芯片內(nèi),能進(jìn)行固定內(nèi)容的多幅漢字顯示,稱為單顯示型;另一種在機(jī)內(nèi)設(shè)置了字庫、程序庫,具有程序編制能力,能進(jìn)行內(nèi)容可變的多幅
34、漢字顯示,稱可編程序型[7]。</p><p> 目前,國內(nèi)的LED點(diǎn)陣顯示屏大部分是單顯示型,其顯示的內(nèi)容相對較少,顯示花樣較單一。一般在產(chǎn)品出廠時(shí),顯示內(nèi)容就已寫入顯示屏控制系統(tǒng)中的EPROM芯片內(nèi),當(dāng)需要更換顯示內(nèi)容時(shí)就非常困難,這樣使該類型的顯示屏使用范圍受到了限制。國內(nèi)的另一種LED顯示屏——可編程序型LED顯示屏,雖然增加了顯示屏系統(tǒng)的編程能力,顯示內(nèi)容和顯示花樣都有所增加,但也存在著更換顯示內(nèi)容不
35、便的缺點(diǎn)。隨著社會(huì)經(jīng)濟(jì)的迅速發(fā)展,如今的廣告牌都存在著顯示內(nèi)容豐富、信息量大、信息更換速度快等特點(diǎn)。因此傳統(tǒng)的LED顯示屏控制系統(tǒng)已經(jīng)越來越不能滿足現(xiàn)代廣告宣傳業(yè)的需要。而利用PC機(jī)通信技術(shù)控制LED顯示屏,則具有顯示內(nèi)容豐富,信息更換靈活等優(yōu)點(diǎn)[7]。</p><p><b> ① 8*8點(diǎn)陣</b></p><p> 如圖2.2和圖2.3是8*8點(diǎn)陣原理圖和實(shí)
36、物圖</p><p> 圖2.2 8*8點(diǎn)陣原理圖</p><p> 圖2.3為8×8單基色點(diǎn)陣的結(jié)構(gòu)圖,從內(nèi)部結(jié)構(gòu)可以看出8×8點(diǎn)陣共需要64個(gè)發(fā)光二極管,且每個(gè)發(fā)光二極管是放置在各行和列的交叉點(diǎn)上。當(dāng)對應(yīng)的某一列置高電</p><p> 圖2.3 8*8點(diǎn)陣實(shí)物圖</p><p> 平,另一列置低電平時(shí),
37、則在該行和列的交叉點(diǎn)上相應(yīng)的二極管就亮。</p><p> 圖10為8×8點(diǎn)陣LED外觀及引腳圖,其等效電路如圖9所示,只要其對應(yīng)的X、Y軸順向偏壓,即可使LED發(fā)亮。例如如果想使左上角LED點(diǎn)亮,則Y0=1,X0=0即可。應(yīng)用時(shí)限流電阻可以放在X軸或Y軸[8]。</p><p> ?、?*8點(diǎn)陣顯示原理</p><p> 從理論上說,不論顯示圖形還
38、是文字,只要控制與組成這些圖形或文字的各個(gè)點(diǎn)所在的位置相對應(yīng)的LED器件發(fā)光,就可以得到我們想要的顯示結(jié)果,這種同時(shí)控制各個(gè)發(fā)光點(diǎn)亮滅的方法稱為靜態(tài)驅(qū)動(dòng)顯示方式。8*8的點(diǎn)陣共有64個(gè)發(fā)光二極管,顯然單片機(jī)沒有這么多的端口,如果我采用鎖存器來擴(kuò)展端口,按8位的鎖存器來計(jì)算,8*8的點(diǎn)陣需要64/8=8個(gè)鎖存器。這個(gè)數(shù)字很龐大,因?yàn)槲覀儍H僅是8*8的點(diǎn)陣,在實(shí)際應(yīng)用中的顯示屏往往要大得多,這樣在鎖存器上花的成本將是一個(gè)很龐大的數(shù)字。因此在
39、實(shí)際應(yīng)用中的顯示屏幾乎都不采用這種設(shè)計(jì),而采用另外一種稱為動(dòng)態(tài)掃描的顯示方法[9]。</p><p> 動(dòng)態(tài)掃描的意思簡單地說就是逐行輪流點(diǎn)亮,這樣掃描驅(qū)動(dòng)電路就可以實(shí)現(xiàn)多行(比如8行)的同名列共用一套驅(qū)動(dòng)器。具體就8*8的點(diǎn)陣來說,把所有同1行的發(fā)光管的陽極連在一起,把所有同1列的發(fā)光管的陰極連在一起(共陽極的接法),先送出對應(yīng)第一行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第1行使其燃亮一定時(shí)間,然后熄滅;再送出第二
40、行的數(shù)據(jù)并鎖存,然后選通第2行使其燃亮相同的時(shí)間,然后熄滅;以此類推,第8行之后,又重新燃亮第1行,反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,就能夠看到顯示屏上穩(wěn)定的圖形了。</p><p> 采用掃描方式進(jìn)行顯示時(shí),每一行有一個(gè)行驅(qū)動(dòng)器,各行的同名列共用一個(gè)驅(qū)動(dòng)器。顯示數(shù)據(jù)通常存儲(chǔ)在單片機(jī)的存儲(chǔ)器中,按8位一個(gè)字節(jié)的形式順序排放。顯示時(shí)要把一行中各列的數(shù)據(jù)都傳送到相應(yīng)的列驅(qū)動(dòng)
41、器上去,這就存在一個(gè)顯示數(shù)據(jù)傳輸?shù)膯栴}。從控制電路到列驅(qū)動(dòng)器的數(shù)據(jù)傳輸可以采用并列方式或串行方式。顯然,采用并行方式時(shí),從控制電路到列驅(qū)動(dòng)器的線路數(shù)量大,相應(yīng)的硬件數(shù)目多。當(dāng)列數(shù)很多時(shí),并列傳輸?shù)姆桨甘遣豢扇〉腫10]。</p><p> 采用串行傳輸?shù)姆椒ǎ刂齐娐房梢灾挥靡桓盘柧€,將列數(shù)據(jù)一位一位傳往列驅(qū)動(dòng)器,在硬件方面無疑是十分經(jīng)濟(jì)的。但是,串行傳輸過程較長,數(shù)據(jù)按順序一位一位地輸出給列驅(qū)動(dòng)器,只有當(dāng)一
42、行的各列數(shù)據(jù)都以傳輸?shù)轿恢?,這一行的各列才能并行地進(jìn)行顯示。這樣,對于一行的顯示過程就可以分解成列數(shù)據(jù)準(zhǔn)備(傳輸)和列數(shù)據(jù)顯示兩部分。對于串行傳輸方式來說,列數(shù)據(jù)準(zhǔn)備時(shí)間可能相當(dāng)長,在行掃描周期確定的情況下留給行顯示的時(shí)間就太少了,以致影響到LED的亮度。</p><p> 解決串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時(shí)間矛盾問題,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一列數(shù)據(jù)。為了達(dá)到重疊處理
43、的目的,列數(shù)據(jù)的顯示就需要具有所存功能。經(jīng)過上述分析,就可以歸納出列驅(qū)動(dòng)器電路應(yīng)具有的功能。對于列數(shù)據(jù)準(zhǔn)備來說,它應(yīng)能實(shí)現(xiàn)串入并處的移位功能;對于列數(shù)據(jù)顯示來說,應(yīng)具有并行鎖存的功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時(shí),串并移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會(huì)影響本行的顯示。圖2.4為顯示屏電路實(shí)現(xiàn)的結(jié)構(gòu)框圖:</p><p> 圖2.4 顯示屏系統(tǒng)框圖</p><p&g
44、t;<b> 3 程序設(shè)計(jì)語言</b></p><p> 單片機(jī)能執(zhí)行的程序可以用很多種語言編寫。從語言結(jié)構(gòu)及其與單片機(jī)的關(guān)系兩方面可分為三大類:分別是機(jī)器語言、匯編語言和高級語言。</p><p><b> 3.1機(jī)器語言</b></p><p> 機(jī)器語言是一種用二進(jìn)制代碼“0”和“1”表示指令和數(shù)據(jù) 的最原始
45、的程序設(shè)計(jì)語言。由于計(jì)算機(jī)只能識(shí)別二進(jìn)制代碼,因此,這種語言與計(jì)算機(jī)的關(guān)系最為直接,計(jì)算機(jī)能夠快速識(shí)別并立即執(zhí)行,響應(yīng)速度最快。但這種語言編寫程序非常繁瑣、費(fèi)時(shí),且不易看懂,不便記憶,容易出錯(cuò)。</p><p><b> 3.2 匯編語言</b></p><p> 匯編語言是一種用助記符來表示的面向機(jī)器的程序設(shè)計(jì)語言。不同的機(jī)器所使用的匯編語言一般是不同的。這種語
46、言比機(jī)器語言更加直觀、易懂、易用,且便于記憶。但是由于不同機(jī)器的匯編語言不同,這種語言有一定的局限性,移植性差。</p><p><b> 3.3高級語言</b></p><p> 高級語言是一種面向過程且獨(dú)立于計(jì)算機(jī)硬件結(jié)構(gòu)的通用計(jì)算機(jī)語言。目前在單片機(jī)應(yīng)用最廣泛的是C語言。</p><p> 3.3.1 單片機(jī)C語言的特點(diǎn)</p
47、><p> ?、賹纹瑱C(jī)的指令系統(tǒng)不要求了解,僅要求對單片機(jī)的存儲(chǔ)結(jié)構(gòu)有初步的了解。</p><p> ?、诩拇嫫鞯姆峙?、不同存儲(chǔ)器的尋址及數(shù)據(jù)類型等細(xì)節(jié)可由編譯器管理。</p><p> ?、鄢绦蛴幸?guī)范的結(jié)構(gòu),可分為不同的函數(shù),可使程序結(jié)構(gòu)化。</p><p> ?、荜P(guān)鍵字及運(yùn)算函數(shù)可用近似人的思維過程方式使用。</p><
48、p> ⑤編程及程序調(diào)試時(shí)間顯著縮短,從而提高效率。</p><p> ?、尢峁┑膸彀S多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能力等。</p><p> 3.3.2單片機(jī)C語言使用的編程軟件</p><p> 3.3.2.1編程軟件</p><p> Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟
49、件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境
50、、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。</p><p> 3.3.2.2仿真軟件</p><p> Proteus 是英國Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。</p><p> 4 基于單片機(jī)的病床呼叫系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)</p><p>
51、;<b> 4.1系統(tǒng)總體設(shè)計(jì)</b></p><p><b> 4.1.1功能要求</b></p><p> 本課題主攻方向是使系統(tǒng)實(shí)現(xiàn)以下目的:</p><p> ?、偃我徊》浚ü?6張)呼叫,醫(yī)護(hù)值班室馬上能響應(yīng)并顯示病房號;</p><p><b> ②顯示病房床號;<
52、;/b></p><p> ③若有多個(gè)病床呼叫就循環(huán)顯示;</p><p> ④處理完畢后清除記錄;</p><p> ?、蒿@示器不重復(fù)顯示按一次以上的病床號</p><p><b> 4.1.2設(shè)計(jì)方案</b></p><p> 用8051自身接口實(shí)現(xiàn)數(shù)碼管靜態(tài)顯示和鍵盤掃描,使用
53、8051單片微機(jī)外加作地址鎖存用的四塊三態(tài)鎖存器74LS373芯片和一塊74LS138芯片可構(gòu)成一個(gè)完整的最小微機(jī)電路。以此為基礎(chǔ),在智能裝置中若要配置多位數(shù)碼管顯示器,以及m行n列矩陣鍵盤的話,可以不擴(kuò)展I/O芯片而由8051自身I/O口,實(shí)現(xiàn)上述功能, 即用P0口的八個(gè)端口作為LED的段選,用P2口的高三位連接一個(gè)三八譯碼器74LS138 作為四個(gè)LED的片選.用P1口和P2口的低五位做鍵盤電路的接口。</p><
54、;p> 4.1.3 總體結(jié)構(gòu)框圖</p><p> 本設(shè)計(jì)是基于AT89C51單片機(jī)設(shè)計(jì)的病房呼叫系統(tǒng)設(shè)計(jì),該系統(tǒng)就是以Atmel公司的AT89C51單片機(jī)作為主控器,包括鍵盤輸入電路,顯示電路,以及晶振復(fù)位電路等來實(shí)現(xiàn)病房呼叫系統(tǒng)。</p><p> 圖4.1病房呼叫系統(tǒng)結(jié)構(gòu)框圖</p><p> 4.2 系統(tǒng)硬件設(shè)計(jì)</p><
55、p> 4.2.1硬件構(gòu)成示意圖</p><p> 圖4.2 硬件構(gòu)成示意圖</p><p> 4.2.2 外圍電路設(shè)計(jì)</p><p> 4.2.2.1 控制器AT89C51</p><p><b> 復(fù)位電路:</b></p><p> RST引腳是復(fù)位信號輸入端,高電平有效。
56、采用上電加按鈕復(fù)位,因?yàn)楸鞠到y(tǒng)設(shè)計(jì)考慮到該系統(tǒng)比較重要,所以除了采用上電復(fù)位的方式外,應(yīng)該還有按鈕復(fù)位備用復(fù)位方式以防止系統(tǒng)死機(jī)時(shí)能。如下圖4.3所示:</p><p> 圖4.3上電復(fù)位和按鍵復(fù)位 </p><p><b> 時(shí)鐘電路:</b></p><p> 時(shí)鐘是時(shí)序的基礎(chǔ),AT89C51核片內(nèi)由一個(gè)反相放大器構(gòu)成振蕩器,可以由它
57、產(chǎn)生時(shí)鐘,時(shí)鐘可以由兩種方式產(chǎn)生內(nèi)部方式和外部方式。本系統(tǒng)采用內(nèi)部方式,在XTAL1和XTAL2端外接石英晶體作為定時(shí)元件,內(nèi)部反相放大器自激振蕩,產(chǎn)生時(shí)鐘。時(shí)鐘發(fā)生器對振蕩脈沖二分頻。電容采用30pF電容。如下圖4.4所示:</p><p> 圖4.4內(nèi)部時(shí)鐘電路</p><p> 4.2.2.2 鍵盤電路設(shè)計(jì)</p><p><b> 1、 鍵的
58、識(shí)別</b></p><p> 為了識(shí)別鍵盤上的閉合鍵,通常采用兩種方法,一種稱為行掃描法,另一種稱為行反轉(zhuǎn)法。</p><p><b> 行掃描法的原理 :</b></p><p> 行掃描法識(shí)別閉合鍵的原理如下:先使第0行接地,其余行為高電平,然后看第0行是否有鍵閉合,這是通過檢查列線電位來實(shí)現(xiàn)的,即在第0行接地時(shí),看是否
59、有條列線變成低電平。如果有某條列線變?yōu)榈碗娖?,則表示第0行和此列線相交位置上的鍵被按下;如果沒有任何一條列線為低電平,則說明第0行上沒有鍵被按下。此后,再將第1行接地,,然后檢測列線中是否有變?yōu)榈碗娖降木€。如此往下逐行掃描,直到最后一行。在掃描過程中,當(dāng)發(fā)現(xiàn)某一行有鍵閉合時(shí),也就是列線輸入中有一位為0時(shí),便在掃描中途退出,而將輸入值進(jìn)行移位,從而確定閉合鍵所在的列線位置。根據(jù)行線位置和列線位置便能再掃描法來確定具體位置。將行線和一個(gè)并行
60、接口相接,CPU每次使并行輸出接口的某一位為0,便相當(dāng)于將某一行線接地,而其他位為1,則相當(dāng)于使其他行線處于高電平。為了檢查列線上的電位,將列線和一個(gè)并行輸入輸出口相接,CPU只要讀取輸入輸出口中的數(shù)據(jù),就可以設(shè)法判別出第幾號鍵被按下[11]。</p><p> 從上面的原理中知道,程控掃描法是由程序控制鍵掃描的方法。程控掃描的任務(wù)是:</p><p> ①首先判斷是否有鍵按下。其方法
61、是使所有的行輸出均為低電平,然后從端口A讀入列值 。如果沒有鍵按下,則讀入的列值為FFH;如果有鍵按下,則讀入的列值不為FFH。</p><p> ?、谌コI抖動(dòng)。若有鍵按下,則延時(shí)5~10ms,再一次判斷有無鍵按下,如果此時(shí)仍有鍵按下,則認(rèn)為鍵盤上有一個(gè)鍵處于穩(wěn)定閉合期。</p><p> ?、廴粲墟I閉合,則求出閉合鍵的鍵值. 求鍵值的方法是對鍵盤逐行掃描。如圖4.5是行掃描法:<
62、;/p><p> 圖4.5行掃描法的流程圖 </p><p> (2)行反轉(zhuǎn)法的原理[12]。</p><p> 行反轉(zhuǎn)法也是識(shí)別閉合鍵的常用方法,它的原理如下所述。這了敘述方便,以4×4=16鍵的鍵盤為例。圖4.6是行反轉(zhuǎn)法的工作示意圖:</p><p> 圖 4.6 行反轉(zhuǎn)法連接圖</p><p>
63、 從圖中可以看到,用行反轉(zhuǎn)法識(shí)別閉合鍵時(shí),要將行線接一個(gè)并行口,先讓它工作為輸出方式,將列線接到一個(gè)并行口,先讓它工作在輸出方式。程序使CPU通過輸出端口往各行線上全部送低電平,然后讀入列線的值。如果此時(shí)有某一個(gè)鍵被按下,則必定會(huì)使某一列線值為0,然后,程序再對兩個(gè)并行端口進(jìn)行方式設(shè)置,使接行線的并行端口工作在輸出方式,而使接列線的并行端口工作在輸出方式,并且將剛才讀得的列線值從所接的并行端口輸出,再讀取行線的輸入值,那么,在閉合鍵所
64、在的行線上的值必定為0。這樣,當(dāng)一個(gè)鍵被按下時(shí),必定可以讀得一對惟一的行值和列值。在鍵盤設(shè)計(jì)時(shí),除了以鍵碼的識(shí)別以外,還有抖動(dòng)問題需要解決[13]。</p><p> 有軟件方法可以很容易解決抖動(dòng)問題,這就是通過延遲來等待抖動(dòng)消失,這之后,再讀入鍵碼。</p><p> 4.2.2.3 顯示電路設(shè)計(jì)</p><p> 在LED的點(diǎn)陣顯示中,已經(jīng)詳細(xì)介紹了顯
65、示的原理,此外還需要知道顯示驅(qū)動(dòng)程序。顯示驅(qū)動(dòng)程序在進(jìn)入中斷后首先要對定時(shí)器T0重新賦初值,以保證顯示屏刷新率的穩(wěn)定,1/16掃描顯示屏的刷新率(幀頻)計(jì)算公式如下:</p><p> 刷頻率(幀頻)=1/16×T0溢出率</p><p> =1/16×f/12(65536-t) </p><p> 其中f位晶振頻率,t為定時(shí)器T0初值
66、(工作在16位定時(shí)器模式)。</p><p> 然后顯示驅(qū)動(dòng)程序查詢當(dāng)前燃亮的行號,從顯示緩存區(qū)內(nèi)讀取下一行的顯示數(shù)據(jù),并通過串口發(fā)送給移位寄存器。為消除在切換行顯示數(shù)據(jù)的時(shí)候產(chǎn)生拖尾現(xiàn)象,驅(qū)動(dòng)程序先要關(guān)閉顯示屏,即消隱,等顯示數(shù)據(jù)打入輸出鎖存器并鎖存,然后再輸出新的行號,重新打開顯示。圖4.7為顯示驅(qū)動(dòng)程序(顯示屏掃描函數(shù))流程圖:</p><p> 圖4.7 顯示驅(qū)動(dòng)流程圖
67、 圖4.8 控制按鍵</p><p> 4.2.2.4 控制電路設(shè)計(jì)</p><p> 三個(gè)控制按鍵分別接p3.2 ,p3.3,p3.4口(如圖4.8所示),當(dāng)有呼叫發(fā)出時(shí),值班室人員收到相應(yīng)信息后,可按下“響應(yīng)按鈕”,單片機(jī)執(zhí)行中斷程序。</p><p> 4.2.2.5 示警電路</p><p> 報(bào)警電路由
68、一個(gè)led燈與p3.1口相接,當(dāng)有鍵按下時(shí),有信號輸入,燈亮示警,提醒值班人員有病人出現(xiàn)緊急情況。</p><p> 4.3 系統(tǒng)軟件設(shè)計(jì)</p><p> 4.3.1 設(shè)計(jì)的軟件環(huán)境簡介</p><p> 4.3.1.1 Keil c</p><p> 對于AT89C51的控制設(shè)計(jì),以Keil c軟件編程環(huán)境,以proteus軟件
69、為電路仿真設(shè)計(jì)環(huán)境。二者的結(jié)合為該系統(tǒng)的設(shè)計(jì)提供有利條件。Keil c軟件界面,如圖4.9所示:</p><p> 圖4.9 Keil_c軟件界面</p><p> 該軟件是一款集編程和仿真于一體的軟件,它支持匯編、C語言及二者的混合編程[14]。</p><p> 4.3.1.2 Proteus ISIS</p><p> P
70、roteus ISIS是英國Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。</p><p><b> 該軟件的特點(diǎn)是:</b></p><p> ?。?)全部滿足我們提出的單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類產(chǎn)品中具有明顯的優(yōu)勢。</p><p> ?。?/p>
71、2)具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS-232動(dòng)態(tài)仿真、I2 C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等[13]。</p><p> ?。?)目前支持的單片機(jī)類型有:ARM7系列、68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。<
72、;/p><p> ?。?)支持大量的存儲(chǔ)器和外圍芯片。</p><p> 總之,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大 ,可仿真ARM、51、AVR、PIC[15]。</p><p> Proteus ISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面,如圖所示,包括:標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對象選擇按鈕、預(yù)覽對象方
73、位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對象選擇器窗口、圖形編輯窗口。</p><p> 圖4.10 電路仿真界面</p><p> 運(yùn)行Proteus程序后,進(jìn)入軟件的主界面。通過左側(cè)工具欄中的P(從庫中選擇元件命令)命令,在Pick Devices 左側(cè)窗口中選擇所需元件的關(guān)鍵字,然后放置元件并調(diào)整方向和位置以及參數(shù)設(shè)置,最后進(jìn)行連線[16](圖4.10 電路仿真界面)。<
74、;/p><p> 4.3.2 系統(tǒng)程序設(shè)計(jì)</p><p> 4.3.2.1 系統(tǒng)主程序設(shè)計(jì)的流程如圖4.11所示:</p><p> 圖4.11 系統(tǒng)主程序設(shè)計(jì)的流程</p><p><b> 主程序程序描述:</b></p><p> 首先對各存儲(chǔ)單元初始化,設(shè)定定時(shí)初值,接著判斷清零鍵
75、,看是否按下,若按下,則清零,然后繼續(xù)掃描鍵盤,如掃描到鍵盤有鍵按下,則調(diào)用計(jì)數(shù)顯示子程序,循環(huán)顯示病床號時(shí),要判斷標(biāo)志位是否為1,若為1,則表示已經(jīng)按下,則不響應(yīng),如為0,則調(diào)用循環(huán)顯示病床號子程序,循環(huán)顯示病床號,接著定時(shí)一秒。最后,清除定時(shí)一秒,準(zhǔn)備下一次的定時(shí)。 </p><p> 4.3.2.2 顯示電路流程圖</p><p> 圖4.12 按鍵總數(shù)顯示程序流程圖
76、 圖4.13按鍵循環(huán)顯示子程序</p><p><b> 顯示程序描述</b></p><p> (1)按下鍵總數(shù)顯示子程序描述(圖 4.12 按鍵總數(shù)顯示程序流程圖)</p><p> 把按鍵數(shù)存儲(chǔ)單總元(COUNTER)的值經(jīng)過BCD調(diào)整后十位和個(gè)位分別送(7AH)(7BH),調(diào)用顯示子程序顯示按
77、鍵總數(shù)。</p><p> (2)循環(huán)顯示病床號子程序描述(圖 4.13按鍵循環(huán)顯示子程序)</p><p> 首先判斷標(biāo)志位是否為0,若為0,則表對示應(yīng)的存儲(chǔ)單元里沒有值存入,則再檢測下一個(gè)存儲(chǔ)單元標(biāo)志位是否為0,直到檢測到為1.如為1,則把值存入(BED_BOUNTER)中,接著進(jìn)行BCD調(diào)整為十進(jìn)制,把十位和個(gè)位分別送入(BEDCODE_1)和(BEDCODE_2)中,然后調(diào)用顯
78、示子程序,循環(huán)顯示病床號。</p><p> 4.4系統(tǒng)的調(diào)試與結(jié)果</p><p> 系統(tǒng)調(diào)試工作是系統(tǒng)開發(fā)過程中必不可少的一個(gè)過程,一個(gè)完整的控制系統(tǒng)調(diào)試包含控制系統(tǒng)的硬件聯(lián)調(diào)、軟件聯(lián)調(diào)、系統(tǒng)仿真、仿真燒錄和現(xiàn)場安裝調(diào)試等幾個(gè)環(huán)節(jié)。在系統(tǒng)設(shè)計(jì)組裝完成后,首先是進(jìn)行實(shí)驗(yàn)室條件下的系統(tǒng)硬件調(diào)試,調(diào)試成功后,有了硬件的保證,就容易發(fā)現(xiàn)軟件的漏洞,進(jìn)而促進(jìn)改進(jìn)和完善。所有的調(diào)試通過后,要進(jìn)
79、行現(xiàn)場運(yùn)行并能持續(xù)一定的時(shí)間,待其中未發(fā)現(xiàn)故障后,方可驗(yàn)收合格,才算完成了整個(gè)系統(tǒng)的設(shè)計(jì)工作</p><p> 4.4.1調(diào)試界面顯示</p><p> 下面是我們通過Proteus軟件編程,使對應(yīng)的軟件仿真模塊變成可視化的控制界面: </p><p> 圖4.14 系統(tǒng)初始化界面 圖4.15 按下8鍵后界面
80、</p><p> 圖4.16 按下3鍵后顯示界面 圖4.17 按下OK鍵后顯示界面</p><p> 4.4.2 結(jié)果分析</p><p> 啟動(dòng)電源,顯示屏顯示0000,在按下8號鍵時(shí),界下部分顯示病床(即8號病床呼叫);界面上部分代表共有一個(gè)病床按下,在起始位置顯示(循環(huán)顯示);如果現(xiàn)在不按清零鍵,再按下3號鍵
81、時(shí),按鍵號循環(huán)顯示,可以看出該系統(tǒng)具有記憶功能,以至于不會(huì)忽略之前按下的按鍵;圖5.4反映了控制電路的可行性,按up鍵向后選一房間(呼叫病房),down向前選一房間(呼叫病房),ok則去房間.。綜上所述,本系統(tǒng)實(shí)現(xiàn)了主要功能:顯示病床號,亮報(bào)警提醒值班人員,若有多個(gè)病床同時(shí)呼叫,則循環(huán)顯示病床號,確保性息不丟失,待值班人員處理呼叫信息。通過PROTEUS軟件仿真,能達(dá)到上述結(jié)論,滿足課題目目的,達(dá)到要求。</p><
82、p><b> 結(jié)論</b></p><p> 至此,此系統(tǒng)的詳細(xì)設(shè)計(jì)及過程已經(jīng)結(jié)束。</p><p> 在設(shè)計(jì)的過程中遇到了很多問題,發(fā)現(xiàn)了自己的不足之處,有很多沒有學(xué)習(xí),如Proteus仿真知識(shí)及操作,還有單片機(jī)的C語言編程;有些軟件掌握得不夠牢固,比如說wave仿真不熟練;通過此次學(xué)習(xí),進(jìn)一步加強(qiáng)了我的理解,同時(shí)提高了我獨(dú)立自學(xué)的能力。 </p&
83、gt;<p> 整個(gè)設(shè)計(jì)過程中,老師詳細(xì)的指導(dǎo),同學(xué)的幫助,以及校圖書館的資料給了我很大的幫助。此次設(shè)計(jì)讓我從中學(xué)到很多東西。雖然中間遇到很多困難,但都對于我是一次很好的鍛煉。設(shè)計(jì)以后,才更加深刻感受到自己的學(xué)習(xí)只是理論部分,而且很多時(shí)候不能付諸實(shí)踐。這次設(shè)計(jì)能夠讓我從實(shí)踐中重新學(xué)習(xí)理論知識(shí),對我今后的工作和學(xué)習(xí)有了很多提高。</p><p> 但是由于本人水平有限,整個(gè)設(shè)計(jì)仍有很多不足之處,如
84、程序不夠完善、靈活,顯示可以采用液晶LCD模塊,還有可以采用無線NRF2401射頻模塊及其無線擴(kuò)展功能等等。完善后將會(huì)進(jìn)一步提高設(shè)計(jì)的穩(wěn)定性和普適性。</p><p> 最后,在指導(dǎo)老師和同組同學(xué)的身上我學(xué)得到很多實(shí)用的知識(shí),特別感謝指導(dǎo)老師給予的幫助,還用同學(xué)之間的資源共享。再次表示感謝!</p><p><b> 致謝</b></p><p
85、> 時(shí)光匆匆,大學(xué)三年已經(jīng)接近尾聲。這三年給我留下很多美好的記憶,同時(shí)接受很多優(yōu)秀老師的教育,和很多同學(xué)的幫助。在此論文完成之際,我要向這三年來幫助我的老師、同學(xué)表示由衷的感謝!</p><p> 這幾個(gè)月的畢業(yè)設(shè)計(jì),充滿了忙碌,也感到學(xué)習(xí)的充實(shí)。從拿到畢業(yè)設(shè)計(jì)的題目,之后便開始整理材料,這期間,在圖書館里找到很多有關(guān)書籍。然后開始了一系列的整體方案的設(shè)計(jì),并投入選擇器材和方案的制定。最后開始整體的實(shí)驗(yàn)
86、,雖然其中經(jīng)歷很多的失敗。在老師、同學(xué)的幫助下,我很快克服了困難。設(shè)計(jì)的系統(tǒng)雖不是那么完善,但也是從知識(shí)到實(shí)踐的轉(zhuǎn)換。我從中學(xué)到了怎樣獨(dú)立地思考發(fā)現(xiàn)問題、解決問題和進(jìn)一步完善提高的能力。時(shí)光短暫,但給我留下很多深刻的印象,這是第一次獨(dú)立自主的做設(shè)計(jì)。以前只注重理論的學(xué)習(xí),卻忽略了實(shí)踐。通過此次設(shè)計(jì),對我今后的學(xué)習(xí)和工作必將有很大的幫助。</p><p> 在此,謹(jǐn)向所有幫助我的老師、同學(xué)表示衷心的感謝和敬意!&
87、lt;/p><p><b> 參考文獻(xiàn)</b></p><p> [1] 王意崗.病房呼叫系統(tǒng)[J].建筑電氣,2004(23):179-182.</p><p> [2] 朱艷華,田行軍,李夏青.基于PL3105的病床呼叫系統(tǒng)設(shè)計(jì)[J].北京石油化工學(xué)院學(xué)報(bào),2009,17(2):40-43.</p><p> [
88、3] 鄔春明,王艷茹.基于低壓線載波技術(shù)的病床呼叫系統(tǒng)[J].電子技術(shù)應(yīng)用,2005,31(9):60-63</p><p> [4] 何立民.《單片機(jī)初級教程-單片機(jī)基礎(chǔ)》[M].北京:北京航空航天大學(xué)出版社,2006,82(1):2-3</p><p> [5] 李朝青.單片機(jī)原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2005</p><p>
89、[6 ] 康華光《電子技術(shù)基礎(chǔ)》[M]. 北京:高等教育出版社, 2000:17-23</p><p> [7]康華光《電子技術(shù)基礎(chǔ)(模擬部分)》[M]. 北京:高等教育出版社, 1999:112-119</p><p> [8]丁元杰.《單片微機(jī)原理及應(yīng)用》[M].北京:機(jī)械工業(yè)出版社, 1996:256-276</p><p> [9]何立民.《單片
90、機(jī)應(yīng)用技術(shù)選編》[M].北京:北京:航空航天大學(xué)出版社, 1996.218~224</p><p> [10]張培仁等.《MCS-51單片機(jī)原理與應(yīng)用》[M]. 北京.清華大學(xué)出版社, 2003:130~145</p><p> [11]李伯成《單片機(jī)及嵌入式系統(tǒng)》[M]. 北京:清華大學(xué)出版社, 2005:337-346</p><p> [12]肖金球《
91、單片機(jī)原理與接口技術(shù)》[M]. 北京:清華大學(xué)出版社, 2004:153-159</p><p> [13]王環(huán),張亞寧 《單片機(jī)程序設(shè)計(jì)實(shí)例》[M] 北京:清華大學(xué)出版社, 2003:520-524</p><p> [14]治剛.《單片機(jī)應(yīng)用技術(shù)與實(shí)訓(xùn)》[M]. 北京:清華大學(xué)出版社, 2004:130-133</p><p> [15]胡漢才.《單片機(jī)
92、原理及接口技術(shù)》[M]. 北京:清華大學(xué)出版社, 1995:111-123</p><p> [16]徐淑華等.《單片機(jī)微機(jī)原理及應(yīng)用》[M]. 哈爾濱工業(yè)大學(xué)出版社, 1994:336-351</p><p><b> .</b></p><p><b> 附錄</b></p><p>&l
93、t;b> 附錄A:原理圖</b></p><p><b> 附錄B:源程序</b></p><p> #include<reg51.h> //51系統(tǒng)端口定義h文件</p><p> #include "dianzhen.h" //點(diǎn)陣h文件</p><p&g
94、t; #include"keyboard.h" //鍵盤處理h文件</p><p> uchar ys=0,num=0,N=0,d=0,q=0; //num為當(dāng)前顯示值,N為總顯示值</p><p> /******************************主函數(shù)**********************************/</p>
95、<p> void main()</p><p> { uchar j;</p><p> TMOD=0x10;</p><p> TH0=(65536-45000)/256;//設(shè)置50毫秒定時(shí)</p><p> TL0=(65536-45000)%256;</p><p><b&
96、gt; TR0=1;</b></p><p><b> ET0=1; </b></p><p><b> EA=1;</b></p><p><b> P3_1=0;</b></p><p><b> while(1)</b><
97、/p><p><b> { </b></p><p> if(P3_2==0) </p><p><b> { </b></p><p> if(N>q) q++;</p><p> while(P3_2==0);</p><p> P3
98、_1=1; //當(dāng)P3_2按鍵彈起的后,P3_1口賦高電平</p><p> delay10ms(10);//延時(shí)子程序</p><p> P3_1=0; //返回原始界面</p><p><b> } </b></p><p> if(P3_3==0) //當(dāng)P3_3按鍵按下就執(zhí)行病房號的顯示<
99、/p><p><b> { </b></p><p> if(q>0) q--;</p><p> while(P3_3==0);</p><p><b> P3_1=1;</b></p><p> delay10ms(10);</p>&l
100、t;p><b> P3_1=0;</b></p><p><b> } </b></p><p> if(P3_4==0) </p><p><b> {</b></p><p><b> N--;</b></p><
101、;p><b> if(N>0)</b></p><p><b> {</b></p><p> for(j=q;j<N;j++) </p><p> b[j]=b[j+1];</p><p><b> b[N]=0;</b></p>&
102、lt;p><b> }</b></p><p><b> Else</b></p><p><b> b[0]=0; </b></p><p> while(P3_4==0);</p><p><b> q=0;</b></p>
103、<p><b> P3_1=1;</b></p><p> delay10ms(10);</p><p><b> P3_1=0;</b></p><p><b> }</b></p><p> keyboard();</p><p&
104、gt; if(m!=key) </p><p> { m=key;</p><p><b> b[N]=key;</b></p><p><b> N++;</b></p><p><b> P3_1=1;</b></p><p> de
105、lay10ms(10);</p><p><b> P3_1=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> } </b></p><p> /****
106、********************中斷服務(wù)子程序******************************/</p><p> void timer0() interrupt 1 using 1//T0中斷</p><p><b> { </b></p><p> TH0=(65536-50000)/256;</p>
107、<p> TL0=(65536-50000)%256;</p><p> if(d==0) </p><p> display1(N,b[num],b[q]);</p><p><b> ys++;</b></p><p> if(ys==100) </p><p>&
108、lt;b> { </b></p><p><b> num++; </b></p><p><b> d=1 ;</b></p><p><b> }</b></p><p> else if(ys>105) </p><
109、p><b> {</b></p><p><b> d=0; </b></p><p><b> ys=0;</b></p><p><b> }</b></p><p> if(num>N) </p><p&
110、gt; num=0;//病房號數(shù)清零</p><p><b> }</b></p><p> /*********************************點(diǎn)陣子程序***************************/</p><p> #include <reg51.h></p><p>
111、 #include <absacc.h></p><p> #include "zimo.h"</p><p> uchar b[10];</p><p> /****************************延時(shí)子程序********************************/</p><p&
112、gt; void delay10ms(uchar d) </p><p> { unsigned char i,j,k; </p><p> for(k=d;k>0;k--)</p><p> { for(i=20;i>0;i--) </p><p> F or(j=248;j>0;j--); </p
113、><p><b> } </b></p><p><b> }</b></p><p> /******************************點(diǎn)陣顯示子程序**************************/</p><p> void display1(uchar x,uchar
114、 s,uchar p) </p><p> { uchar i,j=0,k,m=0,n=0,w[2],y[2],z[2];</p><p> w[0]=s/10; w[1]=s%10;</p><p> y[0]=x/10; y[1]=x%10;</p><p> z[0]=p/10;z[1]=p%10;</p&
115、gt;<p> if(s<=0|s>16)</p><p> { for(i=0;i<16;i++,n++)</p><p><b> {</b></p><p><b> lie=i;</b></p><p> if(n==8) {m=1;j=0;}<
116、;/p><p> for(k=0;k<1;k++)</p><p> { hang0=shuzi2[y[m]][j];</p><p> hang1=shuzi2[y[m]][j+1];</p><p> hang2=shuzi2[z[m]][j];</p><p> hang3=shuzi2[z[m]
117、][j+1];</p><p> hang0=0x00; //清屏</p><p> hang1=0x00;</p><p> hang2=0x00;</p><p> hang3=0x00;</p><p><b> }</b></p><p><
118、;b> j+=2;</b></p><p><b> }</b></p><p><b> j=0;</b></p><p> for(i=16;i<64;i++)</p><p><b> {</b></p><p>
119、<b> lie=i;</b></p><p> for(k=0;k<1;k++)</p><p> { hang0=ziku1[j];// 第0行賦值</p><p> hang1=ziku1[j+1]; //第1行賦值</p><p> hang2=ziku2[j];// /第2行賦值</p&
120、gt;<p> hang3=ziku2[j+1];// /第3行賦值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的病床呼叫系統(tǒng)-畢業(yè)論文
- 基于單片機(jī)的病床呼叫系統(tǒng)-畢業(yè)論文
- 畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的無線病床呼叫系統(tǒng)
- 基于單片機(jī)的排隊(duì)呼叫系統(tǒng)畢業(yè)論文
- 病床呼叫系統(tǒng)設(shè)計(jì)——畢業(yè)論文
- 病床呼叫系統(tǒng)設(shè)計(jì)——畢業(yè)論文
- 基于8031單片機(jī)的多功能微電腦病床呼叫系統(tǒng)的設(shè)計(jì)
- 基于8031單片機(jī)的多功能微電腦病床呼叫系統(tǒng)的設(shè)計(jì)
- 電子系畢業(yè)論文--單片機(jī)病房呼叫系統(tǒng)設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)的打鈴系統(tǒng)
- 畢業(yè)論文--基于單片機(jī)的打鈴系統(tǒng)
- 基于單片機(jī)的無線病房呼叫器的研制【畢業(yè)論文】
- 畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的病房呼叫系統(tǒng)的設(shè)計(jì)
- 病床呼叫及輸液監(jiān)控系統(tǒng)畢業(yè)論文
- 關(guān)于單片機(jī)的畢業(yè)論文--基于單片機(jī)的時(shí)間溫度顯示系統(tǒng)
- 51單片機(jī)畢業(yè)論文---基于單片機(jī)的進(jìn)制換算
- 畢業(yè)論文---基于單片機(jī)的煙霧檢測系統(tǒng)
- 基于單片機(jī)的溫度采集系統(tǒng)畢業(yè)論文
- 基于單片機(jī)的指紋考勤系統(tǒng)畢業(yè)論文
- 基于單片機(jī)的遠(yuǎn)程監(jiān)控系統(tǒng)畢業(yè)論文
評論
0/150
提交評論