2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  基于單片機的病床呼叫系統(tǒng)</p><p>  摘要 系統(tǒng)是基于51系列的單片機設計的病床呼叫系統(tǒng)。該系統(tǒng)以AT89C51單片機為核心輔以矩陣鍵盤、LED點陣顯示電路和部分簡單模擬和數(shù)字電路組成的能夠?qū)崿F(xiàn)病人和醫(yī)護人員之間信息的傳遞。在該設計中每個病房都有一個按鍵,當患者有需要時,按下按鍵,此時 值班室的顯示屏可顯示此患者的床位號,多人使用時可實現(xiàn)循環(huán)顯示,醫(yī)護人員按下“響應”鍵取消當前呼叫

2、。此系統(tǒng)能夠為醫(yī)院提供一個成本低、效率高、操作方便和易于安裝維護的快捷系統(tǒng)。</p><p>  關(guān)鍵詞:單片機;矩陣鍵盤;點陣;LED顯示;呼叫系統(tǒng)</p><p><b>  目 錄</b></p><p><b>  引言1</b></p><p>  1 51系列單片機的簡介1<

3、;/p><p>  1.1 單片機的發(fā)展介紹1</p><p>  1.2 單片機的結(jié)構(gòu)特點2</p><p>  1.3 單片機的實際應用2</p><p>  1.4 控制器AT89C513</p><p><b>  2 接口技術(shù)4</b></p><p>  

4、2.1 鍵盤接口4</p><p>  2.2 顯示器接口5</p><p>  3 程序設計語言9</p><p>  3.1 機器語言9</p><p>  3.2 匯編語言9</p><p>  3.3 高級語言9</p><p>  4 基于單片機的病床呼叫系統(tǒng)的設計實現(xiàn)1

5、0</p><p>  4.1 系統(tǒng)總體設計10</p><p>  4.2 系統(tǒng)硬件設計11</p><p>  4.3 系統(tǒng)軟件設計15</p><p>  4.4 系統(tǒng)的調(diào)試與結(jié)果19</p><p><b>  結(jié)論20</b></p><p><b

6、>  致謝20</b></p><p><b>  參考文獻21</b></p><p><b>  附錄22</b></p><p>  附錄A:原理圖22</p><p>  附錄B:源程序22</p><p><b>  引言<

7、;/b></p><p>  病床呼叫系統(tǒng)是一種應用于醫(yī)院病房、養(yǎng)老院等地方,用來聯(lián)系溝通醫(yī)護人員和病員的專用呼叫系統(tǒng),是提高醫(yī)院水平的必備設備之一。病床呼叫系統(tǒng)的優(yōu)劣直接影響到病員的安危,歷來受到各大醫(yī)院的普遍重視。它要求及時、準確可靠、簡便可行、利于推廣[1]。</p><p>  目前市場上存在著許多種型號不一功能各異的醫(yī)院病房呼叫系統(tǒng),主要為兩大類:有線式和無線式[2]。無線

8、式病房呼叫系統(tǒng)不存在鋪設線路的問題,但是可靠性差,而且無線電波會干擾其他醫(yī)療儀器設備[3]。本文設計的是有線式的,適合較小的醫(yī)院病房使用,具有成本低,易于操作、安裝和維護,而且具有可靠穩(wěn)定,對其他醫(yī)療設備不會產(chǎn)生干擾的特點;但受到布線較多,影響美觀,故不適宜較大的醫(yī)院。</p><p>  病床呼叫管理系統(tǒng)便于病員快捷的呼叫護士,縮短人工呼叫的時間。當今病房呼叫系統(tǒng)正在逐步地向智能化發(fā)展,它可以和錄像機一起使用,

9、當病人按下開關(guān)時,在護士值班室的大屏幕能夠觀察病人的需要。并且可以配備對講機等設備,能夠使病員及時快捷地與醫(yī)護人員進行溝通。</p><p>  1 51系列單片機的簡介</p><p>  1.1 單片機的發(fā)展介紹</p><p>  單片機也被稱作“單片微型計算機”、“微控制器”和“嵌入式微控制器”,單片機一詞最初源于“Single Chip Microco

10、mputer”,簡稱SCM。隨著單片機在技術(shù)和體系結(jié)構(gòu)上的進步,其控制功能不斷擴展,國際上逐漸采用“MCU”(Micro Controller Unit,微控制器)來代替SCM。單片機的發(fā)展歷史大致分為4個階段。</p><p>  第一階段:單片機的探索階段。這一階段主要是探索如何把計算機的主要部件集成在芯片上。</p><p>  第二階段:單片機的完善階段。Intel公司在MCS-4

11、8的基礎(chǔ)上推出了完善的、典型的MCS-51單片機系列。它在以下幾個方面奠定了典型的通用總線型單片機體系結(jié)構(gòu):</p><p>  ①設置了經(jīng)典、完善的8位單片機的并行總線結(jié)構(gòu);</p><p> ?、谕鈬δ軉卧蒀PU集中管理的模式;</p><p> ?、垠w現(xiàn)控制特性的地址空間和位操作方式;</p><p> ?、苤噶钕到y(tǒng)趨于豐富和完善,

12、并且增加了許多突出控制功能的指令。</p><p>  第三階段:向微控制器發(fā)展的階段。這一階段主要是為了滿足測控系統(tǒng)要求的各種外圍電路和接口電路,突出其職能化控制能力。</p><p>  第四階段:單片機的全面發(fā)展階段。由于很多大半導體和電氣廠商都開始參與單片機的研制和生產(chǎn)。隨著單片機在各個領(lǐng)域全面深入的發(fā)展和應用,逐漸出現(xiàn)了高速、低功耗、大尋址范圍、強運算能力的8位、16位、32位通

13、用型單片機以及小型廉價的專用型單片機,還有功能全面的片上單片機系統(tǒng)。[4]</p><p>  1.2 單片機的結(jié)構(gòu)特點</p><p>  單片機是微型機的一個重要分支,它在結(jié)構(gòu)上的最大特點是把CPU、存儲器、定時器和多種輸入/輸出接口電路集成在一塊超大規(guī)模的集成電路芯片上。</p><p>  單片機內(nèi)是一種在線式實時控制計算機,在線式就是現(xiàn)場控制,需要有較強

14、的抗干擾能力,較低的成本。</p><p>  單片機由于這種結(jié)構(gòu),所以具有很多顯著的特點。主要有控制能力強,抗干擾能力強、可靠性高,性能價格比高,低功耗、低電壓,擴展了多種串行口和系統(tǒng)擴展容易等特點。</p><p>  1.3 單片機的實際應用</p><p>  單片機廣泛應用于儀表儀器、家用電器、醫(yī)用設備、航空航天、專用設備的智能化管理及過程控制等領(lǐng)域,大致

15、可分為以下幾個范疇:</p><p> ?。?)在智能儀器儀表上的應用</p><p>  單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等特點,廣泛應用于儀器儀表中看,結(jié)合不同類型的傳感器,可以實現(xiàn)諸如電壓、功率、頻率、溫度、流量、速度、角度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數(shù)字化、智能化、微型化。且功能比采用電子和熟悉電路更加強大。例如精密的

16、測量設備(功率計、示波器和各種分析儀)。</p><p> ?。?)在工業(yè)控制中的應用</p><p>  用單片機可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。</p><p> ?。?)在家用電器中的應用</p><p>  可以這樣說,現(xiàn)在的家電基本上

17、都采用了單片機控制,從電飯煲、洗衣機、電冰箱、空調(diào)機、彩電、其他音響視頻器材、再到電子稱量設備,五花八門,無其不有,無所不在。</p><p>  (4)在計算機網(wǎng)絡和通信領(lǐng)域的應用</p><p>  現(xiàn)在的單片機普遍具有通信接口,可以很方便的與計算機實現(xiàn)數(shù)據(jù)通信,為計算機網(wǎng)絡和通信設備間的應用提供了極好的物質(zhì)條件,可以的通信設備基本上都實現(xiàn)了單片機智能控制,從手機,電話機、小型程控交換

18、機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線對講機等。</p><p> ?。?)單片機在醫(yī)用設備領(lǐng)域中的應用</p><p>  單片機在易用設備領(lǐng)域中的應用相當廣泛,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲波診斷設備及病床呼叫系統(tǒng)等等。此外單片機在工商、金融、科研、教育、國防、航空航天領(lǐng)域都有相當廣泛的應用。</p><

19、;p>  1.4 控制器AT89C51</p><p>  AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機,片內(nèi)含4k bytes的可反復擦寫的只讀程序存儲器(PEROM)和128 bytes的隨機存取數(shù) </p><p>  據(jù)存儲器(RAM),器件采用ATMEL公司的高密度,非易失性存儲技術(shù)生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(C

20、PU)和Flash存儲單元,功能強大AT89C51單片機可為您提供許多高性價比的應用場合,可靈活應用于各種控制領(lǐng)域[2]。</p><p><b>  主要特性:</b></p><p> ?、?與MCS-51產(chǎn)品指令系統(tǒng)完全兼容 </p><p> ?、?4K字節(jié)可重擦寫Flash閃速存儲器 </p><p>

21、 ?、?1000次擦寫周期 </p><p> ?、?全靜態(tài)操作:0Hz-24MHz </p><p> ?、?三級加密程序存儲器 </p><p> ?、?128×8字節(jié)內(nèi)部RAM </p><p>  ⑦ 32個可編程I/O口線</p><p> ?、?2個16位定時/計數(shù)器 </p>&l

22、t;p><b> ?、?5個中斷源 </b></p><p>  ⑩ 可編程串行UART通道 </p><p>  AT89C51單片機采用40Pin封裝的雙列直插 DIP結(jié)構(gòu),圖1.1是它的引腳配置圖。40個引腳中,正電源和地線兩根;4組8位I/O口,共32個引腳;時鐘電路引腳 XTAL1和 XTAL2;控制信號引腳包含:復位輸入端 RET,地址鎖存允許輸出/

23、編程脈沖輸入端 ALE/PROG,片外程序存儲器選通控制信號端 PSEN,內(nèi)外程序存儲器選擇/編程電源輸入端 EA/VPP。</p><p>  圖1.1 AT89C51單片機引腳圖</p><p><b>  2 接口技術(shù)</b></p><p><b>  2.1 鍵盤接口</b></p><

24、;p>  在單片機的應用系統(tǒng)中,通常都有人—機對話功能。它包含人對系統(tǒng)的狀態(tài)干預、數(shù)據(jù)的輸入以及應用系統(tǒng)向人報告運行狀態(tài)與運行結(jié)果等。鍵盤成為人—機聯(lián)系的必要手段,此時需要配置適當?shù)逆I盤輸入設備[5]。</p><p>  2.1.1 鍵盤工作原理</p><p>  鍵盤中的每個按鍵都是一個常開的開關(guān)電路,當所設置的功能鍵或數(shù)字鍵按下時,則處于閉合狀態(tài)。對于一組鍵或一個鍵盤,需要通

25、過接口電路與單片機相連,以便將鍵的開關(guān)狀態(tài)通知單片機。單片機可以采用查詢或中斷方式檢查有無鍵的輸入以及是哪個鍵被按下,并通過轉(zhuǎn)移指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完再返回到原始狀態(tài)。</p><p>  2.1.2 獨立式按鍵</p><p>  獨立式按鍵是指直接用I/O口線構(gòu)成的單個按鍵電路。每個獨立式按鍵單獨占有一根I/O口線,每根I/O口線的工作狀態(tài)都不會影響其他I/O口線的工作狀態(tài)

26、。</p><p>  2.1.3 行列式鍵盤</p><p>  獨立式按鍵電路每一個按鍵開關(guān)占用一根I/O口線。當按鍵數(shù)較多時,要占用較多的I/O口線。因此,在按鍵數(shù)大于8時,通常采用行列式(也稱“矩陣式”)鍵盤電路。</p><p>  最簡單的鍵盤,每個鍵對應I/O端口的一位,沒有什么鍵閉和時,各位均處于高電位。當有一個鍵按下時,就是對應位接地而成為低電位,

27、而其它位仍為高電位。這樣,CPU只要檢測到某一位為“0”,便可判別出對應鍵已經(jīng)按下。但是,當鍵盤上的鍵較多時,引線太多,占用的I/O端口也太多。比如,一個有64個鍵的鍵盤,采用這種方法來設計時,就需要64條連線和8個8位并行端口。所以,這種簡單結(jié)構(gòu)只用在僅由幾個鍵的小鍵盤中。通常使用的鍵盤結(jié)構(gòu)是矩陣式的,如圖2.1所示。設有m * n個鍵盤,那么,采用矩陣式結(jié)構(gòu)以后,便只要條引線就行了。比如,有m + n 個鍵,那么,只要用兩個并行端口

28、和16條引線便可以完成鍵盤的連接[6] 。</p><p><b>  圖2.1 矩陣鍵盤</b></p><p><b>  2.2 顯示器接口</b></p><p>  為了方便人們觀察和監(jiān)視單片機運行情況,通常需要利用顯示器作為單片機的輸出設備,以顯示單片機的鍵輸入值、中間信息以及運算結(jié)果等。</p>

29、<p>  在單片機應用系統(tǒng)中,常用的顯示器主要有LCD(液晶顯示器)和LED(發(fā)光二極管顯示器)。這兩種顯示器都具有耗電省,配置靈活,線路簡單,安裝方便,耐振動,壽命長等優(yōu)點。</p><p>  2.2.1 液晶顯示器</p><p>  液晶顯示器LCD(Liquid Crystal Display)是一種極低功耗的顯示器。由于其具有清晰度高,信息量大等特點,從而使得它越

30、來越廣泛地應用在小型儀器的顯示中。</p><p>  把LCD與驅(qū)動器組裝在儀器的部件的英文名稱為LCD Module,簡稱LCM。LCM一般分為三類,即段碼型液晶模塊、點陣字符液晶模塊和點陣圖形液晶模塊。</p><p>  2.2.2 LED點陣顯示屏</p><p>  LED點陣顯示屏的構(gòu)成型式有多種,其中典型的有兩種。一種把所需展示的廣告信息燒寫固化到E

31、PROM芯片內(nèi),能進行固定內(nèi)容的多幅漢字顯示,稱為單顯示型;另一種在機內(nèi)設置了字庫、程序庫,具有程序編制能力,能進行內(nèi)容可變的多幅漢字顯示,稱可編程序型[7]。</p><p>  目前,國內(nèi)的LED點陣顯示屏大部分是單顯示型,其顯示的內(nèi)容相對較少,顯示花樣較單一。一般在產(chǎn)品出廠時,顯示內(nèi)容就已寫入顯示屏控制系統(tǒng)中的EPROM芯片內(nèi),當需要更換顯示內(nèi)容時就非常困難,這樣使該類型的顯示屏使用范圍受到了限制。國內(nèi)的另

32、一種LED顯示屏——可編程序型LED顯示屏,雖然增加了顯示屏系統(tǒng)的編程能力,顯示內(nèi)容和顯示花樣都有所增加,但也存在著更換顯示內(nèi)容不便的缺點。隨著社會經(jīng)濟的迅速發(fā)展,如今的廣告牌都存在著顯示內(nèi)容豐富、信息量大、信息更換速度快等特點。因此傳統(tǒng)的LED顯示屏控制系統(tǒng)已經(jīng)越來越不能滿足現(xiàn)代廣告宣傳業(yè)的需要。而利用PC機通信技術(shù)控制LED顯示屏,則具有顯示內(nèi)容豐富,信息更換靈活等優(yōu)點[7]。</p><p><b&g

33、t; ?、?8*8點陣</b></p><p>  如圖2.2和圖2.3是8*8點陣原理圖和實物圖</p><p>  圖2.2 8*8點陣原理圖</p><p>  圖2.3為8×8單基色點陣的結(jié)構(gòu)圖,從內(nèi)部結(jié)構(gòu)可以看出8×8點陣共需要64個發(fā)光二極管,且每個發(fā)光二極管是放置在各行和列的交叉點上。當對應的某一列置高電</p

34、><p>  圖2.3 8*8點陣實物圖</p><p>  平,另一列置低電平時,則在該行和列的交叉點上相應的二極管就亮。</p><p>  圖10為8×8點陣LED外觀及引腳圖,其等效電路如圖9所示,只要其對應的X、Y軸順向偏壓,即可使LED發(fā)亮。例如如果想使左上角LED點亮,則Y0=1,X0=0即可。應用時限流電阻可以放在X軸或Y軸[8]。</

35、p><p> ?、?*8點陣顯示原理</p><p>  從理論上說,不論顯示圖形還是文字,只要控制與組成這些圖形或文字的各個點所在的位置相對應的LED器件發(fā)光,就可以得到我們想要的顯示結(jié)果,這種同時控制各個發(fā)光點亮滅的方法稱為靜態(tài)驅(qū)動顯示方式。8*8的點陣共有64個發(fā)光二極管,顯然單片機沒有這么多的端口,如果我采用鎖存器來擴展端口,按8位的鎖存器來計算,8*8的點陣需要64/8=8個鎖存器

36、。這個數(shù)字很龐大,因為我們僅僅是8*8的點陣,在實際應用中的顯示屏往往要大得多,這樣在鎖存器上花的成本將是一個很龐大的數(shù)字。因此在實際應用中的顯示屏幾乎都不采用這種設計,而采用另外一種稱為動態(tài)掃描的顯示方法[9]。</p><p>  動態(tài)掃描的意思簡單地說就是逐行輪流點亮,這樣掃描驅(qū)動電路就可以實現(xiàn)多行(比如8行)的同名列共用一套驅(qū)動器。具體就8*8的點陣來說,把所有同1行的發(fā)光管的陽極連在一起,把所有同1列的

37、發(fā)光管的陰極連在一起(共陽極的接法),先送出對應第一行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第1行使其燃亮一定時間,然后熄滅;再送出第二行的數(shù)據(jù)并鎖存,然后選通第2行使其燃亮相同的時間,然后熄滅;以此類推,第8行之后,又重新燃亮第1行,反復輪回。當這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,就能夠看到顯示屏上穩(wěn)定的圖形了。</p><p>  采用掃描方式進行顯示時,每一行有一個行驅(qū)動器,各行的同名

38、列共用一個驅(qū)動器。顯示數(shù)據(jù)通常存儲在單片機的存儲器中,按8位一個字節(jié)的形式順序排放。顯示時要把一行中各列的數(shù)據(jù)都傳送到相應的列驅(qū)動器上去,這就存在一個顯示數(shù)據(jù)傳輸?shù)膯栴}。從控制電路到列驅(qū)動器的數(shù)據(jù)傳輸可以采用并列方式或串行方式。顯然,采用并行方式時,從控制電路到列驅(qū)動器的線路數(shù)量大,相應的硬件數(shù)目多。當列數(shù)很多時,并列傳輸?shù)姆桨甘遣豢扇〉腫10]。</p><p>  采用串行傳輸?shù)姆椒?,控制電路可以只用一根信?/p>

39、線,將列數(shù)據(jù)一位一位傳往列驅(qū)動器,在硬件方面無疑是十分經(jīng)濟的。但是,串行傳輸過程較長,數(shù)據(jù)按順序一位一位地輸出給列驅(qū)動器,只有當一行的各列數(shù)據(jù)都以傳輸?shù)轿恢螅@一行的各列才能并行地進行顯示。這樣,對于一行的顯示過程就可以分解成列數(shù)據(jù)準備(傳輸)和列數(shù)據(jù)顯示兩部分。對于串行傳輸方式來說,列數(shù)據(jù)準備時間可能相當長,在行掃描周期確定的情況下留給行顯示的時間就太少了,以致影響到LED的亮度。</p><p>  解決串

40、行傳輸中列數(shù)據(jù)準備和列數(shù)據(jù)顯示的時間矛盾問題,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時,傳送下一列數(shù)據(jù)。為了達到重疊處理的目的,列數(shù)據(jù)的顯示就需要具有所存功能。經(jīng)過上述分析,就可以歸納出列驅(qū)動器電路應具有的功能。對于列數(shù)據(jù)準備來說,它應能實現(xiàn)串入并處的移位功能;對于列數(shù)據(jù)顯示來說,應具有并行鎖存的功能。這樣,本行已準備好的數(shù)據(jù)打入并行鎖存器進行顯示時,串并移位寄存器就可以準備下一行的列數(shù)據(jù),而不會影響本行的顯示。圖2.4為顯示

41、屏電路實現(xiàn)的結(jié)構(gòu)框圖:</p><p>  圖2.4 顯示屏系統(tǒng)框圖</p><p><b>  3 程序設計語言</b></p><p>  單片機能執(zhí)行的程序可以用很多種語言編寫。從語言結(jié)構(gòu)及其與單片機的關(guān)系兩方面可分為三大類:分別是機器語言、匯編語言和高級語言。</p><p><b>  3.1機器語言

42、</b></p><p>  機器語言是一種用二進制代碼“0”和“1”表示指令和數(shù)據(jù) 的最原始的程序設計語言。由于計算機只能識別二進制代碼,因此,這種語言與計算機的關(guān)系最為直接,計算機能夠快速識別并立即執(zhí)行,響應速度最快。但這種語言編寫程序非常繁瑣、費時,且不易看懂,不便記憶,容易出錯。</p><p><b>  3.2 匯編語言</b></p&g

43、t;<p>  匯編語言是一種用助記符來表示的面向機器的程序設計語言。不同的機器所使用的匯編語言一般是不同的。這種語言比機器語言更加直觀、易懂、易用,且便于記憶。但是由于不同機器的匯編語言不同,這種語言有一定的局限性,移植性差。</p><p><b>  3.3高級語言</b></p><p>  高級語言是一種面向過程且獨立于計算機硬件結(jié)構(gòu)的通用計算

44、機語言。目前在單片機應用最廣泛的是C語言。</p><p>  3.3.1 單片機C語言的特點</p><p> ?、賹纹瑱C的指令系統(tǒng)不要求了解,僅要求對單片機的存儲結(jié)構(gòu)有初步的了解。</p><p> ?、诩拇嫫鞯姆峙?、不同存儲器的尋址及數(shù)據(jù)類型等細節(jié)可由編譯器管理。</p><p> ?、鄢绦蛴幸?guī)范的結(jié)構(gòu),可分為不同的函數(shù),可使程序結(jié)構(gòu)

45、化。</p><p> ?、荜P(guān)鍵字及運算函數(shù)可用近似人的思維過程方式使用。</p><p> ?、菥幊碳俺绦蛘{(diào)試時間顯著縮短,從而提高效率。</p><p> ?、尢峁┑膸彀S多標準子程序,具有較強的數(shù)據(jù)處理能力等。</p><p>  3.3.2單片機C語言使用的編程軟件</p><p>  3.3.2.1編程軟件

46、</p><p>  Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WI

47、NXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。</p><p>  3.3.2.2仿真軟件</p><p>  Proteus 是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成

48、電路。</p><p>  4 基于單片機的病床呼叫系統(tǒng)的設計實現(xiàn)</p><p><b>  4.1系統(tǒng)總體設計</b></p><p><b>  4.1.1功能要求</b></p><p>  本課題主攻方向是使系統(tǒng)實現(xiàn)以下目的:</p><p> ?、偃我徊》浚ü?6

49、張)呼叫,醫(yī)護值班室馬上能響應并顯示病房號;</p><p><b> ?、陲@示病房床號;</b></p><p> ?、廴粲卸鄠€病床呼叫就循環(huán)顯示;</p><p> ?、芴幚硗戤吅笄宄涗?;</p><p>  ⑤顯示器不重復顯示按一次以上的病床號</p><p><b>  4.1

50、.2設計方案</b></p><p>  用8051自身接口實現(xiàn)數(shù)碼管靜態(tài)顯示和鍵盤掃描,使用8051單片微機外加作地址鎖存用的四塊三態(tài)鎖存器74LS373芯片和一塊74LS138芯片可構(gòu)成一個完整的最小微機電路。以此為基礎(chǔ),在智能裝置中若要配置多位數(shù)碼管顯示器,以及m行n列矩陣鍵盤的話,可以不擴展I/O芯片而由8051自身I/O口,實現(xiàn)上述功能, 即用P0口的八個端口作為LED的段選,用P2口的高三

51、位連接一個三八譯碼器74LS138 作為四個LED的片選.用P1口和P2口的低五位做鍵盤電路的接口。</p><p>  4.1.3 總體結(jié)構(gòu)框圖</p><p>  本設計是基于AT89C51單片機設計的病房呼叫系統(tǒng)設計,該系統(tǒng)就是以Atmel公司的AT89C51單片機作為主控器,包括鍵盤輸入電路,顯示電路,以及晶振復位電路等來實現(xiàn)病房呼叫系統(tǒng)。</p><p>

52、  圖4.1病房呼叫系統(tǒng)結(jié)構(gòu)框圖</p><p>  4.2 系統(tǒng)硬件設計</p><p>  4.2.1硬件構(gòu)成示意圖</p><p>  圖4.2 硬件構(gòu)成示意圖</p><p>  4.2.2 外圍電路設計</p><p>  4.2.2.1 控制器AT89C51</p><p><

53、b>  復位電路:</b></p><p>  RST引腳是復位信號輸入端,高電平有效。采用上電加按鈕復位,因為本系統(tǒng)設計考慮到該系統(tǒng)比較重要,所以除了采用上電復位的方式外,應該還有按鈕復位備用復位方式以防止系統(tǒng)死機時能。如下圖4.3所示:</p><p>  圖4.3上電復位和按鍵復位 </p><p><b>  時鐘電路:</

54、b></p><p>  時鐘是時序的基礎(chǔ),AT89C51核片內(nèi)由一個反相放大器構(gòu)成振蕩器,可以由它產(chǎn)生時鐘,時鐘可以由兩種方式產(chǎn)生內(nèi)部方式和外部方式。本系統(tǒng)采用內(nèi)部方式,在XTAL1和XTAL2端外接石英晶體作為定時元件,內(nèi)部反相放大器自激振蕩,產(chǎn)生時鐘。時鐘發(fā)生器對振蕩脈沖二分頻。電容采用30pF電容。如下圖4.4所示:</p><p>  圖4.4內(nèi)部時鐘電路</p>

55、;<p>  4.2.2.2 鍵盤電路設計</p><p><b>  1、 鍵的識別</b></p><p>  為了識別鍵盤上的閉合鍵,通常采用兩種方法,一種稱為行掃描法,另一種稱為行反轉(zhuǎn)法。</p><p><b>  行掃描法的原理 :</b></p><p>  行掃描法識別

56、閉合鍵的原理如下:先使第0行接地,其余行為高電平,然后看第0行是否有鍵閉合,這是通過檢查列線電位來實現(xiàn)的,即在第0行接地時,看是否有條列線變成低電平。如果有某條列線變?yōu)榈碗娖?,則表示第0行和此列線相交位置上的鍵被按下;如果沒有任何一條列線為低電平,則說明第0行上沒有鍵被按下。此后,再將第1行接地,,然后檢測列線中是否有變?yōu)榈碗娖降木€。如此往下逐行掃描,直到最后一行。在掃描過程中,當發(fā)現(xiàn)某一行有鍵閉合時,也就是列線輸入中有一位為0時,便在

57、掃描中途退出,而將輸入值進行移位,從而確定閉合鍵所在的列線位置。根據(jù)行線位置和列線位置便能再掃描法來確定具體位置。將行線和一個并行接口相接,CPU每次使并行輸出接口的某一位為0,便相當于將某一行線接地,而其他位為1,則相當于使其他行線處于高電平。為了檢查列線上的電位,將列線和一個并行輸入輸出口相接,CPU只要讀取輸入輸出口中的數(shù)據(jù),就可以設法判別出第幾號鍵被按下[11]。</p><p>  從上面的原理中知道,

58、程控掃描法是由程序控制鍵掃描的方法。程控掃描的任務是:</p><p> ?、偈紫扰袛嗍欠裼墟I按下。其方法是使所有的行輸出均為低電平,然后從端口A讀入列值 。如果沒有鍵按下,則讀入的列值為FFH;如果有鍵按下,則讀入的列值不為FFH。</p><p> ?、谌コI抖動。若有鍵按下,則延時5~10ms,再一次判斷有無鍵按下,如果此時仍有鍵按下,則認為鍵盤上有一個鍵處于穩(wěn)定閉合期。</p

59、><p> ?、廴粲墟I閉合,則求出閉合鍵的鍵值. 求鍵值的方法是對鍵盤逐行掃描。如圖4.5是行掃描法:</p><p>  圖4.5行掃描法的流程圖 </p><p>  (2)行反轉(zhuǎn)法的原理[12]。</p><p>  行反轉(zhuǎn)法也是識別閉合鍵的常用方法,它的原理如下所述。這了敘述方便,以4×4=16鍵的鍵盤為例。圖4.6是行反轉(zhuǎn)法

60、的工作示意圖:</p><p>  圖 4.6 行反轉(zhuǎn)法連接圖</p><p>  從圖中可以看到,用行反轉(zhuǎn)法識別閉合鍵時,要將行線接一個并行口,先讓它工作為輸出方式,將列線接到一個并行口,先讓它工作在輸出方式。程序使CPU通過輸出端口往各行線上全部送低電平,然后讀入列線的值。如果此時有某一個鍵被按下,則必定會使某一列線值為0,然后,程序再對兩個并行端口進行方式設置,使接行線的并行端口工

61、作在輸出方式,而使接列線的并行端口工作在輸出方式,并且將剛才讀得的列線值從所接的并行端口輸出,再讀取行線的輸入值,那么,在閉合鍵所在的行線上的值必定為0。這樣,當一個鍵被按下時,必定可以讀得一對惟一的行值和列值。在鍵盤設計時,除了以鍵碼的識別以外,還有抖動問題需要解決[13]。</p><p>  有軟件方法可以很容易解決抖動問題,這就是通過延遲來等待抖動消失,這之后,再讀入鍵碼。</p><

62、p>  4.2.2.3 顯示電路設計</p><p>  在LED的點陣顯示中,已經(jīng)詳細介紹了顯示的原理,此外還需要知道顯示驅(qū)動程序。顯示驅(qū)動程序在進入中斷后首先要對定時器T0重新賦初值,以保證顯示屏刷新率的穩(wěn)定,1/16掃描顯示屏的刷新率(幀頻)計算公式如下:</p><p>  刷頻率(幀頻)=1/16×T0溢出率</p><p>  =1/

63、16×f/12(65536-t) </p><p>  其中f位晶振頻率,t為定時器T0初值(工作在16位定時器模式)。</p><p>  然后顯示驅(qū)動程序查詢當前燃亮的行號,從顯示緩存區(qū)內(nèi)讀取下一行的顯示數(shù)據(jù),并通過串口發(fā)送給移位寄存器。為消除在切換行顯示數(shù)據(jù)的時候產(chǎn)生拖尾現(xiàn)象,驅(qū)動程序先要關(guān)閉顯示屏,即消隱,等顯示數(shù)據(jù)打入輸出鎖存器并鎖存,然后再輸出新的行號,重新打開顯

64、示。圖4.7為顯示驅(qū)動程序(顯示屏掃描函數(shù))流程圖:</p><p>  圖4.7 顯示驅(qū)動流程圖 圖4.8 控制按鍵</p><p>  4.2.2.4 控制電路設計</p><p>  三個控制按鍵分別接p3.2 ,p3.3,p3.4口(如圖4.8所示),當有呼叫發(fā)出時,值班室人員收到相應信息后,可按下“響應按鈕”,單片機執(zhí)行中斷程序

65、。</p><p>  4.2.2.5 示警電路</p><p>  報警電路由一個led燈與p3.1口相接,當有鍵按下時,有信號輸入,燈亮示警,提醒值班人員有病人出現(xiàn)緊急情況。</p><p>  4.3 系統(tǒng)軟件設計</p><p>  4.3.1 設計的軟件環(huán)境簡介</p><p>  4.3.1.1 Kei

66、l c</p><p>  對于AT89C51的控制設計,以Keil c軟件編程環(huán)境,以proteus軟件為電路仿真設計環(huán)境。二者的結(jié)合為該系統(tǒng)的設計提供有利條件。Keil c軟件界面,如圖4.9所示:</p><p>  圖4.9 Keil_c軟件界面</p><p>  該軟件是一款集編程和仿真于一體的軟件,它支持匯編、C語言及二者的混合編程[14]。<

67、/p><p>  4.3.1.2 Proteus ISIS</p><p>  Proteus ISIS是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。</p><p><b>  該軟件的特點是:</b></p><p> 

68、 (1)全部滿足我們提出的單片機軟件仿真系統(tǒng)的標準,并在同類產(chǎn)品中具有明顯的優(yōu)勢。</p><p> ?。?)具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS-232動態(tài)仿真、I2 C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等[13]。</p><p> ?。?)目前支持的單片機類型有:ARM7系列、6800

69、0系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。</p><p>  (4)支持大量的存儲器和外圍芯片。</p><p>  總之,該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大 ,可仿真ARM、51、AVR、PIC[15]。</p><p>  Proteus ISIS

70、的工作界面是一種標準的Windows界面,如圖所示,包括:標題欄、主菜單、標準工具欄、繪圖工具欄、狀態(tài)欄、對象選擇按鈕、預覽對象方位控制按鈕、仿真進程控制按鈕、預覽窗口、對象選擇器窗口、圖形編輯窗口。</p><p>  圖4.10 電路仿真界面</p><p>  運行Proteus程序后,進入軟件的主界面。通過左側(cè)工具欄中的P(從庫中選擇元件命令)命令,在Pick Devices 左

71、側(cè)窗口中選擇所需元件的關(guān)鍵字,然后放置元件并調(diào)整方向和位置以及參數(shù)設置,最后進行連線[16](圖4.10 電路仿真界面)。</p><p>  4.3.2 系統(tǒng)程序設計</p><p>  4.3.2.1 系統(tǒng)主程序設計的流程如圖4.11所示:</p><p>  圖4.11 系統(tǒng)主程序設計的流程</p><p><b>  主程

72、序程序描述:</b></p><p>  首先對各存儲單元初始化,設定定時初值,接著判斷清零鍵,看是否按下,若按下,則清零,然后繼續(xù)掃描鍵盤,如掃描到鍵盤有鍵按下,則調(diào)用計數(shù)顯示子程序,循環(huán)顯示病床號時,要判斷標志位是否為1,若為1,則表示已經(jīng)按下,則不響應,如為0,則調(diào)用循環(huán)顯示病床號子程序,循環(huán)顯示病床號,接著定時一秒。最后,清除定時一秒,準備下一次的定時。 </p><p&g

73、t;  4.3.2.2 顯示電路流程圖</p><p>  圖4.12 按鍵總數(shù)顯示程序流程圖 圖4.13按鍵循環(huán)顯示子程序</p><p><b>  顯示程序描述</b></p><p> ?。?)按下鍵總數(shù)顯示子程序描述(圖 4.12 按鍵總數(shù)顯示程序流程圖)</p><

74、;p>  把按鍵數(shù)存儲單總元(COUNTER)的值經(jīng)過BCD調(diào)整后十位和個位分別送(7AH)(7BH),調(diào)用顯示子程序顯示按鍵總數(shù)。</p><p> ?。?)循環(huán)顯示病床號子程序描述(圖 4.13按鍵循環(huán)顯示子程序)</p><p>  首先判斷標志位是否為0,若為0,則表對示應的存儲單元里沒有值存入,則再檢測下一個存儲單元標志位是否為0,直到檢測到為1.如為1,則把值存入(BED

75、_BOUNTER)中,接著進行BCD調(diào)整為十進制,把十位和個位分別送入(BEDCODE_1)和(BEDCODE_2)中,然后調(diào)用顯示子程序,循環(huán)顯示病床號。</p><p>  4.4系統(tǒng)的調(diào)試與結(jié)果</p><p>  系統(tǒng)調(diào)試工作是系統(tǒng)開發(fā)過程中必不可少的一個過程,一個完整的控制系統(tǒng)調(diào)試包含控制系統(tǒng)的硬件聯(lián)調(diào)、軟件聯(lián)調(diào)、系統(tǒng)仿真、仿真燒錄和現(xiàn)場安裝調(diào)試等幾個環(huán)節(jié)。在系統(tǒng)設計組裝完成后,

76、首先是進行實驗室條件下的系統(tǒng)硬件調(diào)試,調(diào)試成功后,有了硬件的保證,就容易發(fā)現(xiàn)軟件的漏洞,進而促進改進和完善。所有的調(diào)試通過后,要進行現(xiàn)場運行并能持續(xù)一定的時間,待其中未發(fā)現(xiàn)故障后,方可驗收合格,才算完成了整個系統(tǒng)的設計工作</p><p>  4.4.1調(diào)試界面顯示</p><p>  下面是我們通過Proteus軟件編程,使對應的軟件仿真模塊變成可視化的控制界面: </p>

77、<p>  圖4.14 系統(tǒng)初始化界面 圖4.15 按下8鍵后界面</p><p>  圖4.16 按下3鍵后顯示界面 圖4.17 按下OK鍵后顯示界面</p><p>  4.4.2 結(jié)果分析</p><p>  啟動電源,顯示屏顯示0000,在按下8號鍵時

78、,界下部分顯示病床(即8號病床呼叫);界面上部分代表共有一個病床按下,在起始位置顯示(循環(huán)顯示);如果現(xiàn)在不按清零鍵,再按下3號鍵時,按鍵號循環(huán)顯示,可以看出該系統(tǒng)具有記憶功能,以至于不會忽略之前按下的按鍵;圖5.4反映了控制電路的可行性,按up鍵向后選一房間(呼叫病房),down向前選一房間(呼叫病房),ok則去房間.。綜上所述,本系統(tǒng)實現(xiàn)了主要功能:顯示病床號,亮報警提醒值班人員,若有多個病床同時呼叫,則循環(huán)顯示病床號,確保性息不丟

79、失,待值班人員處理呼叫信息。通過PROTEUS軟件仿真,能達到上述結(jié)論,滿足課題目目的,達到要求。</p><p><b>  結(jié)論</b></p><p>  至此,此系統(tǒng)的詳細設計及過程已經(jīng)結(jié)束。</p><p>  在設計的過程中遇到了很多問題,發(fā)現(xiàn)了自己的不足之處,有很多沒有學習,如Proteus仿真知識及操作,還有單片機的C語言編程;

80、有些軟件掌握得不夠牢固,比如說wave仿真不熟練;通過此次學習,進一步加強了我的理解,同時提高了我獨立自學的能力。 </p><p>  整個設計過程中,老師詳細的指導,同學的幫助,以及校圖書館的資料給了我很大的幫助。此次設計讓我從中學到很多東西。雖然中間遇到很多困難,但都對于我是一次很好的鍛煉。設計以后,才更加深刻感受到自己的學習只是理論部分,而且很多時候不能付諸實踐。這次設計能夠讓我從實踐中重新學習理論知識,

81、對我今后的工作和學習有了很多提高。</p><p>  但是由于本人水平有限,整個設計仍有很多不足之處,如程序不夠完善、靈活,顯示可以采用液晶LCD模塊,還有可以采用無線NRF2401射頻模塊及其無線擴展功能等等。完善后將會進一步提高設計的穩(wěn)定性和普適性。</p><p>  最后,在指導老師和同組同學的身上我學得到很多實用的知識,特別感謝指導老師給予的幫助,還用同學之間的資源共享。再次表

82、示感謝!</p><p><b>  致謝</b></p><p>  時光匆匆,大學三年已經(jīng)接近尾聲。這三年給我留下很多美好的記憶,同時接受很多優(yōu)秀老師的教育,和很多同學的幫助。在此論文完成之際,我要向這三年來幫助我的老師、同學表示由衷的感謝!</p><p>  這幾個月的畢業(yè)設計,充滿了忙碌,也感到學習的充實。從拿到畢業(yè)設計的題目,之后便

83、開始整理材料,這期間,在圖書館里找到很多有關(guān)書籍。然后開始了一系列的整體方案的設計,并投入選擇器材和方案的制定。最后開始整體的實驗,雖然其中經(jīng)歷很多的失敗。在老師、同學的幫助下,我很快克服了困難。設計的系統(tǒng)雖不是那么完善,但也是從知識到實踐的轉(zhuǎn)換。我從中學到了怎樣獨立地思考發(fā)現(xiàn)問題、解決問題和進一步完善提高的能力。時光短暫,但給我留下很多深刻的印象,這是第一次獨立自主的做設計。以前只注重理論的學習,卻忽略了實踐。通過此次設計,對我今后的

84、學習和工作必將有很大的幫助。</p><p>  在此,謹向所有幫助我的老師、同學表示衷心的感謝和敬意!</p><p><b>  參考文獻</b></p><p>  [1] 王意崗.病房呼叫系統(tǒng)[J].建筑電氣,2004(23):179-182.</p><p>  [2] 朱艷華,田行軍,李夏青.基于PL3105

85、的病床呼叫系統(tǒng)設計[J].北京石油化工學院學報,2009,17(2):40-43.</p><p>  [3] 鄔春明,王艷茹.基于低壓線載波技術(shù)的病床呼叫系統(tǒng)[J].電子技術(shù)應用,2005,31(9):60-63</p><p>  [4] 何立民.《單片機初級教程-單片機基礎(chǔ)》[M].北京:北京航空航天大學出版社,2006,82(1):2-3</p><p> 

86、 [5] 李朝青.單片機原理及接口技術(shù)[M].北京:北京航空航天大學出版社,2005</p><p>  [6 ] 康華光《電子技術(shù)基礎(chǔ)》[M]. 北京:高等教育出版社, 2000:17-23</p><p>  [7]康華光《電子技術(shù)基礎(chǔ)(模擬部分)》[M]. 北京:高等教育出版社, 1999:112-119</p><p>  [8]丁元杰.《單片微機原理及

87、應用》[M].北京:機械工業(yè)出版社, 1996:256-276</p><p>  [9]何立民.《單片機應用技術(shù)選編》[M].北京:北京:航空航天大學出版社, 1996.218~224</p><p>  [10]張培仁等.《MCS-51單片機原理與應用》[M]. 北京.清華大學出版社, 2003:130~145</p><p>  [11]李伯成《單片機及嵌入

88、式系統(tǒng)》[M]. 北京:清華大學出版社, 2005:337-346</p><p>  [12]肖金球《單片機原理與接口技術(shù)》[M]. 北京:清華大學出版社, 2004:153-159</p><p>  [13]王環(huán),張亞寧 《單片機程序設計實例》[M] 北京:清華大學出版社, 2003:520-524</p><p>  [14]治剛.《單片機應用技術(shù)與實訓

89、》[M]. 北京:清華大學出版社, 2004:130-133</p><p>  [15]胡漢才.《單片機原理及接口技術(shù)》[M]. 北京:清華大學出版社, 1995:111-123</p><p>  [16]徐淑華等.《單片機微機原理及應用》[M]. 哈爾濱工業(yè)大學出版社, 1994:336-351</p><p><b>  .</b>&l

90、t;/p><p><b>  附錄</b></p><p><b>  附錄A:原理圖</b></p><p><b>  附錄B:源程序</b></p><p>  #include<reg51.h> //51系統(tǒng)端口定義h文件</p><p

91、>  #include "dianzhen.h" //點陣h文件</p><p>  #include"keyboard.h" //鍵盤處理h文件</p><p>  uchar ys=0,num=0,N=0,d=0,q=0; //num為當前顯示值,N為總顯示值</p><p>  /*************

92、*****************主函數(shù)**********************************/</p><p>  void main()</p><p>  { uchar j;</p><p>  TMOD=0x10;</p><p>  TH0=(65536-45000)/256;//設置50毫秒定時</p&

93、gt;<p>  TL0=(65536-45000)%256;</p><p><b>  TR0=1;</b></p><p><b>  ET0=1; </b></p><p><b>  EA=1;</b></p><p><b>  P3_1=0

94、;</b></p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  if(P3_2==0) </p><p><b>  { </b></p><p>  if(N>q) q+

95、+;</p><p>  while(P3_2==0);</p><p>  P3_1=1; //當P3_2按鍵彈起的后,P3_1口賦高電平</p><p>  delay10ms(10);//延時子程序</p><p>  P3_1=0; //返回原始界面</p><p><b>  } <

96、/b></p><p>  if(P3_3==0) //當P3_3按鍵按下就執(zhí)行病房號的顯示</p><p><b>  { </b></p><p>  if(q>0) q--;</p><p>  while(P3_3==0);</p><p><b>  P3_

97、1=1;</b></p><p>  delay10ms(10);</p><p><b>  P3_1=0;</b></p><p><b>  } </b></p><p>  if(P3_4==0) </p><p><b>  {</b

98、></p><p><b>  N--;</b></p><p><b>  if(N>0)</b></p><p><b>  {</b></p><p>  for(j=q;j<N;j++) </p><p>  b[j]=b[j+

99、1];</p><p><b>  b[N]=0;</b></p><p><b>  }</b></p><p><b>  Else</b></p><p><b>  b[0]=0; </b></p><p>  while(

100、P3_4==0);</p><p><b>  q=0;</b></p><p><b>  P3_1=1;</b></p><p>  delay10ms(10);</p><p><b>  P3_1=0;</b></p><p><b>

101、  }</b></p><p>  keyboard();</p><p>  if(m!=key) </p><p>  { m=key;</p><p><b>  b[N]=key;</b></p><p><b>  N++;</b></p>

102、;<p><b>  P3_1=1;</b></p><p>  delay10ms(10);</p><p><b>  P3_1=0;</b></p><p><b>  }</b></p><p><b>  }</b></p&g

103、t;<p><b>  } </b></p><p>  /************************中斷服務子程序******************************/</p><p>  void timer0() interrupt 1 using 1//T0中斷</p><p><b>  {

104、</b></p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%256;</p><p>  if(d==0) </p><p>  display1(N,b[num],b[q]);</p><p><b>  ys++;<

105、;/b></p><p>  if(ys==100) </p><p><b>  { </b></p><p><b>  num++; </b></p><p><b>  d=1 ;</b></p><p><b>  }<

106、/b></p><p>  else if(ys>105) </p><p><b>  {</b></p><p><b>  d=0; </b></p><p><b>  ys=0;</b></p><p><b>  }

107、</b></p><p>  if(num>N) </p><p>  num=0;//病房號數(shù)清零</p><p><b>  }</b></p><p>  /*********************************點陣子程序***************************/<

108、;/p><p>  #include <reg51.h></p><p>  #include <absacc.h></p><p>  #include "zimo.h"</p><p>  uchar b[10];</p><p>  /*******************

109、*********延時子程序********************************/</p><p>  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

110、>0;i--) </p><p>  F or(j=248;j>0;j--); </p><p><b>  } </b></p><p><b>  }</b></p><p>  /******************************點陣顯示子程序************

111、**************/</p><p>  void display1(uchar x,uchar 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

112、/10; y[1]=x%10;</p><p>  z[0]=p/10;z[1]=p%10;</p><p>  if(s<=0|s>16)</p><p>  { for(i=0;i<16;i++,n++)</p><p><b>  {</b></p><p><b&g

113、t;  lie=i;</b></p><p>  if(n==8) {m=1;j=0;}</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>

114、;  hang2=shuzi2[z[m]][j];</p><p>  hang3=shuzi2[z[m]][j+1];</p><p>  hang0=0x00; //清屏</p><p>  hang1=0x00;</p><p>  hang2=0x00;</p><p>  hang3=0x00;&l

115、t;/p><p><b>  }</b></p><p><b>  j+=2;</b></p><p><b>  }</b></p><p><b>  j=0;</b></p><p>  for(i=16;i<64;i++

116、)</p><p><b>  {</b></p><p><b>  lie=i;</b></p><p>  for(k=0;k<1;k++)</p><p>  { hang0=ziku1[j];// 第0行賦值</p><p>  hang1=ziku1[j+

117、1]; //第1行賦值</p><p>  hang2=ziku2[j];// /第2行賦值</p><p>  hang3=ziku2[j+1];// /第3行賦值

118、 </p><p>  hang0=0x00; //清屏</p><p>  hang1=0x00;</p><p>  hang2=0x00; //清屏</p>

119、<p>  hang3=0x00;</p><p><b>  }</b></p><p><b>  j+=2;</b></p><p><b>  }</b></p><p><b>  }</b></p><p> 

120、 else {for(i=0;i<16;i++,n++)</p><p>  { lie=i;</p><p>  if(n==8) {m=1;j=0;}</p><p>  for(k=0;k<1;k++)</p><p><b>  {</b></p><p>  hang0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論