【正文】
,設(shè)計(jì)精簡(jiǎn),使用簡(jiǎn)單易懂。全書共分10章,主要內(nèi)容包括:計(jì)算機(jī)基礎(chǔ)、半導(dǎo)體存儲(chǔ)器、80C51/89C51單片機(jī)的結(jié)構(gòu)和工作原理、指令系統(tǒng)、匯編語言程序設(shè)計(jì)、輸入/輸出和中斷、定時(shí)計(jì)數(shù)技術(shù)、串行通信、單片機(jī)系統(tǒng)擴(kuò)展及單片機(jī)開發(fā)應(yīng)用系統(tǒng)設(shè)計(jì)。本書內(nèi)容包括:?jiǎn)纹瑱C(jī)硬件系統(tǒng)、單片機(jī)開發(fā)系統(tǒng)、指令系統(tǒng)、程序設(shè)計(jì)、定時(shí)與中斷、系統(tǒng)擴(kuò)展、接口技術(shù)、串行口通信等。做完這一步,說明病床呼叫控制系統(tǒng)已調(diào)試完畢,本設(shè)計(jì)系統(tǒng)成功!5 完成情況I、 完成了病床呼叫控制系統(tǒng)實(shí)物的安裝與調(diào)試II、完成了病床呼叫控制系統(tǒng)對(duì)應(yīng)論文的撰寫The Sickbed Call Control System in Hospital Based onSingle Chip MicroputerAuthor: Li Zhaoming 03Xin3Instructs teacher: Luo Ping Lecturer(Huizhou electronic science department,Guangdong,Huizhou,516007)AbstractThis article narrated the sickbed call control system in hospital based on single chip microputer. It can monitor 64 sickbeds at the same time, has the function that display the number of calling sickbed and sound alarm. It is designed using the hardware, the software unifies the realization. This sickbed call control system is posed of the sickbed number display circuit, the sound alarm circuit, the keyboard control circuit, the monolithic integrated circuit auxiliary circuit and the correlation supports software. The software design has utilized the modular programming thought, carries on the design separately to each function, made the procedure bee simplifies.KeywordSingle Chip MicroputerDigital Display Tube Keyboard Control CircuitBuzzer致謝經(jīng)過近三個(gè)來月的刻苦努力,本人順利完成了這次的畢業(yè)設(shè)計(jì)與畢業(yè)論文。系統(tǒng)上電后自動(dòng)進(jìn)入到呼叫開關(guān)電路的監(jiān)控狀態(tài);每當(dāng)按下鍵盤的一個(gè)呼叫開關(guān),系統(tǒng)通過分析處理,能正確地顯示出該按鈕的鍵值時(shí),表明鍵盤硬件電路連接正確,呼叫開關(guān)掃描及鍵值處理程序基本正常。 系統(tǒng)軟件的燒錄在軟件調(diào)試中,使用當(dāng)今流行的功能強(qiáng)大且普遍的WAVE 6000軟件\進(jìn)行軟件編譯與調(diào)試,使用Microcontroller ISP Software及其配套的單片機(jī)對(duì)程序進(jìn)行燒錄。(2) 短路檢測(cè)電路焊接完成后,必須進(jìn)行短路檢測(cè)。鍵值處理程序的流程圖如圖335所示。由于按顯示復(fù)位按鈕具有隨機(jī)性,所以,每次進(jìn)入中斷程序后,必須要先對(duì)中斷返回地址進(jìn)行保護(hù),通常采用修改中斷返回點(diǎn)的辦法,即執(zhí)行中斷程序時(shí),先將中斷返回點(diǎn)壓入堆棧,再通過執(zhí)行RETI指令彈出棧中內(nèi)容到PC,彈出的即為修改后的地址,從而返回到主程序中用所希望的地址執(zhí)行。圖332為床號(hào)顯示程序的流程圖。模塊化結(jié)構(gòu)程序的設(shè)計(jì),可以使系統(tǒng)控制軟件便于調(diào)試與優(yōu)化,也使讀者更好地理解和閱讀系統(tǒng)的程序設(shè)計(jì)。矩陣鍵盤每個(gè)按鍵都有它的行值和列值,行值和列值的組合就是識(shí)別這個(gè)按鍵的編碼。外部中斷有INT0和INT1兩個(gè),中斷的方式有低電平中斷和下降沿信號(hào)中斷兩種。采用2個(gè)數(shù)碼管是為了可以顯示從01到64的床號(hào),第一個(gè)74HC164移位寄存器的A、B口接單片機(jī)的輸入輸出串口RXD引腳、CLK口都接單片機(jī)的TXD引腳以接收單片機(jī)產(chǎn)生的脈沖信號(hào),其輸出端Q0—Q6分別接數(shù)碼顯示管的a—g七個(gè)引腳,第一個(gè)74HC164的Q7圖223 數(shù)碼顯示電路圖端接第二個(gè)的A、B口。內(nèi)部復(fù)位操作使堆棧指示器SP為07H,各端口都為1(P0P3口的內(nèi)容均勻0FFH),特殊功能寄存器都復(fù)位為0,但不影響RAM的狀態(tài)。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。MOVX是訪問外部數(shù)據(jù)存儲(chǔ)器的單字節(jié)雙機(jī)器周期指令。這些內(nèi)部時(shí)鐘信號(hào)不能從外部觀察到,所用XTAL2振蕩信號(hào)作參考。、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為5~33pF。外部方式的時(shí)鐘很少用,若要用時(shí),只要將XTAL1接地,XTAL2接外部振蕩器就行。這樣可以使設(shè)計(jì)的系統(tǒng)更加地具有實(shí)用性,減少出錯(cuò)的機(jī)率。此外,按鍵在閉合或斷開時(shí)會(huì)出現(xiàn)抖動(dòng)。在方式0工作時(shí),串行數(shù)據(jù)通過RXD輸入或輸出,TXD輸出頻率為fosc/12頻率的時(shí)鐘脈沖。為了節(jié)約接口資源和簡(jiǎn)化電路,本設(shè)計(jì)采用了串行口輸出方式,將利用移位寄存器擴(kuò)展并行輸出接口,驅(qū)動(dòng)共陽數(shù)碼顯示管工作,通過在數(shù)碼顯示管的陽極串行接口若干個(gè)二極管達(dá)到整體降壓的效果,避免加入大量電阻的麻煩。本設(shè)計(jì)采用ATMEL的AT89S52微處理器,主要基于以下幾個(gè)因素:1) AT89S52為51內(nèi)核,仿真調(diào)試的軟硬件資源豐富;2) 性價(jià)比高,貨源充足;3) 功耗低,功能強(qiáng),靈活性高;4) DIP40封裝,體積小,便于產(chǎn)品小型化;5) 為EEPROM程序存儲(chǔ)介質(zhì),1000次以上擦寫周期,便于編程調(diào)試;6) 工作電壓范圍寬:-6V,便于交直流供電; 數(shù)碼顯示電路對(duì)于數(shù)字顯示電路,通常采用液晶顯示或數(shù)碼管顯示。例如能完成加、減、乘、除、加減BCD碼十進(jìn)制調(diào)整、比較等算術(shù)運(yùn)算和與、或、異或、求補(bǔ)、循環(huán)等邏輯操作,操作結(jié)果的狀態(tài)信息送至狀態(tài)寄存器。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。能夠?qū)Χ鄠€(gè)病床進(jìn)行監(jiān)控,對(duì)于病床的呼叫作出及時(shí)的聲音告警并能準(zhǔn)確的顯示出所呼叫的病床床號(hào),使醫(yī)護(hù)人員能及時(shí)準(zhǔn)確地趕到病床,給予病人及時(shí)的救護(hù)與醫(yī)療。隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,單片機(jī)已逐漸發(fā)展成為一門關(guān)鍵的技術(shù)學(xué)科。有了病床呼叫控制系統(tǒng),醫(yī)院的護(hù)理工作變得更加方便全面,不用再為人手不足或未能及時(shí)發(fā)現(xiàn)突發(fā)病況而煩惱。本設(shè)計(jì)系統(tǒng)能連續(xù)性地存儲(chǔ)和讀出顯示呼叫的病床床號(hào)等等。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。也能使進(jìn)位標(biāo)志位與其他可位尋址的位之間進(jìn)行邏輯與、或操作。因此,本設(shè)計(jì)的顯示電路采用7段數(shù)碼管作為顯示介質(zhì)。串行數(shù)據(jù)輸入端(A,B)可控制數(shù)據(jù)。接收必須預(yù)先置REN=1(允許接收)和RI=0,當(dāng)8位數(shù)據(jù)接收完,RI被置為“1”,此時(shí),可通過讀SBUF指令,將串行數(shù)據(jù)讀入。 聲音告警電路考慮到該系統(tǒng)是用于醫(yī)院里的,告警聲音必須夠響亮卻不刺耳,不那么令人心煩,本設(shè)計(jì)病床呼叫控制系統(tǒng)的聲音告警電路采用蜂鳴器發(fā)聲音;又考慮到直接接單片機(jī)I/0口可能驅(qū)動(dòng)電流不夠大的問題,采用三極管驅(qū)動(dòng)蜂鳴器發(fā)聲。本設(shè)計(jì)的基本原理大概是:正常工作下的單片機(jī)系統(tǒng)通過不停地對(duì)呼叫開關(guān)電路掃描、不停地讀8052單片機(jī)呼叫開關(guān)電路床 號(hào)顯 示電 路呼救告警電路 一床號(hào)顯示復(fù)位按鍵復(fù)位、時(shí)鐘等輔助電路 圖21 病床呼叫控制系統(tǒng)的硬件原理框圖取呼叫開關(guān)電路的狀態(tài),監(jiān)控鍵盤的所有呼叫開關(guān),當(dāng)有病床呼叫出現(xiàn),單片機(jī)就會(huì)讀取到,并調(diào)用對(duì)應(yīng)的程序分析所呼叫的開關(guān)號(hào)碼,單片機(jī)分析出該呼叫開關(guān)號(hào)碼后將其存儲(chǔ)起來,并發(fā)送第一個(gè)呼叫開關(guān)的床號(hào)信息至顯示電路,判斷是否發(fā)出聲音。P1在每一個(gè)狀態(tài)S的前半部分有效,P2在每個(gè)狀態(tài)的后半部分有效。時(shí)序MCS51典型的指令周期(執(zhí)行一條指令的時(shí)間稱為指令周期)為一個(gè)機(jī)器周期,一個(gè)機(jī)器周期由六個(gè)狀態(tài)(十二振蕩周期)組成。如果是雙字節(jié)單機(jī)器周期指令,則在同一機(jī)器周期的S4期間讀入第二個(gè)字節(jié),若是單字節(jié)單機(jī)器周期指令,則在S4期間仍進(jìn)行讀,但所讀的這個(gè)字節(jié)操作碼被忽略,程序計(jì)數(shù)器也不加1,在S6P2結(jié)束時(shí)完成指令操作。 單片機(jī)系統(tǒng)復(fù)位電路的設(shè)計(jì)單片機(jī)的復(fù)位操作則使單片機(jī)的片內(nèi)電路初始化,使單片機(jī)從一種確定的狀態(tài)開始運(yùn)行。當(dāng)單片機(jī)已在運(yùn)行之中時(shí),按下復(fù)位鍵也能使RST持續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電且開關(guān)復(fù)位的操作。 數(shù)碼顯示電路的設(shè)計(jì) 圖2 數(shù)碼管內(nèi)部結(jié)構(gòu)及引腳圖1) 數(shù)碼顯示管 七段數(shù)碼顯示管分共陽數(shù)碼管和共陰數(shù)碼管兩種,本設(shè)計(jì)采用的是共陽數(shù)碼管,其結(jié)構(gòu)及引腳排列如圖2所示。由于采用的是共陽的數(shù)碼顯示管,所以,只要數(shù)碼管的a、b、c、d、e、f、g、h引腳為低電平,那么其對(duì)應(yīng)的二極管就會(huì)發(fā)光,使數(shù)碼顯示管顯示0~9的編碼為gfedcba=03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H 聲音告警電路的設(shè)計(jì) 圖224 聲音告警電路圖本設(shè)計(jì)病床呼叫控制系統(tǒng)中,單片機(jī)的告,告警聲音用蜂鳴器發(fā)聲,蜂鳴器發(fā)聲音連續(xù)的聲音告警。一般情況下,將利用消抖開關(guān)產(chǎn)生中斷請(qǐng)求信號(hào),電路如圖2251所示。本設(shè)計(jì)鍵盤電路如 本設(shè)計(jì)系統(tǒng)所用到的單片機(jī)端口數(shù)比較多,為了方便讀者閱讀程序,節(jié)省讀者的閱讀與理解時(shí)間,在這里將對(duì)病床呼叫控制系統(tǒng)的硬件資源的大概分配加以說明,供讀者參考。只有當(dāng)前顯示的床號(hào)不為“0”即有病床呼叫時(shí),系統(tǒng)才會(huì)發(fā)出告警聲音?! ? 圖334 鍵值處理程序 當(dāng)系統(tǒng)檢測(cè)到有病床呼叫時(shí),就調(diào)用鍵值處理程序。本設(shè)計(jì)的病床呼叫控制系統(tǒng)的PCB圖如圖41所示,圖中比較細(xì)的線連接的兩點(diǎn)是要通過導(dǎo)線連接,在實(shí)際制作時(shí),可適當(dāng)?shù)卦黾右幌露探泳€,以減少使用導(dǎo)線連接。第二步:通電調(diào)試(1) 檢查系統(tǒng)時(shí)鐘電路凡是單片機(jī)系統(tǒng),正常運(yùn)行的必要條件是單片機(jī)系統(tǒng)的時(shí)鐘穩(wěn)定正常。點(diǎn)擊圖433中的“閃電”圖標(biāo),出現(xiàn),點(diǎn)確定后,再點(diǎn)擊圖433中的“A”字圖標(biāo),出現(xiàn)對(duì)話框,完成后,按軟件默認(rèn)選項(xiàng),點(diǎn)擊“OK”-“OK”―“OK”燒錄完成;否則重新檢查硬件連接后再重新燒錄。這時(shí),蜂鳴器發(fā)出告警聲音,數(shù)碼顯示管顯示“03”號(hào);按一次床號(hào)顯示復(fù)位按鈕后,蜂鳴器繼續(xù)響,數(shù)碼顯示管顯示“04”號(hào);再按一次顯示復(fù)位按鈕,數(shù)碼顯示管顯示“23”號(hào),蜂鳴器繼續(xù)發(fā)出聲音告警;再繼續(xù)按顯示復(fù)位按鈕,數(shù)碼顯示管清0,告警聲音停止。另一特色是介紹很多新型的接口器件,如串行EPROM、串行A/D、V/F、F/V監(jiān)控器等。[6].張旭濤、曾現(xiàn)峰,單片機(jī)原理與應(yīng)用,北京理工大學(xué)出版社2007年2月本書主要內(nèi)容這MCS51單片機(jī)的基本結(jié)構(gòu)及其原理,單片機(jī)的指令系統(tǒng)與程序初步設(shè)計(jì),單片機(jī)中斷、定時(shí)與計(jì)數(shù)原理,單片機(jī)系統(tǒng)的擴(kuò)展應(yīng)用,單片機(jī)工業(yè)控制應(yīng)用及相關(guān)實(shí)驗(yàn)等。[10].[美]德蘭佐 微機(jī)接口技術(shù)實(shí)驗(yàn)教程(英文版),機(jī)械工業(yè)出版社2004年1月本書是作者在美國(guó)加州大學(xué)伯克利分校15年教學(xué)經(jīng)驗(yàn)的結(jié)晶。組開關(guān)的號(hào)碼由連接在擴(kuò)展槽1的公共端決定,當(dāng)公共端連接“1”時(shí),該組呼叫開關(guān)的顯示號(hào)碼被定為1~8,當(dāng)公共端連接“2”時(shí),則該組呼叫開關(guān)的號(hào)碼被定為9~16,并以此類推,本設(shè)計(jì)的病床呼呼控制系統(tǒng)最多可以控制8組即64個(gè)病床呼叫開關(guān)。各功能部件由內(nèi)部總線聯(lián)接在一起。② ALE/ 正常操作時(shí)為ALE功能(允許地址鎖存)提供把地址的低字節(jié)鎖存到外部鎖存器,ALE 引腳以不變的頻率(振蕩器頻率的)周期性地發(fā)出正脈沖信號(hào)。輸入/ , , , 。 附錄D 單片機(jī)相關(guān)簡(jiǎn)單指令介紹為了使初學(xué)者對(duì)單片機(jī)有一個(gè)全面的認(rèn)識(shí)和便于仿真軟件、實(shí)驗(yàn)系統(tǒng)的使用,先介紹幾個(gè)簡(jiǎn)單的指令,其它的指令在第三章中系統(tǒng)講解。堆棧操作 I.入棧操作 PUSH dir;SP+1 SP,(dir) (SP) POP dir;(SP) (dir),SP1 SP 堆棧操作指令說明:[1] 初始化時(shí)SP=07H,如不重置SP,將從內(nèi)部數(shù)據(jù)存儲(chǔ)器08H單元開始?jí)喝?;?] 堆棧操作是字節(jié)數(shù)據(jù)操作,每次壓入或彈出一個(gè)8位數(shù);堆棧的生長(zhǎng)方向和8086相反,入棧時(shí)棧頂向地址增加的方向生長(zhǎng),即SP先加1,再壓入;彈出按地址減少的方向進(jìn)行,即先彈出,SP再減1。邊沿觸發(fā)方式,允許中斷,開中斷開關(guān) MOV R7,08H MOV R0,6FH 。不停地測(cè)是否有鍵盤按下,P2不全為1則有HAVE: ACALL STORAGE 。檢測(cè)第一行鍵盤NEXT: MOV B,A 。判斷所按鍵是該行第幾個(gè),得列碼 POP ACC ADD A,R4 。顯示子程序。********************************。聲音子程序。列表3。暫存行掃描碼 MOV P2,0FFH MOV P0,A MOV A,P2 。清0 DEC R0 DJNZ R7,LOOP MOV R